HomeAWS

Cách tính chi phí dịch vụ Amazon Web Service (AWS)

Cách tính chi phí dịch vụ Amazon Web Service (AWS)
Like Tweet Pin it Share Share Email

Amazon web services là một nền tảng điện toán đám mây được phát triển và cung cấp bởi Amazon. Hiện tại vẫn là số 1 về dịch vụ điện toán đám mây. Nhưng để sử dụng sao cho tiết kiệm nhất thì không phải ai cũng biết. Bài viết hôm nay sẽ hướng dẫn các bạn ước tính chi phí dựa trên nhu cầu sử dụng.

Khu vực bạn sử dụng

Về cơ sở hạ tầng cloud của Amazon web service (aws) trên thế giới được xây dựng trên toàn thế giới (Regions and Availability Zones), các khu vực này hoàn toàn độc lập nhau, mỗi khu vực có nhiều  Availability Zones và các Availability Zone kết nối với nhau bởi low-latency links.

Low latency describes a computer network that is optimized to process a very high volume of data messages with minimal delay (latency). These networks are designed to support operations that require near real-time access to rapidly changing data.

web: Informatica

Khu vực địa lý mà AWS hỗ trợ hiện nay như: N. Virginia, Ohio, Tokyo … mình làm cho khách hàng Nhật mình thường chọn region là “Asia Pacific (Tokyo)” có region code tương ứng là “ap-northeast-1”.

Giá dịch vụ đám mây của AWS (Cloud Services Pricing)

Hiện nay AWS cung cấp trên khoảng 70 dịch vụ cloud như là: EC2, S3, RDS, LBS, Route 53, Lambda … Với AWS bạn chỉ cần trả chi phí cho dịch vụ cho đến chừng nào bạn sử dụng chúng. Bạn có thể dừng sử dụng dịch vụ bất cứ khi nào và không mất chi phí bổ xung.

Các bước cơ bản tính chi phí sử dụng dịch vụ AWS

Trong bài viết này, mình lấy ví dụ chạy cho một dịch vụ sử dụng m4.xlarge, cho khu vực (region) là “Asia Pacific (Tokyo)” có region code tương ứng là “ap-northeast-1”.

Để ước tính chi phí chính xác Amazon cung cấp cho chúng ta công cụ link sau: https://calculator.s3.amazonaws.com/index.html

Hướng dẫn thực hiện tính chi phí sử dụng dịch vụ aws

  • Menu bên trái là các dịch vụ cần sử dụng (ở đây mình chọn EC2)
  • AWS cho bạn 1 năm sử dụng miễn phí với cấu hình cho sẵn, nếu dự án của bạn đáp ứng cấu hình miễn phí, có thể sử dụng miễn phí để giảm chi phí thì tick chọn vào mục FREE USAGE TIER, nếu không thì bỏ qua mục này.
  • Vì amazon áp mức phí khác nhau cho từng vùng, nên tiếp theo bạn chọn Region sử dụng dịch vụ. Ở đây mình chọn là Asia Pacific (Tokyo).
  • Tiếp theo ở mục Compute: Amazon EC2 Instances: các bạn hãy điền vào số lượng resource cần dùng và kích cỡ của nó.
  • Ở mục Storage: Amazon EBS Volumes Chọn kích thước volume của các Instance EC2 của bạn. Các bạn lưu ý là số lượng EBS Volume thường thì sẽ lớn hơn hoặc bằng số lượng Instance EC2, do mỗi Instance phải kết nối với ít nhất một EBS Volumes.
  • Ở mục Elastic IP: Nhập số lượng ElP dùng trong hệ thống vào. Free Tier cho các bạn dùng miễn phí 5 EP, nên nếu bạn ko dùng quá 5 EIP này thì ko cần phải điền vào mục này.
  • Data Transfer: Ngoài các loại chi phí kể trên, chi phí dùng cho băng thông cũng là một phần chi phí lớn khi sử dụng aws. Các bạn cần ước lượng mức độ sử dụng của hệ thống để đưa ra con số phù hợp. Ngoài ra có một điều nữa cần chú ý. Đó là aws áp mức tính giá khác nhau cho Data Tranfer trong nội bộ AWS (giữa EC2 và S3, RDS vvv), và Data transfer giữa AWS và Internet (User tới EC2). Nên các bạn cũng cần chú ý để đưa ra estimate phù hợp với hệ thống của mình.

