[アップデート] Amazon CloudWatch Logs の組織一元管理機能で送信先ロググループ名がカスタマイズできるようになりました
いわさです。
AWS Organizations を使ってマルチアカウント管理をしている場合、CloudWatch Logs の一元管理機能を使うことで複数アカウントのログコピーを指定した送信先アカウントで一元管理することができます。
これまで送信先ロググループは特にカスタマイズができなかったのですが、先日のアップデートで送信先ロググループ名をカスタマイズできるようになりました。
このカスタマイズの中ではいくつかの属性を変数として使うことが出来るので、ロググループレベルで OU がアカウント ID などで分けたりと管理しやすくなります。
こちらを使ってみたので紹介します。
設定する
管理アカウントから CloudWatch コンソールに移動し、設定メニューの Organization を選択すると「一元化ルール管理」が設定できます。
事前に冒頭ブログのように組織設定の有効化が必要です。

今回の設定は一元化ルール作成フローの中の「Step3: テレメトリデータを指定」で設定が可能です。
新たに「Destination log group name」というものが追加されています。

「Customize log group name structure」を ON にすると、次のようにロググループ名を入力することができます。

固定の文字列での指定も出来るのですが、次のようにいくつかの属性変数がサポートされていて、動的なロググループを作成することができます。

それぞれの変数およびロググループのカスタマイズについては次の公式ドキュメントにも記載されています。
設定後、一元化ルールの詳細画面から送信先ロググループ名を確認することができます。今回は次のような設定にしてみました。

出力を確認
では一元化されたロググループを確認してみましょう。
ある OU 配下のメンバーアカウントを送信元に使ってみます。

一元管理ルールの作成後にソースアカウントで新しく出力されたログデータのみがコピーされるので、対象メンバーアカウントで新しく Lambda 関数を作成して何度かテスト実行しました。
ソースアカウント上では次のように CloudWatch Logs へログ出力されています。(ロググループ名は途中でカスタマイズもしました)

送信元アカウントのロググループ
その後集約先アカウントの CloudWatch ロググループも確認してみると、先程一元化ルールで作成したとおりのロググループが作成され、集約されていることが確認出来ました。

一元化管理アカウントのロググループ
さいごに
本日は Amazon CloudWatch Logs の組織一元管理機能で送信先ロググループ名がカスタマイズできるようになったので使ってみました。
とても良さそうなアップデートですね。これまではアカウントIDやリージョンは一元化先のログストリーム名で判断は一応出来たのですが、ロググループの単位で構造化出来たり、あるいは Organizations の属性(OUやパスなど)が使えるようになって管理しやすくなっています。







