Amazon Web Services ブログ

Network Flow Monitor による AWS クラウドワークロードのネットワークパフォーマンス可視化

本記事は、2025 年 4 月 30 日に Networking & Content Delivery で公開された Visualizing network performance of your AWS Cloud workloads with Network Flow Monitor を翻訳したものです。

AWS は 2024 年 12 月 1 日の re:Invent にて、Network Flow Monitor の提供を発表しました。これは AWS マネージドサービス全体のネットワークパフォーマンスをモニターする Amazon CloudWatch Network Monitoring の新機能です。Network Flow Monitor を使用すると、コンピュートリソース (Amazon Elastic Compute Cloud(Amazon EC2)Amazon Elastic Kubernetes Service(Amazon EKS)) と Amazon S3Amazon DynamoDB などの AWS サービス間、および AWS インフラストラクチャ間とのネットワークトラフィックをほぼリアルタイムで可視化できます。収集されたデータはクラウド環境のトラブルシューティング時間を短縮し、アプリケーションのネットワーク問題をより迅速に特定と解決することに役立ちます。

クラウドネットワークにおけるオブザーバビリティの課題

アプリケーションのレイテンシーが大きい場合、クラウド環境でもオンプレミス環境でも、ネットワーク障害が最初に疑われることがよくあります。既に多くの方がご存知かもしれませんが、従来のネットワークモニタリングツールでは、 AWS ネットワークインフラストラクチャと AWS マネージドサービス間のネットワークパフォーマンスの可視性能に限り、提供されます。そのためトラブルシューティングの時間が長くなり、平均検出時間 (MTTD) と平均復旧時間 (MTTR) の両方に悪影響を及ぼす可能性があります。

CloudWatch パフォーマンスモニタリング機能

Network Flow Monitor を使用すると、次の図に示すように CloudWatch はネットワークモニタリングとアプリケーションパフォーマンスモニタリング (APM) の両方に、広範囲なオブザーバビリティサービスを提供できるようになります。


図 1. CloudWatch アプリケーションパフォーマンスモニタリングとネットワークモニタリング機能

Network Flow Monitor は、軽量なエージェントをリソースにインストールすることで、実際のワークロードトラフィックからパフォーマンスメトリクスを直接収集し、ほぼリアルタイムのモニタリングを行います。Network Flow Monitor は、データ転送、再送信、再送信タイムアウト、ラウンドトリップ時間などの重要なネットワークメトリクスを記録します。

さらに、フローモニターの優れた特徴として、ネットワークヘルスインジケーター (NHI) があります。
NHI は、ネットワークの低下が AWS インフラストラクチャに起因した問題かどうかを判断することができます。
ネットワークのレイテンシーが発生した場合、インジケーターが原因特定に役立つため、トラブルシューティングをより効率的に行うことができます。

CloudWatch ネットワークモニタリングは、他にもネットワークパフォーマンス機能を提供しています。詳細については、Internet Monitor の使用または Network Synthetic Monitor の使用のユーザーガイドをご参照ください。

次のセクションでは、Network Flow Monitor を使用したネットワークパフォーマンスを可視化する方法について、具体的なシナリオを交えて解説します。

モニタリングシナリオの例

このセクションでは AWS Transit Gateway に接続し、同じリージョン内の異なる VPC に配置している 2 つの EC2 インスタンスの構成例を見ていきます。

現在 ( ※ 2025 年 7 月 18 日時点 )、Network Flow Monitor はクロスリージョンをサポートしておりません。

この例ではネットワークパフォーマンスデータを提供するために、VPC 1 の EC2 インスタンス test-instance-1 にエージェントをインストールしました。さらに、VPC 2 の EC2 インスタンス test-instance-2 に Apache Web サーバーを構築し、次の図に示すように httpd サービスを有効にしました。次のセクションでは、エージェントのインストール方法について詳しく解説します。


図 2. Network Flow Monitor の VPC 間ネットワークモニタリング設定例

アクティブモニタリングソリューションとは異なり、Network Flow Monitor はワークロード間の実際のユーザートラフィックを分析する継続的なパッシブ・モニタリングを提供します。次の図に示すように、エージェントをインストールした test-instance-1 から、Apache Webサーバーの test-instance-2 へのテストトラフィックを送信しました。


図 3. VPC 1 のインスタンスと VPC 2 の Web サーバー間の HTTP トラフィックフローのデータをエージェントが収集

エージェントは、TCP コネクションのペイロードにアクセスできません。エージェントは Linux カーネルから bpf_sock_ops 構造体のみを受け取ります。この構造体は、ローカルとリモートの IP アドレス、ローカルとリモートの TCP ポート、さらにカウンターとラウンドトリップタイムを提供します。

Network Flow Monitor のセットアップ