Hướng dẫn chi tiết Các dịch vụ aws mà dự án sẽ sử dụng và estimate chi phí cho từng dịch vụ

Phần chi tiết này, mình sẽ đi phân tích từng dịch vụ để các bạn có thể rõ hơn về cách tính chi phí cho một dự án.

Ví dụ: ước tính chi phí cho một dịch vụ Công ty chạy php tại Nhật Bản, sử dụng Linux, với web server Appache và MySQL, chạy m4.xlarge instance

1. Elastic compute cloud – EC2

1.1 Chọn EC2 và loại hợp đồng dịch vụ

Tuỳ theo mục đích cũng như yêu cầu dự án mà sẽ cần lựa chọn loại EC2 và loại hợp đồng phù hợp. Về cách chọn loại EC2 xem qua hình ảnh đính kèm sau:

Terminology
vCPU = Virtual CPU

Có 4 option để thuê một EC2 instance là

  • On-Demand: Trả phí chừng nào bạn còn sử dụng nó – giá đắt nhất.
  • Spot Instance: Đấu thầu instance với giá thấp / bid for low price tức là bạn chỉ định ra giá và khi nào giá của spot instance thấp hơn hoặc bằng giá bạn đã bỏ thầu thì instance sẽ được chạy. Về cơ bản là đấu giá cho năng lực dư thừa của aws và nó có thể bị ngắt / terminated bất cứ khi nào giá của spot instance cao hơn giá đã bỏ thầu.
  • Reserved Instance: Là On-Demand Instance + thuê bao / subscription.
  • Dedicate Hosts: Instance chạy trên server vật lý dành riêng / single-tenant hardware.

Giả sử mình chọn instance type là m4.xlarge – OS linux với:

  • Standard Reserved Instance
  • Hợp đồng 1 năm vs no upfront

Chú ý: Aws cung cấp rất nhiều lựa chọn của instance type để phù hợp với mỗi trường hợp sử dụng khác nhau.

Sau khi chọn được cấu hình EC2 và loại dịch vụ ta có được chi phí như sau:

Purchase optionsInstance typePayment optionMonthly
Standard 1 year termm4.xlargeNo upfront$127.24

1.2 EBS

Giả sử mình mua thêm EBS General Purpose SSD 100 GB để gắn vào EC2 của mình.
Khi đó chi phí mỗi tháng sẽ là: 0.12 * 100 = $12.0 / month.

Chi tiết EBS pricing xem tại đây

Chú ý: EBS là cần thiết khi instance của bạn không có ổ đĩa cứng đi kèm hay bạn muốn lưu trữ data lâu dài cho dù instance của bạn đã terminated.

1.3 Elastic IP

Sẽ không mất chi phí với EIP thứ nhất associated với mỗi running instance. Tuy nhiên từ EIPs thứ 2 sẽ mất thêm chi phí và chi phí này tính theo giờ.

  • Chỉ EC2 VPC mới có thể được gán nhiều EIP

Ngoài chi phí theo giờ bạn có thể phải trả thêm chi phí bổ xung cho nhưng trường hợp sau:

  • EIP đang không được associated với 1 running instance
  • EIP đang được associated với một stopped instance hay unattached network interface

1.4 Data Transfer

1.4.1 Data Transfer IN To Amazon EC2 From
Amazon S3, Amazon DynamoDB
→ Giả sử không có

1.4.2 Data Transfer OUT From Amazon EC2 To
Amazon S3, Amazon DynamoDB
→ Giả sử không có

1.4.3 Data Transfer OUT From Amazon EC2 To Internet
Ví dụ mỗi user trung bình 1 ngày sẽ request data với dung lượng trung bình là 8MB
Vậy trong 1 tháng hệ thống sẽ: (1000 user * 8MB * 30) * 150% buffer = 360GB

Khi đó chi phí dự kiến sẽ là: 1.4.1 + 1.4.2 + 1.4.3 = (0 + 0+ 360 GB * 0.14) * 150% buffer = $50.4.

2. Elastic Load Balancer Pricing

Về Elastic Load Balancer: Là một dịch vụ đóng vai trò phân chia các incomming request tới các target khác nhau như Amazon EC2 instance, container hay IP address.

Có 3 loại ELB

  • Classic Load Balancer: Cung cấp basic load balancing trên nhiều EC2 instance và hoạt động trên cả request level và connection level.
  • Application Load Balancer: Định tuyến lưu lượng / traffic tới các target: EC2, containers và IP address dựa vào content of request.
  • Network Load Balancer: Định tuyến các kết nối / connection tới target EC2, containers và IP address dựa vào IP protocol data.

