Published on

Bài toán chi phí khi làm việc với AWS EC2

Authors

join our community

Việc tính toán chi phí của AWS EC2 thậm chí sẽ xảy đến với ngay cả những người dùng đang sử dụng phiên bản miễn phí của AWS (Phiên bản EC2 miễn phí với 750h/tháng, với các phiên bản t2 hoặc t3.micro đối với loại EC2 Compute). Các khoản phí này có thể đến từ nhiều nguồn như chi phí cho Route53, Storage... Tuy nhiên, trong bài viết này, chúng ta sẽ tập trung vào việc tính toán chi phí của EC2.

pricing-model

Cơ chế tính phí của EC2

Có nhiều cách mà AWS có thể thu phí của bạn, nhìn chung nó dựa trên 3 ý tưởng chính bao gồm trả theo gói năm, dùng bao nhiêu trả bấy nhiêu và một vài giải pháp tiết kiệm hơn nhưng kém an toàn hơn. Tùy vào mục đích sử dụng cũng như túi tiền của mình mà bạn có thể lựa chọn một trong những cách tính phí này.
Cụ thể hơn, AWS cung cấp các cách tính phí như sau:

  • On-Demand Instances - Trả tiền theo lưu lượng sử dụng: Gói này là gói tiêu chuẩn để so sánh giá và tương đối đắt, chi phí sẽ được tính toán theo mỗi giây sử dụng. Gói này nên được sử dụng khi hệ thống chỉ cần chịu tải trong thời gian ngắn hay nói cách khác, có thể ước lượng được chi phí phải trả khi sử dụng.
  • Reserved (1 & 3 years) - Gói này có thể hiểu đơn giản là trả tiền thuê cho 1 hoặc 3 năm. Gói này bao gồm 2 loại riêng biệt với các tính chất tương đối khác nhau tùy vào mục đích:
    • Reserved Instances: Gói này được sử dụng khi bạn biết rõ mức độ sử dụng của hệ thống của bạn sẽ tương đối ổn định trong 1 hoặc 3 năm tới.
    • Convertible Reserved Instances: Gói này được sử dụng khi bạn không biết rõ mức độ sử dụng của hệ thống của bạn trong 1 hoặc 3 năm tới, tại đây các tham số cấu hình có thể thay đổi, tất nhiên điều này cũng sẽ ảnh hưởng đến chi phí.
  • Savings Plans (1 & 3 years) - Gói tiết kiệm với chiết khấu cao: Về cơ bản loại này tương đối tiết kiệm, tuy nhiên bạn cần một sự cam kết sử dụng lâu dài (tính theo USD/h) để có thể nhận được mức chiết khấu tương đối cao.
  • Spot Instances - Chỉ sử dụng khi giá rẻ hơn mức đặt trước: Gói này được sử dụng khi bạn có thể chịu được sự ngắt kết nối của hệ thống trong một khoảng thời gian ngắn (ví dụ như các dịch vụ CICD chẳng hạn), đặc điểm của gói này là giá thành cực kỳ rẻ tuy nhiên đi kèm với đó là sự thiếu tin cậy.
  • Dedicated Hosts - Thuê máy chủ vật lý: Gói này được sử dụng khi bạn muốn sử dụng một máy chủ vật lý riêng biệt, điều này vô cùng hữu ích khi hệ thống đang sử dụng các phần mềm với licence đi kèm với máy chủ. Tuy nhiên chi phí thuê máy chủ này sẽ cao hơn rất nhiều so với các gói trên
  • Dedicated Instances - Thuê riêng một máy chủ vật lý và không chia sẻ phần cứng với bất kỳ ai: Gói này cũng được sử dụng khi bạn muốn sử dụng một máy chủ vật lý riêng biệt, tuy nhiên chi phí thuê máy chủ này thâm chí sẽ cao hơn rất nhiều so với các gói trên. Khác với Dedicated Hosts, bạn sẽ không phải chia sẻ phần cứng vật lý với bất kỳ ai.
  • Capacity Reservations: Gói này có thể coi như một sự dự trữ về năng lực tính toán, giúp người dùng có thể truy cập và sử dụng bất cứ khi nào họ cần
    Các phần tiếp theo sẽ mô tả chi tiết hơn về các gói tính phí này.

EC2 On Demand

  • Dùng bao nhiêu trả bấy nhiêu: Gói này sẽ tính phí theo từng giây, bắt đầu tính phí sau phút đầu tiên sử dụng đối với Linux hoặc Windows, đối với các hệ điều hành khác sẽ tính phí theo giờ.
  • Gói này có chi phí có thể coi là cao nhất, tuy nhiên sẽ không cần phải trả trước bất cứ khoản phí nào.
  • Không cần phải cam kết sử dụng dài hạn.

    Loại này nên được sử dụng đối với các mục đích ngắn hạn và yêu cầu mức độ ổn định cao, cũng như khi không thể ước lượng được ứng dụng sẽ hoạt động như thế nào.

EC2 Reserved Instances

  • Có thể nhận được mức discount lên tới 72% so với giá On-Demand.
  • Bạn sẽ cần đặt trước một phiên bản với cấu hình cụ thể (Instance Type, Region, Tenancy, OS) trong khoảng thời gian 1 năm hoặc 3 năm. Thời gian này càng lâu thì mức chiết khấu càng cao.
  • Đa dạng về cơ chế thanh toán, tỉ lệ khuyến mại sẽ tăng dần theo các phương thức thanh toán sau: Trả trước, trả trước một phần và trả trước toàn bộ.
  • Reserved Instance có 2 scopes cho từng khu vực sử dụng tất nhiên là chi phí cũng sẽ khác nhau: Regional (avaible với tất cả các Zone trong cùng 1 AWS Region) và Zonal (Chỉ trong Zone đã định trước).
  • Có thể mua bán loại EC2 này trên Reserved Instance Marketplace.

    Loại này nên được sử dụng cho các ứng dụng yêu cầu mức độ ổn định cao, lâu dài như Database chẳng hạn.

  • Ngoài ra, còn 1 loại EC2 khác có tên Convertible Reserved Instance, loại này hoạt động tương tự như Reserved Instances, tuy nhiên có thể thay đổi được các tham số (instance type, instance family, OS, scope và tenancy), tuy nhiên chi phí cũng theo đó mà có ít nhiều sự khác biệt.
  • Convertible Reserved Instance thường chỉ đạt tới mức discount tối đa khoảng 66%, mặc dù vậy đây cũng là con số khá lớn khi so với On-Demand.