このセクションでは、シナリオ例に沿って、Network Flow Monitor のセットアップ手順を説明します。
ネットワークフローのパフォーマンスメトリクスを表示するために Network Flow Monitor を次のように設定します:

  1. Network Flow Monitor を有効化
  2. Network Flow Monitor エージェントをインストール
  3. ワークロードインサイトでネットワークフローの確認
  4. 1 つ以上のフローモニターを作成

ステップ 1:Network Flow Monitor を有効にする

Network Flow Monitor を使用する前に、CloudWatch へのデータ送信とネットワーク接続をマッピングするために必要な権限を有効にします。コンソールで初めて Network Flow Monitor にアクセスすると、次の図で示すように、本機能を有効にするように求められます。

図 4. Network Flow Monitor の有効化

Network Flow Monitor を有効にすると権限が設定され、モニタリングスコープが作成されます。現在 ( ※ 2025 年 7 月 18 日 時点)、モニタリングスコープはサインインしている AWS アカウントが対象です。詳細については、Network Flow Monitor を有効にするを参照してください。機能の有効化は、リージョン内で初めて使用した時のみ必要となります。

Network Flow Monitor がアカウントに必要なサービスリンクロールの使用許可を付与し、AWS アカウントのモニタリング範囲を設定するまで、しばらく待ちます。 (最大30分)

ステップ 2:Network Flow Monitor エージェントのインストール

インスタンスにエージェントをインストールする際、エージェントが Network Flow Monitor のバックエンドにデータを送信できるように、アクセス権限を設定する必要があります。このデータによって、ネットワークパフォーマンスのモニターができるようになります。インスタンスで使用できる Linux バージョンには特定の要件があり、Amazon CloudWatch のユーザーガイドに記載されています。

エージェントは EC2 インスタンス、セルフマネージド Kubernetes インスタンス、または Amazon EKS にインストールできます。本記事では、AWS ユーザーガイドの EC2 インスタンスのエージェントをインストールして管理する に記載されている手順に従います。Kubernetes や Amazon EKS でのエージェントのインストールについては、インスタンスに Network Flow Monitor エージェントをインストールするを参照してください。

正しいアクセス権限を設定するには、次の図に示すようにエージェントを実行している EC2 インスタンスに、 CloudWatchNetworkFlowMonitorAgentPublishPolicy ポリシーがアタッチされたロールを使用する必要があります。


図 5. ターゲットインスタンスのロールに Network Flow Monitor ポリシーをアタッチ

EC2 インスタンスにエージェントをインストールする前に、アクセス権限を追加することを推奨します。インスタンスにロールがない場合は新しいロールを作成し、前述のポリシーをアタッチしてください。

次に、インスタンスにエージェントをインストールします。エージェントのインストールには、AWS Systems Manager の機能である AWS Systems Manager Agent を使用します。エージェントのインストールを開始する前に、各インスタンスで Systems Manager Agent が実行されていることを確認してください。詳細については、「SSM Agent」の使用 を参照してください。

EC2 インスタンスにエージェントをインストールするには、以下の手順を実行します:

  1. コンソールで、AWS Systems Manager コンソールを開きます。
  2. Node Tools の下で、Distributor を選択します。
  3. Owned by Amazon セクションで、Network Flow Monitor ソフトウェアパッケージ AmazonCloudWatchNetworkFlowMonitorAgent を検索します。
  4. パッケージを選択し、次の図に示すように Install one time または Install on a schedule を選択します。


図 6. Systems Manager で、ネットワークフローモニターエージェントパッケージを選択

  1. エージェントをインストールする EC2 インスタンスを選択します。この例では、次の図に示すように、test-instance-1 のみを選択します。ただし、複数のインスタンスにエージェントをインストールする場合は、タグやリソースグループに基づいてインスタンスを選択する方法が効率的です。


図 7. Systems Manager で、エージェントをインストールするインスタンスを選択

  1. 最後に、Run を選択してエージェントのインストールを開始します。

インストールが正常に完了すると、次の図に示すようなコマンドステータスメッセージが表示されます。


図 8. ターゲットインスタンスへのエージェントインストールの成功

ステップ 3:Workload insights でネットワークフローを確認

Network Flow Monitor を有効にしてエージェントをインストールすると、パフォーマンスデータを確認できます。ワークロードの傾向やトラフィックパターンを把握するために、まずコンソールの可視化から始めることをお勧めします。

CloudWatch コンソールで、Network Monitoring の下にある Flow monitors を選択します。次に、Workload insights タブで、Top contributors のネットワークフローを確認し、より詳細にモニタリングしたいフローを特定することができます。この情報は次の図に示しており、詳細については、ワークロードインサイトを使用してネットワークフローを評価するを参照してください。


図 9. CloudWatch のネットワークフローデータ