2.1 Classic Load Balancer Pricing

Bạn phải trả chi phí sử dụng dịch vụ theo giờ và chi phí cho lưu lượng data di chuyển qua load balancer.

Ví dụ: bạn cần thuê 1 ELB và lưu lượng data di chuyển qua ELB khoảng 100GB trong 1 tháng thì chi phí sẽ là:
Chi phí sử dụng dịch vụ theo giờ
0.027 * 24 * 365 / 12 = $19.71 / tháng

Chi phí cho lưu lượng data di chuyển qua load balancer
0.008 * 100GB = $0.8 / tháng

Tổng số tiền phải trả cho ELB là: 19.71 + 0.8 = $20.51 / tháng

2.2 Application Load Balancer Pricing

Bạn phải trả chi phí theo giờ sử dụng dịch vụ Application Load Balancer và số Load Balancer Capacity Units (LCU) sử dụng.

Ví dụ về chi phí đối với region là Asia Pacific (Tokyo)

  • $0.0243 per Application Load Balancer-hour (or partial hour)
  • $0.008 per LCU-hour (or partial hour)

Cách tính số LCU
Số LCU cần thiết là là số LCU lớn nhất sử dụng ở 1 trong 4 tiêu chí sau:

  • New connections
  • Active connections
  • Bandwidth
  • Rule evaluation

Thông số của 1 LCU

  • 25 new connections per second
  • 3.000 active connections per minute
  • 2.22 Mbps (which translates to 1 GB per hour)
  • 1.000 rule evaluations per second

Ví dụ:

  • New connections cần 1.5 LCU
  • Active connections cần 1 LCU
  • Bandwidth cần 1.8 LCU
  • Rule evaluation cần 2.0 LCU

→ Cần tới 2 LCU
Tổng số tiền phải trả cho ELB là: (0.0243 + 2 * 0.008) * 24 * 365 / 12 = $29.42 / tháng

2.3 Network Load Balancer

Tương tự Application Load Balancer bạn phải trả chi phí theo giờ sử dụng dịch vụ Network Load Balancer và số Load Balancer Capacity Units (LCU) sử dụng.

Ví dụ về chi phí đối với region là Asia Pacific (Tokyo)

  • $0.0243 per Network Load Balancer-hour (or partial hour)
  • $0.006 per LCU-hour (or partial hour)

Cách tính số LCU
Số LCU cần thiết là là số LCU lớn nhất sử dụng ở 1 trong 3 tiêu chí sau:

  • New connections or flows
  • Active connections or flows
  • Bandwidth

Thông số của 1 LCU

  • 800 new non-SSL connections or flows per second
  • 100.000 active connections or flows (sampled per minute)
  • 2.22 Mbps (which translates to 1GB per hour)

Ví dụ:

  • New connections or flows 0.8 LCU
  • Active connections or flows 0.2 LCU
  • Bandwidth 0.1 LCU

→ Cần tới 1 LCU
Tổng số tiền phải trả cho ELB là: (0.0243 + 1 * 0.006) * 24 * 365 / 12 = $22.12 / tháng

3. S3 Pricing

Ví dụ nếu dữ liệu trên S3 thường xuyên truy cập đến do vậy: Chọn kiểu lưu trữ “Standard Storage”.

Mình lấy ví dụ lượng user active mỗi ngày khoảng 1000 user

3.1 Storage Pricing

Ví dụ lưu lượng data di chuyển qua S3 là 2MB / 1 người / 1 ngày.
Dung lượng lưu trữ cần cho 1 tháng sẽ là: (1000 user * 2 MB * 30) * 150 % buffer = 90 GB

Do dung lượng lưu trữ cho 1 tháng < 50 TG / tháng nên chi phí sẽ là $0.025 per GB

→ Chí phí cho mỗi tháng sẽ là: 90 GB * 0.025 = $2.25

3.2 Request Pricing

Lượng request cho PUT, COPY, POST or LIST
Mỗi user khoảng 2 request mỗi ngày.
Lượng request trong 1 tháng ở hệ thống sẽ là: (2 * 1000 * 30) * 150 % buffer = 90000 requests

Số request GET and all other Requests
Mỗi user khoảng 10 request mỗi ngày
Lượng request trong 1 tháng ở hệ thống sẽ là: (10 * 1000 * 30) * 150 % buffer = 450000 requests