EC2 Savings Plans

Tôi muốn sử dụng 1000h với giá 10$/h trong khoảng 1 đến 3 năm tới.

  • Được giảm giá dựa trên các gói đăng ký dài hạn lên tới 72% tương tự như Reserved Instances, tuy nhiên gói này cung cấp khả năng tùy chỉnh một cách linh hoạt hơn.
  • Bạn cần đặt trước một khối lượng sử dụng nhất định và khi sử dụng vượt quá khối lượng đó, chi phí sẽ tính theo giá của gói On-Demand.
  • Gói này sẽ chỉ sử dụng được một loại instance family nhất định tại một AWS Region nhất định (Ví dụ: T2 ở ap-south-1). Ngoài ra có thể thay đổi các tham số như Instance Size (Ví dụ chuyển từ m5.xlarge qua m5.2xlarge), OS (Ví dụ: Linux, Windows) hay Tenancy (Host, Dedicated, Default).

EC2 Spot Instances

  • Có thể tiết kiệm được tưới 90% so với giá On-Demand.
  • Loại này được hình thành do giá spot luôn biến động (tương tự như chơi coin hay chứng khoán) và bạn cần phải đặt giá mức tối thiểu để có thể đấu giá. Nhìn chung giá Spot sẽ thường rẻ hơn nhiều so với giá On-Demand, vậy nên phương án này thường đem lại giá cực kì rẻ.
  • Nhược điểm của gói này là khi giá Spot tăng cao hơn mức giá bạn đã đặt, Instance của bạn sẽ bị dừng bất cứ lúc nào.
    spot-history

    Loại này nên được sử dụng cho những ứng dụng có khả năng chịu đựng được các sự cố bất ngờ như Batch Jobs, CICD, Phân tích dữ liệu hay các ứng dụng có thể start và stop bất cứ lúc nào, đặc biệt không nên sử dụng cho các ứng dụng cần sự ổn định hay Database.

EC2 Dedicated Hosts

  • Cho phép thuê riêng một máy chủ vật lý (Physical Server) để sử dụng.
  • Cho phép giải quyết các yêu cầu về bảo mật và tuân thủ tùy theo nhu cầu của các đơn vị sử dụng cũng như cung cấp đủ phương tiện để xác thực cho các ứng dụng yêu cầu Liciense.
  • Có 02 phương án thanh toán cho loại EC2 này:
    • On-Demand: Trả tiền theo thời gian mà Dedicated Host được active, tính theo giây.
    • Reserved: Thời hạn 1 hoặc 3 năm với đầy đủ các lựa chọn như trả trước, trả trước một phần hoặc trả sau.
  • Đây là loại đắt nhất.

    Rất hữu ích cho các ứng dụng được yêu cầu tuân thủ các tiêu chuẩn bảo mật cao như Banking, Financial, Healthcare, Government, và các ứng dụng yêu cầu License, kể cả các Liciense phức tạp như BYOL – Bring Your Own Liciense.

EC2 Dedicated Instances

  • Tương tự như Đeicated Host, tuy nhiên toàn bộ máy chủ vật lý thuộc về bạn và không phải chia sẻ với bất cứ ai.
  • Có thể chia sẻ tài nguyên với các User khác trong cùng 1 Account.
  • Không được kiểm soát vị trí của Instance, chúng có thể bị di chuyển sau khi Stop/Start.
  • Bảng phía dưới sẽ đưa ra các so sánh giữa Dedicated Host và Dedicated Instance.
    dedicated-instances-and-host

    Nhìn chung, nếu không vướng phải các yêu cầu liên quan đến bảo mật và tuân thủ, thì nên sử dụng Dedicated Hosts.

EC2 Capacity Reservations

  • EC2 Capacity Reservations cung cấp một cầu thủ dự bị đa năng có thể thay thế vào bất cứ vị trí nào trong "đội bóng" của bạn.
  • Chi phí sẽ được tính theo giá của gói On-Demand, ngay cả khi có khởi chạy hay không.
  • Không cần cam kết về thời gian sử dụng, cũng từ đó mà sẽ không có discount.

    Phù hợp với khối lượng công việc ngắn hạn, không bị gián đoạn, cũng như phải tuân thủ các yêu cầu như được đặt cùng các hệ thống khác trong một AZ nhất định.

Tính toán giá EC2 thế nào?

Thông thường, việc xác định khối lượng tài nguyên máy chủ cần thiết để chạy các ứng dụng của bạn là một bước khá khó khăn và phụ thuộc nhiều vào kinh nghiệm, tuy nhiên AWS cũng cung cấp công cụ cho phép người dùng có thể ước lượng phần nào về các giá trị cần thiết cũng như số tiền mà họ cần chi ra cho các dịch vụ mà họ muốn sử dụng.
Có thể truy cập công cụ này tại đây: AWS Pricing Calculator - AWS Pricing Calculator

Previous in this series:

AWS Security Groups

Next in this series:

Tiết kiệm chi phí với Spot Instance

Join our community:
• • •