こんにちは、 Global Solutions事業部です。
最近AWSのマルチアカウント構成で CloudWatchの集中監視をセットアップしたので、CloudWatchクロスアカウントオブザーバビリティとは何か、ユースケースと検討事項について書きたいと思います。
1. クロスアカウントオブザーバビリティとは ?
CloudWatchのクロスアカウントオブザーバビリティはAWSの複数アカウントのリソースを一つのアカウントで集中監視できる設定です。カタカナで分かりづらいのですが、直訳すると以下のようになります。
- Cross-Account (複数のAWSアカウントをまたいだ)
- Observability (観察する能力)
具体的には多数のAWSアカウントのCloudWatchメトリクス、ログ、トレースを一つのアカウントに統合し、検索、可視化、分析を可能にする設定です。セットアップはとてもシンプルで、コンソールから20分ほどで完了します。また、メトリクスやログはコピーではなく共有されるので追加コストは発生しません。
クロスアカウントオブザーバビリティは次の要素で構成されます:
- モニタリングアカウントが1つ以上 (上図では1つ、左側のAccount A)
- ソースアカウントが1つ以上(上図では3つ、右側のAccount B、C、D)
- 共有対象の要素:CloudWatchメトリクス、ログ、トレース(上図ではトレースは対象外)
2. ビジネスユースケース、どういう時に役立つか
セキュリティや運用面で以下のようなご要件がある場合に役立つかもしれません。
- CloudWatchダッシュボードにアクセスできるユーザーをアカウントレベルで制限したい
- 監視の実施を外部にお願いしたいが、全てのアカウントへのログイン情報を渡したくない
- エンドユーザーにAWSアカウントを提供、管理しており、ログインせずに監視/調査を行いたい(実際に別のアカウントで変更を加える場合はクロスアカウントロールの設定などが必要です)
- 複数のアカウントにまたがるアプリケーションの監視を一つのアカウントで実施したい
3. アラーム設定時の検討事項
モニタリングアカウントとソースアカウントのリンクは簡単ですが、この時点ではメトリクスとログの共有がされているだけで、通知機能はありません。メトリクスの異常値を検知した時などに通知を受け取りたい場合はCloudWatchアラームの設定が必要です。アラームを設定するときに私が気をつけたところは次の通りです。
- 命名規則:
複数アカウントのアラームを作成する場合、命名規則を定義することでアラームの識別と検索がしやすくなります。アラーム名は対象アカウント(アカウント名/アカウントID)、メトリクス、リソース名を含むと識別しやすくなります。 - 正しいメトリクスの選択:
アカウントがいくつもある場合、アカウント間で同じ名前のメトリクスが混同されやすくなります。アラーム設定時にアカウントIDを含めることで誤設定を回避できます。コンソールから設定する場合はメトリクスのアカウントID列が追記されているのを確認できます。CLIから作成する場合は–metricsフラグを使用し、アカウントIDを指定します。 - ワークロードごとに別々のSNSトピックを使用する:
アカウントごと、またはワークロードごとに専用のSNSトピックを紐付けることで運用担当者を分けることができます。担当者やメールアドレスの変更もアラーム定義を変更せずにSNSトピックのコンソールから更新できます。
4. 設定手順
設定方法は公式ドキュメントに記載されているのでこの記事では省略します。
最後に
CloudWatchクロスアカウントオブザーバビリティ は複数アカウントの監視を一元管理したい場合にとても便利で、設定もシンプルです。導入することで必要最低限のアクセス権限(AWS Well-Architected セキュリティの柱)、運用担当者の業務効率化( AWS Well-Architected 運用上の優秀性の柱)などの向上に役立てることができます。AWSのインフラ設計、構築、運用ついてご質問、不明点などありましたらお気軽にご連絡ください。