ALB và ECS Service
Phương pháp Run Task đã sử dụng trong phần trước rất tốt để thử nghiệm, nhưng nếu cần chạy nền tảng áp dụng như một quá trình chạy lâu dài. Bạn cần sử dụng Elastic Load Balancing Appliction Load Balancer (ALB) để phân phối các yêu cầu đến các container đang chạy của bạn. Ngoài việc cân bằng tải đơn giản, còn tạo ra các khả năng như định tuyến dựa trên đường dẫn đến các dịch vụ khác nhau.
ECS giúp duy trì số lượng desired task (số container chạy trong thời gian dài) và tích hợp ALB (xử lý việc đăng ký / hủy đăng ký container vào ALB)
Dịch vụ ECS và ALB ban đầu đã được CloudFormation tạo. Trong bài lab này, bạn sẽ cập nhật các tài nguyên đó để lưu trữ monolith service được đóng gói. Sau đó, bạn sẽ tạo một service mới từ đầu sau khi phá vỡ monolith.
- Truy cập vào CloudFormation
- Chọn STACK_NAME
- Chọn Stack details
- Chọn Outputs
- Chọn LoadBalancerDNS
- Sử dụng trình duyệt truy cập vào LoadBalancerDNS
- Truy cập vào ECS
- Chọn Clusters
- Chọn Cluster-STACK_NAME
- Trong giao diện Cluster-STACK_NAME, chúng ta tiến hành cập nhật service
- Trong giao diện cập nhật service
- Chọn Revision 2
- Chọn Update
- Update service thành công.
- Trong giao diện Cluster-STACK_NAME
- Chọn Task
- Kiểm tra Monolith-Definition-STACK_NAME đã được cập nhật Revision 2
- Truy cập vào CloudFormation
- Chọn STACK_NAME
- Chọn Stack details
- Chọn Outputs
- Chọn S3WebsiteURL
- Sử dụng trình duyệt để truy cập vào S3WebsiteURL
- Thực hiện các thao tác trải nghiệm giao diện người dùng
- Truy cập vào ECS
- Chọn Cluster
- Chọn Cluster-STACK_NAME
- Chọn Tasks
- Chọn Monolith-Definition-STACK_NAME revision 2
- Chọn Logs
- Kiểm tra logs để đảm bảo monolith có thể đọc và ghi DynamoDB và có thể xử lý like.
- Kiểm tra CloudWatch logs từ ECS để đảm bảo Like processed
- Truy cập CloudWatch
- Chọn Log groups
- Quan sát log event
- Để phân biệt giữa service và task. Ta có thể thực hiện các bước sau:
- Nâng số Desired task lên là 3 và update.
- Sau khi update thành công.
- Chọn Task sẽ thấy 3 task đang chạy.
- Từ đó, ta thấy ECS services là khái niệm trong đó ECS cho phép chạy và duy trì một số lượng container cụ thể của các task definition trong một ECS cluster. Một service gồm nhiều task và được duy trì.