آموزش استقرار سرویس‌های Spring Boot در AWS ECS Fargate با استفاده از AWS CDK - آخرین آپدیت

دانلود Deploy Spring Boot services to AWS ECS Fargate with AWS CDK

نکته: ممکن هست محتوای این صفحه بروز نباشد ولی دانلود دوره آخرین آپدیت می باشد.
نمونه ویدیوها:
توضیحات دوره:

آموزش جامع میکروسرویس‌ها با AWS: ECS, CDK V2, Spring Boot V3 و Java 21

یک سفر جامع را آغاز کنید تا میکروسرویس‌های قوی را با استفاده از AWS ECS، AWS CDK V2، Spring Boot V3 و Java 21 بسازید. یاد بگیرید چگونه از SNS، SQS، DynamoDB، S3 و AWS SDK V2 استفاده کنید تا برنامه‌های کاربردی مقیاس‌پذیر و کارآمد ایجاد کنید.

این دوره شما را با تمام ابزارهای لازم برای ساخت میکروسرویس‌های مبتنی بر جاوا و Spring Boot مجهز می‌کند و از قدرت زیرساخت AWS به‌عنوان کد (IaC) بهره می‌برد.

آنچه در این دوره خواهید آموخت:

  • ساخت میکروسرویس‌ها: ایجاد میکروسرویس‌ها با Spring Boot V3 و Java 21، استفاده از AWS ECS و Fargate (محاسبات Serverless برای کانتینرها).
  • زیرساخت به عنوان کد با AWS CDK V2: مدل‌سازی و تامین زیرساخت AWS با استفاده از AWS Cloud Development Kit (CDK) V2 در جاوا.
  • AWS SDK V2 برای جاوا: دسترسی به منابع AWS با استفاده از AWS SDK V2 برای جاوا، یکپارچه با Spring Boot و کتابخانه‌های JDK.
  • ساخت API با AWS API Gateway: ایجاد API با AWS API Gateway، با پارامترهای رشته جستجو و اعتبارسنجی بدنه درخواست.
  • مدیریت زیرساخت با CloudFormation: سازماندهی منابع AWS در پشته‌ها با استفاده از AWS CloudFormation.
  • Fargate برای میکروسرویس‌ها: ایجاد میکروسرویس‌ها با استفاده از AWS Fargate بدون نیاز به ایجاد زیرساخت مانند مواردی مانند ماشین.
  • خوشه‌بندی با AWS ECS: ایجاد خوشه‌ها با سرویس AWS ECS برای کنترل اجرای وظایف برنامه.
  • پردازش فایل مبتنی بر رویداد با S3: استفاده از AWS S3 برای ایجاد مکانیسم پردازش فایل مبتنی بر رویداد، یکپارچه با سرویس‌های AWS ECS.
  • متعادل‌سازی بار با ALB: متعادل کردن درخواست‌ها بین نمونه‌های برنامه با استفاده از سرویس AWS Application Load Balancer.
  • مانیتورینگ میکروسرویس‌ها با X-Ray: نظارت بر اجرای میکروسرویس‌ها با AWS X-Ray.
  • امنیت شبکه با VPC: ایجاد subnetها و قوانین امنیتی شبکه با استفاده از AWS VPC برای محافظت از کانتینرهای برنامه.
  • مانیتورینگ سلامت برنامه با Target Groups: نظارت بر سلامت برنامه با استفاده از AWS Target Groups، یکپارچه با سرویس‌های AWS ECS.
  • DynamoDB: ایجاد و کوئری جداول DynamoDB با کلیدهای اولیه ترکیبی، پیکربندی حالت‌های provisioned و on-demand، و نظارت بر مصرف.
  • لاگ‌گیری و مانیتورینگ: مشاهده لاگ‌ها از میکروسرویس‌ها در AWS CloudWatch Insights.
  • پیام‌رسانی با SNS و SQS: انتشار پیام‌ها در موضوعات AWS SNS از طریق میکروسرویس‌ها، مصرف پیام‌های AWS SQS از میکروسرویس‌ها در Spring Boot، و فیلتر کردن پیام‌ها.
  • پردازش فایل با S3 و SQS: وارد کردن فایل‌ها با استفاده از AWS S3 و مصرف رویدادهای آن از صف‌های AWS SQS.
  • ذخیره‌سازی تصاویر Docker با ECR: ذخیره تصاویر Docker برنامه در مخازن خصوصی با استفاده از AWS ECR.
  • هشدارها با CloudWatch Alarms: نظارت بر لاگ‌های برنامه، پارامترها و رویدادهای منابع برای تولید هشدار با AWS CloudWatch Alarms.
  • صف مرده با SQS: ایجاد یک موتور Dead-Letter Queue با AWS SQS.
  • کنترل هزینه با Cost Explorer: کنترل هزینه‌ها از طریق تگ‌های منبع در AWS Cost Explorer.
  • کنترل دسترسی با IAM: کنترل مجوزهای دسترسی برای موارد خاص DynamoDB با سیاست‌های AWS IAM.

پیش نیازها:

  • هیچ دانش قبلی از AWS لازم نیست.
  • برنامه‌نویسی شی گرا
  • سرویس‌های REST
  • نیازی به نصب نرم افزار پولی برای دنبال کردن دوره نخواهید داشت.
  • حساب کاربری رایگان AWS.

درباره این دوره میکروسرویس ها

در این دوره شما چندین میکروسرویس را در Java 21 ایجاد خواهید کرد، با استفاده از فریم ورک Spring Boot V3 و کانتینرهای Docker، یک برنامه بک اند ایجاد می کند تا با منابع Amazon Web Services ، همانطور که در زیر ذکر شده است، تعامل داشته باشد. این منابع در AWS با استفاده از AWS Cloud Development Kit (CDK) V2، یک روش مدرن برای مدل سازی و ارائه زیرساخت ها در AWS ایجاد می شود. AWS CDK یکی از بهترین زیرساخت ها به عنوان کد یا ابزارهای IaC برای AWS است.

