Amazon CloudWatch Internet Monitor の仕組み - Amazon CloudWatch

Amazon CloudWatch Internet Monitor の仕組み

このセクションでは、Amazon CloudWatch Internet Monitor の仕組みを説明します。この説明には、インターネット全体における接続上の問題を検出するために使用するデータを AWS が収集する方法や、パフォーマンスと可用性のスコアの計算方法に関する説明も含まれます。

目次

AWS の利点

Internet Monitor は、AWS リソースのユーザーがアクセスするインターネットについて、そのサブセットだけをモニタリングすることに重点を置いています。この点が、お客様のウェブサイトを世界中のあらゆるリージョンから全体的にモニタリングする他のツールとは異なります。また、このソリューションは費用対効果も高く、大企業だけでなく中小企業にとっても導入しやすくなっています。

Internet Monitor は、AWS が社内的に活用しているものと同じ強力なプローブと問題検出アルゴリズムを使用します。そして、Internet Monitor 内にヘルスイベントを作成し、アプリケーションに影響を与える接続上の問題をお客様にアラートします。その後、Internet Monitor は、アクティブな利用者から作成したトラフィックプロファイルを重ねることで得られた、パフォーマンスと可用性に関する (アプリケーションリソースに基づいた) マップを提供します。

Internet Monitor はこの情報を使用して、関連のあるイベント (つまり、アクティブな利用者がいる場所でのイベント) や、それらのイベントが全体的な利用者数に及ぼす影響を的確に表示します。つまり、イベントが与える影響度は、全世界のトラフィックの総量を基に (割合として) 算出されます。

Internet Monitor は、インターネット測定値を 5 分ごとに CloudWatch Logs にパブリッシュします。対象は、各モニタにトラフィックを送信する上位 500 の都市ネットワーク (クライアントロケーションと ASN、通常はインターネットサービスプロバイダー (ISP)) です。必要に応じて、モニタリング対象の都市ネットワークすべてのインターネット測定値を Amazon S3 バケットにパブリッシュする選択ができます (ただし、サービスの上限数は 500,000 の都市ネットワークです)。詳細については、「Amazon CloudWatch Internet Monitor で Amazon S3 にインターネット測定値をパブリッシュする」を参照してください。

Internet Monitor には、次のような利点があります。

  • Internet Monitor の使用が、AWS でホストされているアプリケーションに、追加の負荷やコストをかけることはありません。

  • クライアント側のリソースやアプリケーション内に、パフォーマンス測定用のコードを含める必要はありません。

  • アプリケーションが接続されているインターネットについて、「ラストマイル」情報を含めたパフォーマンスと可用性の情報に関する可視化が行えます。

Internet Monitor は、AWS のリソースに基づいて測定値を作成するため、作成されるイベントは、すべてアプリケーショントラフィックに固有であることに注意してください。インターネットにおける、通常の一般的な世界規模の問題は報告の対象になりません。また、サービスロケーションが AWS リージョン の場合、生成される測定値やイベントはリージョンレベルでの接続性を表すように設計されたものとなります。つまり、エンドユーザーのロケーションとアベイラビリティーゾーン間の接続性を正確には表しません。

AWS による接続問題の測定方法

Amazon CloudWatch Internet Monitor は、さまざまな AWS リージョン と Amazon CloudFront の Point of Presence (POP) 間から、ネットワークまたは AS 番号 (ASN)、通常はインターネットサービスプロバイダー (ISP) を通じて別のロケーションに向かうインターネット接続に関するデータを使用します。この接続データは、世界中のインターネットにおける接続問題を事前に検出するために、AWS のオペレーターが社内で日常的に使用しているものです。

当社では AWS リージョン のすべてについて、インターネットのどの部分がそのリージョンと通信しているかを把握しており、次のことを行っています。

  • 当社は、インターネットのこれらの部分を、30 日間の間隔で繰り返し積極的に監視しています。

  • これには、ネットワークのプローブと、より上位のプロトコル用のプローブの両方 (インバウンドとアウトバウンドのプローブなど) を使用します。

AWS での可用性と RTT の計算方法

AWS は、アクティブとパッシブの 2 種類のプローブを使用して、90 パーセンタイルでのレイテンシー (パフォーマンス) と、すべての AWS リージョン および CloudFront サービスからインターネット全体までの到達可能性 (可用性) を測定しています。利用者の場所とサービスとの間で、接続の異常なパターンを監視し、お客様にアラートを送ります。

ラウンドトリップタイム (RTT) は、ユーザーからのリクエストがユーザーに応答を返すまでにかかる時間長を表します。エンドユーザーロケーションの間で往復時間を集計すると、その値は、各エンドユーザーのロケーションによって誘導されるトラフィック量によって、重み付けされます。

