Billingのメトリクスの可視化
Billing のメトリクスは CloudWatch にあるので、us-east-1 の全てのメトリクスを CloudWatch Metric Streams で送っていれば次のようなクエリで参照できる。
SELECT max(`aws.billing.EstimatedCharges`) - min(`aws.billing.EstimatedCharges`) as daily_usage
FROM Metric
WHERE aws.Namespace = 'AWS/Billing' AND `metricName` = 'aws.billing.EstimatedCharges' AND `aws.billing.ServiceName` IS NOT NULL
FACET monthOf(`timestamp`), `aws.billing.ServiceName`
TIMESERIES 2 day SLIDE BY 1 day SINCE 4 week ago
入っている値が月の累積値なので Sliding window で一日前との差分を取ることで日のコストを出している。
AWS Billing monitoring integration
Billing はサービスごとの値なので、タグなどの粒度でより詳細に見るには Budget の値が欲しいところだが、CloudWatch にメトリクスがないので Metric Streams では送られない。 budgets:ViewBudget を付与し Billing にチェックを入れて Polling を行うと Budget のデータが取得され参照できるようになる。
AWS Cost Management でコストをモニタリングし最適化する - sambaiz-net
SELECT
latest(100 * `provider.actualAmount` / `provider.limitAmount`) as 'UsageRate',
latest(100 * `provider.forecastedAmount` / `provider.limitAmount`) as 'ForecastedRate'
FROM FinanceSample
WHERE provider='BillingBudget'
FACET `provider.budgetName`