Tôi đang chơi với Amazon ECS (đóng gói lại Docker) và tôi đang tìm thấy một khả năng Docker mà ECS dường như không cung cấp. Cụ thể, tôi muốn có nhiều container chạy trong một ví dụ và có các yêu cầu đến địa chỉ IP 1 ánh xạ tới container 1 và các yêu cầu đến địa chỉ IP 2 ánh xạ tới container 2, v.v.
Trong Docker, việc liên kết một container với một địa chỉ IP cụ thể được thực hiện thông qua:
docker run -p myHostIPAddr:80:8080 imageName command
Tuy nhiên, trong Amazon ECS, dường như không có cách nào để làm điều này.
Tôi đã thiết lập một phiên bản EC2 với nhiều địa chỉ IP đàn hồi. Khi cấu hình một container như một phần của định nghĩa tác vụ, có thể ánh xạ các cổng máy chủ thành các cổng container. Tuy nhiên, không giống như Docker, ECS không cung cấp cách chỉ định địa chỉ IP máy chủ như một phần của ánh xạ.
Một thay đổi nữa là tôi muốn các yêu cầu gửi đi từ container N có địa chỉ IP bên ngoài của container N.
Có cách nào để làm tất cả những điều trên không?
Tôi đã xem qua tài liệu AWS CLI, cũng như SDK AWS cho Java. Tôi có thể thấy rằng CLI có thể trả về một mảng NetworkBindings chứa các phần tử như thế này:
{
"bindIP": "0.0.0.0",
"containerPort": 8021,
"hostPort": 8021
},
và SDK Java có một lớp có tên NetworkBinding đại diện cho cùng một thông tin. Tuy nhiên, thông tin này dường như chỉ ở đầu ra, đáp ứng yêu cầu. Tôi không thể tìm cách cung cấp thông tin ràng buộc này cho ECS.
Lý do mà tôi muốn làm điều này là vì tôi muốn thiết lập các VM hoàn toàn khác nhau cho các khu vực bầu cử khác nhau, sử dụng các thùng chứa khác nhau có khả năng trên cùng một thể hiện EC2. Mỗi VM sẽ có máy chủ web riêng (bao gồm các chứng chỉ SSL riêng biệt), cũng như dịch vụ FTP và SSH của riêng nó.
Cảm ơn.
aws ecs describe-container-instances
dường như không giúp được gì Họ dường như thực sự muốn thúc đẩy bạn sử dụng ELB, đối với trường hợp của chúng tôi là loại ngớ ngẩn.