例えば、エンドユーザーのロケーションが 2 つあり、その 1 つは 5 ミリ秒の RTT でトラフィックの 90% を処理し、もう 1 つは 10 ミリ秒の RTT でトラフィックの 10% を処理している場合、結果として集計される RTT は 5.5 ミリ秒 (5 ミリ秒× 0.9 + 10 ミリ秒× 0.1) になります。

ラストマイルのレイテンシーの測定に関しては、リソースごとに違いがあることに留意してください。Internet Monitor のレイテンシーの測定では、VPC、Network Load Balancers、および WorkSpaces ディレクトリにはラストマイルのレイテンシーは含まれません。

Internet Monitor によるパフォーマンススコアと可用性スコアの計算方法

AWS は、AWS のサービスとさまざまな都市ネットワーク (ロケーションと ASN) の間におけるインターネットのパフォーマンスおよび可用性に関する膨大な履歴データを保持しています。このデータに統計分析を適用することで、アプリケーションのパフォーマンスと可用性が、事前に推定計算してあるベースラインを下回った際に、Internet Monitor はそれを検出できます。これらの低下を確認しやすくするために、その情報はヘルススコア (パフォーマンスと可用性のスコア) の形式でユーザーに報告されます。

ヘルススコアの計算は、さまざまな詳細度で行われます。もっとも高い詳細度では、都市や大都市圏などの地域および ASN (都市ネットワーク) ごとに、ヘルススコアを計算します。また、個々のヘルススコアを、アプリケーションの全体的なヘルススコア番号としてモニター内にまとめます。特定の地域やサービスプロバイダーでフィルタリングせずにパフォーマンススコアや可用性コアを表示する場合、Internet Monitor は全体的なヘルススコアを表示します。

全体的なヘルススコアは、指定された期間でアプリケーション全体をカバーします。アプリケーションの都市ネットワークのペアのパフォーマンスまたは可用性スコアが、パフォーマンスまたは可用性についての対応するヘルスイベントのしきい値にグローバルに達するか、またはそれを下回ると、Internet Monitor はヘルスイベントをトリガーします。デフォルトでは、パフォーマンスと可用性の両方のしきい値は 95% です。Internet Monitor は、オプションがデフォルトで有効になっている場合は、設定した値に基づいてローカルしきい値に基づいてヘルスイベントも作成します。ヘルスイベントのしきい値の変更の詳細については、「ヘルスイベントのしきい値を変更する」を参照してください。

モニターおよびログファイル内の情報を掘り下げて問題を調査し、詳細を確認する際には、特定の都市 (場所)、ネットワーク(ASN またはインターネットサービスプロバイダー)、またはその両方でフィルタリングできます。したがって、フィルターを使用すると、選択したフィルターに応じて、さまざまな都市、ASN、または都市ネットワークのペアのヘルススコアを確認できます。

  • 可用性スコアは、トラフィックにおいて可用性の低下だと判定されない割合の推定値を表します。Internet Monitor は、観測されたトラフィックの総量と可用性メトリクスの測定値から、トラフィックが低下した割合を推定します。例えば、エンドユーザーとサービスロケーションのペアにおける可用性スコアが 99% である場合、そのペアでは、トラフィックの 1% で可用性が低下していることになります。

  • パフォーマンススコアは、トラフィックにおいてパフォーマンスの低下だと判定されない割合を表します。例えば、エンドユーザーとサービスロケーションのペアにおけるパフォーマンススコアが 99% の場合、そのペアでは、トラフィックの 1% でパフォーマンスが低下していることになります。

Internet Monitor の位置情報の精度

位置情報については、Internet Monitor は MaxMind から提供される IP 位置情報データを使用します。Internet Monitor の測定における位置情報の精度は、MaxMind のデータの精度に依存します。

Internet Monitor が TTFB および RTT (レイテンシー) の計算で考慮する情報

最初のバイトまでの時間 (TTFB) は、クライアントがリクエストを実行した後、サーバーからの情報の最初のバイトを受信するまでにかかった時間です。TTFB の AWS の計算では、Amazon EC2 または Amazon CloudFront から Internet Monitor 測定ノードまでの経過時間を測定します (ノードのラストマイルを含む)。つまり、Internet Monitor は、EC2 の TTFB の場合はユーザーから Amazon EC2 リージョンまでの時間を測定し、CloudFront の TTFB の場合はユーザーから CloudFront までの時間を測定します。

ラウンドトリップ時間 (RTT) の場合、Internet Monitor は、パブリック IP アドレスによってマッピングされた都市ネットワーク (つまり、クライアントのロケーションと ASN、通常はインターネットサービスプロバイダー) から AWS リージョン までの時間を考慮します。これは、Internet Monitor が、ゲートウェイまたは VPN の背後からインターネットにアクセスするユーザーのラストマイルを知ることができないことを意味します。

