みなさん、こんにちは。サニービュー事業部の小寺です。
CloudWatchがクロスアカウントアラームに対応し、他のアカウントのメトリクスからアラートを設定できるようになりました。
https://aws.amazon.com/jp/about-aws/whats-new/2021/08/announcing-amazon-cloudwatch-cross-account-alarms/
■CloudWatchとは
まずは、Amazon CloudWatchについてのおさらいです。CloudWatchは、AWSで提供されているモニタリングサービスです。
Amazon CloudWatchを使うことで、CPUやメモリ、ディスクの使用率などを監視し、事前に設定した閾値を超えた際にメールなどで通知できます。複数項目をグラフ化してダッシュボードを作ることができます。よく使われるものは標準メトリクスとして用意されていています。
さらに、独自の「メトリクス」を設定することで、アプリケーションのログなどさまざまな項目を監視することも可能です。
■クロスアカウントアラームが利用できるメリット
実は今までのCloudWatchでもクロスアカウントには対応をしていました。
今までもアカウントを連携すれば、のCloudWatchダッシュボード、メトリクス、アラートを参照することができました。
アラートについては既存の共有元アカウントで設定された項目は確認できました。ただし、全て各AWSアカウント単位で設定する必要がありました。今回のアップデートでは、共有先アカウント(モニタリングアカウント)側で、複数の監視対象のAWSアカウントにメトリクスのアラートを設定・通知できるようになりました。今まで100アカウントがあれば、100アカウント分の設定作業が必要でしたが、モニタリングアカウントから全て対応できるため、1アカウント分の作業で対応ができるようになっています。
■設定してみよう
まずは、2つのアカウントを連携します。
アカウントAがアカウントBをモニタリングできるように設定します。
共有先AWSアカウント(モニタリングアカウント): A
共有元AWSアカウント(監視対象):B
監視対象、アカウントBの設定
①アカウントBでクロスアカウントクロスリージョンを設定します。
CloudWatchの「設定」より「クロスアカウントリージョンのクロスリージョン表示」を有効化します。

②その後、「データ共有」をクリックします。

③共有にて「アカウントを追加」をクリックします。

④アカウントIDには、モニタリングアカウントのアカウントAのAWS IDを入力します。

⑤サービス許可はデフォルト設定のままとします。

⑥CloudFormationテンプレートを起動をクリックします。
ここで、必要なIAMロールが作成されます。

⑦確認画面が表示されるので、「確認」を入力し、「起動テンプレート」をクリックします。

スタックが完了すれば、監視対象のアカウントBの設定は完了です。
モニタリング用アカウント:アカウントAの設定
①クロスアカウントクロスリージョンを有効化します。
クロスアカウントクロスリージョンをクリックし、カスタムアカウントセレクタを選びます。

②複数アカウント利用する場合もあると思うので、「アカウントID」、「ラベル」の順に入力します。

モニタリングアカウントから確認
モニタリングアカウントから、先ほど設定した監視対象のアカウントBのデータを確認することができます。
①画面上部の「データの表示」から、クロスアカウントの設定をしたアカウントBを選択することができるようになりました。

②CloudWatchのアラーム、ダッシュボードについても、アカウントBのデータを確認することができます。

モニタリングアカウントからアラームを設定
①モニタリングアカウント側でアラームを設定します。

②アカウントA、Bの連携が完了していると、メトリクスの選択時にモニタリングアカウントのメトリクスが選択できるようになっています。ここで、立ち上げておいたEC2インスタンスのStatusCheckのメトリクスを選びます。

条件設定で、監視対象アカウント、インスタンスIDを確認できます。また、「このアラームは別のアカウントのメトリクスが含まれています」とメッセージが表示されています。このメッセージからクロスアカウントアラームを設定していることがわかります。
③それ以降は、通常のアラームの作成と同様の手順で実行することができます。
■対応リージョン
クロスアカウントアラームは、すべての商用 AWS リージョンで利用可能です。
CloudWatch アラームの標準料金が適用されます。詳細は、料金ページを参照してください。
■まとめ
いかがでしたでしょうか。
監視用のアカウントからまとめてCloudWatchのアラム設定ができるのはとても便利ですよね。社内でも活用していこうと思います。
SunnyCloudでは、AWS移行、構築、運用に関する様々なソリューションを
提供しています。

AWSをご利用いただくには、直接契約するより断然お得。
AWS利用料が5%割引、さらに日本円の請求書による支払いが可能です!