Network Flow Monitor のコンポーネントと機能
Network Flow Monitor は、以下の概念を使用または参照します。
- エージェント
Network Flow Monitor のエージェントは、Amazon EC2 インスタンスリソースにインストールするソフトウェアアプリケーションです。アプリケーションには 2 つのパートがあります。
1 つ目は、TCP 接続に関連するイベントを受信し、eBPF を使用して Linux カーネル内に登録されます。eBPF は Linux 拡張 Berkley Packet Filter (eBPF) 機能であり、指定されたプログラムが Linux カーネルによって発生した特定のイベントを受信できるようにします。
2 つ目は、eBPF の機能によって収集された統計を集計します。エージェントは、集約されたメトリクスを約 30 秒ごとに Network Flow Monitor バックエンドに送信していますが、これには 5 秒 のジッターが含まれます (つまり 25~35 秒になります)。
エージェントの詳細については、「仕組み」を参照してください。
- 上位の寄稿者
上位の寄与要因とは、Network Flow Monitor のスコープ内またはモニターで追跡しているネットワークフロー間で、特定のメトリクス (再送信など) の値が最も高いネットワークフローです。パフォーマンスメトリクスの測定値について、報告された数値が最も多いフローを確認すると、調査すべき障害がある箇所を確認するのに役立ちます。Network Flow Monitor は、ワークロードインサイトのモニタリング範囲内の上位寄与要因のパフォーマンスメトリクスを返します。さらに、モニターを作成すると、Network Flow Monitor は、モニターに選択したネットワークフローの上位寄与要因のパフォーマンスメトリクスを返します。
- ローカルリソースとリモートリソース
ワークロードの双方向フローにおけるローカルリソースは、エージェントがインストールされているホストです。例えば、ワークロードがウェブサービスとバックエンドデータベース (Amazon RDS など) 間のやり取りで構成されている場合、ウェブサービスをホストする EC2 インスタンス (これはエージェントも実行しています) がローカルリソースになります。ローカルリソースには、サブネット、VPC、またはアベイラビリティーゾーンを指定できます。ローカルリソースは、少なくとも IP アドレスとトランスポートプロトコルポートによって識別されます。
リモートリソースは、ワークロードの双方向フローのもう 1 つのエンドポイントです。バックエンド RDS データベースを使用するウェブサービスのこの例では、Amazon RDS がリモートリソースです。リモートリソースには、サブネット、VPC、アベイラビリティーゾーン、または AWS サービスを指定できます。ローカルリソースと同様に、リモートリソースはエンドポイントの IP アドレスとトランスポートプロトコルポートによって識別されます。
- ワークロードインサイト
ワークロードインサイトには、スコープ内のすべてのネットワークフローに対して返されるパフォーマンスメトリクスがあります。AWS Management Console の [ワークロードインサイト] ページには、ワークロードインスタンスに Network Flow Monitor エージェントをインストールしたワークロードに関するパフォーマンスデータが表示されます。[ワークロードインサイト] ページには、転送されたデータ量やその他のメトリクスを含むアプリケーションが、ワークロードのカテゴリ別にグループ化されて表示されます。たとえば、アベイラビリティーゾーン (AZ) 間または AZ 内のトラフィックがあるワークロードのメトリクスをすべて表示できます。これらのインサイトを使用すると、モニターを作成するワークロードを選択して、詳細を表示し、ネットワークパフォーマンスを継続的に追跡できます。
- 監視
モニターを作成して、1 つまたは複数の特定のワークロードのネットワークパフォーマンスを継続的にモニタリングし、ネットワークフローに関する詳細情報を表示できるようにします。Network Flow Monitor は、モニターごとにエンドツーエンドのパフォーマンスメトリクスとネットワークヘルスインジケータ (NHI) を公開します。この NHI は、障害の属性を判断するのに役立ちます。[ワークロードインサイト] ページで情報を確認して、どのネットワークフローに焦点を合わせるかを確認し、それらのフローのモニターを作成することをお勧めします。次に、[ワークロードのインサイト] を定期的に確認することで、必要なモニターがあるかどうか、または新しいモニターを作成することが役立つかどうかを判断できます。
- ネットワークヘルスインジケータ (NHI)
ネットワークヘルスインジケータ (NHI) は、選択した期間中にモニターによって追跡される 1 つ以上のネットワークフローに AWS ネットワークの問題があったかどうかを通知するバイナリ値です。NHI 値が 1 または [Degraded] の場合、少なくとも 1 つの AWS ネットワークフローにネットワークの問題があります。NHI インジケータを使用すると、AWS ネットワークの問題やワークロードに起因するネットワークの問題にトラブルシューティングを重点的に行うかどうかをすばやく判断できます。
エージェントの詳細については、「CloudWatch で Network Flow Monitor メトリクスを表示する」を参照してください。
- スコープ
Network Flow Monitor では、スコープはネットワークパフォーマンスインジケータを確認するときにオブザーバビリティがあるアカウントです。管理アカウントとしてサインインし、CloudWatch で AWS Organizations を設定すると、スコープを組織内の複数のアカウント (合計で最大 100 アカウント) に設定できます。それ以外の場合、Organizations で管理アクセス許可を持たない AWS アカウント でサインインした場合、または CloudWatch で Organizations を設定していない場合、Network Flow Monitor はサインインしているアカウントにスコープを設定します。
Network Flow Monitor は、スコープに一意の [スコープ ID] を生成します。メトリクスデータのクエリでは、スコープ ID を使用して、Network Flow Monitor がメトリクスを生成するリソースを決定します。(Network Flow Monitor でアカウントのパフォーマンスメトリクスを確認する前に、メトリクスデータを収集して送信するエージェントをインストールする必要があります。)
- クエリ ID
Network Flow Monitor は、モニターの上位寄与要因のクエリなど、パフォーマンスメトリクスデータを取得するために作成されるクエリごとに一意の [クエリ ID] を生成します。Network Flow Monitor の API コールでクエリ ID を使用すると、クエリのステータスの確認、クエリの停止、クエリの再実行、またはその他の方法でクエリを操作できます。
- パフォーマンスメトリクス
Network Flow Monitor は、TCP ラウンドトリップタイム (RTT)、TCP 再送信、TCP 再送信タイムアウト、Network Flow Monitor スコープ内のフローごとに転送されたバイト数などのエンドツーエンドのパフォーマンスメトリクスを収集して計算します。このサービスはこれらのメトリクスを集約し、サービスバックエンドに返します。上位寄与要因をメトリクスタイプ別に表示できます。Network Flow Monitor に異常が見られた場合は、ネットワークヘルスインジケータ (NHI) を確認して、根本的な AWS ネットワークの問題があるかどうかを確認することもできます。
RTT は必ずしも計算されないため、RTT データはスパースである可能性があることに注意してください。
Amazon CloudWatch の機能を使用して、これらのメトリクスに基づいてダッシュボード、アラーム、通知を作成することもできます。例えば、Network Flow Monitor を使用してアラームを作成する の情報を確認すれば、Network Flow Monitor メトリクスを使用したアラームの設定について説明されています。