ラストマイルのレイテンシーの測定に関しては、リソースごとに違いがあることに留意してください。Internet Monitor のレイテンシーの測定では、VPC、Network Load Balancers、および WorkSpaces ディレクトリにはラストマイルのレイテンシーは含まれません。

Internet Monitor では、CloudWatch ダッシュボードの [トラフィックインサイト] タブの [トラフィック最適化の提案] セクションに、TTFB の情報が表示されます。これは、パフォーマンスを改善できるアプリケーションのさまざまな設定オプションを評価するのに役立ちます。

Internet Monitor がヘルスイベントを作成および解決する場合

Internet Monitor は、現在設定されているしきい値に基づいて、監視対象のアプリケーショントラフィックのヘルスイベントを作成および終了します。Internet Monitor にはデフォルトのしきい値設定があり、独自のしきい値を設定することもできます。Internet Monitor は、接続の問題がアプリケーションに及ぼす全体的な影響と、アプリケーションにクライアントが存在するローカルエリアへの影響を判断し、しきい値を超えるとヘルスイベントを作成します。

Internet Monitor は、AWS で提供されるサービスで利用可能なインターネットのパフォーマンスとネットワークトラフィックの可用性に関する履歴データに基づいて、接続の問題がクライアントロケーションに与える影響を計算します。クライアントがアプリケーションを使用する ASN とサービスの地理的位置、つまり影響を受ける都市とネットワークのペアに基づいて、アプリケーションに関連する情報を適用します。場所は、モニターに追加したリソースによって決まります。次に、Internet Monitor は統計分析を使用して、パフォーマンスと可用性が低下し、アプリケーションのクライアントエクスペリエンスに影響が及ぶことを検出します。

パフォーマンスと可用性のスコアは、低下が見られないトラフィックのパーセンテージとして表されます。影響度合いはこの逆で、お客様のエンドユーザーにとって、この問題がどの程度の割合で障害になっているかを表します。仮に、全世界的に可用性が 93% まで低下している場合には、その影響度は 7% になります。

アプリケーションの都市ネットワークのペアのパフォーマンスまたはアベイラビリティスコアが、パフォーマンスまたはアベイラビリティについての対応するヘルスイベントのしきい値にグローバルに達するか、またはそれを下回ると、Internet Monitor がトリガーされ、ヘルスイベントが生成されます。デフォルトでは、パフォーマンスとアベイラビリティの両方のしきい値は 95% です。しきい値を満たすか、またはしきい値を下回る値は累積されるため、いくつかの小さなイベントが積み重なってしきい値の割合を満たすことがある一方で、単一のイベントがしきい値レベルを満たしたり、しきい値を下回ったりする可能性もあります。

イベントをトリガーしたパフォーマンスまたは可用性スコアが、対応するヘルスイベントのしきい値の割合以下である限り、ヘルスイベントはアクティブなままとなります。イベントをトリガーしたスコアまたは合計スコアがしきい値を超えると、Internet Monitor はヘルスイベントを解決します。

また、Internet Monitor は、ローカルのしきい値と、問題が影響するトラフィック全体の割合に基づいてヘルスイベントを作成します。ローカルなしきい値のオプションを設定することも、ローカルなしきい値を完全に無効にすることもできます。

ヘルスイベントのしきい値の変更の詳細については、「ヘルスイベントのしきい値を変更する」を参照してください。

ヘルスイベントが報告されるタイミング

Internet Monitor には、インターネットの問題に関するすべてのシグナルを収集するための機能が備わっており、それを使用して、ヘルスイベントはモニター内に数分で作成されます。

可能な場合、Internet Monitor はヘルスイベントの発生源を分析して、原因が AWS にあるのか、それとも ASN によるものなのかを判断します。ヘルスイベントの分析は、イベントが解決された後も継続されます。新しい情報があると、Internet Monitor はイベントを最大 1 時間で更新できます。

Internet Monitor が IPv4 および IPv6 トラフィックを処理する仕組み

Internet Monitor は、IPv4 のみを介してネットワークの正常性を測定し、任意の IP ファミリー (IPv4 または IPv6) を介してそのネットワークにトラフィックを提供している場合には、ヘルスイベント、可用性およびパフォーマンスのメトリクスを表示します。デュアルスタック CloudFront ディストリビューションなどのデュアルスタックリソースからのトラフィックを提供する場合、IPv4 トラフィックに IPv6 トラフィックと同じリソースの問題がある場合にのみ、Internet Monitor はヘルスイベントを発生させ、パフォーマンススコアまたは可用性スコアの低下を示します。

全体のバイト (IN) とバイト (OUT) に関する Internet Monitor のメトリクスは、すべてのインターネットトラフィック (IPv4 および IPv6) を正確に反映していることに注意してください。