AWS Summit Tokyo 2023 AWS-05 で紹介されていた AWS Trusted Advisor API を利用したチェック自動化と結果通知をやってみた #AWSSummit

2023.04.22

本記事では 『AWS-05 AWS サポートを賢く使ってコストもアーキテクチャも最適化しよう!』 内で紹介されていた API を利用して AWS Trusted Advisor(Trusted Advisor) チェックを自動化し、結果を Slack へ通知するソリューションをやってみました。

通知イメージ

まずは、実装後に通知されるイメージをご紹介します。

非常に良くないでしょうか?
今までにも Amazon EventBridge(EventBridge) を利用してステータスの変化があったタイミングで通知するなどの方法もありましたが、これだけシンプルに必要な情報のみを通知するには、ひと工夫が必要でした。

今回 GitHub で公開されているソリューションと Slack ワークフロー(有償プラン契約のみ)を利用することで、先に紹介したようなチェックの自動化とサマリー通知を行うことが可能です。

やってみよう

Slack ワークフロー 設定(Webhook 設定)

下記ガイドを参照しながら、ワークフローから Webhook を設定します。

Webhook URL を取得し、変数に content を追加してます。

続いて メッセージを送信 ステップを追加し、 送信先(チャンネル)やテキスト(通知文言)を記載します。Slack 入力なので、絵文字やリンクも追加出来ます。

公開する を選択します。

Slack 側の設定は以上です。

ソリューションデプロイ

冒頭の GitHub からファイルをダウンロードします。

ダウンロードした一式の中にある CF-TrustedAdvisor-Slack-Webhook.yml を利用して バージニアリージョンで AWS CloudFormation からソリューションをデプロイしていきます。

展開されるソリューションは下記の通りです。

引用元: aws-samples/trusted-advisor-slack-webhook

先ほど、取得した Slack Webhook URL を入力して進めていきます。

いくつかのリソースが作成されます。

実行タイミングは EventBridge から変更可能です。

Slack Webhook URL も EventBridge で定義されています。 ターゲットへの入力 を表示して、コピーします。

AWS Lambda(Lambda) で関数が作成されています。先ほど、コピーして ターゲットへの入力 を利用してテストを作成しておきます。

テストを実行しておきます。問題なさそうです。

Lambda を実行したことで、CloudWatch Logs が作成されています。ログ保持期間がデフォルトでは 失効しない 設定となっているので、必要な日数へ変更しておきましょう。(頻繁に実行されるもので、長期間保存が必要な類のものではないものは、特に注意して適切な期間へ設定することで思わぬコスト増加を防ぎましょう)

これで完成です。
デフォルトでは 12時間サイクルで実行されます。(1日1回程度で良さそうですね)

通知結果

まずは、対象となる AWS アカウントにおける Trusted Advisor の結果は下記の通りです。

12時間待つのはしんどいので、、EventBridge の設定を 3分間隔 に変更してみましょう。

通知されました。内容は マネジメントコンソールに表示されていると同様です!

  • 推奨されるアクション: Red
  • 調査が推奨される: Yellow

3分間隔に通知されていますね。(もう寝よう)

さいごに

今回は、AWS Summit Tokyo 2023 内のセッションで推奨されていた API を利用した Trusted Advisor のチェック自動化と結果通知をやってみました!AWS Summit の各セッションを聴いていると、まだまだ知らないサービスや機能、ツールなどが登場することが結構あります。イベントは終わってしまいましたが、今後公開される(?)と思われる資料や弊社ブログをチェックいただきながら、思い返しつつ色々と試してみるのも楽しみ(学び)方の一つではないかなと思います!