Cách tính phí của Data Transfer trong billing của AWS

Mục này sẽ giải thích cách tính phí Data Transfer (Truyền dữ liệu) trong AWS, các hoạt động ảnh hưởng và cách tối ưu trong gói Free Tier.

1. Cách Tính Phí Data Transfer của AWS

Phí Data Transfer trong AWS chủ yếu dựa trên lượng dữ liệu (tính bằng GB) được truyền ra khỏi AWS và hướng truyền dữ liệu. Nguyên tắc chung là:

  • Data Transfer IN (Lưu lượng vào AWS): Hầu hết việc truyền dữ liệu vào các dịch vụ AWS từ Internet là miễn phí. Ví dụ: Tải file lên S3, gửi dữ liệu đến EC2 từ bên ngoài.
  • Data Transfer OUT (Lưu lượng ra khỏi AWS): Đây là phần chủ yếu bị tính phí. Chi phí thay đổi tùy thuộc vào:
  • Ra Internet: Đây là loại phí phổ biến nhất. Dữ liệu truyền từ các dịch vụ AWS (như EC2, S3) ra Internet công cộng sẽ bị tính phí. Mức phí thường được tính theo bậc thang (tiered pricing) - càng dùng nhiều GB, giá mỗi GB có thể giảm xuống. Giá cũng khác nhau tùy theo Khu vực (Region) của AWS.
  • Giữa các AWS Region: Khi bạn chuyển dữ liệu giữa các dịch vụ AWS ở các Khu vực khác nhau (ví dụ: sao chép S3 bucket từ us-east-1 sang ap-southeast-1), bạn sẽ bị tính phí cho dữ liệu truyền ra khỏi Khu vực nguồn  dữ liệu truyền vào Khu vực đích (mặc dù phí vào thường thấp hơn hoặc bằng 0 tùy dịch vụ).
  • Giữa các Availability Zone (AZ) trong cùng một Region: Việc truyền dữ liệu giữa các AZ khác nhau trong cùng một Region (ví dụ: giữa hai EC2 instance ở AZ khác nhau, hoặc từ EC2 sang RDS Multi-AZ) cũng thường bị tính phí cho cả hai chiều (ra và vào AZ), mặc dù mức phí thường thấp hơn so với ra Internet hoặc giữa các Region.
  • Đến AWS Edge Locations (thông qua CloudFront): Dữ liệu truyền từ các dịch vụ gốc (Origin - như EC2, S3) đến CloudFront Edge Locations thường có mức phí rẻ hơn so với truyền trực tiếp ra Internet. Và dữ liệu từ CloudFront ra người dùng cũng có bảng giá riêng (thường rẻ hơn egress trực tiếp).
  • Qua AWS Direct Connect: Có bảng giá riêng cho việc truyền dữ liệu ra ngoài qua kết nối Direct Connect.
  • Qua AWS PrivateLink / VPC Peering: Việc truyền dữ liệu trong cùng một Region qua các kết nối này thường có chi phí thấp hơn hoặc miễn phí trong một số trường hợp so với đi qua Internet hoặc giữa các Region.

2. Các Hoạt Động Ảnh Hưởng Đến Phí Data Transfer

Những hoạt động sau đây thường tạo ra chi phí Data Transfer OUT và ảnh hưởng đến hóa đơn của bạn:

  • Người dùng tải xuống file: Từ EC2 web server hoặc S3 bucket của bạn.
  • Ứng dụng/EC2 instance gửi dữ liệu ra ngoài: Gọi API bên ngoài, gửi email có tệp đính kèm lớn, streaming video/audio ra Internet.
  • Sao chép dữ liệu giữa các Region: Sử dụng S3 Cross-Region Replication, tạo Read Replica cho RDS ở Region khác, sao lưu EBS snapshot sang Region khác.
  • Truyền dữ liệu giữa các Availability Zone:
  • EC2 instance trong AZ-A giao tiếp với EC2 instance trong AZ-B.
  • Load Balancer (ELB) phân phối traffic đến các instance ở nhiều AZ.
  • Database chạy ở chế độ Multi-AZ (dữ liệu đồng bộ giữa các AZ).
  • Sử dụng CloudFront: Dữ liệu truyền từ Origin (EC2, S3) đến các Edge location của CloudFront (mặc dù thường rẻ hơn egress trực tiếp). Dữ liệu từ CloudFront ra người dùng cũng tính phí (nhưng có free tier riêng và giá thường tốt hơn).
  • Truyền dữ liệu ra mạng on-premises: Qua Internet Gateway hoặc Direct Connect.
  • Truyền dữ liệu từ các VPC Endpoint: Một số loại Interface Endpoint có thể phát sinh chi phí data processing.

