Site logo
Tác giả
  • avatar Nguyễn Đức Xinh
    Name
    Nguyễn Đức Xinh
    Twitter
Ngày xuất bản
Ngày xuất bản

Công cụ và Dịch vụ AWS Pricing: Pricing Calculator, Cost Explorer, Budgets, CUR và Quản lý Chi phí Hiệu quả

Vì sao AWS Pricing Tools quan trọng

Thành công trên cloud không chỉ là xây hệ thống có khả năng scale — mà còn là vận hành chúng hiệu quả. AWS cung cấp bộ công cụ pricing và quản trị chi phí phong phú giúp bạn ước tính, theo dõi, phân bổ, dự báo và tối ưu chi phí. Khi dùng kết hợp, các công cụ này tạo thành vòng lặp kiểm soát chi phí khép kín cho đội kỹ thuật và tài chính (FinOps): plan, measure, optimize và govern.

Bài viết này bao quát các công cụ và dịch vụ pricing cốt lõi của AWS với hướng dẫn hands-on, quan điểm thực tiễn và ví dụ có thể áp dụng ngay.


Bức tranh tổng quan Toolchain AWS Pricing

  • Định giá & Lập kế hoạch(Pricing & Planning): AWS Pricing Calculator
  • Khả năng hiển thị & Phân tích(Visibility & Analysis): AWS Cost Explorer (và API)
  • Cảnh báo & Giới hạn bảo vệ(Alert & Guardrails): AWS Budgets (cost, usage, Reserved Instances (RI) và Savings Plans (SP), utilization & coverage)
  • Dữ liệu thực tế(Ground Truth Data): AWS Cost and Usage Reports (CUR)
  • Phân bổ chi phí nội bộ(Chargeback/Showback): Cost Allocation Tags, Cost Categories, AWS Billing Conductor
  • Phát hiện & Đề xuất(Detection & Recommendations): Cost Anomaly Detection, Savings Plans & RI recommendations, Compute Optimizer, Trusted Advisor
  • Tích hợp & Báo cáo(Integrations & Reporting): Athena/Glue/QuickSight trên CUR, SNS/Chatbot alerts, nền tảng FinOps bên thứ ba

AWS Pricing Calculator

AWS Pricing Calculator là công cụ lập kế hoạch trước khi triển khai. Nó ước tính chi phí dịch vụ cho kiến trúc dự kiến và giúp so sánh các cấu hình.

Năng lực chính

  • Ước tính chi phí theo từng service với breakdown chi tiết
  • Nhận biết giá theo region và hỗ trợ nhiều kịch bản cấu hình
  • Export/share estimates để review với stakeholders
  • Mô hình hoá capacity và commitment (On-Demand vs. Savings Plans vs. RIs)

Khi nào dùng

  • Thiết kế kiến trúc sớm, phân tích TCO, hoặc lập kế hoạch migration
  • So sánh instance family, storage class hoặc data transfer pattern
  • Truyền thông kỳ vọng chi phí với stakeholders kinh doanh

Quy trình thực tế

  1. Xác định giả định workload: traffic, concurrency, data volume, RPO/RTO.
  2. Chọn core services (EC2/EKS/Lambda, RDS/Aurora/DynamoDB, S3/EFS/EBS, CloudFront, NAT, ...).
  3. Mô hình tăng trưởng và chọn chiến lược commitment (ban đầu On-Demand, sau khi baseline thì Savings Plans/RIs).
  4. Export và đính kèm estimate vào tài liệu architecture review.

Tips

  • Cộng thêm overhead: NAT Gateway, data transfer out, snapshots, backups, logs, observability và support plan.
  • Mô hình hoá riêng phần bursty và steady-state.
  • Rà soát lại giả định trên Calculator theo quý khi usage thay đổi.

AWS Cost Explorer (CE)

Cost Explorer là dashboard quan sát chi phí hằng ngày của bạn.

Tính năng chính

  • Phân tích cost và usage theo service, account, region, tag, API operation
  • Metrics: Unblended, Amortized, NetAmortized costs; UsageQuantity
  • RI/SP Utilization và Coverage views
  • Dự báo dựa trên xu hướng lịch sử
  • Tích hợp Cost Anomaly Detection

