Amazon CloudWatch Observability Access Manager を使用してモニタリングを一元化する - AWS 規範ガイダンス

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Amazon CloudWatch Observability Access Manager を使用してモニタリングを一元化する

作成者: Anand Krishna Varanasi (AWS)、Jimmyorgan (AWS)、Ashish Kumar (AWS)、Balaji Vedagiri (AWS)JAGDISHKOMAKULA、 (AWS)、Satra Chandra Pothula (AWS)、Vivek Thangamuthu (AWS)

概要

オブザーバビリティは、アプリケーションのモニタリング、理解、トラブルシューティングに不可欠です。 AWS Control Tower またはランディングゾーンの実装と同様に、複数のアカウントにまたがるアプリケーションは、多数のログとトレースデータを生成します。問題の迅速なトラブルシューティングを行ったり、ユーザー分析やビジネス分析を理解したりするには、すべてのアカウントにまたがる共通のオブザーバビリティプラットフォームが必要です。Amazon CloudWatch Observability Access Manager を使用すると、複数のアカウントログに一元的にアクセスして制御できます。

オブザーバビリティアクセスマネージャーを使用して、ソースアカウントによって生成されたオブザーバビリティデータログを表示および管理できます。ソースアカウントは AWS アカウント 、リソースのオブザーバビリティデータを生成する個々のアカウントです。オブザーバビリティデータは、ソースアカウントとモニタリングアカウントの間で共有されます。共有オブザーバビリティデータには、Amazon のメトリクス CloudWatch、Amazon CloudWatch Logs のログ、トレースを含めることができます AWS X-Ray。詳細については、「オブザーバビリティアクセスマネージャー 文書」を参照してください。

このパターンは、複数の で実行されるアプリケーションまたはインフラストラクチャを持ち AWS アカウント 、ログを表示するために共通の場所を必要とするユーザーを対象としています。これらのアプリケーションやインフラストラクチャの状態や状態を監視するために、Terraform を使用して オブザーバビリティアクセスマネージャーをセットアップする方法を説明します。このソリューションは、複数の方法でインストールできます。

  • 手動でセットアップしたスタンドアロンの Terraform モジュールとして

  • 継続的インテグレーションと継続的デリバリー (CI/CD) パイプラインを使用する

  • AWS Control Tower Account Factory for Terraform (AFT) などの他の ソリューションと統合する

エピックセクションの手順では、手動の実装について説明しています。AFT インストール手順については、 GitHub Observability Access Manager リポジトリの README ファイルを参照してください。

前提条件と制限

前提条件

  • Terraform は、システムまたは自動パイプラインにインストールまたは参照されています。(最新バージョンの使用をお勧めします。)

  • 中央監視アカウントとして使用できるアカウント。他のアカウントは、ログを表示するために、中央監視アカウントへのリンクを作成します。

  • (オプション) Atlassian Bitbucket GitHub AWS CodeCommitなどのソースコードリポジトリ、または同様のシステム。自動 CI/CD パイプラインを使用している場合、ソースコードリポジトリは必要ありません。

  • (オプション) コードレビューとコードコラボレーションのためのプルリクエスト (PRs) を作成するアクセス許可 GitHub。

制約事項

オブザーバビリティアクセスマネージャーには、以下のサービスクォータがあります。これらのクォータは変更できません。この特徴量を導入する前に、これらのクォータを検討します。詳細については、 CloudWatch ドキュメントのCloudWatch 「 サービスクォータ」を参照してください。

  • ソースアカウントリンク: 各ソースアカウントを最大 5 つの監視アカウントにリンクできます。

  • シンク: アカウントに対して複数のシンクを構築できますが、 ごとに AWS リージョン 1 つのシンクしか使用できません。

加えて:

  • シンクとリンクは同じ で作成する必要があります AWS リージョン。クロスリージョンにすることはできません。

クロスリージョンとクロスアカウントのモニタリング

クロスリージョン、クロスアカウントのモニタリングでは、次のいずれかのオプションを選択できます。

アーキテクチャ

コンポーネント

CloudWatch Observability Access Manager は、クロスアカウントオブザーバビリティを有効にする 2 つの主要なコンポーネントで構成されています。

  • シンクは、ソースアカウントがオブザーバビリティデータを中央モニタリングアカウントに送信できるようにします。シンクは基本的に、ソースアカウントが接続するためのゲートウェイジャンクションを提供します。シンクゲートウェイまたは接続は 1 つしかありませんが、複数のアカウントが接続できます。

  • 各ソースアカウントには、シンクゲートウェイジャンクションへのリンクがあり、オブザーバビリティデータはこのリンクを介して送信されます。各ソースアカウントからリンクを作成する前に、シンクを作成する必要があります。