3. Cách Tối Ưu Chi Phí Data Transfer (Đặc biệt trong Free Tier)

Gói AWS Free Tier cung cấp một số lợi ích về Data Transfer, bạn cần tận dụng tối đa:

  • Free Tier Chung (Áp dụng 12 tháng đầu cho tài khoản mới):
  • 100 GB Data Transfer OUT ra Internet mỗi tháng: Đây là hạn mức tổng hợp từ tất cả các dịch vụ và Region của AWS (trừ GovCloud và Trung Quốc). Đây là thay đổi mới, trước đây là 1GB/tháng + CloudFront. Hãy kiểm tra trang AWS Free Tier để biết thông tin mới nhất vì chính sách có thể thay đổi.
  • Data Transfer IN: Luôn miễn phí (hầu hết các trường hợp).
  • Free Tier Luôn Miễn Phí (Always Free - ngay cả sau 12 tháng đầu):
  • AWS CloudFront:
  • 1 TB Data Transfer OUT ra Internet mỗi tháng.
  • 10,000,000 HTTP/HTTPS Requests mỗi tháng.
  • 2,000,000 CloudFront Function invocations mỗi tháng.
  • Data Transfer từ EC2/S3/... đến CloudFront trong cùng một Region: Miễn phí.
  • Data Transfer giữa các dịch vụ AWS trong cùng một Region: Một số trường hợp là miễn phí (ví dụ: EC2 tới S3 trong cùng Region qua public IP hoặc VPC Endpoint, EC2 tới ELB...). Lưu ý: Truyền dữ liệu giữa các EC2 instance ở các AZ khác nhau trong cùng Region thì không miễn phí.
  • Data Transfer vào các Region AWS.

Chiến lược tối ưu:

  1. Tận dụng CloudFront Tối Đa: Đây là cách hiệu quả nhất để giảm chi phí Data Transfer OUT ra Internet.
  • Sử dụng CloudFront để phân phối nội dung tĩnh (hình ảnh, CSS, JS từ S3) và cả nội dung động (từ EC2/Load Balancer).
  • Bạn sẽ được hưởng 1TB miễn phí egress từ CloudFront ra người dùng mỗi tháng (Always Free).
  • Dữ liệu truyền từ Origin (EC2/S3) đến CloudFront trong cùng Region là miễn phí. Điều này giúp giảm đáng kể chi phí egress từ Origin.
  1. Giữ Tài Nguyên Trong Cùng Một Region: Tránh truyền dữ liệu không cần thiết giữa các Region vì chi phí cao hơn. Nếu ứng dụng cần giao tiếp nhiều, hãy đặt chúng gần nhau.
  2. Cân Nhắc Việc Đặt Tài Nguyên Trong Cùng Availability Zone: Nếu ứng dụng không yêu cầu độ sẵn sàng cao đến mức phải trải rộng trên nhiều AZ và chi phí là ưu tiên hàng đầu, việc đặt các thành phần giao tiếp nhiều trong cùng một AZ có thể giảm phí Data Transfer giữa các AZ. Tuy nhiên, hãy cân nhắc rủi ro về tính sẵn sàng.
  3. Sử dụng VPC Endpoints: Để truy cập các dịch vụ AWS (như S3, DynamoDB) từ bên trong VPC mà không cần đi qua Internet công cộng, hãy sử dụng Gateway Endpoints (miễn phí cho S3, DynamoDB) hoặc Interface Endpoints (có phí theo giờ và phí xử lý dữ liệu, nhưng có thể rẻ hơn Data Transfer OUT ra Internet nếu lượng truy cập lớn).
  4. Nén Dữ Liệu: Nén dữ liệu (Gzip, Brotli) trước khi gửi ra ngoài để giảm tổng dung lượng truyền đi.
  5. Theo Dõi và Giám Sát: Sử dụng AWS Cost Explorer và AWS Budgets để theo dõi chi tiêu Data Transfer. Phân tích Cost and Usage Reports (CUR) để xem chi tiết dữ liệu truyền đi từ đâu và đến đâu. Thiết lập Billing Alarms để nhận cảnh báo khi chi phí vượt ngưỡng.
  6. Chọn Định Dạng Dữ Liệu Hiệu Quả: Sử dụng các định dạng dữ liệu nhị phân, nén tốt như Parquet, ORC cho dữ liệu lớn thay vì text/JSON.

Bằng cách hiểu rõ cách tính phí và áp dụng các chiến lược trên, đặc biệt là tận dụng CloudFront, bạn có thể kiểm soát và tối ưu đáng kể chi phí Data Transfer trên AWS, kể cả khi sử dụng gói Free Tier. Đừng quên kiểm tra trang giá AWS và trang Free Tier thường xuyên vì các chính sách và giá cả có thể thay đổi.