Tôi đã phát triển một ứng dụng dựa trên Docker bao gồm nhiều microservices. Nó phải tiêu thụ các thông điệp SQS của Amazon và xử lý chúng. Lúc đầu, tôi muốn sử dụng AWS Elastic Beanstalk, nhưng sau đó tôi đã ghé qua EC2 Container Service. Bây giờ tôi không biết nên chọn cái nào.Tôi có nên sử dụng AWS Elastic Beanstalk hoặc Amazon EC2 Container Service (ECS) để mở rộng các thùng chứa Docker không?
Hiện tại, Elastic Beanstalk hỗ trợ Môi trường đa vùng chứa. Điều này thật tuyệt vời bởi vì mọi dịch vụ microservice đều có máy chủ ứng dụng riêng bên trong một thùng chứa docker. Vấn đề tiếp theo là mở rộng quy mô:
Tôi không biết cơ chế mở rộng hoạt động như thế nào. Ví dụ: Tôi có 5 thùng chứa trong đế của tôi. Bây giờ chỉ có container thứ 5 chứa tải nặng, vì nó có một số lượng lớn các thông điệp SQS để xử lý, bốn thư khác gần như nhàn rỗi, vì chúng không cần nhiều CPU hoặc có thể không có nhiều thông điệp SQS. Giả sử container thứ 5 chạy một máy chủ ứng dụng JBoss. Theo tôi biết, máy chủ chỉ có thể tiêu thụ số lượng yêu cầu song song hạn chế ngay cả khi có đủ CPU/bộ nhớ.
Nếu thùng chứa JBoss Docker không thể xử lý số lượng yêu cầu, nhưng có đủ CPU/bộ nhớ, tất nhiên tôi muốn tự động khởi động thùng chứa Docker/JBoss thứ hai trên cùng một trường hợp. Nhưng điều gì xảy ra, nếu tôi không có đủ CPU/bộ nhớ? Tất nhiên tôi muốn quay về một trường hợp thứ hai, được cấu hình thông qua một nhóm tự động mở rộng quy mô trong EB. Bây giờ một ví dụ thứ hai quay lên, nhưng mỗi container ngoại trừ thứ 5 gần như nhàn rỗi, tất nhiên tôi không muốn chúng đẻ ra 4 không cần thiết ở dụ thứ hai nữa, đó sẽ là một sự lãng phí tài nguyên. Chỉ 5 nên sinh sản và những người khác nên quy mô như quy mô thứ 5 dựa trên các thông số có thể định cấu hình như ví dụ: CPU/bộ nhớ/SQS.
Tôi không biết chính xác liệu Amazon ECS có làm điều đó hay không, nhưng tôi thực sự không thể tìm thấy bất kỳ nguồn nào trên internet về chủ đề này, nói chung, mở rộng dựa trên các trường hợp /hộp đựng.
Bạn có cảm thấy rằng vấn đề của bạn đã được giải quyết chưa? Tôi có một mối quan tâm rất tương tự về EB, tôi nghi ngờ nó khởi động tất cả 5 container trong một trường hợp riêng biệt –
Tôi cũng bối rối. Câu trả lời được chọn không thực sự giải thích cách tính tỷ lệ hoạt động trong cả hai dịch vụ. Ngoài ra ECS/EB thực sự đá một container thứ 5 khác và sau đó chạy cả hai song song trên cùng một trường hợp nếu có đủ tài nguyên? – codepushr