CloudWatchのカスタムメトリクスを減らす
個人AWSアカウントの請求書を確認していたところ、CloudWatchの料金が$2.5近くかかっていたのでコストを見直すことにした。
請求書のCloudWatchの項目には↓が記録されていた。
Amazon CloudWatch $2.41
$0.00 per metric-month - first 10 metrics 10.000 Metrics $0.00
$0.30 per metric-month for the first 10,000 metrics - Asia Pacific (Tokyo) 8.040 Metrics $2.41
カスタムメトリクスを「無料: 10メトリクス」 + 「有料: 8メトリクス」使っているとのこと。
何に使っていたっけと思い返してみると自宅のRaspberry Piに取り付けたセンサーの値を色々記録していた。
- Raspberry Pi ZeroとBME280センサを使って部屋の温度・湿度を可視化する
- MH-Z19でCO2濃度をリアルタイム計測してMackerelでアラート通知する
- Enviro+のセットアップ
- Nature Remo E liteの電力データをMackerelに記録する
CloudWatchダッシュボードで定期的にチェックできるようにしたくて、とりあえず取れる値は全部AWS IoT経由でCloudWatchに記録するようにしていたが、節約のために一部のセンサー値は送信しないように変更。
18個あったカスタムメトリクスへの記録を9個まで減らして無料枠に収まるようにした。
カスタムメトリクス自体は手動で削除できないが、値の記録を止めれば課金も止まるはず。
不要なカスタムメトリクスがないかは定期的にチェックするようにしよう。
カスタムメトリクスへの記録の減らし方
AWS IoT => メッセージのルーティング => ルール => 該当センサのルール詳細画面を表示
ページ下部のアクションに「CloudWatch metric」が登録されているので、ルールの編集で該当のアクションを削除する。
加えて、Raspberry Pi上のセンサー値送信スクリプトから該当のセンサー値を送信しないように修正した。
追記:
その後、2月分の請求書を確認したところ
$0.00 per metric-month - first 10 metrics8.954 Metrics$0.00
となっており、無料枠に収まったためCloudWatchのコストが0円になった。