Amazon Web Services ブログ

Amazon CloudWatch を使用したクロスアカウントクロスリージョンダッシュボード



AWS クラウドをデプロイするベストプラクティスには、複数のアカウントや複数のリージョンを使用することが含まれます。複数のアカウントは、リソースを分離し、問題の影響を軽減するセキュリティと請求の境界を提供します。複数のリージョンにより、高度な分離、エンドユーザーの低レイテンシー、およびアプリケーションのデータ復元力が保証されます。これらのベストプラクティスには、複雑な問題のモニタリングとトラブルシューティングが伴います。

集中運用チーム、DevOps エンジニア、およびサービス所有者は、複数のリージョンおよび多くのアカウントで実行されているアプリケーションを監視、トラブルシューティング、および分析する必要があります。アラームを受信すると、オンコールエンジニアはダッシュボードにログインして問題を診断する必要があり、他のアカウントにログインして複数のアプリケーションコンポーネントまたは依存関係の追加のダッシュボードを表示する必要があります。サービス所有者は、サービスの可用性に影響を与える可能性のあるアプリケーションリソース、共有リソース、またはアプリケーション間の依存関係を可視化する必要があります。複数のアカウントおよび/または複数のリージョンを使用すると、根本原因の分析のためにコンポーネントを相互に関連付けるのが難しくなり、解決までの時間が長くなります。

本日発表された Amazon CloudWatch クロスアカウントクロスリージョンダッシュボードにより、お客様は高レベルの運用ダッシュボードを作成し、ワンクリックでさまざまなアカウントの特定のダッシュボードへのドリルダウンを利用できます。その際、異なるアカウントへのログインとログアウト、またはリージョンの切り替えを行う必要はありません。アカウントおよびリージョン全体のパフォーマンスおよび運用データを可視化、集計、および要約する機能は、摩擦を軽減し、解決までの時間を短縮するのに役立ちます。クロスアカウントクロスリージョンは、たとえば他のアカウントやリージョンのアラーム/リソース/メトリックのみを表示したい場合、ダッシュボードを構築せずにナビゲーションのみに使用することもできます。

Amazon CloudWatch クロスアカウントクロスリージョンダッシュボードアカウントのセットアップ
クロスアカウントクロスリージョンダッシュボードの使用は簡単で、必要に応じて AWS Organizations と統合することもできます。Organizations を使用して複数の AWS アカウントを制御および管理することにより、この記事でこれから紹介するとおり、ログインせずに、CloudWatch コンソールを使用して組織内のどのアカウントの titletitleAmazon CloudWatch ダッシュボード、メトリクス、アラーム間でも移動できます。もちろん、単一のアカウントに対してクロスリージョンダッシュボードをセットアップすることもできます。この記事では、Organizations との統合を利用します。

このブログ記事の助けになるように、Organizations コンソールを使用して組織を作成し、他のいくつかのアカウントを参加させました。前述のように、Organizations を使用すると、後でダッシュボードを設定するときにアカウントを簡単に選択できます。また、Organizations を使用せずにカスタムアカウントセレクターを事前入力することもできます。これにより、ダッシュボードを作成する際、アカウントを覚えたり、必要なときにアカウント ID を手動で入力したりする必要がなくなります。組織のセットアップ方法の詳細については、「AWS Organizations ユーザーガイド」を参照してください。組織のセットアップが完了したら、アカウントの設定を開始する準備が整いました。

私の最初のタスクは、ダッシュボードを作成するアカウントを識別して設定することです。これが私のモニタリングアカウントです (そして、複数持つことができます)。次に、モニタリングするアカウント (Organizations のメンバーアカウントと呼ばれる) を識別する必要があります。これらのアカウントは、モニタリングアカウントとデータを共有するように設定します。このモニタリングアカウントには、CloudWatch が各メンバーアカウントでロールを引き受けることを許可するための Service Linked Role (SLR) が必要です。クロスアカウントのクロスリージョンオプションを有効にすると、コンソールはこのロールを自動的に作成します。各メンバーアカウントを設定するには、アカウント内からモニタリングアカウントとのデータ共有を有効にする必要があります。

モニタリングアカウントから始めて、CloudWatch コンソールホームから、左側のナビゲーションパネルで [Settings] を選択します。Cross-Account Cross-Region がページの上部に表示されているので、[Configure] をクリックして開始します。