Spring Boot V3 یک فریم ورک Java قدرتمند برای ساخت برنامه های سمت سرور با حاشیه نویسی ها، کنترلرها، سرویس ها، رهگیرهای درخواست و موارد دیگر است.

این دوره منابع و ابزارهای AWS زیر را با تمرین های عملی پوشش می دهد:

  • AWS ECS: Elastic Container Service سرویس ارکستراسیون کانتینری AWS است. با این سرویس می توان اجرای کانتینرهای میکروسرویس مبتنی بر Docker را به روشی قوی و مقیاس پذیر مدیریت کرد. و با AWS Fargate، محاسبات Serverless برای کانتینرها از Amazon Web Services، نیازی به ایجاد نمونه های EC2 نیست، در نتیجه هزینه عملیاتی برنامه های کاربردی مبتنی بر کانتینر کاهش می یابد.

  • AWS ECR: با Elastic Container Registry از AWS می توان مخازن خصوصی برای ذخیره تصاویر Docker کانتینر میکروسرویس ایجاد کرد.

  • AWS VPC: با Virtual Private Cloud می توان زیرساخت را با زیر شبکه های خصوصی و سیاست های امنیتی شبکه برای قوانین ترافیک ورودی و خروجی ایمن کرد.

  • AWS ALB: Application Load Balancer از AWS اجازه می دهد ترافیک ورودی HTTP بین تمام نمونه های برنامه در دسترس متعادل شود و با گروه های هدف یکپارچه، هر نمونه می تواند نظارت شود تا فقط در صورت سالم بودن ترافیک دریافت کند.

  • API Gateway REST: با API Gateway AWS می توان از REST API برنامه محافظت کرد و همچنین پارامتر رشته جستجو و اعتبارسنجی بدنه درخواست ها را انجام داد.

  • CloudWatch Logs: مسئول متمرکز کردن گزارش های برنامه ها و معیارهای آن. برنامه هایی که در این دوره ایجاد می شوند، گزارش ها را با فرمت JSON در CloudWatch Logs با استفاده از کتابخانه log4j2 تولید می کنند. به این ترتیب، می توانیم پارامترها را در گزارش ها وارد کنیم تا در کوئری ها در کنسول AWS CloudWatch Logs Insights استفاده شوند.

  • CloudWatch Alarms: با هشدارهای CloudWatch می توان وقوعات غیرعادی از برنامه ها و منابع AWS را نظارت کرد.

  • CloudWatch Container Insights: با Container Insights می توان اطلاعات نظارتی را از برنامه های در حال اجرا در AWS ECS از جمله گزارش های آن جمع آوری کرد.

  • DynamoDB: DynamoDB یک پایگاه داده NoSQL و غیر رابطه ای قدرتمند است. این دوره استفاده از مشتری بهبود یافته DynamoDB از AWS SDK V2 for Java را ارائه می دهد که یک کتابخانه سطح بالا است که راهی برای نگاشت کلاس های سمت مشتری به جداول DynamoDB را امکان پذیر می کند.

  • SQS: SQS یا Simple Queue Service یک سرویس صف است که ارتباط ناهمزمان بین برنامه ها را به منظور تبادل پیام ها و رویدادها امکان پذیر می کند.

  • SNS: با SNS یا Simple Notification Service می توان موضوعاتی ایجاد کرد و پیام هایی را منتشر کرد که توسط چندین منبع و برنامه دریافت شوند.

  • S3: S3 یا Simple Storage Service دارای یک ذخیره سازی فایل بدون ارائه سرور است. همچنین S3 هنگام اضافه شدن فایل ها به آن اعلان هایی ایجاد می کند.

  • X-Ray: AWS X-Ray سرویسی است که تجزیه و تحلیل و اشکال زدایی برنامه های توزیع شده را امکان پذیر می کند.

  • IAM: Identity and Access Management از AWS مدیریت نقش ها و مجوزها را امکان پذیر می کند که به کاربران و خدمات اعطا می شود تا به سایر منابع AWS دسترسی پیدا کنند.

  • AWS Cost Explorer: با Cost Explorer از AWS می توان نمودارهای هزینه در مورد مصرف منابع را بر اساس انواع منابع و برچسب ها تولید کرد که می توانند برنامه ها و قطعات آنها را شناسایی کنند.

این منابع با استفاده از AWS Cloud Development Kit - CDK در AWS ایجاد می شوند، یک روش مدرن برای مدل سازی و ارائه زیرساخت ها در AWS با استفاده از زبان Java. AWS CDK ایده آل است اگر می خواهید در DevOps و در زمینه زیرساخت به عنوان کد کار کنید.

با این کار شما همچنین یاد خواهید گرفت که چگونه از AWS SDK V2 برای Java استفاده کنید، که مجموعه ای از کتابخانه ها است که توسط خود AWS برای استفاده از خدمات آن توسعه یافته است.

AWS SDK V2 برای Java به طور کامل با فریم ورک Spring Boot V3 و با کتابخانه های JDK 21 ادغام شده است، بنابراین دسترسی به منابع AWS به روشی ظریف بسیار آسان است و عملیاتی را برای اجرا همزمان ایجاد می کند.

اگر از قبل گواهینامه AWS را دارید و به دنبال تجربه عملی هستید، می توانید آن را با این دوره، از طریق تمریناتی که در اینجا ارائه می شود، دریافت کنید.

این دوره تعادل خوبی بین تمرین های نظری و عملی دارد. شما می توانید توضیحات مفصل با نمودارها و پیاده سازی های به خوبی هدایت شده را همیشه با یک هدف مشخص انتظار داشته باشید.

توجه: این دوره برای آماده کردن شما برای امتحان گواهینامه AWS در نظر گرفته نشده است. دوره های دیگری نیز وجود دارند که مختص گواهینامه های AWS هستند.

