</>Học Dev
Bài học

Tuần 1 - Ngày 4: Billing và Cost Management

Tuần 1 – Ngày 4

Tuần 1 - Ngày 4: Billing và Cost Management

Mục tiêu học tập

  • Hiểu mô hình tính phí (Pay-as-you-go) của AWS
  • Biết sử dụng các tools: Cost Explorer, AWS Budgets, Billing Dashboard
  • Phân biệt Reserved Instance, Savings Plans, Spot Instance
  • Nắm cách áp dụng AWS Free Tier

1. Mô hình tính phí AWS

Pay-as-you-go

  • Trả theo lượng sử dụng: tính giây/giờ, GB/tháng, request/tháng
  • Không có upfront cost trừ khi mua RI/SP
  • Volume discount: dùng càng nhiều, đơn giá càng giảm (S3, data transfer)

3 trụ cột chi phí

  1. Compute (EC2 instance-hours, Lambda invocations)
  2. Storage (S3 GB-month, EBS GB-month)
  3. Data Transfer (OUT từ AWS sang internet, cross-Region, cross-AZ)

Data Transfer Rules quan trọng

Loại trafficChi phí
Inbound từ internet → AWSFree
Outbound từ AWS → internetTính phí (~$0.09/GB từ us-east-1)
Within same AZ (private IP)Free
Cross-AZ same Region (private IP)$0.01-0.02/GB (cả 2 chiều)
Cross-Region$0.02/GB và lên
EC2 → S3 same RegionFree
CloudFront → usersCheaper than direct EC2 outbound

2. AWS Free Tier

3 loại Free Tier

LoạiThời gianVí dụ
12-month free12 tháng từ ngày tạo account750 hrs/month EC2 t2.micro, 5 GB S3, 750 hrs RDS db.t2.micro
Always freeVĩnh viễn1M Lambda invocations/month, 25 GB DynamoDB, 1M SNS publishes
TrialsShort-termInspector trial 90 ngày, Lightsail 1 tháng

Best practice

  • Setup Billing Alarm khi vượt $1 (để phát hiện sớm)
  • Đọc kỹ free tier limits của từng service trước khi dùng

3. AWS Billing Dashboard

Các thành phần

  • Bills: Hoá đơn tháng hiện tại + lịch sử
  • Payment methods: Credit card, ACH
  • Cost & Usage Report (CUR): Detailed CSV/Parquet xuất ra S3
  • Free Tier usage: Tracking phần đã dùng

Truy cập từ Member account

Trong AWS Organizations, management account xem được billing của tất cả member accounts. Member account cần được enable "IAM user/role access to Billing" để các IAM user trong account đó xem được billing dashboard.

4. AWS Cost Explorer

Định nghĩa

Cost Explorer là tool visualize và phân tích chi phí AWS qua thời gian.

Tính năng

  • Visualize cost up to 12 tháng quá khứ12 tháng dự báo (forecast)
  • Group by: Service, Region, Account, Tag, Usage Type, Instance Type
  • Filter: Date range, Service, Linked Account
  • Granularity: Hourly (data retained 14 ngày), Daily (38 tháng), Monthly (38 tháng)
  • Phát hiện top cost drivers
  • Export CSV/PDF

Cost Explorer recommendations

  • Reserved Instance Recommendations
  • Savings Plans Recommendations
  • Right-sizing Recommendations (đề xuất downgrade EC2 underutilized)

5. AWS Budgets

Định nghĩa

AWS Budgets cho phép set ngưỡng chi phí/usage và alert khi vượt.

4 loại Budget

LoạiTrack gìUse case
Cost budgetChi phí $$"Tháng này không quá $500"
Usage budgetLượng dùng (GB, hours...)"EC2 hours < 1000/month"
Reserved Instance budgetRI utilization/coverage"RI usage > 80%"
Savings Plans budgetSP utilization/coverage"SP coverage > 90%"

Actions

  • Send SNS notification
  • Send email (tối đa 10 recipients)
  • Auto-action (Budgets Actions): apply IAM policy, stop EC2/RDS, target SCP

Cost

  • 2 budgets đầu free
  • $0.02/budget/day cho budgets thứ 3 trở đi

6. AWS Cost Anomaly Detection

Tính năng

  • Machine learning phát hiện chi phí bất thường so với pattern trước đó
  • Tạo monitor theo service/account/tag/cost category
  • Alert qua email hoặc SNS khi anomaly detected
  • Miễn phí

Use case

  • Phát hiện hacker mining crypto trên EC2
  • Phát hiện S3 bucket bị tấn công data transfer
  • Phát hiện code bug gây Lambda invocation tăng đột biến

7. Pricing Models (Tổng quan — chi tiết ở Tuần 10)

EC2 Pricing Options

OptionDiscountCommitmentUse case
On-Demand0%KhôngTest, short-term, unpredictable
Reserved Instance (1y/3y)Lên đến 72%1 hoặc 3 nămSteady-state workload
Savings Plans (1y/3y)Lên đến 72%$/hour commitmentFlexible commitment
Spot InstancesLên đến 90%KhôngFault-tolerant, batch
Dedicated HostOn-demand or RILicense BYOL (Windows, Oracle)
Dedicated InstanceOn-demand or RITenancy isolation