Phân tích phổ biến

  • Daily cost theo service và linked account để phát hiện hồi quy chi phí
  • Amortized cost của EC2/RDS để đánh giá lợi ích RI/Savings
  • Data transfer cost phân đoạn theo region và nguồn/đích
  • Cost theo tag (product/team/environment) cho showback/chargeback

Ví dụ CLI (Cost Explorer API)

aws ce get-cost-and-usage \
  --time-period Start=$(date -v-30d +%Y-%m-01),End=$(date -v+1m -v1d -v-1d +%Y-%m-%d) \
  --granularity DAILY \
  --metrics UnblendedCost AmortizedCost UsageQuantity \
  --group-by Type=DIMENSION,Key=SERVICE

Tip: Dùng GROUP BY TAG để ăn khớp với Cost Allocation Tags sau khi đã activate.


AWS Budgets

Budgets chuyển phân tích thành các “lan can” có thể thực thi.

Loại budget

  • Cost budgets (actual và forecast)
  • Usage budgets (ví dụ: giờ EC2, GB của S3)
  • RI utilization và coverage budgets
  • Savings Plans utilization và coverage budgets

Alerting

  • Email, SNS và Chat notifications qua AWS Chatbot (Slack/Chime)
  • Nhiều ngưỡng (ví dụ: 50%, 80%, 100%, 120%) kèm forecast alerts

Mẫu áp dụng thực tế

  • Budget chi phí theo account hàng tháng với cảnh báo forecast 80%
  • Budget theo sản phẩm dùng Cost Allocation Tags (ví dụ: Product=Checkout)
  • RI/SP utilization budgets để tránh under-utilization

Ví dụ: CLI tạo cost budget (đơn giản hoá)

aws budgets create-budget \
  --account-id 111122223333 \
  --budget '{
    "BudgetName":"prod-monthly",
    "TimeUnit":"MONTHLY",
    "BudgetType":"COST",
    "BudgetLimit":{"Amount":"5000","Unit":"USD"},
    "CostTypes":{"IncludeCredit":false,"IncludeRefund":false}
  }'

Thiết lập tiếp notifications/subscribers qua AWS Budgets APIs.


AWS Cost and Usage Reports (CUR)

CUR là bộ dữ liệu billing chi tiết theo line-item được deliver vào S3 — nguồn tin cậy (source of truth) cho analytics, đối soát và tự động hoá.

Vì sao CUR quan trọng

  • Dữ liệu chi phí đầy đủ, chi tiết, cập nhật nhiều lần mỗi ngày
  • Cột dữ liệu cho product, pricing, line item, reservation, savings plan, discounts, taxes
  • Hỗ trợ phân tích Amortized và NetAmortized cost
  • Tích hợp với Athena/Glue cho SQL analytics và QuickSight cho BI

Khuyến nghị thiết lập

  • Tạo S3 bucket kèm lifecycle (ví dụ: chuyển sang Glacier sau 90 ngày)
  • Enable CUR với granularity theo giờ và resource IDs
  • Partition theo tháng; bật Parquet để tăng hiệu năng và giảm chi phí
  • Tự tạo tích hợp Athena/Glue từ console hoặc định nghĩa schema của bạn

Ví dụ bảng Athena cho CUR (Parquet)

CREATE EXTERNAL TABLE IF NOT EXISTS cur_parquet (
  identity_line_item_id string,
  bill_payer_account_id string,
  line_item_usage_account_id string,
  product_product_name string,
  product_region string,
  product_instance_type string,
  line_item_usage_start_date timestamp,
  line_item_usage_end_date timestamp,
  line_item_usage_type string,
  line_item_operation string,
  line_item_resource_id string,
  line_item_usage_amount double,
  line_item_unblended_cost double,
  reservation_amortized_upfront_cost_for_usage double,
  savings_plan_savings_plan_a_r_n string,
  pricing_term string,
  cost_category_product string
)
PARTITIONED BY (year string, month string)
STORED AS PARQUET
LOCATION 's3://YOUR-BUCKET/cur/prefix/'
TBLPROPERTIES ("parquet.compression"="SNAPPY");