همچنین در بسته گنجانده شده است، هنگام خرید این دوره:

  • پشتیبانی دانشجویی، از طریق بخش پرسش و پاسخ پلتفرم.

  • کد منبع پروژه برای کمک به شما در ابتدای دوره.

  • آزمون ها برای آزمایش دانش شما در مورد موضوعات دوره.

  • تمرین های عملی برای اجازه دادن به شما برای تمرین، با راه حل های دقیق ارائه شده توسط مدرس.

درباره مدرس:

  • من روزانه با فناوری های ارائه شده در این دوره از سال 2016 کار کرده ام، و به عنوان توسعه دهنده راه حل های میزبانی شده AWS فعالیت می کنم.

  • من تقریباً 10 سال است که استاد محاسبات ابری و موبایل از جمله AWS در یک دوره کارشناسی ارشد بوده ام.

  • من کتاب هایی در این زمینه منتشر کرده ام.

  • من از سال 2020 بخشی از AWS Community Builder هستم، یک انجمن جهانی که توسط Amazon Web Services ایجاد شده است.

اعتبارات برای موسیقی استفاده شده در ارائه دوره: Bensound - کد مجوز: 8XYDILY4RHGNN6VB


سرفصل ها و درس ها

مقدمه Introduction

  • ارائه دوره Course presentation

  • ارائه پروژه بک‌اند فروشگاه اینترنتی ECommerce backend project presentation

  • مفاهیم AWS AWS concepts

  • آماده‌سازی اکانت AWS Preparing the AWS account

  • آماده‌سازی محیط توسعه Preparing the development environment

مقدمه AWS CloudFormation AWS CloudFormation introduction

  • مقدمه AWS CloudFormation AWS CloudFormation introduction

  • تجزیه و تحلیل استک‌ها، رویدادها، منابع و ویژگی‌ها Analyzing stacks, events, resources and properties

  • استک‌ها Stacks

  • حذف یک استک Deleting a stack

ایجاد پروژه زیرساخت با AWS CDK V2 Creating the infrastructure project with AWS CDK V2

  • مقدمه AWS Cloud Development Kit AWS Cloud Development Kit introduction

  • ایجاد کاربر AWS IAM برای استفاده توسط AWS CDK Creating the AWS IAM user to be used by the AWS CDK

  • ایجاد پروژه زیرساخت با AWS CDK V2 Creating the infrastructure project with AWS CDK V2

  • تجزیه و تحلیل ساختار پروژه CDK Analyzing the CDK project structure

  • AWS CDK AWS CDK

ایجاد اولین پروژه Spring Boot: ProductsService Creating the first Spring Boot project: ProductsService

  • مقدمه Spring Boot Spring Boot introduction

  • اولین میکروسرویس Spring Boot: ProductsService The first Spring Boot microservice: ProductsService

  • ایجاد پروژه ProductsService Spring Boot Creating the ProductsService Spring Boot project

  • آماده‌سازی IntelliJ IDEA Preparing the IntelliJ IDEA

  • اجرای برنامه برای اولین بار Executing the application for the first time

  • ایجاد اولین کنترلر Creating the first controller

  • ایجاد Dockerfile Creating the Dockerfile

  • تولید ایمیج داکر Generating the Docker image

  • اجرای ایمیج داکر به صورت محلی Running the Docker image locally

ایجاد مخزن ایمیج AWS ECR با AWS CDK Creating the AWS ECR image repository with AWS CDK

  • مقدمه AWS ECR AWS ECR introduction

  • ایجاد اولین استک CloudFormation در پروژه CDK Creating the first CloudFormation stack in the CDK project

  • ایجاد مخزن AWS ECR با AWS CDK Creating the AWS ECR repository with AWS CDK

  • سازماندهی استک در پروژه CDK Organizing the stack in the CDK project

  • Bootstrapping اکانت AWS Bootstrapping the AWS account

  • استقرار استک با مخزن ECR آن Deploying the stack with its ECR repository

  • Push کردن ایمیج داکر ProductsService به مخزن AWS ECR Pushing the ProductsService Docker image to the AWS ECR repository

ایجاد AWS VPC با AWS CDK Creating the AWS VPC with AWS CDK

  • مقدمه AWS VPC AWS VPC introduction

  • Multiple Availability Zones Multiple Availability Zones

  • Security Groups Security Groups

  • Subnets Subnets

  • Internet Gateway Internet Gateway

  • NAT Gateway NAT Gateway

  • Without NAT Gateway Without NAT Gateway

  • With NAT Gateway With NAT Gateway

  • AWS PrivateLink AWS PrivateLink

  • ایجاد AWS VPC با AWS CDK Creating the AWS VPC with AWS CDK

  • سازماندهی استک‌ها Organizing the stacks

  • استقرار AWS VPC Deploying the AWS VPC

  • تجزیه و تحلیل منابع ایجاد شده AWS VPC با استفاده از کنسول AWS Analyzing the created AWS VPC resources using AWS console

  • [اختیاری] - نابود کردن زیرساخت برای صرفه جویی در هزینه‌ها [OPTIONAL] - Destroying the infrastructure to save costs

ایجاد کلاستر AWS ECS با AWS CDK Creating the AWS ECS cluster with AWS CDK

  • مفاهیم AWS ECS، شامل کلاسترها، تعاریف تسک و سرویس‌ها. AWS ECS concepts, including clusters, task definitions and services.

  • تخصیص vCPU و حافظه vCPU and Memory allocation

  • تعریف تسک AWS ECS AWS ECS task definition

  • تسک AWS ECS AWS ECS task

  • سرویس AWS ECS AWS ECS service

  • مقیاس خودکار AWS ECS AWS ECS Auto Scaling

  • AWS ECS Multi Availability Zones AWS ECS Multi Availability Zones

  • ایجاد کلاستر AWS ECS با AWS CDK Creating the AWS ECS cluster with AWS CDK

  • سازماندهی استک‌ها Organizing the stacks

  • استقرار کلاستر ECS با AWS CDK Deploying the ECS Cluster with AWS CDK

  • تجزیه و تحلیل کلاستر AWS ECS ایجاد شده با استفاده از کنسول AWS Analyzing the created AWS ECS cluster using the AWS console

