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

眠れない夜。そんな時はブログですよね?
こんばんは。園部です。

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

Trusted Advisor とは?

 

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

また、Trusted Advisor でチェックできる項目は以下にまとめられています。 https://aws.amazon.com/jp/premiumsupport/trustedadvisor/best-practices/

 

注意すべき点は、サポートプランによって、チェックできる項目が異なる点です。
残念ながら、今回の通知アクションも「ビジネスまたはエンタープライズサポートプラン」で利用可能となります。

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

 AWS Trusted Advisor は、Amazon CloudWatch Events および Amazon CloudWatch サービスと統合されています。Amazon CloudWatch Events を使用して、Trusted Advisor チェックのステータス変更を検出して対応できます。また、Amazon CloudWatch を使用して、チェックステータスの変更、リソースステータスの変更、サービスの制限の使用に関する Trusted Advisor のメトリクスのアラームを作成できます。詳細については、以下のトピックを参照してください。
(AWS ドキュメントより引用)
https://docs.aws.amazon.com/ja_jp/awssupport/latest/user/cloudwatch-ta.html

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サービスに、任せておきたいものです。
最後に、繰り返しになりますが、設定するリージョンとサポートプランには、ぐれぐれもご注意ください。