これにより、データ共有を有効にするためにメンバーアカウントでも使用する設定画面が表示されます。今のところ、モニタリングアカウントで [Edit] オプションをクリックして、クロスアカウントのクロスリージョンオプションを表示します。


モニタリングアカウントの最後のステップは、AWS Organization アカウントセレクターオプションを有効にすることです。これには、アカウントが組織内のアカウントリストにアクセスできるようにするために、組織のマスターアカウントに追加のロールをデプロイする必要があります。コンソールは、マスターアカウントのこのプロセスをガイドします。


これで、モニタリングアカウントのセットアップが完了し、メンバーアカウントにフォーカスを切り替えてデータ共有を有効にできるようになりました。これを行うには、モニタリングアカウントからログアウトし、メンバーアカウントごとにログインして CloudWatch コンソールに移動し、前に示したように、[Settings] を選択してから Cross-Account Cross-Region で [Configure] をクリックします。今回は、[データを共有] をクリックし、データを共有するモニタリングアカウントの ID を入力して、共有の範囲を設定します (titletitleCloudWatch データへの読み取り専用アクセスまたは自分のアカウントへの完全な読み取り専用アクセス)。次に、定義済みのテンプレートで CloudFormation スタックを起動してプロセスを完了します。組織内のすべてのアカウントでデータを共有することも選択できることに注意してください。これを行う方法の詳細については、ドキュメントを参照してください。


これで、モニタリングアカウントと、リソースの CloudWatch データを取得するためにモニタリングアカウントがアクセスできるメンバーアカウントの両方の設定が完了しました。これで、モニタリングアカウントで 1 つ以上のダッシュボードを作成できます。

クロスアカウントクロスリージョンダッシュボードの設定
アカウントの設定が完了したら、ダッシュボードを作成しましょう。 私のメンバーアカウントでは、異なるリージョンで複数の EC2 インスタンスを実行しています。あるメンバーアカウントには、米国西部 (オレゴン) で実行されている 1 つの Windows インスタンスと 1 つの Linux インスタンスがあります。2 番目のメンバーアカウントは、米国東部 (オハイオ) の AWS Auto Scaling グループで 3 つの Windows インスタンスを実行しています。両方のアカウントと両方のリージョンにわたるこれらすべてのインスタンスの CPU およびネットワーク使用率に関する洞察を提供するダッシュボードを作成したいと思います。

開始するには、モニタリングアカウントで AWS コンソールにログインし、CloudWatch コンソールホームに移動して、[Dashboards]、次に [Create dashboard] をクリックします。ページの上部にある新しいアカウント ID およびリージョンフィールドに注意してください。これでクロスアカウントクロスリージョンアクセスが設定されたので、ダッシュボードを構築せずにアカウントまたはリージョン間でアドホックインスペクションを実行できます。


最初にダッシュボードに名前を付けます (ここでは Compute にします)。次に [Add widget] を選択して、CPU 使用率の最初のメトリクスセットを追加します。Line ウィジェットを選択し、[Configure] をクリックしました。これにより、[Add metric graph] ダイアログが表示され、アカウントとリージョンを選択して、ダッシュボードにメトリクスをプルできます。


アカウントとリージョンを選択したら、インスタンスに関連するメトリクスを選択し、モニタリングアカウントのすべてのインスタンスを 2 つの異なるリージョンに追加できます。アカウントとリージョンを切り替えて、メンバーアカウントのインスタンスについて繰り返します。次に、インバウンドネットワークトラフィック用に別のウィジェット (今回は スタックエリア) を追加し、アカウントとリージョンのそれぞれで関心のあるインスタンスを再度選択します。最後に、[Save dashboard] をクリックします。最終結果は、4 つのインスタンスの CPU 使用率とネットワークトラフィックを表示するダッシュボードと、アカウントとリージョン全体の 1 つのクラスターです (各ウィジェットの右上にある xa インジケーターに注意してください。これは、複数のアカウントとリージョンからのデータであることを示しています)。


特定のインスタンスにカーソルを合わせると、次のように、追加データのフライアウトと、メトリクスのアカウントとリージョンの CloudWatch ホームページを開くディープリンクがトリガーされます。

利用状況
Amazon CloudWatch クロスアカウントクロスリージョンダッシュボードが、今日すべての商用 AWS リージョンで利用できるようになりました。お客様は Organizations が利用可能なリージョンで AWS Organizations との統合をご活用いただけます。

— Steve