ایجاد زیرساخت AWS ECS برای نگهداری سرویس‌ها Creating the AWS ECS infrastructure to hold the services

  • مقدمه AWS Application Load Balancer و استراتژی یکپارچه‌سازی ECS AWS Application Load Balancer introduction and the ECS integration strategy

  • Target Group Target Group

  • مکانیزم Health Check Health Check mechanism

  • Security Group Security Group

  • ایجاد استک برای نگهداری منابعی که با استک‌های دیگر به اشتراک گذاشته می‌شوند Creating the stack to hold the resources to be shared with other stacks

  • ایجاد AWS Network Load Balancer با استفاده از AWS CDK Creating the AWS Network Load Balancer using AWS CDK

  • ایجاد AWS VPC Link با استفاده از AWS CDK Creating the AWS VPC Link with AWS CDK

  • ایجاد AWS Application Load Balancer با استفاده از AWS CDK Creating the AWS Application Load Balancer with AWS CDK

  • سازماندهی استک‌ها Organizing the stacks

  • استقرار استک جدید Deploying the new stack

  • تجزیه و تحلیل منابع AWS ایجاد شده با استفاده از کنسول AWS Analyzing the create AWS resources using the AWS console

ایجاد سرویس ECS با AWS CDK Creating the ECS service with AWS CDK

  • استراتژی ایجاد سرویس ECS و منابع باقی مانده Strategy to create the ECS service and the remaining resources

  • ایجاد استک جدید برای ProductsService Creating the new stack for the ProductsService

  • ایجاد تعریف تسک ECS Creating the ECS task definition

  • ایجاد درایور لاگ سرویس Creating the service log driver

  • اضافه کردن کانتینر سرویس به تعریف تسک Adding the service container to the task definition

  • اضافه کردن یک listener جدید به AWS Application Load Balancer Adding a new listener to the AWS Application Load Balancer

  • ایجاد سرویس AWS Fargate Creating the AWS Fargate service

  • [اختیاری] - تخصیص آدرس‌های IP عمومی به اینستنس‌ها [OPTIONAL] - Assigning public IP addresses to the instances

  • پیکربندی گروه هدف AWS ALB و مکانیزم بررسی سلامت Configuring the AWS ALB target group and the health check mechanism

  • پیکربندی AWS Network Load Balancer Configuring the AWS Network Load Balancer

  • سازماندهی استک‌ها Organizing the stacks

  • استقرار منابع ایجاد شده و ProductsServices Deploying the created resources and the ProductsServices

  • [مهم] - عیب‌یابی ECS [IMPORTANT] - ECS troubleshooting

  • تجزیه و تحلیل منابع ایجاد شده با استفاده از کنسول AWS Analyzing the created resources using AWS console

  • [اختیاری] - نابود کردن زیرساخت برای صرفه جویی در هزینه‌ها [OPTIONAL] - Destroying the infrastructure to save costs

ایجاد AWS API Gateway با AWS CDK Creating the AWS API Gateway with AWS CDK

  • مقدمه‌ای بر AWS API Gateway Introduction to AWS API Gateway

  • یکپارچه‌سازی بین API Gateway و سرویس‌های AWS ECS از طریق AWS VPC Link Integration between API Gateway and AWS ECS services through AWS VPC Link

  • ایجاد استک جدید برای منابع API Gateway Creating the new stack for the API Gateway resources

  • ایجاد منبع API Gateway Creating the API Gateway resource

  • ایجاد منبع محصولات و اولین متد آن Creating the products resource and its first method

  • سازماندهی استک‌ها Organizing the stacks

  • تست یکپارچه‌سازی بین API Gateway و سرویس AWS ECS Testing the integration between the API Gateway and the AWS ECS service

ایجاد جدول محصولات AWS DynamoDB با AWS CDK Creating the AWS DynamoDB products table with AWS CDK

  • مقدمه‌ای بر جداول AWS DynamoDB Introduction to AWS DynamoDB tables

  • مفاهیم اساسی درباره جداول AWS DynamoDB Basic concepts about AWS DynamoDB tables.

  • ایجاد جدول AWS DynamoDB با AWS CDK Creating the AWS DynamoDB table with AWS CDK

  • اعطای مجوز به ProductsService برای دسترسی به جدول DynamoDB Granting permission to ProductsService to access the DynamoDB table

  • ایجاد عملیات REST برای ایجاد محصولات جدید Creating the REST operation to create new products

  • ایجاد عملیات REST برای به‌روزرسانی یک محصول با ID آن Creating the REST operation to update a product by its id

  • ایجاد عملیات REST برای دریافت یک محصول با ID آن Creating the REST operation to get a product by its id

  • ایجاد عملیات REST برای حذف یک محصول با ID آن Creating the REST operation to delete a product by its id

  • اضافه کردن وابستگی‌های AWS SDK به پروژه ProductsService Adding the AWS SDK dependencies to ProductsService project

  • ایجاد مدل محصولات برای نمایش آن در جدول DDB جدید Creating the products model to represent it in the new DDB table

  • ایجاد کلاس پیکربندی DynamoDB Creating the DynamoDB configuration class

  • ایجاد مخزن محصول Creating the product repository

  • ایجاد متد برای یافتن تمام محصولات Creating the method to find all products

  • ایجاد متد برای یافتن یک محصول با ID آن، با استفاده از کلید اصلی Creating the method to find a product by its id, using the primary key

  • ایجاد متد برای ایجاد یک محصول جدید Creating the method to create a new product

  • ایجاد متد برای حذف یک محصول Creating the method to delete a product

  • ایجاد متد برای به‌روزرسانی یک محصول Creating the method to update a product

  • ایجاد DTO محصول Creating the product DTO

  • ایجاد عملیات برای دریافت همه محصولات Creating the operation to get all products

  • ایجاد عملیات برای دریافت یک محصول با ID آن Creating the operation to get a product by its id

  • ایجاد عملیات برای ایجاد یک محصول جدید Creating the operation to create a new product

  • ایجاد عملیات برای حذف یک محصول Creating the operation to delete a product

  • ایجاد عملیات برای به‌روزرسانی یک محصول Creating the operation to update a product

  • اجرای استقرار برای تست پیاده‌سازی Executing the deployment to test the implementation

  • استفاده از CloudWatch Logs برای تجزیه و تحلیل و رفع استثناها در سرویس محصولات Using CloudWatch Logs to analyze and fix exceptions in our Products Service

  • اضافه کردن یک فیلد جدید به مدل محصولات Adding a new field to the products model

  • تست پیاده‌سازی Testing the implementation

