2017-03-22 18 views
20

Dường như một người có thể chạy Nhiệm vụ hoặc Dịch vụ dựa trên Định nghĩa tác vụ. Sự khác biệt và điểm tương đồng giữa Nhiệm vụ và Dịch vụ là gì? Có một đầu mối nào trong thực tế là người ta có thể chỉ định "Nhóm tác vụ" khi tạo Tác vụ chứ không phải Dịch vụ? Tác vụ và Dịch vụ có phân biệt bằng nhau về Định nghĩa tác vụ hay Dịch vụ bao gồm Nhiệm vụ không?AWS ECS - nhiệm vụ đang hoạt động so với dịch vụ

Cảm ơn bạn.

Trả lời

49

Một công tác Definition là một bộ sưu tập của 1 hoặc nhiều chứa cấu hình. Một số Tác vụ có thể chỉ cần một vùng chứa, trong khi các Công việc khác có thể cần 2 hoặc nhiều vùng chứa được liên kết có khả năng chạy đồng thời. Định nghĩa nhiệm vụ cho phép bạn chỉ định hình ảnh Docker nào sẽ sử dụng, cổng nào sẽ hiển thị, lượng CPU và bộ nhớ để phân bổ, cách thu thập nhật ký và xác định các biến môi trường.

Một công tác được tạo ra khi bạn chạy một nhiệm vụ trực tiếp, mà ra mắt container (s) (được xác định trong định nghĩa nhiệm vụ) cho đến khi họ được ngừng hoặc đi theo lối riêng của họ, tại thời điểm đó họ không thay thế tự động . Chạy Task trực tiếp là lý tưởng cho các công việc ngắn hạn, có lẽ là một ví dụ về những thứ đã được thực hiện thông qua CRON.

A Dịch vụ được sử dụng để đảm bảo rằng bạn luôn có một số Công việc chạy mọi lúc. Nếu thùng chứa của Tác vụ thoát do lỗi, hoặc trường hợp EC2 cơ bản bị lỗi và được thay thế, Dịch vụ ECS sẽ thay thế Tác vụ không thành công. Đây là lý do tại sao chúng tôi tạo các cụm để Dịch vụ có nhiều tài nguyên về các cổng CPU, Bộ nhớ và Mạng để sử dụng. Đối với chúng tôi, nó không thực sự quan trọng đối với những nhiệm vụ nào chạy trong khi chúng chạy. Cấu hình dịch vụ tham chiếu định nghĩa Công việc. Dịch vụ chịu trách nhiệm tạo Công việc.

Dịch vụ thường được sử dụng cho các ứng dụng chạy dài như máy chủ web. Ví dụ, nếu tôi triển khai trang web của tôi được hỗ trợ bởi Node.JS ở Oregon (chúng tôi-tây-2), tôi muốn nói rằng ít nhất ba Nhiệm vụ đang chạy trên ba Vùng Sẵn có (AZ) vì lợi ích của Tính sẵn sàng cao; nếu một thất bại tôi có một hai và một thất bại sẽ được thay thế (đọc đó là tự chữa bệnh!). Tạo một dịch vụ là cách để làm điều này. Nếu tôi có 6 trường hợp EC2 trong cụm của tôi, 2 trên mỗi AZ, Dịch vụ sẽ tự động cân bằng Nhiệm vụ giữa các khu vực tốt nhất có thể trong khi xem xét cpu, bộ nhớ và tài nguyên mạng.

CẬP NHẬT:

Tôi không chắc sẽ giúp bạn nghĩ về những điều này theo thứ bậc. Một điểm rất quan trọng khác là một Dịch vụ có thể được cấu hình để sử dụng một bộ cân bằng tải, để nó tạo ra các nhiệm vụ - tức là nó khởi chạy các thùng chứa được định nghĩa trong Task Defintion — Dịch vụ sẽ tự động đăng ký cá thể EC2 của container với cân bằng tải. Không thể định cấu hình tác vụ để sử dụng trình cân bằng tải, chỉ Dịch vụ có thể.

+0

Cảm ơn bạn rất nhiều @talentedmrjones! Sau đó có đơn giản là "sử dụng Tác vụ cho công việc ngắn hạn và sử dụng Dịch vụ cho các dịch vụ dài hạn" không? Bất kỳ cơ hội nào bạn có thể nhận xét về "Tác vụ và Dịch vụ có phân biệt bằng nhau về Định nghĩa nhiệm vụ hay Dịch vụ bao gồm Nhiệm vụ" không? –

+0

@BobJones vui lòng cho tôi biết liệu bản cập nhật đó có hữu ích không. – talentedmrjones

+0

, cảm ơn bạn. –

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