AWS Data transfer Billing

Posted by MinhHungTrinh on 2021-01-14
Estimated Reading Time 9 Minutes
Words 1.5k In Total
Viewed Times

Trong quá trình làm việc, mình thường được nhận các task nằm vào đầu dự án hoặc cuối 1 phrase, 1 dự án liên quan đến việc phải estimate chi phí của Infra. Hệ thống mình làm việc ở thời điểm này là AWS Cloud, có thể nói ngoài các thông tin cung cấp khá chi tiết về Pricing cho các loại cấu hình.
Nhưng có 1 loại chi phí sẽ rất khó tính đối với anh em mới làm việc với AWS, nhất là hệ thống đó của các bạn có flow phức tạp, đó chính là Data Transfer.
Hôm nay mình viết bài này mong muốn để clear lại tính chi phí Data Transfer trên AWS, đây cũng là bài note của mình phục vụ cho mục đính tính toán cost mỗi khi cần.

Bài viết có tham khảo ngoài Docs của AWS thì còn core và hình ảnh chủ đề từ https://www.duckbillgroup.com/blog/understanding-data-transfer-in-aws/

main

Tổng hợp lại các loại Data Transfer

Mình sẽ đi theo các mô tả vắn tắt từ hình vẽ. Trên hình vẽ, các arrow đại diện cho flow của data transfer. Trong đó:

  • Arrow màu xanh: Inbound Traffic - là những traffic từ ngoài vào (internet hoặc internal service). Bản chất đi từ internet vào là được free. Các Internal Inbound traffic thì được free nhưng không phải tất cả.
  • Arrow màu đỏ: Outbound Traffic - bị tính phí, giá phụ thuộc vào từng transmission.

Mình sẽ đi chi tiết hơn theo 8 mục được liệt kê sau:

1. Regional Data Transfer Inbound/Outbound to Internet.

Chuyên mục về giá ae có thể tham khảo từ: https://aws.amazon.com/ec2/pricing/on-demand/#Data_Transfer

  • Từ Internet truyền vào AWS (Inbound data transfer):

Như mình đã nói ở trên, tất cả data từ Internet vào các dịch vụ của AWS đều free, cho dù đó là vào AWS Regions (qua internet thông thường), hay sử dụng Direct Connect hoặc đi vào Edge Locations (đi vào từ các node của CDN).

  • Từ AWS truyền ra Internet (Outbound data transfer):

Ngược lại với Inbound, việc truyền dữ liệu ra ngoài Internet được tính phí và phụ thuộc theo từng region.

Cách tính sẽ kiểu từng mức, ví dụ tổng data transfer 10TB đầu tiên thì giá $0.02/GB chẳng hạn. Càng tăng giá sẽ càng được giảm.
Mình hay làm việc với region Tokyo nên lấy ví dụ hình dưới:

main

2. Region to Region (Inter-Region data transfer)

Data transfer giữa các Region, bị tính phí dựa vào Region đầu (điểm xuất phát). Đơn giản là bị tính giá theo Outbound của Region.
Như trên hình thì $0.02/GB là giá của region us-east-1, us-east-2, trong khi $0.01/GB là giá của Ohio.
Nói chung để chính xác và cập nhật mới nhất, ae check https://aws.amazon.com/ec2/pricing/on-demand/#Data_Transfer phần
Data Transfer OUT From Amazon EC2 To nhé.

main

Một vài ví dụ mình hay gặp là:

  • Tạo bản backup của S3 Bucket ở region này sang region khác thì bị tính phí. Backup giữa các zone không bị tính phí.
  • Data transfer giữa các EC2 ở các region khác nhau qua VPC Peering chẳng hạn.

3. CloudFront

Tham khảo từ: https://aws.amazon.com/cloudfront/pricing/