Ta có bảng chi phí như sau:

Request typeQuantity of requests / MonthPricingMonthly
PUT, COPY, POST, or LIST Requests90000$0.0047 per 1,000 requests$0.42
GET and all other Requests450000$0.0037 per 10,000 requests$0.17
Delete RequestsKhông quan tâmFree$0.00

3.3 Data transfer pricing

Data Transfer OUT From Amazon S3 To Another AWS Region or Amazon CloudFront
→ Giả sử không có

  • Data Transfer OUT From Amazon S3 To Internet
  • Data Transfer IN To Amazon S3

Giả sử mỗi user trung bình 1 ngày sẽ request ảnh với dung lượng trung bình là 5MB
Vậy trong 1 tháng hệ thống sẽ: (1000 user * 5MB * 30) * 200% buffer = 300GB

Do thoughput < 10 TB / tháng nên chi phí sẽ là $0.140 per GB.

→ Chi phí cho 1 tháng sẽ là: 300 GB * 0.140 = $42.00

3.4 Amazon S3 Transfer Acceleration Pricing

Mục đích: Tăng tốc độ upload cũng như download dữ liệu từ S3 thông qua các edge location (tương tự khái niệm CDN / content delivery network)
Giá được tính dựa vào AWS edge location và giá sẽ được cộng vào giá ở “2.3 Data transfer pricing”

Ví dụ dự án của bạn chuyển khoảng 10GB dữ liệu từ S3 tới AWS region khác
Khi đó chi phí sẽ bằng:
2.3 Data transfer pricing: 10GB * 0.09 per GB

2.4 Amazon S3 Transfer Acceleration Pricing: 10GB * 0.04 per GB
→ Chí phí cho mỗi tháng sẽ là: (0.09 + 0.04) * 10GB = $1.3 / tháng

4. Database Pricing

4.1 Amazon RDS for MySQL Pricing

Amazon RDS hỗ trợ nhiều loại DB khác nhau như Amazon Aurora, MySQL, Postgree SQL … Chi phí cho RDS bao gồm chi phí sử dụng theo giờ + chi phí Database Storage + Data Transfer.

  • Bạn có thể sử dụng với chi phí rẻ hơn khi mua theo hợp đồng Reserved Instance
  • Nếu bạn chạy DB instance của bạn cần chạy trên trên Multi Availability Zone thì bạn nên chọn Deployment là “Multi-AZ”.
Chi phí theo giờ

Ví dụ mình sẽ chọn on-demand standard instance và single – AZ deployment thì giá sẽ như sau:

Standard InstancesPrice Per Hour
db.m3.medium$0.12
Chi phí Database Storage

Ví dụ mình chọn là: General Purpose (SSD) Storage 40GB thì chi phí sẽ là: 0.138 * 40 = $5.52 / month

Standard InstancesPrice
General Purpose Storage$0.138 per GB-month
Chi phí Data Transfer

Data Transfer IN To Amazon RDS From Internet
→ Chi phí $0.00 per GB

Data Transfer OUT From Amazon RDS To Internet

UsagePrice
Up to 1 GB / Month$0.00 per GB
Next 9.999 TB / Month$0.14 per GB
Next 40 TB / Month$0.135 per GB
Next 100 TB / Month$0.13 per GB
Greater than 150 TB / Month$0.12 per GB

Nếu dung lượng dữ liệu từ RDS to internet là: 40GB thì chi phí sẽ là: (1 * 0) + (9 * 0.14) + (30 * 0.135) = $5.31 / month

4.2 Dynamo DB

Có 2 plan là

  • Provisioned Throughput
  • Reserved Capacity (Provisioned Throughput)

Mong muốn trả tiền dịch vụ theo giờ nên chọn: Provisioned Throughput

Chi phí phụ thuộc vào số read và write capacity trên từng table
Terminology

  • Write capacity unit (WCU): 1 WCU = 1 write / 1 giây
  • Read capacity unit (RCU): 1RCU = 1 read / 1 giây
Table nameRead capacity unitWrite capacity unitEstimated cost
User5020$16.57
Message5020$16.57
Log55$3.32

Tool tính chi phí sử dụng hàng tháng cơ bản: http://calculator.s3.amazonaws.com/index.html
Mình có làm một form cơ bản và tham khảo tại đây

Bài viết được tham khảo trên kipalog

Comments (0)

Leave a Reply

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