Điều chỉnh cột để khớp schema CUR của bạn; khuyến nghị dùng Glue auto-crawler hoặc template Athena do AWS cung cấp.

SQL hữu ích

  • Amortized EC2 cost theo account mỗi tháng
SELECT year, month, line_item_usage_account_id AS account,
       SUM(line_item_unblended_cost 
           + COALESCE(reservation_amortized_upfront_cost_for_usage,0)) AS amortized_cost
FROM cur_parquet
WHERE product_product_name = 'Amazon Elastic Compute Cloud'
GROUP BY 1,2,3
ORDER BY 1,2,3;
  • Top services 30 ngày gần nhất theo net cost
SELECT product_product_name AS service,
       SUM(line_item_unblended_cost) AS cost
FROM cur_parquet
WHERE line_item_usage_start_date >= date_add('day', -30, current_date)
GROUP BY 1
ORDER BY cost DESC
LIMIT 10;

Cost Allocation Tags, Cost Categories và Billing Conductor

Cost Allocation Tags

  • Dùng schema tag thống nhất (Product, Team, Environment, Owner, CostCenter)
  • Activate tags trong Billing console cho cost allocation (không tự động)
  • Ép buộc bằng tag policies trong AWS Organizations và IaC (Terraform/CloudFormation)

Cost Categories

  • Tạo nhóm thân thiện với business (ví dụ: BusinessUnit, Platform vs. Feature)
  • Rules có thể map theo account, tag, service hoặc dimension; có thể kế thừa
  • Dùng trong Cost Explorer, Budgets và truy vấn CUR

AWS Billing Conductor (ABC)

  • Kế hoạch giá tuỳ chỉnh và pro forma billing cho nội bộ (chargeback)
  • Trình bày hoá đơn được “biên tập” cho các đơn vị với markup/discount
  • Hữu ích cho MSPs hoặc tổ chức lớn cần showback/chargeback

AWS Cost Anomaly Detection

Giám sát dựa trên ML tự động, học lịch sử chi tiêu của bạn và cảnh báo các spike bất thường.

Best practices

  • Tạo monitors theo service và theo account hoặc cost category để tăng độ chính xác
  • Bắt đầu với high-sensitivity rồi tinh chỉnh sau vài tuần học
  • Route cảnh báo đến Slack qua SNS + AWS Chatbot

Tình huống điển hình

  • Tăng đột biến S3 DataTransfer-Out do public access cấu hình sai
  • Lỗi autoscaler EKS tạo quá nhiều nodes
  • Spike concurrency Lambda do retry mất kiểm soát

Hỗ trợ Tối ưu: Savings Plans, RIs, Compute Optimizer, Trusted Advisor

  • Savings Plans và Reserved Instances: Commit phần baseline ổn định; ưu tiên Compute Savings Plans cho linh hoạt; cân nhắc EC2 Instance Savings Plans khi workload rất ổn định để có discount cao hơn.
  • Compute Optimizer: Gợi ý rightsizing cho EC2, EBS, Lambda và ECS trên Fargate dựa trên mức sử dụng.
  • Trusted Advisor: Kiểm tra cost (idle load balancers, underutilized EC2, unattached EBS, S3 IA access ratio thấp).
  • Cost Optimization Hub: Tập trung hoá recommendations từ nhiều công cụ (nếu khả dụng) để đơn giản hoá hành động.

Bảng So sánh: AWS Pricing Tools và Services

Service Purpose Stage Granularity API Typical Users
Pricing Calculator Estimation Plan Scenario-level No Architects, PMs
Cost Explorer Analysis/Forecast Measure Daily/Monthly Yes (Cost Explorer API) FinOps, Eng Leads
Budgets Alerts/Guardrails Control Budget-level Yes Finance, FinOps
Cost and Usage Reports (CUR) Raw Billing Data Measure Line item N/A (S3 delivery) Data/BI, FinOps
Cost Categories Business Grouping Govern Aggregation No FinOps
Cost Anomaly Detection Spike Detection Control Account/Service/Tag Yes FinOps, SRE
Compute Optimizer Rightsizing Optimize Resource Yes Eng, SRE
Trusted Advisor Best-Practice Checks Optimize Account/Service Yes Eng
Billing Conductor Pro Forma Billing Govern Account/BU Yes Finance, MSP

