← Semua pembelajaran / AWS untuk AI Engineer
Fase 7 · Observability, Biaya & Evaluasi

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 BudgetsCost Anomaly Detection
AmbangKamu tetapkanDipelajari dari polamu
MenangkapTotal melewati batasPenyimpangan dari kebiasaan
Contoh yang lolosLonjakan 5× yang masih di bawah batas bulananKenaikan bertahap yang wajar
PerawatanPerlu disesuaikan saat skala berubahMenyesuaikan 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

LapisAlatKecepatanMenangkap
1Alarm CloudWatch atas OutputTokenCountMenitLoop yang kabur, penyalahgunaan
2Cost Anomaly DetectionBeberapa jamPola pengeluaran yang menyimpang
3AWS BudgetsBeberapa jamTotal 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

  1. Cost Explorer: layanan dan tag mana yang naik?
  2. CloudWatch: Invocations yang naik, atau OutputTokenCount per permintaan?
  3. Invocation log: prompt seperti apa yang menghasilkan keluaran raksasa?
  4. X-Ray: apakah ada loop tool yang berputar lebih banyak dari seharusnya?
  5. 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.