Tức là Data transfer từ các Edge Locations tới AWS Regions.
Edge Locations là các location được đặt trên khắp thế giới với nhiều mục đích, một trong đó là nơi lưu trữ cache của Amazon CloudFront-CDN

  • Data transfer từ Origin tới các Edge Location thì được Free
  • Data transfer từ Edge Location ra internet (Cloudfront to internet) theo bảng gía dưới:
    main
  • Một điều chúng ta ít để ý là, chúng ta có thể Put data lên các Edge location trong AWS CloudFront. Vì vậy, Data transfer từ các Edge Locations trở về Origin sẽ bị tính phí theo Regional Data Transfer Out to Origin.
    main

4. Internal traffic via Public hoặc Elastic IPs

Data Transfer cho dù diễn ra public, private hay với Elastic IPv4 hoặc IPv6 đều sẽ bị áp dụng phí truyền thống với cả 2 chiều Inbound và Outbound. Tức là phí Data Trasfer Outbound là $0,01/GB và Data Transfer Inbound là $0,01/GB áp dụng với tất cả Resources ví dụ như: Amazon EC2 instance, Amazon RDS, Amazon Redshift, Amazon DynamoDB, Amazon ElastiCache,… hay gặp các trường hợp như:

  • Data Transfer giữa các resouces nằm khác Availability Zone.
  • Data Transfer giữa các resources khác VPC, phải sử dụng VPC Peering

Ví dụ: Khi chuyển 100 GB dữ liệu giữa 1 EC2 trong VPC-A và 1 EC2 trong VPC-B, trong cùng một Availability Zone và bạn sẽ bị tính phí $1 khi đi ra từ VPC-A và $1 khi đi vào VPC-B. Áp dụng tương tự cách tính phí với 2 EC2 khác Availability Zone.

5. EC2 in Region

  • Data Transfer giữa AWS Classic, Elastic Load Balancer và EC2 trong cùng 1 region là free
  • Data Transfer giữa các EC2 cùng Availabitity Zone là free
  • Data Transfer giữa các EC2 khác Availability Zone thì bị tinhs phí: $0.01/GB

6. Elastic Load Balancing

Classic Load Balancing thì được tính $0.008/GB. Trong khi đó Application và Network Load Balancing tính phí dựa trên LCU (Công suất cân bằng tải) (ALB-$0.008 per LCU-hour, NLB-$0.006 per LCU-hour)
Giá tham khảo từ: https://aws.amazon.com/elasticloadbalancing/pricing/

7. Nat Gateway

Data Transfer qua NAT Gateway được quản lý - bất kể điểm đến - sẽ phải tốn thêm $0,045/ GB bên cạnh các chi phí Data Transfer đi qua các resources khác ví dụ các internal transfer (nội bộ) (S3, Kinesis, v.v.)

8. Transit Gateway

Phí xử lý dữ liệu áp dụng cho mỗi GB được gửi đến AWS Transit Gateway - cho dù data đó đến từ 1 VPC, qua Direct Connect hay VPN.
Giá sẽ là $0.02/GB

main

Kết luận

Nói chung sau khi tóm tắt thành từng nhóm thì mình nghĩ chúng ta có thể dễ dàng estimate được sẽ mất phí ở những step nào về Data Transfer. Từ hình đầu tiên của bài chúng ta có thể dò ra được Data Transfer của chúng ta nằm ở nhóm nào, có bị tính phí hay không.
Sau khi làm quen, mình nghĩ chúng ta có thể rút ra được những kinh nghiệm để thiết kế với từng bài toán kiểu như hy sinh phí data transfer nếu data transfer nhỏ hoặc hy sinh infra nếu data transfer lớn hay cân nhắc giữa phí data transfer và vấn đề độ trễ và bảo mật chẳng hạn.
Chốt lại vẫn là cảm ơn các bạn đã đọc bài. Rất mong nhận được sự góp ý. :D


Đây là Blog cá nhân của MinhHungTrinh, nơi mình chia sẻ, lưu giữ kiến thức. Nếu các bạn có góp ý, thắc mắc thì vui lòng comment bên dưới cho mình biết nhé. Mình luôn là người lắng nghe và ham học hỏi. Các vấn đề đặc biệt hoặc tế nhị mọi người có thể gửi email tới minhhungtrinhvn@gmail.com. Cảm ơn Mọi Người đã đọc Blog của mình. Yolo!