Amazon Web Services ブログ
Amazon CloudWatch Internet Monitor プレビュー – アプリケーションのインターネットパフォーマンスをエンドツーエンドで可視化
皆さんには、モニタリング用のダッシュボードではアプリが通常の状況であると表示されているものの、顧客からは「遅い」とか、利用できないと報告された体験が、何度くらいあるでしょうか? 顧客からのこういった報告を診断するには、どれくらいの時間を要していますか?
インターネットに接続するアプリケーションをモニタリングする際には、地理的に離れており複数のインターネットプロバイダーに接続しているそれぞれの顧客に対する、アプリケーションの動作を具体的に把握する必要があります。このため、AWS の外部でデータを収集することが 1 つの課題になっている、とのお声もあります。自分のインフラストラクチャに到達前のインターネットトラフィックについて、データのキャプチャリングやモニタリングを行うことは難しいですし、そうでなくとも非常に高いコストがかかります。
今回、インターネットの問題がアプリケーションのパフォーマンスと可用性にどのように影響するかを可視化するために、CloudWatch に加わった新しい機能、Amazon CloudWatch Internet Monitor のパブリックプレビューを発表できる運びとなりました。これにより、インターネットの問題の診断にかかる時間を数日から数分に短縮できます。
Internet Monitor では、当社のグローバルネットワークフットプリントから接続データを取得して、それを、インターネットトラフィックのパフォーマンスと可用性に関するベースライン算出のために使用します。このデータは、AWS の社内で、インターネットの稼働時間と可用性をモニタリングするために使用しているものと同じです。Internet Monitor を使用すると、さまざまな場所から異なるネットワークを使用しているエンドユーザーが経験している、インターネットに関する問題を把握できます。
アプリケーションコードをインストールする必要はありません。AWS マネジメントコンソールの CloudWatch セクションから、このサービスを有効化することで、すぐに使用を開始できます。
実際の動作
Internet Monitor の使用開始は簡単です。例えば、顧客と AWS リソースの間での、ネットワークパスをモニタリングする場合を想定してみましょう。AWS マネジメントコンソールを開き、 CloudWatch に移動します。左側のナビゲーションメニューから、[Internet Monitor] を選択します。次に、[Create monitor] (モニターを作成) を選択します。
[Create monitor] (モニターの作成) ページで、[Monitor name] (モニター名) を入力し、[Add resources] (リソースを追加) を選択して、モニタリング対象のリソースを選択します。このデモでは、顧客が利用するアプリケーションをホストする、VPC と CloudFront ディストリビューションを選択します。
前の選択は、ここで見直すことができます。次に、[Create monitor] (モニターを作成) を選択します。
この時点から、Internet Monitor は、アプリケーションのリソースログに基づいたデータの収集を、バックグラウンドで開始しています。VPC フローログや、CloudFront のログ、または他のタイプのログを有効化 (またはそれに対する支払いを) する必要はありません。
しばらくすると、アプリケーションが遅いという苦情を、顧客から受け取りました。そこで、Internet Monitor をもう一度開き、前に作成したモニター (Monitor_Example) を選択します。すると、アプリケーションでインターネットのパフォーマンスに関する問題が発生していることが、その場で確認できます。
[Health scores] (ヘルススコア) のグラフには、グローバルトラフィックのパフォーマンスと可用性に関する情報が表示されます。AWS では、地理的に広がったネットワークトラフィックの可用性やインターネットパフォーマンスについて、さまざまなネットワークプロバイダーやサービスから膨大な履歴データを得ています。このデータに統計分析を適用することで、推定のベースラインが算出されており、これと比較することで、ユーザーのアプリケーションに向けたパフォーマンスと可用性が低下した場合には、それを検出できます。この情報は、推定されるパフォーマンススコアと可用性スコアを使用して報告され、ユーザーは低下が生じたことを簡単に確認できます。
ページを少し下にスクロールします。[Internet traffic overview] (インターネットトラフィックの概要) マップには、モニタリングしているすべての場所における、全体的なイベントのステータスが表示されます。[Health events] (ヘルスイベント) のテーブルで、詳細を確認します。ここでは、世界中で発生しているその他のイベントを、トラフィックへの総影響度順に並べ替えて強調表示することもできます。米国ネバダ州ラスベガスで起きているパフォーマンスの問題が、アプリケーションのトラフィックに最も影響を与えていることがわかります。
問題を特定したので、履歴データを調べることにします。過去にも、同じことが起こったでしょうか?
傾向を把握したり、今回問題が起きた場所やネットワークプロバイダーに関連する以前のデータを確認したりするには、[Historical Explorer] (履歴エクスプローラー) のタブを選択します。パフォーマンススコア、可用性スコア、転送バイト数、往復時間などについて集計されたメトリクスを、p50、p90、p95 のパーセンタイルで表示できます。表示の対象とする期間は、最大で過去 18 か月までカスタマイズすることができます。
今回の事象が発生したのは、本日が最初ではないことがわりました。この特定のクライアントロケーションとネットワークプロバイダーでは、過去数か月間に問題が複数回発生しています。
問題の全体像が把握できたので、この問題を軽減するために、どのような対策を講じることができるのか考察します。
ここで、[Traffic insights] (トラフィックインサイト) タブを開きます。モニタリングされている、全体的なトラフィックデータと上位のクライアントロケーションを、総トラフィック (バイト数) に基づいて表示します。どうやら、米国ネバダ州ラスベガスは、クライアントロケーションとして、上位に入るものの 1 つです。
グラフを選択して、米国ネバダ州ラスベガスのトラフィックに関する情報を表示します。[Lowest Time To First Byte (TTFB)] (第 1 バイトまでの最低時間) 列には、AWS サービスと AWS リージョンのセットアップに関する推奨事項が、上位のクライアントロケーションとネットワークの、すべての組み合わせについて表示されます。このテーブルにある、[Predicted Time To First Byte] (第 1 バイトまでの予測時間) には、アーキテクチャに対し推奨された変更を行った場合の、潜在的な影響が示されます。
この例では、現在 EC2 によって分散されているトラフィックを CloudFront に分散させ、また、us-east-2 に加えて us-east-1 の EC2 インスタンスによって追加のトラフィックを処理できるようにすることが、Internet Monitor により推奨されています。
今すぐ利用可能
現在、Internet Monitor は、20 か所の AWS リージョンでパブリックプレビューとしての利用が可能です。
- 米国周辺では、米国東部 (オハイオ)、米国東部 (バージニア北部)、米国西部 (北カリフォルニア)、米国西部 (オレゴン)、カナダ (中部)、南米 (サンパウロ) が対象リージョンです。
- アジアパシフィックでは、アジアパシフィック (香港)、アジアパシフィック (ムンバイ)、アジアパシフィック (ソウル)、アジアパシフィック (シンガポール)、アジアパシフィック (シドニー)、アジアパシフィック (東京) が対象です。
- 欧州、中東、アフリカでは、アフリカ (ケープタウン)、欧州 (フランクフルト)、欧州 (アイルランド)、欧州 (ロンドン)、欧州 (ミラノ)、欧州 (パリ)、欧州 (ストックホルム)、中東 (バーレーン) が対象です。
また、AWS CloudFormation のサポートは現時点では提供されていませんが、まもなく追加される予定です。
プレビュー期間中は、本サービスに関連した料金は発生しません。ただし、Internet Monitor はメトリクスとログを CloudWatch に配信することに注意してください。これにより追加される、CloudWatch ログと CloudWatch メトリクスに対しては課金されます。
スタートアップ企業であるか大企業であるかに関わらず、CloudWatch Internet Monitor は、アプリケーションのパフォーマンスと可用性を予測するのに役立ちます。 早速、お試しください!
原文はこちらです。