Lựa chọn Fargate hay EC2 khi triển khai ứng dụng Container trong AWS

Có hai mô hình triển khai container chính trên AWS:

  • EC2 (Triển khai và quản lý cụm EC2 cluster của riêng bạn để chạy container)
  • AWS Fargate (Chạy container trực tiếp, không sử dụng EC2).

EC2 từ các bạn đã rõ còn Fargate là dịch vu dạng serverless tương thích với cả ECS lẫn EKS. Cả hai đều là những kỹ thuật đúng để vận hành các container của bạn theo cách có thể mở rộng và đảm bảo độ tin cậy. Bạn chọn mô hình nào chủ yếu phụ thuộc vào các yếu tố nào bạn muốn tối ưu hóa.

Chi phí

  • Với mô hình EC2, việc thanh toán dựa trên chi phí của các phiên bản EC2 cơ bản. Điều này cho phép bạn tối ưu hóa giá bằng cách tận dụng các mô hình thanh toán, chẳng hạn như phiên bản spot-instance hoặc Reserved Instance (nhận chiết khấu cố định khi cam kết sử dụng trong một khoảng thời gian nhất định). Tuy nhiên, bạn có trách nhiệm đảm bảo rằng các container của bạn được phủ nhiều nhất có thể trên các instance để sử dụng chúng một cách tối ưu nhất, nếu không bạn không muốn lãng phí tiền bạc.
  • Với mô hình AWS Fargate, việc thanh toán dựa trên số lượng lõi CPU và gigabyte bộ nhớ mà tác vụ của bạn yêu cầu mỗi giây. Bạn chỉ phải trả cho những workload của bạn sử dụng, không phải trả thêm cho dung lượng EC2 không được sử dụng.

Các Usecase

Workload lớn, tối ưu về giá

Nếu workload cần nhiều CPU core và nhiều gigabyte bộ nhớ và bạn muốn tối ưu hóa về giá cả, bạn nên xem xét chạy một cụm EC2 cluster các phiên bản EC2 RI hoặc spot-instance. Bạn sẽ chịu trách nhiệm quản lý cụm cluster này và tối ưu hóa nó, tuy nhiên chiến lược này sẽ cho phép bạn sẽ có thể tận dụng các chiến lược tiết kiệm chi bằng cách sử dụng spot-instance hoặc RI.

Workload lớn, tối ưu tải thừa (overhead)

Việc quản lý một nhóm lớn các phiên bản EC2 có thể hơi khó khăn. Bạn cần đảm bảo rằng tất cả chúng đều được vá, bảo mật và cập nhật lên phiên bản mới nhất của Docker và tác nhân ECS. Nếu bạn không muốn xử lý bất kỳ vấn đề nào trong số này AWS Fargate có thể là một lựa chọn tuyệt vời. Ví dụ: khi lỗ hổng Spectre / Meltdown được thông báo, khách hàng đang chạy trên EC2 phải đảm bảo rằng họ đã vá và nâng cấp, trong khi khách hàng đang chạy AWS Fargate được bảo vệ tự động đằng sau hậu trường bởi các kỹ sư AWS đã vá cơ sở hạ tầng bên dưới.

Workload nhỏ, tải có thể thay đổi

Nếu workload của bạn nhỏ thay đổi, chẳng hạn như một trang web có lưu lượng truy cập vào ban ngày nhưng lưu lượng truy cập thấp vào ban đêm, thì AWS Fargate là một lựa chọn tuyệt vời. Bạn có thể mở rộng quy mô xuống một vùng chứa nhỏ vào ban đêm, chi phí rất thấp, nhưng vẫn mở rộng quy mô vào ban ngày, trong khi chỉ trả tiền cho các lõi CPU và gigabyte bộ nhớ mà tác vụ của bạn yêu cầu.

Workload nhỏ

Đối với một môi trường thử nghiệm nhỏ, AWS Fargate là một lựa chọn hoàn hảo. Nói chung sẽ lãng phí nếu chạy một môi trường thử nghiệm nhỏ trên phiên bản EC2 vì phiên bản EC2 quá mạnh và bạn sẽ gặp khó khăn trong việc đạt được tỷ lệ sử dụng tốt.

Workload định kỳ (Batch workload)

Nếu workload của bạn bao gồm các tác vụ định kỳ, chẳng hạn như công việc cron chạy mỗi giờ một lần hoặc các công việc không thường xuyên đến từ một hàng đợi thì AWS Fargate là một lựa chọn hoàn hảo. Thay vì trả tiền cho một phiên bản EC2 và phải bắt đầu và dừng nó giữa các lần sử dụng, bạn chỉ có thể yêu cầu AWS Fargate chạy vùng chứa của bạn khi bạn cần và ngừng thanh toán khi vùng chứa của bạn dừng lại.

Tham khảo: containersonaws

Leave a Reply

Your email address will not be published. Required fields are marked *