アーキテクチャ

次の図表は、オブザーバビリティアクセスマネージャーとそのコンポーネントの説明です。

シンクとリンクを使用したクロスアカウントオブザーバビリティのアーキテクチャ。

ツール

AWS のサービス

  • Amazon CloudWatch は、 AWS リソースと で実行しているアプリケーションのメトリクスを AWS リアルタイムでモニタリングするのに役立ちます。

  • AWS Organizations は、作成して一元管理する AWS アカウント 組織に複数の を統合するのに役立つアカウント管理サービスです。

  • AWS Identity and Access Management (IAM) は、誰を認証し、誰に使用を許可するかを制御することで、 AWS リソースへのアクセスを安全に管理できます。

ツール

  • Terraform は、クラウドおよびオンプレミスのリソースの作成と管理に役立つ HashiCorp の Infrastructure as Code (IaC) ツールです。

  • AWS Control Tower Account Factory for Terraform (AFT) は、アカウントのプロビジョニングとカスタマイズに役立つ Terraform パイプラインを設定します AWS Control Tower。オプションAFTで、 を使用して、複数のアカウントにわたって大規模にオブザーバビリティアクセスマネージャーをセットアップできます。

コードリポジトリ

このパターンのコードは、 GitHub Observability Access Manager リポジトリで使用できます。

ベストプラクティス

  • AWS Control Tower 環境では、ログ記録アカウントを中央モニタリングアカウント (シンク) としてマークします。

  • に複数のアカウントを持つ複数の組織がある場合は AWS Organizations、個々のアカウントではなく組織を設定ポリシーに含めることをお勧めします。アカウントの数が少ない場合や、アカウントがシンク設定ポリシーの組織に含まれていない場合は、代わりに個別のアカウントを含めることを決定できます。

エピック

タスク説明必要なスキル

リポジトリをクローン作成します。

GitHub Observability Access Manager リポジトリのクローンを作成します。

git clone https://github.com/aws-samples/cloudwatch-obervability-access-manager-terraform
AWS DevOps、クラウド管理者、AWS管理者

シンクモジュールのプロパティ値を指定します。

main.tf ファイル (リポジトリの deployments/aft-account-customizations/LOGGING/terraform/ フォルダー内)で、以下のプロパティの値を指定します:

  • sink_name: CloudWatch シンクの名前。

  • allowed_oam_resource_types: Observability Access Manager は現在、 CloudWatch メトリクス、ロググループ、 AWS X-Ray トレースをサポートしています。

  • allowed_source_accounts: 中央 CloudWatch シンクアカウントにログを送信できるソースアカウント。

  • allowed_source_organizations: 中央 CloudWatch シンクアカウントにログを送信できるソース AWS Control Tower 組織。

詳細については、 AWS CloudFormation ドキュメントのAWS「::Oam::Sink」を参照してください。

AWS DevOps、クラウド管理者、AWS管理者

シンクモジュールをインストールします。

モニタリングアカウントとして AWS アカウント 選択した の認証情報をエクスポートし、オブザーバビリティアクセスマネージャーシンクモジュールをインストールします。

Terraform Init Terrafom Plan Terraform Apply
AWS DevOps、クラウド管理者、AWS管理者
タスク説明必要なスキル

リンクモジュールのプロパティ値を指定します。

main.tf ファイル (リポジトリの deployments/aft-account-customizations/LOGGING/terraform/ フォルダー内) で、以下のプロパティの値を指定します:

  • account_label: 次のいずれかの値を使用します:

    • $AccountName: アカウントの名前。

    • $AccountEmail: メールドメインを含む、グローバルに一意のメールアドレス (例、hello@example.com)

    • $AccountEmailNoDomain: ドメイン名を含まないメールアドレス。

  • allowed_oam_resource_types: Observability Access Manager は現在、 CloudWatch メトリクス、ロググループ、 AWS X-Ray トレースをサポートしています。

詳細については、 AWS CloudFormation ドキュメントのAWS「::Oam::Link」を参照してください。

AWS DevOps、クラウド管理者、クラウドアーキテクト

個々のアカウントにリンクモジュールをインストールします。

個々のアカウントの認証情報をエクスポートし、オブザーバビリティアクセスマネージャーリンクモジュールをインストールします

Terraform Plan Terraform Apply

リンクモジュールは、アカウントごとに個別に設定することも、 AFT を使用して多数のアカウントにこのモジュールを自動的にインストールすることもできます。

AWS DevOps、クラウド管理者、クラウドアーキテクト
タスク説明必要なスキル