ابزار دقیق AWS ECS سرویس‌ها با AWS X-Ray Instrumenting AWS ECS services with AWS X-Ray

  • مقدمه‌ای بر AWS X-Ray Introduction to AWS X-Ray

  • آماده‌سازی پروژه ProductsService Spring Boot برای استفاده از AWS X-Ray Preparing the ProductsService Spring Boot project to use the AWS X-Ray

  • ایجاد فایل قوانین نمونه‌برداری Creating the sampling rules file

  • ایجاد بازرس X-Ray Creating the X-Ray inspector

  • اضافه کردن رهگیر X-Ray به کلاینت DynamoDB Adding the X-Ray interceptor to the DynamoDB client

  • ابزار دقیق کنترلر محصولات Instrumenting the products controller

  • اضافه کردن یک sidecar کانتینر X-Ray به تعریف تسک ProductsServices Adding a X-Ray container sidecar to the ProductsServices task definition

  • درخت ناوبری کنسول AWS CloudWatch جدید New AWS CloudWatch console navigation tree

  • تست پیاده‌سازی Testing the implementation

تولید لاگ‌های AWS API Gateway Generating AWS API Gateway logs

  • راه‌اندازی منبع AWS API Gateway برای تولید لاگ‌ها در AWS CloudWatch Logs Setting up the AWS API Gateway resource to generate logs to AWS CloudWatch Logs

  • کنترل سطح لاگ برنامه و فرمت آن Controlling the application log level and its format

  • گرفتن شناسه درخواست یکتا از AWS API Gateway با یک رهگیر Capturing the unique request id from AWS API Gateway with an interceptor

  • ایجاد پیکربندی رهگیر Creating the interceptor configuration

  • تولید لاگ‌ها در زمینه محصولات Generating logs in the products context

  • ارسال شناسه درخواست یکتا با استفاده از AWS API Gateway Forwarding the unique request identifier using the AWS API Gateway

  • تست پیاده‌سازی Testing the implementation

نصیحت کنترلر Spring Boot با رسیدگی کننده‌های استثنا Spring Boot controller advice with exception handlers

  • استراتژی گرفتن استثناها با رسیدگی کننده‌های استثنا Strategy to capture exceptions with exception handlers

  • ایجاد یک enum برای نمایش خطاها Creating an enum to represent the errors

  • ایجاد یک استثنا سفارشی Creating a custom exception

  • ایجاد DTO پاسخ خطا Creating the error response DTO

  • ایجاد رسیدگی کننده استثنا محصولات Creating the products exception handler

  • تغییر عملیات کنترلر محصولات برای استفاده از استثنا سفارشی Changing the products controller operations to use the custom exception

  • تست پیاده‌سازی Testing the implementation

اعتبارسنجی بدنه درخواست AWS API Gateway AWS API Gateway request body validation

  • مفاهیم اعتبارسنجی بدنه درخواست AWS API Gateway و چرایی استفاده از آن‌ها AWS API Gateway request body validation concepts and why they should be used

  • ایجاد اعتبارسنج محصول و مدل آن Creating the product request validator and its model

  • اضافه کردن اعتبارسنج محصول به عملیات برای ایجاد یک محصول Adding the product validator to the operation to create a product

  • تست پیاده‌سازی و تجزیه و تحلیل منبع AWS API Gateway Testing the implementation and analyzing the AWS API Gateway resource

پرس و جوهای AWS DynamoDB با استفاده از Global Secondary Indexes AWS DynamoDB queries using Global Secondary Indexes

  • مفاهیم AWS DynamoDB Global Secondary Index AWS DynamoDB Global Secondary Index concepts

  • واحدهای ظرفیت خواندن و نوشتن AWS DynamoDB AWS DynamoDB read and write capacity units

  • استراتژی استفاده از GSI در جدول محصولات DynamoDB Strategy to use GSI in the products DynamoDB table

  • ایجاد GSI در جدول محصولات با استفاده از AWS CDK Creating the GSI into the products table using AWS CDK

  • استفاده از حاشیه نویسی DynamoDbSecondaryPartitionKey Using the DynamoDbSecondaryPartitionKey annotation

  • اضافه کردن کد محصول به عنوان یک پارامتر غیرضروری در منبع API Gateway Adding the product code as a non-required parameter in the API Gateway resource

  • ایجاد یک متد برای بررسی وجود کد یک محصول Creating a method to check if a product's code exists

  • دریافت یک محصول بر اساس کد آن Getting a product by its code

  • به‌روزرسانی متدهای ایجاد و به‌روزرسانی برای بررسی ابتدا کد محصولات Updating the creation and updating methods to check the products code first

  • تست پیاده‌سازی با AWS X-Ray Testing implementation with AWS X-Ray

