Dạo này mình có dùng cả ECS và EKS của AWS, nên cũng có vài suy nghĩ lặt vặt muốn chia sẻ với anh em. Cả hai đều là dịch vụ để chạy container, nhưng cảm giác sử dụng chúng thì khác nhau lắm.

Nói qua một chút thì ECS là dịch vụ cây nhà lá vườn của AWS, còn EKS thì là Kubernetes được AWS quản lý.
Cái mình để ý đầu tiên có lẽ là chuyện tiền nong. EKS có một khoản phí cố định cho control plane, khoảng 72$ một tháng. Con số này nghe không lớn, nhưng với các dự án cá nhân hay môi trường thử nghiệm thì nó cũng là một khoản đáng cân nhắc. Trong khi đó, ECS Fargate thì cứ dùng bao nhiêu trả bấy nhiêu, không có phí cố định, nên với những ứng dụng có lượng truy cập thất thường thì thấy dễ thở hơn hẳn.
Nhưng cái làm mình thực sự thích ECS Fargate hơn lại là sự đơn giản của nó. Mình chỉ cần viết code, đóng gói vào container, rồi đẩy lên và chạy. Mình gần như không phải quan tâm đến máy chủ, không phải lo vá lỗi hay quản lý cluster. Cảm giác rất nhẹ đầu. Còn với EKS, dù đã được AWS hỗ trợ nhiều, bạn vẫn phải có kiến thức về Kubernetes, phải tự tay cấu hình nhiều thứ hơn. Nó cho bạn nhiều quyền kiểm soát hơn, nhưng đôi khi sự tự do đó lại đi kèm với trách nhiệm và sự phức tạp.
Vì là hàng nhà làm nên cảm giác ECS Fargate nó hòa tan vào hệ sinh thái AWS một cách rất tự nhiên. Việc kết nối với các dịch vụ khác như cân bằng tải hay phân quyền IAM cứ mượt mà và trực quan. Chuyện bảo mật cũng tương tự. Vì AWS quản lý hạ tầng bên dưới, mình cảm thấy bớt đi được một gánh nặng lớn về việc phải tự bảo vệ máy chủ.
Nói chung, mình thấy cuộc chiến giữa ECS và EKS thực ra là cuộc chiến giữa hai triết lý: sự đơn giản và sự kiểm soát.
ECS Fargate mang lại sự đơn giản tối đa. Nó phù hợp khi bạn muốn tập trung hoàn toàn vào việc phát triển ứng dụng và không muốn bị phân tâm bởi hạ tầng bên dưới.
EKS thì trao cho bạn toàn quyền kiểm soát. Nó mạnh mẽ, linh hoạt, và là lựa chọn không thể thay thế nếu bạn cần xây dựng một hệ thống phức tạp, tùy chỉnh sâu, hoặc công ty bạn đã coi Kubernetes là một tiêu chuẩn.
Vậy nên, không có cái nào là tốt nhất tuyệt đối cả. Nó phụ thuộc vào việc bạn là ai và bạn cần gì. Nếu bạn chỉ muốn ứng dụng của mình chạy nhanh, không phải lo nghĩ nhiều về hạ tầng, thì cứ thử ECS Fargate đi. Còn nếu bạn là người thích toàn quyền kiểm soát, muốn tinh chỉnh từng li từng tí và đã có kinh nghiệm với Kubernetes, thì EKS sinh ra là để dành cho bạn.