2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

しくじりエンジニア!私みたいになるな!
Qiita Engineer Festa20242024年7月17日まで開催中!

AWSのコスト状況をLINEとDiscordに定期通知させてみる(高額請求回避)

Last updated at Posted at 2024-06-29

はじめに

Amazon Kendraの勉強をした後に作成したリソースを消し忘れており、$262.12 (=42,169.21 円 2024/6/29時点)の請求が来てしまいました。

image.png

私がこまめにコストの方を確認していなかったのが悪いのですが、請求アラートの設定もできていなかったため今回請求アラートの設定を行いました。
またこの際に、勉強も兼ねて自分が使っているSNS(LINE、Discord)にAWSのコスト情報を通知する仕組みも実装してみました。
本記事はこれらの内容をまとめたものになります。

請求アラートの設定

AWS Billing から請求アラートをドキュメント記載の手順通り設定(AWS Billing > 請求設定 > アラート設定)するだけです。

LINEとDiscordへの通知構成

構成としては以下のようになります。

AWS通知構成図.drawio.png

・スマホのイラスト:https://www.irasutoya.com/2014/07/blog-post_63.html

◆EventBridge

EventBridgeのスケジューラを使ってLambdaを定期的に実行しています。

◆Cost Explorer

コストを取得しています。

◆Lambda

Cost ExplorerのAPI呼び出して、コストを取得しています。
その後通知メッセージを作成した後に、LINE NotifyとDiscordにPOSTリクエストを送り、それぞれ通知を送っています。

Discordへの通知はGASを使用した下記の記事が参考になると思います。
今回は記事に記載されている処理をJavaScript⇒Pythonで焼き直してDiscordへ通知を出しています。

個人的詰まりポイント

Lambdaを実行する際に使用した requests モジュールは標準モジュールではないのでLayerに追加して実行しました。詳細は下記の記事にまとめています。

https://qiita.com/enumura1/items/22826d9925ef6836d0b9

動作確認

LINEとDiscordでそれぞれ通知を確認すると、下記のようにそれぞれメッセージを表示できていました。

LINE

image.png

Discord

image.png

終わりに

請求アラートのメール通知、LINE通知、Discord通知の3つがあれば、定期的にコスト状況を把握しやすくなり以前よりかなりマシになったと思います。
リソースを切り忘れて課金されているものがあっても、各種サービスごとにコストを表示しているのでそこも気づけそうです。

参考

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?