Storage Pricing

  • S3: Tính $/GB-month, $/1000 requests, $/GB transfer-out
  • EBS: Tính $/GB-month (provisioned, không phải used). Snapshot tính riêng
  • EFS: Tính $/GB-month (chỉ tính phần đã dùng, không provisioned trước)

8. AWS Pricing Calculator

Tính năng

  • Estimate chi phí TRƯỚC khi deploy
  • Support hầu hết AWS services
  • Export ra PDF/CSV để present cho stakeholder
  • Lưu/share estimate qua URL

Sample workflow

  1. Vào https://calculator.aws/
  2. Add service: EC2 → Configure (instance type, OS, hours)
  3. Add service: S3 → Configure (storage class, GB, requests)
  4. Generate estimate → Export PDF

9. AWS Cost Allocation Tags

Định nghĩa

Tags là key-value pairs gắn vào AWS resources để phân loại và tracking chi phí.

2 loại tags trong billing

  • AWS-generated tags: aws:createdBy, aws:cloudformation:stack-name
  • User-defined tags: Project=ProjectX, Environment=Production, CostCenter=CC123

Activation flow

  1. Tag resources (manually hoặc via IaC)
  2. Vào Billing Console → Cost Allocation Tags
  3. Activate tag cần dùng cho billing
  4. Sau 24 giờ, tag xuất hiện trong Cost Explorer

Best practice

  • Mandatory tags: Project, Environment, Owner, CostCenter
  • Enforce via AWS Organizations Tag Policies hoặc SCP

10. Billing Alarm (CloudWatch)

Setup

  1. Bật billing metrics trong account preferences (chỉ ở us-east-1)
  2. Tạo CloudWatch Alarm trên metric AWS/Billing → EstimatedCharges
  3. Set threshold (ví dụ: $50)
  4. Action: gửi notification qua SNS

Khác AWS Budgets ở điểm gì?

  • CloudWatch Billing Alarm: chỉ cost, chỉ ở us-east-1
  • AWS Budgets: cost + usage + RI/SP, global, nhiều actions hơn

Câu hỏi ôn tập

  1. Data transfer OUT từ EC2 đến internet có tính phí không? Inbound thì sao?

    Xem đáp án

    OUT từ EC2 → internet: có tính phí (~$0.09/GB từ us-east-1, giảm theo volume). Inbound từ internet → AWS: miễn phí. Đây là một trong những câu hỏi hay xuất hiện trong kỳ thi — "inbound free, outbound tính phí" là nguyên tắc chính. Data transfer trong cùng AZ (private IP) cũng miễn phí; cross-AZ tính $0.01-0.02/GB mỗi chiều.

  2. EC2 truy cập S3 cùng Region qua public endpoint có tính data transfer không?

    Xem đáp án

    Không — EC2 truy cập S3 cùng Region qua public endpoint là miễn phí. AWS miễn phí data transfer giữa EC2 và S3 trong cùng Region. Tuy nhiên nếu dùng VPC endpoint cho S3 (gateway endpoint) cũng miễn phí và an toàn hơn (không qua internet). Cross-Region S3 transfer mới tính phí.

  3. Khác biệt giữa AWS Budgets và CloudWatch Billing Alarm?

    Xem đáp án

    CloudWatch Billing Alarm: chỉ track cost, chỉ khả dụng ở us-east-1, alert đơn giản qua SNS. AWS Budgets: track cost + usage + Reserved Instance utilization/coverage + Savings Plans; có thể apply Budget Actions (tự động stop EC2, apply SCP...); hỗ trợ nhiều notification types hơn; global. AWS Budgets mạnh hơn nhiều — khuyến nghị dùng cho production.

  4. Cost Allocation Tags cần bao lâu để xuất hiện trong Cost Explorer sau khi activate?

    Xem đáp án

    24 giờ sau khi activate tag trong Billing Console. Quan trọng: chỉ cost data sau khi activate mới được tag — dữ liệu lịch sử trước đó không được retroactively tag. Workflow: tag resources → activate trong Billing Console → đợi 24h → filter theo tag trong Cost Explorer.

  5. Để tracking chi phí theo Project, bạn cần làm gì?

    Xem đáp án

    (1) Tag tất cả resources với key-value phù hợp, ví dụ Project=ProjectAlpha. (2) Vào Billing Console → Cost Allocation Tags → activate tag Project. (3) Sau 24 giờ, Cost Explorer hiển thị breakdown theo tag Project. Tốt nhất nên enforce tagging bằng AWS Organizations Tag Policies hoặc SCP để đảm bảo không có resource nào thiếu tag.

Bài tập thực hành

  • Setup Billing Alarm tại $5 (an toàn cho việc học)
  • Tạo AWS Budget cost $10/tháng với email notification
  • Mở Cost Explorer xem chi phí 30 ngày qua, group by Service
  • Vào Pricing Calculator estimate 1 EC2 t3.medium chạy 730 hrs + 100 GB EBS + 50 GB data transfer out
  • Tag resources với Environment=dev và activate cost allocation tag

Tài liệu tham khảo chính thức


Tiếp theo: AWS CLI và SDK