Loading...
Back to Services

Case Study

AWS Cost Review Automation

FinOps Automation Python boto3

Cost data → Audit → Evidence → Savings

FinOps · Jun 2026  ·  ~9 min read  ·  By Tùng Lê

AWS Cost Review Automation — Từ 2 Ngày Xuống 30 Phút

Tóm tắt: Rà soát chi phí AWS thủ công tốn 1–2 ngày mỗi lần và phụ thuộc kinh nghiệm người làm. Mình đã xây dựng một hệ thống tự động rà soát chi phí bằng Python — thu thập hóa đơn, kiểm kê tài nguyên, phát hiện lãng phí theo khung 7 nhóm tiêu chí, đối chiếu bằng chứng và xuất báo cáo. Kết quả trên dự án thật: giảm 90% thời gian, phát hiện 248–360 USD/tháng có thể tiết kiệm, và mọi đề xuất đều kèm bằng chứng chi phí cụ thể.

-90%
Thời gian rà soát
(~18–24h → ~30 phút)
$248–360
Tiết kiệm tiềm năng
mỗi tháng
+33.8%
Bill thực tế vs
ước tính nội bộ
7
Nhóm tiêu chí
rà soát chuẩn hóa

Công nghệ sử dụng

Pythonboto3AWS CLI v2 Cost Explorer APICompute OptimizerTrusted Advisor AWS BudgetsCost Anomaly Detection EC2 / EBSVPC EndpointsSavings Plans / RI

Vai trò của mình

Tự thiết kế và xây dựng toàn bộ hệ thống tự động rà soát chi phí AWS: thu thập dữ liệu chi phí, kiểm kê tài nguyên, phát hiện lãng phí, đối chiếu bằng chứng, ước tính tiết kiệm và sinh báo cáo cho khách.

Bước 1 — Vấn đề: rà soát thủ công không mở rộng được

Trước khi xây dựng hệ thống này, mỗi lần rà soát chi phí AWS cho khách hàng tốn 1–2 ngày công thủ công. Quy trình thường là:

  • Mở công cụ phân tích chi phí của AWS, lọc theo từng dịch vụ, chụp màn hình
  • Đăng nhập console, kiểm tra thủ công từng loại tài nguyên (ổ đĩa, bản sao lưu, endpoint mạng...)
  • Tổng hợp vào Excel rồi viết báo cáo

Vấn đề: phụ thuộc vào kinh nghiệm người làm, thiếu quy chuẩn thống nhất, và khó mở rộng cho nhiều khách hàng — mỗi lần rà lại làm từ đầu, khó đảm bảo rà đủ và đều.

Trường hợp đã ẩn danh — mọi số tiền tuyệt đối và tên tài nguyên khách hàng được che.

Bước 2 — Xây dựng hệ thống tự động

Mình thiết kế quy trình xử lý theo 3 nguyên tắc:

  1. Khung cố định, dữ liệu thay đổi — luôn rà theo 7 nhóm tiêu chí và cách phân loại lãng phí thống nhất
  2. Máy làm việc lặp lại, người làm việc cần phán đoán — script tự động thu thập & tính toán; con người xác minh và ra khuyến nghị
  3. Có bằng chứng, không đoán — mọi kết luận trỏ về nguồn dữ liệu cụ thể

Input

Khách hàng cung cấp
Thông tin dự án — khách hàng, kỳ phân tích, vùng AWS
Bảng câu hỏi đầu vào — kiến trúc hệ thống, giả định
Sơ đồ kiến trúc — để đối chiếu chi phí với hệ thống

Xử lý tự động

Python — chạy trực tiếp, không cần dựng hạ tầng riêng
Thu thập hóa đơn theo tháng từ Cost Explorer
Phân tích: khoản nào tốn nhất, thực tế lệch ước tính bao nhiêu, tháng nào tăng bất thường
Rà tài nguyên thừa: ổ đĩa (EBS), bản sao lưu (snapshot), endpoint mạng không dùng
Kiểm tra tài nguyên cấp dư so với nhu cầu (qua Compute Optimizer)
Rà mức độ tận dụng các gói cam kết trả trước (Savings Plans / Reserved Instances)
Kiểm tra công cụ quản trị chi phí: cảnh báo ngân sách, phát hiện bất thường

Con người rà soát

Phán đoán & xác minh — phần máy không làm được
Đọc kết quả tự động mà công cụ tổng hợp lại
Đối chiếu quan hệ giữa các tài nguyên trước khi khuyến nghị (tránh xóa nhầm)
Viết đề xuất kèm bằng chứng chi phí cụ thể
Báo cáo: nêu vấn đề trước, giải pháp và lộ trình sau

Kết quả

Giao cho khách
Danh sách phát hiện — kèm số tiền & mức ưu tiên
Báo cáo tổng hợp cho khách hàng

Toàn cảnh quy trình — máy làm phần lặp lại, người làm phần cần phán đoán.

Chi tiết kỹ thuật: các module trong pipeline Dành cho kỹ sư

