AWSのコストをSlackに通知する【Cloudwatch/SNS編】

2020-03-26

今回はCloudwatch Eventsを作成して、Lambdaを定期実行させ、失敗時のSNSトピックを作成します。

おさらい

②は完成したので今回は①、③を終わらせます。

  • ①Cloudwatch Events: Lambdaを定期実行(毎朝7時)
  • ②Lambda: Lambda実行用のIAMロールを作成 -> STS(Security Service Token) ->CW Metricsでコスト取得 -> Slackに通知する
  • ③SNS: 失敗時はSNSへ通知

②Lambda編

  1. AWSのコストをSlackに通知する【Lambda - (1)IAM作成編】
  2. AWSのコストをSlackに通知する【Lambda - (2)STS編】
  3. AWSのコストをSlackに通知する【Lambda - (3)Lambda準備編】
  4. AWSのコストをSlackに通知する【Lambda - (4)Lambda実装編】

Cloudwatch Events: Lambdaを定期実行

  1. 定期実行させるLambdaへアクセス。

  2. ルールを作成

ルールタイプはスケジュール式をオススメします。次の公式ドキュメントが参考になります👉Rate または Cron を使用したスケジュール式

  1. きちんと作成されてますね!

SNS: 失敗時はSNSへ通知

SNSトピックの作成

まずは失敗時に通知するようのSNSトピックを作成しましょう。

  1. SNSコンソールへアクセスし、トピックの作成をクリック。

自分自身が作成したLambda関数と同じリージョンにSNSトピックを作成してください。LambdaとSNSは同じリージョンでないと関連付けできません。

  1. 適当な名前を入力してトピックを作成。オプションは変更せずにそのまま作成で良いです。

  2. サブスクリプションを作成します。今回は自分のEMAILに通知するようにします。

  3. 確認メールが届くので、“Confirm subscription"をクリックします。

  4. SNSトピック上で「確認済み」となってますね!

LambdaにSNSトピックをつける

  1. Lambdaコンソールへアクセスします。

  2. 少し下へスクロールすると「非同期呼び出し」の項目があるので「編集」をクリック

  3. デッドレターキューにおいて先ほど作成したSNSトピックを選択し、保存すれば完成!

  4. きちんと反映されてますね!

完成品

毎日こんな感じで報告がきます。

...SNSにもシェアしてみる?
AWSサーバレス技術awslambdasnscloudwatch
(C) 2020, All Rights Reserved.

[CI/CD] Github ActionsとS3を連携させる[プラン編]

Vagrantで開発環境を作ろう!