Reference Architectures

1) Cost Analytics Lake

  • Nguồn: CUR (Parquet) lên S3 với granularity theo giờ
  • Glue Crawler cập nhật schema; Athena cho SQL; QuickSight làm dashboard
  • Partition theo year/month; bật S3 lifecycle và access logging

2) Real-time Alerts Pipeline

  • Cost Anomaly Detection -> SNS -> AWS Chatbot (Slack) -> Jira ticket qua webhook
  • Budgets threshold alerts -> SNS -> Lambda tự động hành động (ví dụ: dừng instances môi trường dev)

3) Multi-Account Chargeback

  • AWS Organizations consolidated billing
  • Cost Allocation Tags + Cost Categories
  • Tuỳ chọn: Billing Conductor cho pro forma rates và markups

FinOps Best Practices

  • Thiết lập budgets ngay từ ngày đầu; không vận hành thiếu guardrails.
  • Siết chặt tag hygiene bằng Organization tag policies và CI/CD.
  • Baseline trước, sau đó commit Savings Plans (thường 50–70% steady-state compute).
  • Xử lý sớm data transfer; dùng CloudFront, PrivateLink, VPC endpoints và đặt cùng AZ khi có thể.
  • Tối ưu storage classes (S3 lifecycle sang IA/Glacier; RDS storage autoscaling policies).
  • Rightsize liên tục: EC2 instance family, EBS gp3 vs gp2, Lambda memory/timeout, EKS node groups.
  • Rà soát NAT Gateway và inter-AZ transfer; cân nhắc VPC endpoints và thay đổi kiến trúc.
  • Tự động hoá báo cáo chi phí hằng tuần: CE exports + CUR queries -> Slack/Email.
  • Nâng cao nhận thức: công bố cost scorecard theo product/team.

Lỗi thường gặp và cách tránh

  • Chưa activate tags trong Billing: chi phí sẽ không hiển thị theo tag trong CE/CUR. Hãy activate rõ ràng.
  • Quá phụ thuộc On-Demand: bỏ lỡ Savings Plans/RI sau khi usage đã ổn định.
  • Bỏ qua data transfer: hoá đơn bất ngờ từ inter-AZ, cross-region hoặc egress.
  • CUR không dùng Parquet/partitioning: truy vấn Athena chậm và tốn kém.
  • Budgets không có enforcement: cảnh báo bị bỏ qua. Hãy tự động hoá hành động tiếp theo.
  • Hiểu sai metrics chi phí: nắm rõ Unblended vs Amortized vs NetAmortized.
  • Không đặt lifecycle cho bucket CUR: chi phí S3 tăng dần theo thời gian.

FAQ

Nên chọn Savings Plans hay Reserved Instances?

Ưu tiên Compute Savings Plans để có linh hoạt qua nhiều instance family, size và region. Dùng EC2 Instance Savings Plans hoặc Standard RIs khi workload rất ổn định và bạn cần mức discount tối đa cho các family cụ thể.

CUR chi tiết tới mức nào và được cập nhật bao lâu một lần?

Khuyến nghị granularity theo giờ; cập nhật mỗi vài giờ. Kỳ vọng có độ trễ với credits/refunds và các khoản tính theo tỷ lệ.

Có thể phân bổ chi phí cho đơn vị kinh doanh khi tagging chưa hoàn hảo không?

Có. Dùng Cost Categories để nhóm theo account và service trước, rồi dần dần bổ sung tags khi chín muồi. Billing Conductor có thể trình bày hoá đơn tuỳ chỉnh với custom rates.

Cách nhanh nhất để phát hiện hồi quy chi phí?

Trong Cost Explorer, xem Daily Unblended Cost group theo Service và Linked Account; sau đó drill down theo API Operation và Region. Bật Anomaly Detection để có cảnh báo sớm.


Tài nguyên tham khảo