Hướng dẫn ecs python - trăn ecs
Đây là bài viết đầu tiên trong loạt bài Deploy dự án Ruby on Rails trên Amazon ECS. Trong bài viết này, mình sẽ nói về các ý tưởng cần thiết để bắt đầu 1 dự án trên ECS. Show Nội dung chính
ECS là gì và tại sao sử dụng ECSÝ tưởng Docker Registry Task Defination ECS Service ECS Cluster Amazon ECS CLI ECS Cluster sử dụng EC2 Instances
Ý tưởngDocker RegistryTask Defination ECS Service Task DefinationECS Service ECS Cluster Task defination bao gồm các thông tin sau:
Vì cấu hình này thay đổi xuyên suốt vòng đời của 1 ứng dụng, do đó task definations có thể có nhiều phiên bản, được gọi là revision. ECS Service1 service sẽ đảm bảo luôn có 1 số lượng n task chạy tại 1 thời điểm. Khi 1 container chết, nó sẽ sinh ra 1 phiên bản để back up. Service này cũng chịu trách nhiệm instance nào sẽ được deploy. Khi sinh ra 1 container, ECS service sẽ đảm bảo container đó được đăng ký lên ALB (Application Elastic Load Balancer) găn với nó. 1 ALB thực thi việc điều hướng lưu lượng trên các container trong hệ thống. 1 khi container được đăng ký với ALB, lưu lượng có thể được chuyển qua container đó. Có 2 loại service là ECS-EC2 và ECS-Fargate.ECS-EC2 và ECS-Fargate. ECS-EC2 service triển khai các container trên EC2 instance mà ta có quyền truy cập đến. ECS-Fargate thì chạy container trên EC2 instance được quản lý bởi AWS, do đó ta sẽ không có quyền truy cập đến các instance này. ECS Cluster1 cụm (cluster) là tổ hợp các service và task. Khi ta chạy service ECS-EC2, 1 cụm còn được hiểu là 1 nhóm các EC2 instance. Bạn có thể thiết lập số lượng và loại EC2 instance mà bạn muốn sử dụng. Tổng số đơn vị CPU và đơn vị bộ nhớ của từng instance này xác định số lượng container có thể thiết lập trong 1 cluster. Lấy ví dụ: ta tạo ra 1 cluster cho ứng dụng Image processing. Nó có 2 service ECS-EC2: 1 web service thực hiện render website, và 1 service xử lý ảnh thực hiện việc resize. Cụm cũng bao gồm 3 c5.large instance, mỗi cái có 1 2vCPU (2.048 đơn vị CPU) và 4 GiB bộ nhớ. Cách setup này cho chúng ta 6.144 đơn vị CPU và 12GiB bộ nhớ. Dung lượng này được chia sẻ giữa tất cả các ECS-EC2 service trong cụm. Giả sử web service của chúng ta cần 1.024 CPU units và 2GB RAM đối với 1 task, và service xử lý ảnh cần tới 2.048 CPU units và 4GB RAM cho 1 task, thì chúng ta có thể đưa vào 2 image processing tasks và 2 web service tasks vào trong 3 c5.large instance này. Nếu chúng ta muốn đưa thềm vào 1 web service task nữa, điều này là không thể vì toàn bộ tài nguyên của 3 c5.large instance đã được phân bố đầy đủ cho 4 task trước đó. Trong phần tiếp theo, chúng ta sẽ thực hiện setup tài khoản AWS và push image lên AWS's image registry. Bài viết được dịch từ Deploy Rails in Amazon ECS: Part 1 - Concepts Nội dung Trong bài viết ECS-P.1, chúng ta đã sử dụng giao diện AWS Console để thực hành các bước tạo ra những thành phần cơ bản của ECS: Cluster, Task Definition, Service. Sau khi đã nắm được cấu trúc và nguyên tắc vận hành của ECS, chúng ta có thể chuyển sang Amazon ECS Command Line Interface (CLI) để triển khai quá trình này một cách nhanh chóng và hiệu quả hơn. Phiên bản đầu tiên của ECS CLI được Amazon giới thiệu vào năm 2015. Đây là một công cụ cho phép người sử dụng giao tiếp với dịch vụ ECS thông qua những câu lệnh như tạo, chỉnh sửa hay giám sát các đối tượng ECS Cluster, Task etc… ECS CLI cũng hỗ trợ kiến trúc Docker Compose với khả năng định nghĩa và triển khai đồng thời nhiều containers trong một ứng dụng. Phiên bản CLI v2 được thiết kế lại và giới thiệu vào năm 2019 dưới tên gọi mới AWS Copilot CLI cùng những bổ sung giúp việc triển khai và cập nhật ứng dụng trở nên dễ dàng, liền mạch hơn. Amazon ECS CLIECS Cluster sử dụng EC2 InstancesTrong phần này, chúng ta sử dụng ECS CLI để tạo và cài đặt dịch vụ RemindersManagement trên một ECS Cluster với cơ chế thực thi dựa trên EC2. Bước 1: Cài đặt ECS CLI Cài đặt ECS CLI
sudo curl -Lo /usr/local/bin/ecs-cli https://amazon-ecs-cli.s3.amazonaws.com/ecs-cli-darwin-amd64-latest
sudo chmod +x /usr/local/bin/ecs-cli
Output ecs-cli version 1.20.0 (7547c45) Hướng dẫn Để đảm bảo tính bảo mật khi download ecs-cli file từ server, trong quá trình cài đặt, chúng ta có thể sử dụng PGP Signature để so sánh và xác nhận tính toàn vẹn trong nội dung file download. Có thể tham khảo các bước thực hiện quá trình này tại link: ECS CLI Install Bước 2: Khai báo Cluster Configurations và tạo Cluster Khai báo Cluster Configurations và tạo Cluster Cluster Configuration là một tập hợp các thuộc tính (fields) mô tả cấu hình Amazon ECS cluster. Các thuộc tính cơ bản bao gồm: là một tập hợp các thuộc tính (fields) mô tả cấu hình Amazon ECS cluster. Các thuộc tính cơ bản bao gồm:
Giá trị EC2 cho Launch Type được áp dụng mặc định khi không thực hiện khai báo.
ecs-cli configure --cluster friendreminders --default-launch-type EC2 --config-name friendreminders --region ap-southeast-2 Output INFO[0000] Saved ECS CLI cluster configuration friendreminders. Thông tin cấu hình được lưu trong file ~/.ecs/config với nội dung version:v1default:friendremindersclusters:friendreminders:cluster:friendremindersregion:ap-southeast-2default_launch_type:EC2: v1 default: friendreminders clusters: friendreminders: cluster: friendreminders region: ap-southeast-2 default_launch_type: EC2
ecs-cli up --keypair FriendReminders --capability-iam --size 2 --instance-type t2.medium Output INFO[0000] Saved ECS CLI cluster configuration friendreminders.
Xác nhận thông tin Cluster friendreminders và EC2 Instance trên AWS Console: Output {"containerInstanceArns":["arn:aws:ecs:ap-southeast-2:729365137003:container-instance/00c71427-9c6e-4191-ac12-bc17bec55fd8","arn:aws:ecs:ap-southeast-2:729365137003:container-instance/556a472b-bf5c-44c7-bd55-d35bcb84eb9c"]}"containerInstanceArns":["arn:aws:ecs:ap-southeast-2:729365137003:container-instance/00c71427-9c6e-4191-ac12-bc17bec55fd8", "arn:aws:ecs:ap-southeast-2:729365137003:container-instance/556a472b-bf5c-44c7-bd55-d35bcb84eb9c"]}
Autoscaling Launch Configuration Triển khai ECS Service EC2 VPC
EC2 Route Table docker-compose.yml version:'3'services:remindersmgtservice:image:729365137003.dkr.ecr.ap-southeast-2.amazonaws.com/remindersmgtservice:latestports:-"80:8000"logging:driver:awslogsoptions:awslogs-group:/ecs/remindersmgtec2awslogs-region:ap-southeast-2awslogs-stream-prefix:ecs/remindersmgtservice: '3' services: remindersmgtservice: image: 729365137003.dkr.ecr.ap-southeast-2.amazonaws.com/remindersmgtservice:latest ports: - "80:8000" logging: driver: awslogs options: awslogs-group: /ecs/remindersmgtec2 awslogs-region: ap-southeast-2 awslogs-stream-prefix: ecs/remindersmgtservice ecs-params.yml version:1task_definition:ecs_network_mode:bridgeservices:remindersmgtservice:essential:true: 1 task_definition: ecs_network_mode: bridge services: remindersmgtservice: essential: true
2 Public EC2 Subnets Output INFO[0000] Saved ECS CLI cluster configuration friendreminders. Thông tin cấu hình được lưu trong file ~/.ecs/config với nội dung ecs-cli up --keypair FriendReminders --capability-iam --size 2 --instance-type t2.medium INFO[0000] Using recommended Amazon Linux 2 AMI with ECS Agent 1.45.0 and Docker version 19.03.6-ce INFO[0001] Created cluster cluster=friendreminders region=ap-southeast-2 INFO[0001] Waiting for your cluster resources to be created... INFO[0002] Cloudformation stack status stackStatus=CREATE_IN_PROGRESS INFO[0062] Cloudformation stack status stackStatus=CREATE_IN_PROGRESS INFO[0123] Cloudformation stack status stackStatus=CREATE_IN_PROGRESS VPC created: vpc-01f658bc83e0eab55 Security Group created: sg-07a7e8837f60bf314 Subnet created: subnet-04474333e5ffb64c9 Subnet created: subnet-0744ea43d4cc0b6af Cluster creation succeeded.
ECS Cluster Overview Output INFO[0000] Saved ECS CLI cluster configuration friendreminders.
VớI IP công cộng CủA Container E93D7578-C47C-4DA4-86D6-D54CE9DDDADF, Xác định Chi tiết nhiệm vụ ECS Dịch vụ Quản lý Nhắc nhở - UI SwaggerBướC 4: Cụm Xoá ECS Xoá ECS Cluster
ECS-CLI Compose-Dịch vụ ReminderSmgTec2 của ECS-CLI Đầu ra Thông tin [0000] Dịch vụ dịch vụ ECS đã xóa = reminderSmgTec2 Info [0000] Trạng thái dịch vụ mong muốnCount = 0 RunningCount = 1 ServiceName = reminderSmgtec2 Thông tin [0020] Trạng thái dịch vụ mong muốn 1 Nhiệm vụ chạy: (Nhiệm vụ 0182BCA2-6BB9-4FF2-9EB7-F715058BAC18). Dấu thời gian = "2020-10-14 07:08:54 +0000 UTC" Thông tin [0020] Dịch vụ ECS đã đạt đến trạng thái ổn định mong muốn = 0 RunningCount = 0 ServiceName = reminderSmgTec2
ECS-Cli Down-Cluster-Config Friendreminder Sau Khing Xát Bạn có chắc bạn muốn xóa cụm của mình không? . ECS CLUSTER Sử DụNG ĐỘNG CƠ FARGATETrong phần nào, chúnt ta Thênm vào đao, chún ta sẽ khai báio và kết BướC 1: Cập NHật Cấu hÌnh Ngix - nginx.conf Cập nhật cấu hình Ngix - nginx.conf
Công nhân_Processes4; sự kiện {worker_connections1024; } http {sendFileon; UPSTRAMAPP_SERVERS {Server127.0.0.1: 8000; } máy chủ {Nghe80; vị trí/{proxy_passhttp: // app_servers; }} máy chủ {Listen443SSL; server_namelocalhost; ssl_certificate /etc/ssl/certs/localhost.crt; ssl_certificate_key /etc/ssl/private/localhost.key; vị trí/{proxy_passhttp: // app_servers; proxy_Redirectoff; proxy_http_version1.1; proxy_cache_bypass $ http_upgrade; proxy_set_headerupgrade $ http_upgrade; proxy_set_headerConnectionKeep-alive; proxy_set_headerhost $ host; proxy_set_headerx-real-IP $ remote_addr; proxy_set_headerx-forededed-for $ proxy_add_x_forededed_for; proxy_set_headerx-forededed-proto $ Sơ đồ; proxy_set_headerx-forededed-host $ server_name; }}} 4; events { worker_connections 1024; } http { sendfile on; upstream app_servers { server 127.0.0.1:8000; } server { listen 80; location / { proxy_pass http://app_servers; } } server { listen 443 ssl; server_name localhost; ssl_certificate /etc/ssl/certs/localhost.crt; ssl_certificate_key /etc/ssl/private/localhost.key; location / { proxy_pass http://app_servers; proxy_redirect off; proxy_http_version 1.1; proxy_cache_bypass $http_upgrade; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection keep-alive; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Forwarded-Host $server_name; } } } Với khai báio nào, nginx proxy sẽ xử lý các yêu cầu gửi dến qua port 80 (http) hoặc 443 (https), cập NH
Trong thư mục ReminderMan Quản lý.API/proxy, hình ảnh docker tạo Docker Build -T 729365137003.dkr.ecr.ap-southeast-2.amazonaws.com/nginx:fargate. Đầu ra Thông tin [0000] Dịch vụ dịch vụ ECS đã xóa = reminderSmgTec2 Info [0000] Trạng thái dịch vụ mong muốnCount = 0 RunningCount = 1 ServiceName = reminderSmgtec2 Thông tin [0020] Trạng thái dịch vụ mong muốn 1 Nhiệm vụ chạy: (Nhiệm vụ 0182BCA2-6BB9-4FF2-9EB7-F715058BAC18). Dấu thời gian = "2020-10-14 07:08:54 +0000 UTC" Thông tin [0020] Dịch vụ ECS đã đạt đến trạng thái ổn định mong muốn = 0 RunningCount = 0 ServiceName = reminderSmgTec2 Thực hiện loại bỏ ecs cluster friendreminder: ECS-Cli Down-Cluster-Config Friendreminder Sau Khing Xát Tham khảo cách thức tạo ECR Repository của Nginx Container trong Bước 1 của bài viết Swarm - P.3 Bạn có chắc bạn muốn xóa cụm của mình không? . Khai báo Cluster Configurations và tạo Cluster
Trong phần nào, chúnt ta Thênm vào đao, chún ta sẽ khai báio và kết Đầu ra Thông tin [0000] Dịch vụ dịch vụ ECS đã xóa = reminderSmgTec2 Info [0000] Trạng thái dịch vụ mong muốnCount = 0 RunningCount = 1 ServiceName = reminderSmgtec2 Thông tin [0020] Trạng thái dịch vụ mong muốn 1 Nhiệm vụ chạy: (Nhiệm vụ 0182BCA2-6BB9-4FF2-9EB7-F715058BAC18). Dấu thời gian = "2020-10-14 07:08:54 +0000 UTC" Thông tin [0020] Dịch vụ ECS đã đạt đến trạng thái ổn định mong muốn = 0 RunningCount = 0 ServiceName = reminderSmgTec2 Thực hiện loại bỏ ecs cluster friendreminder: version:v1default:friendremindersclusters:friendreminders:cluster:friendremindersregion:ap-southeast-2default_launch_type:FARGATE: v1 default: friendreminders clusters: friendreminders: cluster: friendreminders region: ap-southeast-2 default_launch_type: FARGATE ecs-cli up --cluster-config friendreminders --force Lưu ý việc sử dụng tham số --force trong trường hợp đang tồn tại một CloudFormation Stack có cùng tên trên hệ thống. Output của câu lệnh cho chúng ta biết được giá trị ID của VPC và Subnet sử dụng bởi Cluster. INFO[0000] Created cluster cluster=friendreminders region=ap-southeast-2 INFO[0001] Waiting for your CloudFormation stack resources to be deleted... INFO[0001] Cloudformation stack status stackStatus=DELETE_IN_PROGRESS INFO[0062] Waiting for your cluster resources to be created... INFO[0062] Cloudformation stack status stackStatus=CREATE_IN_PROGRESS VPC created: vpc-0fcf5ca95e08e0602 Subnet created: subnet-0fe765bea2942cf21 Subnet created: subnet-007fc3b2adcc56398 Cluster creation succeeded. Xác nhận Cluster friendreminders đã được tạo ra trên AWS Console: ECS Fargate Cluster OverviewBước 3: Cập nhật Security Group cho Cluster VPC Cập nhật Security Group cho Cluster VPC Với giá trị ID của VPC: vpc-0fcf5ca95e08e0602, thực hiện những lệnh sau để cập nhật Security Group cho phép giao tiếp qua port 80:
aws ec2 describe-security-groups --filters Name=vpc-id,Values=vpc-0fcf5ca95e08e0602 --region ap-southeast-2 Output {"SecurityGroups":[{"Description":"default VPC security group","GroupName":"default","IpPermissions":[{"IpProtocol":"-1","IpRanges":[],"Ipv6Ranges":[],"PrefixListIds":[],"UserIdGroupPairs":[{"GroupId":"sg-081c2fc0b6df262ff","UserId":"729365137003"}]}],"OwnerId":"729365137003","GroupId":"sg-081c2fc0b6df262ff","IpPermissionsEgress":[{"IpProtocol":"-1","IpRanges":[{"CidrIp":"0.0.0.0/0"}],"Ipv6Ranges":[],"PrefixListIds":[],"UserIdGroupPairs":[]}],"VpcId":"vpc-0fcf5ca95e08e0602"}]}"SecurityGroups":[{"Description": "default VPC security group","GroupName":"default","IpPermissions":[{"IpProtocol":"-1","IpRanges":[], "Ipv6Ranges":[],"PrefixListIds":[],"UserIdGroupPairs":[{"GroupId":"sg-081c2fc0b6df262ff","UserId":"729365137003"} ]}],"OwnerId":"729365137003","GroupId":"sg-081c2fc0b6df262ff","IpPermissionsEgress":[{"IpProtocol": "-1","IpRanges":[{"CidrIp":"0.0.0.0/0"}],"Ipv6Ranges":[],"PrefixListIds":[], "UserIdGroupPairs":[]}],"VpcId":"vpc-0fcf5ca95e08e0602"}]}
aws ec2 authorize-security-group-ingress --group-id sg-081c2fc0b6df262ff --protocol tcp --port 80 --cidr 0.0.0.0/0 --region ap-southeast-2
aws ec2 describe-security-groups --filters Name=vpc-id,Values=vpc-0fcf5ca95e08e0602 --region ap-southeast-2 Output {"SecurityGroups":[{"Description":"defaultVPCsecuritygroup","GroupName":"default","IpPermissions":[{"IpProtocol":"-1","IpRanges":[],"Ipv6Ranges":[],"PrefixListIds":[],"UserIdGroupPairs":[{"GroupId":"sg-081c2fc0b6df262ff","UserId":"729365137003"}]},{"FromPort":80,"IpProtocol":"tcp","IpRanges":[{"CidrIp":"0.0.0.0/0"}],"Ipv6Ranges":[],"PrefixListIds":[],"ToPort":80,"UserIdGroupPairs":[]}],"OwnerId":"729365137003","GroupId":"sg-081c2fc0b6df262ff","IpPermissionsEgress":[{"IpProtocol":"-1","IpRanges":[{"CidrIp":"0.0.0.0/0"}],"Ipv6Ranges":[],"PrefixListIds":[],"UserIdGroupPairs":[]}],"VpcId":"vpc-0fcf5ca95e08e0602"}]} "SecurityGroups": [ { "Description": "defaultVPCsecuritygroup", "GroupName": "default", "IpPermissions": [ { "IpProtocol": "-1", "IpRanges": [], "Ipv6Ranges": [], "PrefixListIds": [], "UserIdGroupPairs": [ { "GroupId": "sg-081c2fc0b6df262ff", "UserId": "729365137003" } ] }, { "FromPort": 80, "IpProtocol": "tcp", "IpRanges": [ { "CidrIp": "0.0.0.0/0" } ], "Ipv6Ranges": [], "PrefixListIds": [], "ToPort": 80, "UserIdGroupPairs": [] } ], "OwnerId": "729365137003", "GroupId": "sg-081c2fc0b6df262ff", "IpPermissionsEgress": [ { "IpProtocol": "-1", "IpRanges": [ { "CidrIp": "0.0.0.0/0" } ], "Ipv6Ranges": [], "PrefixListIds": [], "UserIdGroupPairs": [] } ], "VpcId": "vpc-0fcf5ca95e08e0602" } ] } {"SecurityGroups":[{"Description":"default VPC security group","GroupName":"default","IpPermissions":[{"IpProtocol":"-1","IpRanges":[],"Ipv6Ranges":[],"PrefixListIds":[],"UserIdGroupPairs":[{"GroupId":"sg-081c2fc0b6df262ff","UserId":"729365137003"}]}],"OwnerId":"729365137003","GroupId":"sg-081c2fc0b6df262ff","IpPermissionsEgress":[{"IpProtocol":"-1","IpRanges":[{"CidrIp":"0.0.0.0/0"}],"Ipv6Ranges":[],"PrefixListIds":[],"UserIdGroupPairs":[]}],"VpcId":"vpc-0fcf5ca95e08e0602"}]} Triển khai ECS Service
docker-compose.yml version:'3'services:nginx:image:729365137003.dkr.ecr.ap-southeast-2.amazonaws.com/nginx:fargateports:-"80:80"-"443:443"logging:driver:awslogsoptions:awslogs-group:/ecs/remindersmgtfargateawslogs-region:ap-southeast-2awslogs-stream-prefix:ecs/nginxremindersmgtservice:image:729365137003.dkr.ecr.ap-southeast-2.amazonaws.com/remindersmgtservice:latestports:-"8000:8000"logging:driver:awslogsoptions:awslogs-group:/ecs/remindersmgtfargateawslogs-region:ap-southeast-2awslogs-stream-prefix:ecs/remindersmgt: '3' services: nginx: image: 729365137003.dkr.ecr.ap-southeast-2.amazonaws.com/nginx:fargate ports: - "80:80" - "443:443" logging: driver: awslogs options: awslogs-group: /ecs/remindersmgtfargate awslogs-region: ap-southeast-2 awslogs-stream-prefix: ecs/nginx remindersmgtservice: image: 729365137003.dkr.ecr.ap-southeast-2.amazonaws.com/remindersmgtservice:latest ports: - "8000:8000" logging: driver: awslogs options: awslogs-group: /ecs/remindersmgtfargate awslogs-region: ap-southeast-2 awslogs-stream-prefix: ecs/remindersmgt ecs-params.yml version:1task_definition:task_execution_role:ECSRemindersMgtTaskecs_network_mode:awsvpctask_size:mem_limit:0.5GBcpu_limit:256run_params:network_configuration:awsvpc_configuration:subnets:-"subnet-0fe765bea2942cf21"-"subnet-007fc3b2adcc56398"security_groups:-"sg-081c2fc0b6df262ff"assign_public_ip:ENABLED: 1 task_definition: task_execution_role: ECSRemindersMgtTask ecs_network_mode: awsvpc task_size: mem_limit: 0.5GB cpu_limit: 256 run_params: network_configuration: awsvpc_configuration: subnets: - "subnet-0fe765bea2942cf21" - "subnet-007fc3b2adcc56398" security_groups: - "sg-081c2fc0b6df262ff" assign_public_ip: ENABLED Tương tự như với EC2 Cluster, việc triển khai Service trong Fargate Cluster cần cung cấp cấu hình:
ecs-params.yml - tham số mô tả hoạt động của ECS (network, role…) Output: Tạo folder ecs-fargate-demo với những files sau: Sử dụng AWS Console để kiểm tra trạng thái Service, Task và Containers thực thi trong Task: ECS Fargate Running Task with multi-containersVới giá trị IP của Elastic Network Interface sử dụng bởi Task chúng ta có thể kiểm tra kết quả thực thi của RemindersManagement Service thông qua NGINX proxy ECS Fargate Task ExecutionBước 5: Xoá ECS Cluster Xoá ECS Cluster
ecs-cli compose --project-name remindersmgtfargate service down Output INFO[0000] Deleted ECS service service=remindersmgtfargate INFO[0000] Service status desiredCount=0 runningCount=1 serviceName=remindersmgtfargate INFO[0005] Service status desiredCount=0 runningCount=0 serviceName=remindersmgtfargate INFO[0005] (service remindersmgtfargate) has stopped 1 running tasks: (task 6e45416687bf4611b6d80e3273cc7453). timestamp="2020-10-15 01:49:23 +0000 UTC" INFO[0005] ECS Service has reached a stable state desiredCount=0 runningCount=0 serviceName=remindersmgtfargate
ecs-cli down --cluster-config friendreminders Sau khi xác nhận y để tiếp tục quá trình loại bỏ, kết quả thực thi của câu lệnh: Are you sure you want to delete your cluster? [y/N] y INFO[0002] Waiting for your cluster resources to be deleted... INFO[0003] Cloudformation stack status stackStatus=DELETE_IN_PROGRESS INFO[0064] Deleted cluster cluster=friendreminders Kết luận ECS CLI cung cấp một phương thức thuận tiện hơn so với cách sử dụng AWS Console khi triển khai các đối tượng như Cluster, Service, Task. Tuy vậy, việc sử dụng các câu lệnh riêng rẽ vẫn tồn tại những điểm hạn chế, đặc biệt là khả năng tái sử dụng. Trong phần tiếp theo, chúng ta sẽ sử dụng bộ công cụ AWS Cloud Development Kit (CDK) để khắc phục điểm yếu trên. Ngoài ra, CDK còn cung cấp khả năng tuỳ biến cao, cho phép kết hợp việc triển khai cơ sở hạ tầng ECS và cài đặt dịch vụ Microservices trong cùng một qui trình Pipeline đem lại tính hiệu quả cao nhất cho hoạt động CICD. AWS Copilot CLITài liệu tham khảo
Copyright © 2019-2022 Tuan Anh Le. |