ステータスメッセージ。

  1. モニタリングアカウントにサインインします。

  2. CloudWatch コンソールを開きます。

  3. 左のナビゲーションペインの [Settings] (設定) を選択します。

右側に、緑色のチェックマークが付いた「監視アカウントの有効化」というステータスメッセージが表示されます。つまり、モニタリングアカウントには、他のアカウントのリンクが接続されるオブザーバビリティアクセスマネージャーシンクがあることを意味します。

接続を承認します link-to-sink。

  1. ステータスメッセージの下のアカウントをリンクするリソースオプションを選択します。情報は、これがモニタリングアカウントであることを確認し、テナントソースアカウントから共有されるデータ (ログメトリクス、トレース) を一覧表示し、アカウントラベルを $ と表示しますAccountName。

    この画面では、テナントアカウントをモニタリングアカウントにリンクするためのオプションが 2 つあります。組織レベルの承認とアカウントレベルの承認です。オプションごとに、承認用の AWS CloudFormation テンプレートをダウンロードするか、各アカウントを個別に承認するかを選択できます。

  2. 簡単化するために、任意のアカウントを選択して各アカウントレベルで承認します。このオプションでは、アカウントの承認リンクが表示されます。

  3. コピーURLを選択してリンクをコピーします。

  4. 各ソースアカウントにサインインします。

  5. ブラウザウィンドウにリンクを貼り付け、そして[シンクに接続するリンクを承認]を選択します。

  6. 追加のソースアカウントにも同じ手順を繰り返します。

詳細については、 CloudWatch ドキュメントの「モニタリングアカウントとソースアカウントをリンクする」を参照してください。

AWS DevOps、クラウド管理者、クラウドアーキテクト
タスク説明必要なスキル

クロスアカウントデータを表示します。

  1. モニタリングアカウントにサインインします。

  2. CloudWatch コンソールを開きます。

  3. 左ナビゲーションペインで、クロスアカウントログ、メトリクス、トレースを表示するオプションを選択します。

AWS DevOps、クラウド管理者、クラウドアーキテクト
タスク説明必要なスキル

他のアカウントのメトリクス、ダッシュボード、ログ、ウィジェット、アラームを表示します。

追加の機能として、 CloudWatch メトリクス、ダッシュボード、ログ、ウィジェット、アラームを他のアカウントと共有 できます。各アカウントは、 CloudWatchCrossAccountSharingRole という IAMロールを使用して、このデータにアクセスします。

中央モニタリングアカウントと信頼関係にあるソースアカウントは、このロールを引き受け、モニタリングアカウントのデータを表示できます。

CloudWatch には、ロールを作成するためのサンプル CloudFormation スクリプトが用意されています。データを表示するアカウントでこのスクリプトを実行する IAM でロールを管理する を選択します。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::XXXXXXXXX:root", "arn:aws:iam::XXXXXXXXX:root", "arn:aws:iam::XXXXXXXXX:root", "arn:aws:iam::XXXXXXXXX:root" ] }, "Action": "sts:AssumeRole" } ] }

詳細については、 CloudWatch ドキュメントの「 でのクロスアカウント機能の有効化 CloudWatch」を参照してください。

AWS DevOps、クラウド管理者、クラウドアーキテクト
タスク説明必要なスキル

クロスアカウント、クロスリージョンアクセスを設定します。

中央監視アカウントでは、オプションでアカウントセレクターを追加して、認証なしで簡単にアカウントを切り替えたり、そのデータを表示したりできます。

  1. モニタリングアカウントにサインインします。

  2. CloudWatch コンソールを開きます。

  3. 左のナビゲーションペインの [Settings] (設定) を選択します。

  4. クロスアカウント/クロスリージョンを表示 セクションで、設定 を選択します。

  5. 有効化を選択し、セレクターをコンソールに表示チェックボックスを選択します。

  6. 以下のいずれかのオプションを選択します:

    • アカウント ID 入力: このオプションでは、クロスアカウントデータを表示するためにアカウントを変更するたびに、手動でアカウント ID を入力するように提示します。

    • AWS 組織アカウントセレクタ: CloudWatch と統合 AWS Organizationsしている場合、このオプションは組織内のアカウントの完全なリストを含むドロップダウンセレクタを提供します。

    • カスタムアカウントセレクタ: このオプションを使用すると、アカウントのリストを手動で入力IDsしてセレクタに入力できます。

  7. [Save changes] (変更の保存) をクリックします。

詳細については、 CloudWatch ドキュメントの「クロスアカウントクロスリージョン CloudWatch コンソール」を参照してください。

AWS DevOps、クラウド管理者、クラウドアーキテクト

関連リソース