特定のネットワークフローを詳しく分析するには、次の2つの方法でモニターを作成できます。Top contributors でネットワークフローを選択し、Create monitor を選択します。またはステップ 4 記載手順の Create monitor を選択し、ネットワークフローをモニターするローカルリソースとリモートリソースを個別に指定することもできます。

ステップ 4:フローモニターの作成

モニターの作成を開始するには、次の図に示すように、Network Flow Monitor コンソールで Create monitor を選択します。

図 10. Network Flow Monitor でモニターを作成

モニターを作成する際は、設定の一時保存ができないため、すべての手順を一度に完了することをお勧めします。

モニター作成フローの手順に沿って進めてください。この例では、モニターに以下の情報を提供します。

  1. Monitor name には、次の図に示すように monitor-ap-northeast-1c-1a と入力します。


図 11. フローモニターの名前を指定

  1. Local resources では、監視するネットワークフローのタイプを指定し、それぞれに具体的なオプションを選択します。Network Flow Monitor がサポートするローカルリソースの種類は、サブネット、VPC、またはアベイラビリティーゾーンです。この例では、次の図に示すように、インスタンスが存在するサブネット flowmonitor-subnet-ap-northeast-1c を選択します。


図 12. フローモニターに 1 つ以上のローカルリソースを選択

  1. Remote resources については、Everywhere または Select remote resources を選択します。Everywhere を選択すると、選択したローカルリソースから送信するすべてのネットワークフローがモニターに含まれます。それ以外の場合は、モニターする特定のリモートリソースを選択できます。このオプションでは、サブネット、VPC、アベイラビリティーゾーン (AZ)、または Amazon S3 や DynamoDB などの AWS サービスの中から、1 つ以上のリソースを選択できます。

この例では次の図に示すように、Web サーバーをホストするリモートリソースとして1つのサブネット flowmonitor-subnet-ap-northeast-1a を指定します。ローカルリソースとリモートリソースをそれぞれ 1 つずつ選択すると、モニターは 2 つのリソース間のネットワークフロー情報をモニターできるようになります。


図 13. フローモニターのリモートリソースを選択

  1. Next を選択し、モニターの設定を確認します。
  2. Create monitor を選択します。

モニターを作成した後、Network Flow Monitor がデータの収集と集計を開始するまで最大 30 分待ちます

Network Flow Monitor メトリクスの可視化

モニターを作成すると、Network Flow Monitor はエンドツーエンドのパフォーマンスメトリクスと、ネットワーク低下の問題に関するネットワークヘルスインジケーターの表示を開始します。モニターの情報は Network Flow Monitor コンソールで可視化できます。また、AWS/NetworkFlowMonitor というカスタム名前空間の CloudWatch メトリクスでも確認できます。

この例では、Network Flow Monitor コンソールで、Monitors のパフォーマンスデータを確認します。モニタータブで、次の図に示すように monitor-ap-northeast-1c-1a というモニターを選択します。


図 14. フローモニターでパフォーマンスデータを表示

モニターのネットワークフローの全体概要を把握するには、次の図に示すように Overview タブを確認します。


図 15. モニターの概要タブでパフォーマンスメトリクスを可視化

次に、Historical explorer タブに移動して、モニター対象のネットワークフローのより詳細なメトリクスを確認します。例えば、パフォーマンスが低下した場合、トポロジー機能はネットワークパス内のすべてのコンポーネントを、サービスアイコンとリソース ID とともに表示します。次の図に示すように、この可視化は指定時間の中で、各パフォーマンスメトリクスと特定フローの情報を調査し、問題解決に役立てることができます。


図 16. 低下問題のネットワークフロートポロジーの可視化

リソースのクリーンアップ

Network Flow Monitor の評価を終えた後は、速やかにすべてのテストモニターと暫定リソースを削除してください。
効率的なリソース管理を行うことで、不必要な支出を避けることができます。

まとめ

本記事では、Amazon CloudWatch ネットワークモニタリングの新しいオブザーバビリティ機能である Network Flow Monitor を紹介しました。本機能により、コンピューティングインスタンスと AWS サービス間のワークロードのネットワークパフォーマンスをほぼリアルタイムで可視化できます。また、フローモニターが提供する様々なメトリクスと情報を使用することで、クラウドワークロードのネットワークパフォーマンス低下を迅速に分析対処し、トラブルシューティングの時間を最小限に抑えることができます。

Network Flow Monitor の詳細はこちら

Network Flow Monitor の利点について概要を説明しました。
詳細は以下の追加情報をご確認ください:

  • 料金の詳細については、CloudWatch の料金表ページをご覧ください。
  • フローモニターは現在 ( ※ 2025 年 7 月 18 日 時点) 17 の AWS リージョンで利用可能です。利用可能な一覧については、ユーザーガイドを参照してください。
  • Network Flow Monitor の詳細と技術的なガイダンスについては、ユーザーガイドを参照してください。

翻訳はテクニカルアカウントマネージャーの安藤 彰が担当しました。