انتشار رویدادهای محصول با AWS SNS Topics Publishing product events with AWS SNS topics

  • مفاهیم AWS SNS Topics AWS SNS topics concepts

  • استراتژی استفاده از AWS SNS Topics در ProductsService Strategy to use AWS SNS topics in ProductsService

  • مجوز دسترسی به یک SNS Topic Permission to access a SNS topic

  • یکپارچه‌سازی بین SNS Topic و صف‌های SQS Integration between SNS topic and SQS queues

  • ایجاد AWS SNS Topic با استفاده از AWS CDK Creating the AWS SNS topic using AWS CDK

  • اعطای مجوز به ProductsService برای انتشار پیام‌ها به SNS Topic Granting permission to ProductsService to publish messages to the SNS topic

  • ایجاد مدل‌های رویداد محصول Creating the product event models

  • ایجاد کلاینت SNS Topic با استفاده از AWS SDK Creating the SNS topic client using the AWS SDK

  • ایجاد سرویس ناشر رویدادها، با استفاده از کلاینت SNS ایجاد شده Creating the events publisher service, using the created SNS client

  • ایجاد متد برای انتشار رویدادهای محصول Creating the method to publish product events

  • انتشار رویداد حذف محصول Publishing the product deletion event

  • انتشار رویداد به‌روزرسانی محصول Publishing the product updating event

  • انتشار رویداد ایجاد محصول، به صورت ناهمگام. Publishing the product creation event, in an asynchronous way.

  • تست پیاده‌سازی Testing the implementation

  • ایجاد مدل‌های رویداد شکست محصول Creating the product failure event models

  • ایجاد متد برای انتشار رویداد شکست محصول Creating the method to publish the product failure event

  • انتشار رویداد شکست محصول Publishing the product failure event

  • تست پیاده‌سازی Testing the implementation

ایجاد پروژه AuditService Spring Boot Creating the AuditService Spring Boot project

  • استراتژی AuditService The AuditService strategy

  • ایجاد پروژه AuditService Spring Boot Creating the AuditService Spring Boot project

  • ایجاد Dockerfile Creating the Dockerfile

  • آماده‌سازی فایل build.gradle Preparing the build.gradle file

  • ایجاد فایل‌های پیکربندی Creating the configuration files

  • ایجاد کلاس پیکربندی کلاینت DynamoDB Creating the DynamoDB client configuration class

  • ایجاد کلاس‌های پیکربندی کلاینت X-Ray Creating the X-Ray client configuration classes

  • ایجاد یک مخزن ECR جدید Creating a new ECR repository

  • آپلود اولین ایمیج داکر AuditService Uploading the first AuditService Docker image

  • ایجاد استک AuditService با منابع اصلی آن Creating the AuditService stack with its main resources

  • سازماندهی استک و استقرار آن Organizing the stack and deploying it

  • تجزیه و تحلیل زیرساخت ایجاد شده Analyzing the created infrastructure

  • [اختیاری] - نابود کردن زیرساخت برای صرفه جویی در هزینه‌ها [OPTIONAL] - Destroying the infrastructure to save costs

مصرف پیام‌های AWS SQS Consuming AWS SQS messages

  • مفاهیم صف‌های AWS SQS AWS SQS queues concepts

  • استراتژی رویدادهای محصول با استفاده از صف‌های AWS SQS Product events strategy using AWS SQS queues

  • استراتژی Dead-letter Queue Dead-letter Queue strategy

  • ایجاد صف رویدادهای محصول AWS SQS و DLQ آن با AWS CDK Creating the AWS SQS product events queue and its DLQ with AWS CDK

  • مشترک کردن صف رویدادهای محصول AWS SQS به AWS SNS Topic Subscribing the AWS SQS product events queue to the AWS SNS topic

  • اعطای مجوز به AuditService برای مصرف پیام‌ها از صف AWS SQS Granting permission to AuditService to consume messages from the AWS SQS queue

  • ایجاد کلاس پیکربندی کلاینت AWS SQS Creating the AWS SQS client configuration class

  • ایجاد مدل‌های رویداد برای نمایش پیام‌ها Creating the event models to represent the messages

  • ایجاد مدل‌های محصول برای نمایش رویدادهای آن Creating the product models to represent its events

  • ایجاد مصرف کننده رویداد محصول Creating the product event consumer

  • ایجاد متد برای مصرف رویدادهای محصول Creating the method to consume product events

  • تست پیاده‌سازی Testing the implementation

  • تست AWS SQS DLQ در عمل Testing the AWS SQS DLQ in action

فیلتر اشتراک AWS SNS AWS SNS subscription filter

  • مفاهیم فیلتر اشتراک AWS SNS AWS SNS subscription filter concepts

  • اضافه کردن یک فیلتر اشتراک به اشتراک صف رویدادهای محصول Adding a subscription filter to the product events queue subscription

  • ایجاد صف رویدادهای شکست محصول، مشترک کردن آن با یک فیلتر Creating the product failure events queue, subscribing it with a filter

  • ایجاد مصرف کننده رویداد شکست محصول Creating the product failure event consumer

  • ایجاد متد برای مصرف پیام‌های شکست محصول Creating the method to consume product failure messages

  • تست پیاده‌سازی Testing the implementation

کلید اصلی ترکیبی - ذخیره رویدادهای محصول در یک جدول DDB واحد Composite primary key - persisting product events in a single DDB table

  • استراتژی جدول AWS DynamoDB رویدادها The events AWS DynamoDB table strategy

  • ایجاد جدول DDB رویدادها با AWS CDK Creating the events DDB table with AWS CDK

  • ایجاد مدل رویداد محصول Creating the product event model

  • ایجاد مخزن رویداد محصول Creating the product event repository

  • ایجاد متد برای ذخیره رویدادهای محصول Creating the method to persist product events

  • ذخیره رویدادهای محصول از مصرف کننده آن Persisting the product events from its consumer

  • ایجاد مدل رویداد شکست محصول Creating the product failure event model

  • ایجاد مخزن رویداد شکست محصول Creating the product failure event repository

  • ایجاد متد برای ذخیره رویدادهای شکست محصول Creating the method to persist product failure events

  • ذخیره رویدادهای شکست محصول از مصرف کننده آن Persisting the product failure events from its consumer

  • تست پیاده‌سازی Testing the implementation

