2015-12-29 23 views
37

Tôi đang cố thiết lập một ứng dụng web cơ bản, có một cơ sở dữ liệu liên quan, trong AWS ECS. Tại địa phương tôi có các thiết lập này trong các thùng chứa khác nhau và trên ECS, tôi muốn có các định nghĩa tác vụ riêng biệt để tôi có thể chia tỷ lệ hai cách riêng biệt.Liên kết vùng chứa giữa các định nghĩa tác vụ trong AWS ECS?

  1. Tôi đã đăng ký định nghĩa nhiệm vụ đầu tiên là david_mongodb thành công trong ECS. Nó có một thùng chứa có tên là david_mongodb trong đó.
  2. Sau đó, tôi đã cố gắng đăng ký định nghĩa nhiệm vụ thứ hai là david_web, trong đó có một vùng chứa có tên david_web liên kết cơ sở dữ liệu qua david_mongodb:db.
  3. Khi tôi nhấp vào 'Tạo', nó sẽ trả về một lỗi:

    Unable to create Task Definition 
    Linked container 'david_mongodb:db' doesn't exist. 
    

Nó có vẻ như định nghĩa nhiệm vụ không thể nhìn thấy tên chứa trong định nghĩa công việc khác? Tôi đang nghĩ rằng việc đặt cả hai vùng chứa david_webdavid_mongodb vào cùng một định nghĩa công việc sẽ hoạt động, nhưng tôi không muốn làm điều đó: nó sẽ ngăn tôi chia tỷ lệ ứng dụng web hoặc cơ sở dữ liệu riêng biệt. This overview dường như xác nhận rằng kiến ​​trúc của tôi được đề xuất ...

Vậy làm cách nào để liên kết các vùng chứa sống trong các định nghĩa tác vụ khác nhau? Hay có cách xử lý thông minh nào khác?

+0

[Amazon ECS hiện hỗ trợ chế độ mạng và đặt chỗ bộ nhớ] (https://forums.aws.amazon.com/ann.jspa?annID=3980) .Không cần phải thực hiện kết nối mạng ví dụ bằng ELB – RajDev

+1

Có không có kết nối giữa câu hỏi và câu trả lời này, việc kiểm soát các chế độ mạng không liên quan trực tiếp đến việc liên kết các tác vụ của bạn đang chạy trong các vùng chứa khác nhau. –

+0

Tôi không tin rằng chế độ mạng sẽ giải quyết vấn đề này. Bạn vẫn cần phải khám phá nút nào (và IP) trong đó nhiệm vụ đáp xuống. – CashIsClay

Trả lời

51

Các liên kết trong định nghĩa nhiệm vụ ECS tương tự với Docker links và chỉ hoạt động khi các bộ chứa là một phần của cùng một định nghĩa công việc (các bộ chứa là một phần của một định nghĩa công việc được đặt cùng nhau trên cùng một máy chủ). Để giao tiếp giữa các vùng chứa trong các định nghĩa tác vụ khác nhau, bạn sẽ cần một cơ chế để khám phá nơi chứa các thùng chứa (máy chủ lưu trữ) cũng như cổng giao tiếp.

ECS có tích hợp với ELB thông qua tính năng service, trong đó nhiệm vụ sẽ được đăng ký tự động trong ELB và hủy đăng ký trong ELB một cách thích hợp. Nếu bạn muốn tránh ELB, một mẫu khác có thể là ambassador container (có một mẫu được gọi là ecs-task-kite sử dụng API ECS) hoặc bạn có thể quan tâm đến mạng che phủ (Weave có chi tiết khá là getting started guide cho giải pháp của chúng).

Service Discovery for Amazon ECS Using DNS mô tả cách tiếp cận khác, trong đó hàm Lambda lắng nghe luồng sự kiện ECS thông qua CloudWatch Sự kiện và cập nhật Tuyến đường 53 bản ghi DNS.

Nathan Peck đang theo dõi một số đối tượng khác nhau liên quan đến ECS, bao gồm khám phá dịch vụ, here.

+0

Điều cần biết. Có một cơ chế quy định cho việc đó không? DNS + ELB xuất hiện trong đầu, nhưng có giải pháp nào không yêu cầu ELB không? –

+1

Tôi đã cập nhật câu trả lời của mình với nhiều chi tiết hơn về các cách tiếp cận có thể có (ELB, vùng chứa đại sứ và mạng lớp phủ). –

+0

Tài nguyên tuyệt vời, cảm ơn bạn! –

Các vấn đề liên quan