

# Network Flow Monitor のコンポーネントと機能
<a name="CloudWatch-NetworkFlowMonitor-components"></a>

Network Flow Monitor は、以下の概念を使用または参照します。

**エージェント**  
Network Flow Monitor の*エージェント*は、AWS コンピューティングリソース (Amazon EC2 と Amazon EKS) にインストールするソフトウェアアプリケーションです。アプリケーションには 2 つのパートがあります。  
+ 1 つ目は、TCP 接続に関連するイベントを受信し、eBPF を使用して Linux カーネル内に登録されます。eBPF は Linux 拡張 Berkley Packet Filter (eBPF) 機能であり、指定されたプログラムが Linux カーネルによって発生した特定のイベントを受信できるようにします。
+ 2 つ目は、eBPF の機能によって収集された統計を集計します。エージェントは、集約されたメトリクスを約 30 秒ごとに Network Flow Monitor バックエンドに送信していますが、これには 5 秒 のジッターが含まれます (つまり 25～35 秒になります)。
エージェントの詳細については、「[仕組み](CloudWatch-NetworkFlowMonitor-inside-network-flow-monitor.md)」を参照してください。

**トップコントリビューター**  
*トップコントリビューター*とは、Network Flow Monitor のスコープ内またはモニターで追跡しているネットワークフロー間で、特定のメトリクス (再送信など) の値が最も高いネットワークフローです。パフォーマンスメトリクスの測定値について、報告された数値が最も多いフローを確認すると、調査すべき障害がある箇所を確認するのに役立ちます。Network Flow Monitor は、*ワークロードインサイト*のモニタリング範囲内のトップコントリビューターのパフォーマンスメトリクスを返します。さらに、モニターを作成すると、Network Flow Monitor は、モニターに選択したネットワークフローのトップコントリビューターのパフォーマンスメトリクスを返します。

**ローカルリソースとリモートリソース**  
*ローカルリソース*とは、Network Flow Monitor エージェントがインストールされている 1 つまたは複数のホストの場所を指します。サブネット、VPC、アベイラビリティーゾーン、Amazon EKS クラスター、または AWS リージョン が該当します。例えば、ウェブサービスと DynamoDB などのバックエンドデータベース間のやり取りで構成されるワークロードを考えてみましょう。このシナリオでは、ローカルリソースは、ウェブサービスをホストしている EC2 インスタンスのサブネットであり、そのインスタンス上ではエージェントも実行されています。ネットワークフローは通常、方向性がありますが、双方向に設定できます。  
*リモートリソース*とは、ネットワークフローの反対側の接続先を指します。バックエンドデータベースを備えたウェブサービスのこの例では、DynamoDB がリモートリソースです。リモートリソースには、サブネット、VPC、アベイラビリティーゾーン、AWS サービス、または AWS リージョン を指定できます。リージョンをリモートリソースとして指定すると、Network Flow Monitor はリージョンのエッジまでのネットワークフローのパフォーマンスを測定します。リージョン内の特定のエンドポイントに対するパフォーマンスは測定されません。  
リソースは、リソースの ARN、AWS サービスの名前、またはアベイラビリティーゾーンかリージョンの場合は、ゾーンまたはリージョンの名前によって識別されます。

**ワークロードインサイト**  
*ワークロードインサイト*には、スコープ内のすべてのネットワークフローに対して返されるパフォーマンスメトリクスがあります。AWS マネジメントコンソール の **[ワークロードインサイト]** ページには、ワークロードインスタンスに 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 メトリクスを表示する](CloudWatch-NetworkFlowMonitor-cw-metrics.md)」を参照してください。

**スコープ**  
Network Flow Monitor では、*スコープ*はネットワークパフォーマンスインジケータを確認するときにオブザーバビリティがあるアカウントです。管理アカウントとしてサインインし、CloudWatch で AWS Organizations を設定すると、スコープを組織内の複数のアカウント (合計で最大 100 アカウント) に設定できます。それ以外の場合、Organizations で管理アクセス許可を持たない AWS アカウントでサインインした場合、または CloudWatch で Organizations を設定していない場合は、サインインしているアカウントにスコープが設定されます。  
Organizations を設定したら、アカウントを追加または削除することでスコープを変更できます。ただし、スコープを変更するたびに、Network Flow Monitor はスコープ内のリソースの新しいトポロジを作成する必要があります。詳細については、「[スコープに複数のアカウントを追加する](CloudWatch-NetworkFlowMonitor-multi-account.md#CloudWatch-NetworkFlowMonitor-multi-account.config-scope)」を参照してください。  
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 を使用してアラームを作成する](CloudWatch-NetworkFlowMonitor-create-alarm.md) の情報を確認すれば、Network Flow Monitor メトリクスを使用したアラームの設定について説明されています。