Pipeline viết bằng Python 3.10+ (chỉ dùng thư viện chuẩn + boto3), chạy trực tiếp qua AWS CLI v2 theo profile của khách (auth qua SSO / saml2aws) — không cần dựng hạ tầng riêng.

ModuleNhiệm vụ
fetch_costs.pyKéo bill Cost Explorer theo tháng (Unblended Cost), group by SERVICE / USAGE_TYPE
analyze_costs.pyPareto top service, nhóm theo kiến trúc, đối chiếu Estimate vs Actual, phát hiện bất thường month-over-month (rule-based)
investigate_findings.pyRà EBS / snapshot / VPC Endpoint / EIP / ALB orphan hoặc idle (evidence-based, có traffic check)
investigate_provisioning.pyRight-sizing qua Compute Optimizer
investigate_commitments.pyUtilization của Savings Plans / Reserved Instances
investigate_finops_tools.pyKiểm tra Budgets, Cost Anomaly Detection, Trusted Advisor, Cost Allocation Tags
drill_costs.pyDrill sâu theo USAGE_TYPE, tính run-rate quanh một sự kiện/cutover

Đầu vào cấu hình qua engagement.json (client, kỳ phân tích, scope region, auth profile). Đầu ra: run-summary.md + investigation-summary.md (dữ liệu thô, chưa có narrative) để người review đọc trước khi viết finding.

Bước 3 — Khung rà soát 7 nhóm tiêu chí

Mọi dự án đều rà theo cùng một khung 7 nhóm tiêu chí, để đảm bảo không bỏ sót khoản nào:

Nhóm tiêu chí Mô tả Ví dụ phát hiện
1. Tài nguyên không dùng Tài nguyên còn tồn tại nhưng không phục vụ gì Ổ đĩa mồ côi, bản sao lưu thừa, endpoint mạng không dùng
2. Đúng kích cỡ Tài nguyên cấp lớn hơn nhu cầu thực Máy chủ, cơ sở dữ liệu cấp dư công suất
3. Cam kết mua trả trước Tận dụng gói giá cam kết dài hạn Gói trả trước dùng chưa hết hoặc còn thiếu
4. Vòng đời lưu trữ Quản lý dữ liệu cũ để giảm phí lưu trữ Kho lưu trữ không có chính sách dọn dữ liệu cũ
5. Truyền dữ liệu Chi phí truyền dữ liệu trong/ra ngoài AWS Cổng NAT, truyền dữ liệu chéo vùng
6. Lịch vận hành Tắt/mở tài nguyên theo giờ làm việc Môi trường thử nghiệm chạy 24/7 không cần thiết
7. Quản trị chi phí Cơ chế kiểm soát & cảnh báo chi phí Cảnh báo ngân sách, gắn nhãn, người phụ trách review

Bước 4 — Pilot trên khách hàng thật

Áp dụng cho dự án đầu tiên — môi trường production AWS tại vùng US (phân tích 3 tháng hóa đơn):

Chỉ số Giá trị
Chi phí trung bình / tháng Đã ẩn theo yêu cầu bảo mật
Chi phí thực tế so với ước tính của khách Cao hơn 33.8%
Cơ hội tiết kiệm phát hiện được 248–360 USD/tháng
Điểm trưởng thành quản trị chi phí 1.5/5 (thang tự đánh giá)

Phân bổ chi phí theo nhóm kiến trúc (3 tháng gộp):

Nhóm % tổng bill
Máy chủ & tính toán83.5%
Bảo mật & ghi log9.6%
Mạng & CDN3.4%
Dữ liệu & lưu trữ2.9%
Khác0.6%

Số liệu đã ẩn danh — chỉ hiển thị tỷ trọng %, không lộ số tiền tuyệt đối hay tên tài nguyên khách hàng.

Bước 5 — Những phát hiện chính

Ổ đĩa EBS — tiết kiệm 218–300 USD/tháng

  • Phát hiện: 27 ổ đĩa có vấn đề — ổ mồ côi (không gắn vào máy nào), ổ gắn vào máy đang tắt, và cơ sở dữ liệu production vẫn dùng loại ổ đời cũ (gp2) đắt hơn loại mới (gp3) cùng hiệu năng.
  • Đề xuất: Xóa ổ mồ côi, gỡ bỏ cụm máy đã dừng, chuyển cơ sở dữ liệu sang loại ổ mới rẻ hơn.
Chi tiết kỹ thuật: cách phát hiện & gp2 → gp3 Dành cho kỹ sư

Cách phát hiện ổ lãng phí (evidence-based):

  • Orphan: volume ở trạng thái available (không có attachment) — không gắn vào instance nào.
  • Attached-to-stopped: volume in-use nhưng instance đích ở trạng thái stopped — vẫn tính phí storage dù không chạy.
  • Đối chiếu chéo với Compute OptimizerTrusted Advisor (idle volume) để tăng độ tin cậy trước khi khuyến nghị.

gp2 → gp3: gp3 rẻ hơn ~20% ở cùng baseline (3.000 IOPS / 125 MB/s miễn phí), tách rời dung lượng và hiệu năng. Migrate qua modify-volume — không cần detach, không downtime, nhưng nên làm trong maintenance window để theo dõi.

