[アップデート] Amazon CloudWatchが複数のAWSアカウントにわたるクロスアカウントのオブザーバビリティを開始しました
Amazon CloudWatchでクロスアカウントのモニタリングが簡単にできるようになったのでやってみました。
今までもクロスアカウントでメトリクス共有はできたのですがIAMロールの作成などが必要でした。
今回のアップデートではIAMロールの作成は不要で簡単に共有できるようになっています。
やってみた
設定は以下の公式ドキュメントを参考にしました。
Link monitoring accounts with source accounts
モニタリングアカウント設定
モニタリングアカウントにするアカウントにアクセスしてCloudWatchダッシュボードへ移動します。
移動したら左の項目から「設定」をクリックします。
画面が遷移したら「Use a centralized monitoring account to monitor and troubleshoot applications seamlessly across multiple accounts」欄の「Monitoring account configuration」にある「設定」をクリックします。
画面が遷移したら「テレメトリデータを選択」欄で共有するものを選択します。
「モニタリングアカウントの許可範囲を選択」欄ではこの監視アカウントがメトリクスなどを表示するアカウントID、OUのIDなどを入力します。
今回はアカウントIDを設定しました。
OUのIDなどを設定するとOU配下のアカウントのみに絞るといったことも可能なようです。
「Define how to display your accounts in the console」欄ではコンソールでの表示方法を設定します。
今回はAccount nameにしました。
設定が完了したら、「Monitoring account configuration」の「Resources to link accounts」をクリックします。
画面が遷移したら「Any Account」を選択して「Copy URL」をクリックします。
コピーしたURLは次の項目で使用するのでどこかに記録しておいてください。
ソースアカウントの設定
ログやメトリクスの共有元アカウントにアクセスして上記項目でコピーしたURLを開きます。
URLを開くとパラメータが入力された状態の設定画面が開くので下までスクロールして「Link」をクリックします。
クリックするとどのアカウントと共有するのか確認画面が出てくるので問題無ければConfirmと入力して「Confirm」をクリックします。
共有設定ができているか確認
モニタリングアカウントにするアカウントにアクセスしてCloudWatchダッシュボードへ移動します。
移動したら左の項目から「設定」をクリックします。
画面が遷移したら「Use a centralized monitoring account to monitor and troubleshoot applications seamlessly across multiple accounts」欄の「Manage source accounts」をクリックします。
画面が遷移すると以下の画像のようにソースアカウントが表示されます。
モニタリングアカウントの設定が完了後、ダッシュボードなどに移動すると画面右上に「モニタリングアカウント」と表示されるようになります。
ソースアカウントでログを生成してモニタリングアカウントで見れるか確認する
ソースアカウントにアクセスしてLambdaを作成して実行してみたいと思います。
Lambdaダッシュボードに移動して左の項目から「関数」をクリックします。
画面が遷移したら「関数」の作成をクリックします。
画面が遷移したら「関数名」を入力して「関数の作成」をクリックします。
関数が作成されたら画面真ん中にある「テスト」をクリックしてテストを実行します。
テストが実行出来たらモニタリングアカウントのCloudWatch Logsに移動します。
移動するとソースアカウントから共有されたLambdaのログが見れるようになっています。
さいごに
CloudWatch cross-account observability
上記のドキュメントに記載されている通りモニタリングアカウントは最大で100,000のソースアカウントと共有できるとのことなので、監視を一元管理したい場合は基本的にはこの機能を利用すればよいのかなと思います。