Trusted Advisor のチェック結果をCloudWatch で通知する

2019.01.25

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんばんは。園部です。

先日、Trusted Advisor のドキュメントを読んでいる際に、見かけた内容を書き残したいと思います。

Trusted Advisor とは?

AWS 環境を最適化することで、コスト削減、パフォーマンスの向上、セキュリティの向上に役立つオンラインリソースです。Trusted Advisor では、AWS ベストプラクティスに従ってリソースをプロビジョニングするのに役立つ、リアルタイムガイダンスを提供しています。

(AWS ページより引用 )

また、Trusted Advisor でチェックできる項目は以下にまとめられています。
AWS Trusted Advisor ベストプラクティスチェックリスト

注意すべき点は、サポートプランによって、チェックできる項目が異なる点です。

残念ながら、今回の通知アクションも「ビジネスまたはエンタープライズサポートプラン」で利用可能となります。(2019.1.25 時点)

Trusted Advisor のチェック結果を CloudWatch で通知するとは?

AWS Trusted Advisor は、Amazon CloudWatch Events および Amazon CloudWatch サービスと統合されています。Amazon CloudWatch Events を使用して、Trusted Advisor チェックのステータス変更を検出して対応できます。また、Amazon CloudWatch を使用して、チェックステータスの変更、リソースステータスの変更、サービスの制限の使用に関する Trusted Advisor のメトリクスのアラームを作成できます。詳細については、以下のトピックを参照してください。

(AWS ドキュメントより引用) Trusted Advisor チェックのモニタリング

Trusted Advisor のチェック結果の状態変化をトリガーに、CloudWatch Events でアクションを実行することが可能です。(例:結果をSlackへ通知するなど) また、今回実施する内容でもあります CloudWatch アラーム として通知することも可能です。

やってみる

今回、2つのケースを実施します。

  • ケース1:利用していないElastic IP が存在していたらメール通知する。
    (Unassociated Elastic IP Addresses 項目のチェックを利用します)
  • ケース2:EC2(t2.micro)の制限(20台)の50%(10台)に達したらメール通知する。
    (On-Demand instances 項目のチェックを利用します)

0. 事前準備

Trusted Advisor の結果を通知するための SNS を 「バージニア北部リージョン」 へ登録します。今回は、詳細な手順は割愛します。

1. Trusted Advisor の実行

一度も実行したことがない場合は、Trusted Advisor の画面から実行(更新)します。

チェックが完了するまで待ちます。

2. CloudWatch での確認と作成

Trusted Advisor のメトリクスは「バージニア北部」に集約されているため、リージョンを「バージニア北部」へ変更します。

2-1. Automatic Dashboards の確認

昨年、リリースされた Automatic Dashboards にも対応しています。(ここでは、Check Metrics の結果が表示されています)

2-2. メトリクスの確認

メトリクスには、3つ表示されています。

Trusted Advisor のチェック項目の切り口で分かれています。

名称 TrustedAdvisorでの項目 単位
Service Limit Metrics by Region サービス制限 各項目 (実績値/制限値)
Category Metrics コスト最適化, パフォーマンス, セキュリティ, フォールトトレランス, サービス制限 GreenChecks, YellowChecks, RedChecks
Check Metrics チェック対象 各項目 YellowResources, RedResources

※ 各チェック項目の赤枠内のアイコンが、左から「Green」「Yellow」「Red」を示しています。

2-3. アラームの作成

  • ケース1 のために、Elastic IP を取得して、アタッチ(利用)しないままにしておく。
  • ケース2 のために、t2.micro を 10台起動します。(デフォルト制限値が20台のため、今回は50%超えたら通知)

通常と同じ手順で CloudWatch アラームを作成します。

3. 通知結果の確認

しばらくすると「警告」ステータスとなります。

設定しているSNS 通知先へ以下のようなメールが通知されます。(ケース1 の通知内容)

以上となります。

まとめ

比較的スムーズに設定することが出来ました。手軽に利用開始することができるのではないかと思います。こういった状態・制限チェックは、地道な部分ではありますが、忘れると大変な事態にも繋がるので 出来るだけAWSサービスに、任せておきたいものです。

最後に、繰り返しになりますが、設定するリージョンとサポートプランには、ぐれぐれもご注意ください。