Cách tính chi phí dịch vụ của AWS
aws price
1
AWS
28
White

bqthanh viết ngày 03/07/2019

Tổng quan về AWS

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.

Regions and Availability Zones

Cơ sở hạ tầng cloud của AWS được xây dựng xung quanh Regions and Availability Zones. Regions là các khu vực địa lý trên toàn thế giới như là: N. Virginia, Ohio, Tokyo ... và các region này hoàn toàn độc lập lẫn nhau. Mỗi Region lại có nhiều Availability Zones và các Availability Zone này kết nối với nhau bởi low-latency links.

Bởi việc đặt các tài nguyên cloud ở các region khác nhau khách hàng hay các nhà phát triển có thể chỉ định website hay ứng dụng của họ gần với người dùng hơn và cũng để đáp ứng các yêu cầu về luật pháp hay các yêu cầu khác.

alt text

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.

Tính chi phí sử dụng dịch vụ

Các bước thực hiện

Chọn region

Trong ví dụ này tôi chọn region là "Asia Pacific (Tokyo)" có region code tương ứng là "ap-northeast-1".

Note: Cùng 1 dịch vụ AWS nhưng giá cũng sẽ khác nhau tuỳ theo region.

Liệt kê các dịch vụ aws mà dự án sẽ sử dụng và estimate chi phí cho từng dịch vụ

1. Elastic compute cloud - EC2

1.1 Chọn EC2 và 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à hợp đồng phù hợp. Về cách chọn loại EC2 xem qua hình ảnh đính kèm sau:

alt text

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

Note: Aws cung cấp rất nhiều lựa chọn của instance type để phù hợp vs các use case 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 options Instance type Payment option Monthly
Standard 1 year term m4.xlarge No 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

Note: 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 type Quantity of requests / Month Pricing Monthly
PUT, COPY, POST, or LIST Requests 90000 $0.0047 per 1,000 requests $0.42
GET and all other Requests 450000 $0.0037 per 10,000 requests $0.17
Delete Requests Không quan tâm Free $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 Instances Price 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 Instances Price
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

Usage Price
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 name Read capacity unit Write capacity unit Estimated cost
User 50 20 $16.57
Message 50 20 $16.57
Log 5 5 $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ình luận


White
{{ comment.user.name }}
Bỏ hay Hay
{{comment.like_count}}
Male avatar
{{ comment_error }}
Hủy
   

Hiển thị thử

Chỉnh sửa

White

bqthanh

5 bài viết.
7 người follow
Kipalog
{{userFollowed ? 'Following' : 'Follow'}}
Cùng một tác giả
White
7 1
Tổng quan ORM hay Object Relational Mapping: Là một kĩ thuật cho phép bạn truy vấn và thao tác dữ liệu trên database bằng cách sử dụng mô hình hướ...
bqthanh viết 1 năm trước
7 1
White
6 1
Tổng quan DNS Domain Name System hay hệ thống tên miền là một cơ sở dữ liệu phân tán nằm trên các server khác nhau lưu thông tin ánh xạ giữa domai...
bqthanh viết hơn 1 năm trước
6 1
White
4 1
Architecture Pattern Là một tập hợp các quy tắc để giải thích chúng ta có những class nào? chúng sẽ tương tác với nhau ra sao để thực hiện một hệ ...
bqthanh viết hơn 1 năm trước
4 1
Bài viết liên quan
White
1 2
Transfer files từ local computer đến AWS EC2 dùng FileZilla Bài toán: Làm thế nào để copy files từ local computer đến AWS EC2? Cách làm: Có mấy ...
Minh-Trung Nguyễn viết 1 năm trước
1 2
{{like_count}}

kipalog

{{ comment_count }}

bình luận

{{liked ? "Đã kipalog" : "Kipalog"}}


White
{{userFollowed ? 'Following' : 'Follow'}}
5 bài viết.
7 người follow

 Đầu mục bài viết

Vẫn còn nữa! x

Kipalog vẫn còn rất nhiều bài viết hay và chủ đề thú vị chờ bạn khám phá!