یکپارچه‌سازی AWS X-Ray و AWS SQS AWS X-Ray and AWS SQS integration

  • چالش‌های استفاده از AWS X-Ray در حین مصرف پیام‌ها از صف‌های AWS SQS Challenges to use AWS X-Ray while consuming messages from AWS SQS queues

  • گرفتن سگمنت‌های AWS X-Ray در مصرف کننده رویدادهای محصول Capture AWS X-Ray segments in product events consumer

  • گرفتن سگمنت‌های AWS X-Ray در مصرف کننده رویدادهای شکست محصول Capture AWS X-Ray segments in product failure events consumer

  • تست پیاده‌سازی و بررسی ردیابی‌های AWS X-Ray از مصرف کنندگان صف Testing the implementation and checking AWS X-Ray traces from queue consumers

سرویس‌های AWS ECS با مقیاس خودکار AWS ECS services with auto scaling

  • استراتژی مقیاس خودکار در ProductsService و AuditServices Auto scaling strategy in the ProductsService and AuditServices

  • فعال کردن مقیاس خودکار در ProductsService و AuditService Enabling the auto scaling in the ProductsService and in the AuditService

  • استقرار تغییرات و تجزیه و تحلیل پیکربندی در کنسول ECS Deploying the changes and analyzing the configuration in the ECS console

  • آماده‌سازی ابزارهای تست بار Preparing the load test tools

  • تجزیه و تحلیل اثرات تست بار Analyzing the load test effects

حالت Provisioned AWS DynamoDB با مقیاس خودکار AWS DynamoDB provisioned mode with auto scaling

  • مفاهیم حالت provisioned AWS DynamoDB با مقیاس خودکار AWS DynamoDB provisioned mode with auto scaling concepts

  • تجزیه و تحلیل تست بار قبلی، از نظر معیارهای جدول DynamoDB Analyzing the previous load test, in terms of the DynamoDB table metrics

  • فعال کردن مقیاس خودکار در جدول DDB محصولات Enabling the auto scaling in the products DDB table

  • تست و تجزیه و تحلیل اثرات بر روی جداول DDB، سرویس‌های ECS و صف‌های SQS Testing and analyzing the impacts on DDB tables, ECS services and SQS queues

جدول AWS DynamoDB در حالت On Demand AWS DynamoDB table in on demand mode

  • مفاهیم جدول AWS DynamoDB در حالت On Demand AWS DynamoDB table in on demand mode concepts

  • فعال کردن حالت On Demand در جدول DDB محصولات Enabling the on demand mode in the products DDB table

  • تست و تجزیه و تحلیل اثرات بر روی جداول DDB، سرویس‌های ECS و صف‌های SQS Testing and analyzing the impacts on DDB tables, ECS services and SQS queues

  • فعال کردن حالت On Demand در جدول DDB رویدادها Enabling the on demand mode in the events DDB table

  • تست و تجزیه و تحلیل اثرات بر روی جداول DDB، سرویس‌های ECS و صف‌های SQS Testing and analyzing the impacts on DDB tables, ECS services and SQS queues

پرس و جوها در جداول DynamoDB با استفاده از کلیدهای ترکیبی Queries on DynamoDB tables using composite keys

  • استراتژی استفاده از کلیدهای اصلی ترکیبی برای پرس و جوها Strategy of using composite primary keys for queries

  • ایجاد DTO رویداد محصول برای API رویدادها Creating the product event DTO for the events API

  • اضافه کردن متد برای پرس و جوی محصولات بر اساس نوع رویداد، با صفحه بندی Adding the method to query products by event type, with pagination

  • اضافه کردن متد برای پرس و جوی محصولات بر اساس نوع رویداد و محدوده زمانی، و صفحه بندی Adding the method to query products by event type and time range, and pagination

  • ایجاد کنترلر رویدادهای محصول Creating the product events controller

  • ابزار دقیق عملیات پرس و جوی کلید اصلی ترکیبی با استفاده از AWS X-Ray Instrumenting the composite primary key query operations using AWS X-Ray

  • ایجاد منبع رویدادهای محصول در API Gateway Creating the product events resource in the API Gateway

  • تست پیاده‌سازی Testing the implementation

ایجاد پروژه InvoicesService Spring Boot Creating the InvoicesService Spring Boot project

  • استراتژی InvoicesService The InvoicesService strategy

  • ایجاد پروژه InvoicesService Spring Boot Creating the InvoicesService Spring Boot project

  • آماده‌سازی فایل Dockerfile و build.gradle Preparing the Dockerfile and the build.gradle file

  • ایجاد فایل‌های پیکربندی Creating the configuration files

  • ایجاد کلاس پیکربندی کلاینت DynamoDB Creating the DynamoDB client configuration class

  • ایجاد کلاس‌های پیکربندی کلاینت X-Ray Creating the X-Ray client configuration classes

  • ایجاد یک مخزن ECR جدید Creating a new ECR repository

  • آپلود اولین ایمیج داکر InvoicesService Uploading the first InvoicesService Docker image

  • ایجاد استک InvoicesService با منابع اصلی آن Creating the InvoicesService stack with its main resources

  • سازماندهی استک و استقرار آن Organizing the stack and deploying it

  • تجزیه و تحلیل زیرساخت ایجاد شده Analyzing the created infrastructure

  • [اختیاری] - نابود کردن زیرساخت برای صرفه جویی در هزینه‌ها [OPTIONAL] - Destroying the infrastructure to save costs