aws ec2 modify-volume --volume-id vol-xxxx \
  --volume-type gp3 --iops 3000 --throughput 125

Ước tính tiết kiệm theo hướng thận trọng — chỉ tính phần chắc chắn (orphan + stopped + delta gp2/gp3), không cộng dồn giả định lạc quan.

Endpoint mạng (VPC Endpoint) — tiết kiệm 30–60 USD/tháng

  • Phát hiện: 10 endpoint kết nối riêng tới dịch vụ AWS, tốn ~128 USD/tháng, trong đó một số ít dùng.
  • Đề xuất: Giữ các endpoint thiết yếu, rà bỏ những cái ít dùng.

Quản trị chi phí — tác động gián tiếp

  • Phát hiện: Chưa có cảnh báo ngân sách, chưa gắn nhãn tài nguyên bắt buộc, chưa có người review hóa đơn định kỳ.
  • Đề xuất: Bật cảnh báo ngân sách, xây quy định gắn nhãn để phát hiện chi phí tăng bất thường sớm.

Bước 6 — Mọi khuyến nghị đều có bằng chứng

Nguyên tắc xuyên suốt: không đề xuất cắt giảm dựa trên phỏng đoán. Mỗi khuyến nghị đều được đối chiếu từ nhiều nguồn dữ liệu (hóa đơn, công cụ gợi ý của AWS, cấu hình tài nguyên thực tế) và kiểm tra tác động thật trước khi đưa vào báo cáo.

  • Kiểm tra quan hệ giữa các tài nguyên trước khi khuyến nghị xóa — ví dụ một bản sao lưu có thể đang được ảnh hệ thống dùng — để tránh phá vỡ hệ thống đang chạy.
  • Ước tính tiết kiệm theo hướng thận trọng (dè dặt), kèm mã tài nguyên cụ thể để đội kỹ thuật thực thi được ngay.
  • Phân loại rõ ràng: có thể tối ưu / chấp nhận (do yêu cầu công việc) / cần theo dõi thêm.
Điểm mấu chốt: Máy lo phần thu thập & tính toán; con người lo phần phán đoán & xác minh. Khách hàng nhận được khuyến nghị đã kiểm chứng — không phải một danh sách "nghi ngờ".
Chi tiết kỹ thuật: logic cross-check trước khi khuyến nghị xóa Dành cho kỹ sư

Ví dụ điển hình: một số snapshot ban đầu trông như "orphan" vì volume nguồn đã xóa. Nhưng nếu snapshot đó đang được một AMI đăng ký dùng làm block device mapping, xóa nó sẽ phá AMI — không khôi phục launch được nữa.

Quy tắc quyết định trước khi flag snapshot là waste:

snapshot không còn volume nguồn?
        │
        ▼
được AMI nào đang đăng ký dùng?  ── CÓ ─▶ GIỮ (không phải waste)
        │
       KHÔNG
        │
        ▼
có backup marker (AWS Backup / DLM)? ── CÓ ─▶ GIỮ
        │
       KHÔNG
        │
        ▼
   ứng viên xóa (chờ người xác nhận)

Cùng nguyên tắc áp cho các tài nguyên khác: EIP kiểm tra association, ALB kiểm tra target group có traffic, VPC Endpoint kiểm tra consumer thực tế. Không xóa dựa trên trạng thái bề mặt.

Kết quả

Chỉ số Trước Sau Thay đổi
Thời gian mỗi lần rà soát 1–2 ngày ~30 phút Giảm 90%
Tiết kiệm tiềm năng 248–360 USD/tháng Mới
Độ tin cậy của khuyến nghị Phụ thuộc kinh nghiệm Có bằng chứng chi phí + mã tài nguyên Chuẩn hóa
Mức độ bao phủ khi rà Dễ bỏ sót Đủ 7 nhóm tiêu chí Nhất quán

Bài học rút ra

  1. Tự động hóa để nhanh, con người để đúng — máy lo phần thu thập & tính toán, chuyên gia lo phần phán đoán & xác minh.
  2. Khung cố định giúp không bỏ sót — 7 nhóm tiêu chí đảm bảo rà đầy đủ, nhất quán qua mọi dự án.
  3. Mọi khuyến nghị đều có bằng chứng — đối chiếu nhiều nguồn dữ liệu trước khi đề xuất.
  4. Quản trị chi phí quan trọng không kém việc tối ưu — cảnh báo ngân sách & gắn nhãn giúp phát hiện chi phí tăng đột biến sớm, tránh tái phát.
  5. Kết quả đo được, thực thi được — ước tính tiết kiệm thận trọng, kèm hành động cụ thể cho đội kỹ thuật.

Cần rà soát & tối ưu chi phí AWS?

Mình nhận rà soát chi phí AWS — từ dựng quy trình tự động đến kiểm tra thủ công chi tiết, kèm lộ trình tiết kiệm cụ thể.

Liên hệ tư vấn