AWS Cost Anomaly Detection
Budget butuh angka yang kamu tetapkan sendiri. Cost Anomaly Detection mempelajari pola pengeluaranmu dan melaporkan yang menyimpang darinya.
Intisari
- Memakai machine learning atas riwayat biayamu — tidak perlu menebak ambang.
- Monitor menentukan apa yang diawasi; subscription menentukan siapa diberi tahu dan kapan.
- Monitor bisa dibatasi per layanan, per tag biaya, atau per akun.
- Notifikasi bisa harian, mingguan, atau segera saat anomali terdeteksi.
- Layanannya gratis; yang kamu bayar hanya biaya AWS yang diawasinya.
Bedanya dengan Budgets
| AWS Budgets | Cost Anomaly Detection | |
|---|---|---|
| Ambang | Kamu tetapkan | Dipelajari dari polamu |
| Menangkap | Total melewati batas | Penyimpangan dari kebiasaan |
| Contoh yang lolos | Lonjakan 5× yang masih di bawah batas bulanan | Kenaikan bertahap yang wajar |
| Perawatan | Perlu disesuaikan saat skala berubah | Menyesuaikan sendiri |
Baris ketiga adalah alasan memakai keduanya. Budget 500 USD tidak akan berbunyi kalau Bedrock-mu yang biasanya 2 USD/hari mendadak jadi 40 USD/hari di tanggal 3 — totalnya masih jauh di bawah batas. Deteksi anomali menangkap justru itu.
Menyiapkan
ce = boto3.client("ce")
monitor = ce.create_anomaly_monitor(AnomalyMonitor={
"MonitorName": "monitor-bedrock",
"MonitorType": "DIMENSIONAL",
"MonitorDimension": "SERVICE",
})
ce.create_anomaly_subscription(AnomalySubscription={
"SubscriptionName": "lonjakan-bedrock",
"MonitorArnList": [monitor["MonitorArn"]],
"Subscribers": [{"Type": "SNS", "Address": TOPIK_SNS}],
"Frequency": "IMMEDIATE",
"ThresholdExpression": {
"Dimensions": {
"Key": "ANOMALY_TOTAL_IMPACT_ABSOLUTE",
"Values": ["20"], # laporkan kalau dampaknya di atas 20 USD
"MatchOptions": ["GREATER_THAN_OR_EQUAL"],
}
},
})
Ambang dampak mencegah kelelahan alarm. Tanpa ThresholdExpression, anomali senilai
0,80 USD ikut dilaporkan, dan dalam dua minggu semua orang berhenti membacanya. Setel di angka yang benar-benar
layak diinterupsi.
Monitor per tag
ce.create_anomaly_monitor(AnomalyMonitor={
"MonitorName": "monitor-per-proyek",
"MonitorType": "CUSTOM",
"MonitorSpecification": {
"Tags": {"Key": "proyek", "Values": ["asisten-hr"]}
},
})
Ini yang membuat tag dari Fase 0 terbayar. Monitor per layanan memberi tahu "Bedrock naik"; monitor per tag memberi tahu "proyek asisten-hr yang naik" — perbedaan antara satu jam penyelidikan dan lima menit.
Tiga lapis deteksi biaya
| Lapis | Alat | Kecepatan | Menangkap |
|---|---|---|---|
| 1 | Alarm CloudWatch atas OutputTokenCount | Menit | Loop yang kabur, penyalahgunaan |
| 2 | Cost Anomaly Detection | Beberapa jam | Pola pengeluaran yang menyimpang |
| 3 | AWS Budgets | Beberapa jam | Total bulanan melewati batas |
Ketiganya menangkap hal berbeda, dan yang pertama adalah satu-satunya yang cukup cepat untuk menghentikan kejadian yang sedang berlangsung. Data biaya AWS selalu tertunda beberapa jam — jadi pertahanan tercepatmu selalu berbasis metrik operasional, bukan berbasis biaya.
Setelah alarm berbunyi
- Cost Explorer: layanan dan tag mana yang naik?
- CloudWatch:
Invocationsyang naik, atauOutputTokenCountper permintaan? - Invocation log: prompt seperti apa yang menghasilkan keluaran raksasa?
- X-Ray: apakah ada loop tool yang berputar lebih banyak dari seharusnya?
- Perbaiki, lalu tambahkan kasus itu ke dataset evaluasi supaya tidak terulang.
Latihan: buat monitor anomali untuk service Amazon Bedrock dengan ambang dampak 10 USD dan notifikasi ke email. Lalu tuliskan runbook lima langkah di atas dalam bentuk yang bisa diikuti orang lain di timmu — termasuk kueri Logs Insights yang persis harus dijalankan.
Rangkuman ini sengaja dipangkas ke bagian yang dipakai di roadmap. Buka sumber aslinya saat kamu butuh detail lengkap atau referensi parameter.