پردازش فایل مبتنی بر رویداد با AWS S3 Event-based file processing with AWS S3

  • مقدمه‌ای بر AWS S3 AWS S3 introduction

  • استراتژی پردازش فایل با استفاده از باکت AWS S3 Strategy to process file using the AWS S3 bucket

  • ایجاد جدول DynamoDB فاکتورها Creating the invoices DynamoDB table

  • ایجاد باکت AWS S3 با AWS CDK Creating the AWS S3 bucket with the AWS CDK

  • ایجاد صف AWS SQS برای دریافت اعلان از باکت AWS S3 Creating the AWS SQS queue to receive the notification from the AWS S3 bucket

  • پیکربندی اعلان رویداد باکت S3 به این صف Configuring the S3 bucket event notification to this queue

  • ایجاد منبع فاکتور در AWS API Gateway Creating the invoice resource in the AWS API Gateway

  • ایجاد عملیات برای بررسی تراکنش فایل فاکتور Creating the operation to check the invoice file transaction

  • ایجاد عملیات برای دریافت تمام فاکتورها از ایمیل یک مشتری Creating the operation to get all invoices from a customer email

  • بررسی زیرساخت ایجاد شده Checking the created infrastructure

  • ایجاد کلاس پیکربندی کلاینت S3 Creating the S3 client configuration class

  • ایجاد مدل پاسخ URL از پیش امضا شده Creating the pre-signed URL response model

  • ایجاد سرویس فاکتورها Creating the invoices service

  • ایجاد متد برای تولید URL از پیش امضا شده برای دسترسی به باکت AWS S3 Creating the method to generate the pre-signed URL to access the AWS S3 bucket

  • ایجاد مدل تراکنش فایل فاکتور Creating the invoice file transaction model

  • ایجاد مخزن تراکنش فایل فاکتور Creating the invoice file transaction repository

  • ایجاد متد برای ذخیره یک تراکنش فایل فاکتور Creating the method to persist an invoice file transaction

  • ایجاد متد برای به‌روزرسانی یک تراکنش فایل فاکتور Creating the method to update an invoice file transaction

  • ایجاد متد برای دریافت یک تراکنش فایل فاکتور Creating the method to get an invoice file transaction

  • ایجاد intercetor درخواست Creating the request intercetor

  • پیکربندی رهگیر درخواست Configuring the request interceptor

  • ایجاد کنترلر فاکتورها Creating the invoices controller

  • ایجاد عملیات برای تولید URL از پیش امضا شده Creating the operation to generate the pre-signed URL

  • تست پیاده‌سازی Testing the implementation

  • ایجاد مصرف کننده اعلان فاکتور S3 Creating the S3 invoice notification consumer

  • ایجاد متد برای حذف پیام‌های SQS Creating the method to delete SQS messages

  • ایجاد متد برای مصرف پیام‌های SQS Creating the method to consume SQS messages

  • ایجاد متد برای پردازش رکوردهای اعلان رویداد S3 Creating the method to process the S3 event notification records

  • تست پیاده‌سازی Testing the implementation

  • ایجاد DTO فایل فاکتور Creating the invoice file DTO

  • ایجاد مدل تراکنش فاکتور Creating the invoice transaction model

  • ایجاد مخزن تراکنش فاکتور Creating the invoice transaction repository

  • ایجاد متد برای ذخیره یک تراکنش فاکتور Creating the method to persist an invoice transaction

  • ایجاد مدل فاکتور Creating the invoice model

  • ایجاد مخزن فاکتور Creating the invoice repository

  • ایجاد متد برای ذخیره یک فاکتور Creating the method to persist an invoice

  • ایجاد متد برای دریافت تمام فاکتورها از یک مشتری بر اساس ایمیل او Creating the method to get all invoices from a customer by his email

  • ایجاد متد برای پردازش یک فاکتور Creating the method to process an invoice

  • تست پیاده‌سازی Testing the implementation

  • ایجاد متد برای بررسی یک تراکنش فایل فاکتور بر اساس transactionId آن Creating the method to check an invoice file transaction by its transactionId

  • ایجاد DTO فاکتور برای استفاده توسط API جدید Creating the invoice DTO to be used by the new API

  • ایجاد عملیات برای دریافت تمام فاکتورها از یک مشتری، با استفاده از ایمیل او Creating the operation to get all invoices from a customer, using his email

  • تست پیاده‌سازی Testing the implementation

  • تست با یک فایل فاکتور نامعتبر Testing with an invalid invoice file

  • تست قانون چرخه عمر باکت AWS S3 Testing the AWS S3 bucket lifecycle rule

آلارم‌های AWS CloudWatch AWS CloudWatch Alarms

  • استراتژی تولید آلارم بر اساس لاگ‌های برنامه Strategy to generate alarms based on application logs

  • ایجاد آلارم AWS CloudWatch برای نظارت بر لاگ خطای برنامه Creating the AWS CloudWatch alarm to monitor the application error log

  • استراتژی تولید آلارم بر اساس پارامترهای زیرساخت Strategy to generate alarms based on infrastructure parameters

  • ایجاد آلارم برای نظارت بر تعداد رویدادهای throttled از DDB رویدادها Creating the alarm to monitor the number of throttled events from the events DDB

  • تست آلارم بر اساس لاگ‌های برنامه Testing the alarm based on application logs

  • تست آلارم بر اساس پارامتر زیرساخت Testing the alarm based on infrastructure parameter

AWS Cost Explorer AWS Cost Explorer

  • مفاهیم AWS Cost Explorer AWS Cost Explorer concepts

  • تجزیه و تحلیل نمودارها و گزارش‌های AWS Cost Explorer Analyzing the AWS Cost Explorer graphs and reports

نتیجه‌گیری Conclusion

  • متشکرم! Thank you!

نمایش نظرات

آموزش استقرار سرویس‌های Spring Boot در AWS ECS Fargate با استفاده از AWS CDK
جزییات دوره
24 hours
303
Udemy (یودمی) Udemy (یودمی)
(آخرین آپدیت)
801
4.7 از 5
دارد
دارد
دارد
Siecola Code
جهت دریافت آخرین اخبار و آپدیت ها در کانال تلگرام عضو شوید.

Google Chrome Browser

Internet Download Manager

Pot Player

Winrar

Siecola Code Siecola Code

دوره های AWS