インターネットトラフィックが急増すると、インターネット NAT ゲートウェイが容量と帯域幅の上限に達する可能性があります。これにより、サービスの速度が低下し、ビジネスオペレーションに支障をきたすことがあります。VPC フローログを使用して、インターネット NAT ゲートウェイで SNAT ルールを使用する ECS インスタンスからのトラフィックを分析できます。高トラフィックのインスタンスを特定することで、ネットワーク帯域幅の割り当てを最適化し、ネットワークボトルネックを解決できます。
概要
インターネット NAT ゲートウェイは、SNAT および DNAT 機能を提供するエンタープライズグレードのサービスです。これにより、インターネットにアクセスするインスタンスの詳細なモニタリングと管理ができます。また、インターネット NAT ゲートウェイを使用して、トラフィックのトップコントリビューターの表示、トラフィックが急増した ECS インスタンスの特定、幅広いトラフィック監視メトリクスへのアクセスも可能です。詳細については、「インターネット NAT ゲートウェイ」をご参照ください。
VPC フローログは、特定の伸縮自在なネットワークインターフェイス (ENI)、特定の VPC、または vSwitch 内のすべての ENI からのトラフィックをキャプチャできます。
SNAT または DNAT のためにインターネット NAT ゲートウェイを使用する ECS インスタンスからのトラフィックのトラブルシューティングが必要な場合、VPC フローログを作成できます。フローログは、NAT ゲートウェイが存在する vSwitch 内のすべての ENI からのトラフィックをキャプチャします。VPC フローログを有効にして分析することで、各 ECS インスタンスからのトラフィックを体系的に調査し、高トラフィックのインスタンスを効果的に管理および最適化し、安定したネットワークパフォーマンスを確保できます。
主な機能
VPC フローログを有効にすると、トラフィックログデータが収集・保存されます。ECS インスタンスがインターネットへのアクセスに使用する各パスのトラフィックログを表示および分析できます。これにより、各インスタンスのネットワークトラフィックを包括的に把握できます。
内部ネットワークとインターネット間のトラフィックは、インターネット NAT ゲートウェイを経由してルーティングされます。インターネット NAT ゲートウェイに関連付けられた ENI は、ゲートウェイに出入りするトラフィックのインターフェイスとして機能します。この ENI のインバウンドおよびアウトバウンドトラフィックを監視して、各パスのトラフィック使用量と帯域幅消費量を追跡できます。
次の図に示すように、ECS インスタンスからインターネット NAT ゲートウェイを経由してインターネットに至るトラフィックパスは 4 つのセグメントに分割されます。NAT ゲートウェイの ENI が分割点として機能します。
フローログセンター を使用して、インバウンド方向とアウトバウンド方向のトラフィックを表示および分析し、どの ENI が監視されているかを特定できます。
シナリオ
次のシナリオでは、フローログを使用して、インターネット NAT ゲートウェイを使用する高トラフィックの ECS インスタンスを特定できます:
-
ネットワークパフォーマンスの最適化:高い同時実行性と高トラフィックのビジネスシナリオでは、フローログを使用して、インターネット NAT ゲートウェイを使用する各 ECS インスタンスのアウトバウンドおよびインバウンドトラフィックを分析できます。これにより、高トラフィックのインスタンスを特定し、どのインスタンスと送信元 IP アドレスの組み合わせが帯域幅のボトルネックを引き起こしているかを突き止めることができます。その後、帯域幅リソースをより効果的に割り当てて、過負荷インスタンスによるネットワークの輻輳を防ぐことができます。
-
コストの管理と最適化:高トラフィックのインスタンスは、多額の帯域幅コストにつながる可能性があります。トラフィックログを分析することで、どのインスタンスと送信元 IP アドレスが一貫して高トラフィックを生成しているかを特定できます。その後、これらのインスタンスのネットワークアクセスパスを最適化して、不要なトラフィックを削減し、コストを削減できます。
シナリオ例
ある企業が、インターネット NAT ゲートウェイの SNAT 機能を使用してインターネットにアクセスする複数の内部サーバーを運用しています。最近、内部サーバーがインターネットリソースにアクセスするのに時間がかかり、ユーザーエクスペリエンスが低下していることに気づきました。この企業は、高トラフィックのサーバーを特定し、帯域幅リソースの最適化や計画などの対策を講じて、これらのパフォーマンス問題を解決したいと考えています。
このトピックでは、次の図に示すシナリオを例として使用します。ある企業は、China (Hangzhou) リージョンに VPC を所有しています。VPC には、vSwitch 1 内に 3 つの ECS インスタンスが含まれています。これらのインスタンスは、vSwitch 2 内のインターネット NAT ゲートウェイの SNAT 機能を使用してインターネットにアクセスします。内部サーバーからインターネットへのトラフィックが急増したことで、サーバーの応答が遅くなり、ユーザーエクスペリエンスが低下しています。この企業は、VPC フローログを使用して、3 つの ECS インスタンスのうちどれが高トラフィックであるかを特定する必要があります。この情報は、ネットワークパフォーマンスのボトルネックを解決するためのリソースの再計画の指針となります。
前提条件
-
China (Hangzhou) リージョンに VPC、vSwitch 1、および vSwitch 2 を作成済みであること。詳細については、「VPC の作成と管理」をご参照ください。
-
vSwitch 1 に 3 つの ECS インスタンス (ECS 01、ECS 02、ECS 03) を作成済みであること。詳細については、「ウィザードを使用したインスタンスの作成」をご参照ください。
-
vSwitch 2 にインターネット NAT ゲートウェイを作成し、その NAT ゲートウェイに vSwitch レベルの SNAT エントリを作成済みであること。SNAT エントリは vSwitch 1 に適用されます。詳細については、「インターネット NAT ゲートウェイの SNAT 機能を使用したインターネットアクセス」をご参照ください。
手順
ステップ 1:フローログの作成
フローログを作成する前に、前提条件を満たしていることを確認してください。詳細については、「フローログを使用するための前提条件」をご参照ください。
- VPC コンソールにログインします。
- 左側のナビゲーションウィンドウで、 を選択します。
-
上部メニューで、ターゲットリージョンを選択します。この例では、[中国 (杭州)] を選択します。
-
[フローログ]ページで、[フローログの作成] をクリックします。
-
[フローログの作成]ダイアログボックスで、次の表に従ってパラメーターを設定し、[OK] をクリックします。
パラメーター
説明
[リソースタイプ]
トラフィックをキャプチャするリソースのタイプを選択します。この例では、[vSwitch] を選択します。
[リソースインスタンス]
トラフィックをキャプチャするリソースインスタンスを選択します。この例では、vSwitch 1 のインスタンス ID を選択します。
[トラフィックタイプ]
キャプチャするトラフィックのタイプを選択します。この例では、{value} を選択します。
[分析と送信の設定]
-
[モードの選択]:[SLS に送信] を選択します。次に、[SLS プロジェクト] と [SLS Logstore] を設定します。
-
[FlowLog レポート分析機能の有効化] を選択します。これにより、選択した Logstore のインデックスが有効になり、データの SQL ベースおよびビジュアル分析をサポートするダッシュボードが作成されます。
-
ステップ 2:ユーザートラフィックのシミュレーション
-
ECS 01、ECS 02、および ECS 03 インスタンスにログインします。
-
ECS 01、ECS 02、および ECS 03 の各インスタンスで次のコマンドを実行して、wrk ツールをインストールします。
yum -y install git make gcc git clone https://github.com/wg/wrk.git yum install unzip cd wrk make -
ECS 01、ECS 02、および ECS 03 インスタンスで次のコマンドを実行して、ユーザートラフィックをシミュレーションします。
ECS 01 で、次のコマンドを実行します。
./wrk -c 1000 -d 60s -t 3 http://101.XX.XX.200:80/ # 101.XX.XX.200 を特定のパブリック IP アドレスに置き換えます。ECS 02 で、次のコマンドを実行します。
./wrk -c 2000 -d 60s -t 3 http://101.XX.XX.200:80/ # 101.XX.XX.200 を特定のパブリック IP アドレスに置き換えます。ECS 03 で、次のコマンドを実行します。
./wrk -c 3000 -d 60s -t 3 http://101.XX.XX.200:80/ # 101.XX.XX.200 を特定のパブリック IP アドレスに置き換えます。コマンドのパラメーターは次のとおりです:
-
-c:各スレッドで維持する同時接続数。
-
-d:テスト期間。
sは単位 (秒) を指定します。 -
-t:使用するスレッド数。各スレッドは同時実行ユーザーをシミュレートします。
-
ステップ 3:フローログの表示
- VPC コンソールにログインします。
- 左側のナビゲーションウィンドウで、 を選択します。
-
上部メニューで、ターゲットリージョンを選択します。この例では、[中国 (杭州)] を選択します。
-
[フローログ]ページで、作成したフローログを見つけます。ログストア 列で、Logstore の名前をクリックして Log Service コンソールに移動し、トラフィック情報を表示します。
-
次の表の手順に従って、インターネット NAT ゲートウェイの SNAT エントリを介してインターネットにアクセスする ECS インスタンスのトラフィックを表示します。
フローログは、プライベート IP アドレスが
172.16.1.46の ECS 03 インスタンスのトラフィックが最も高いことを示しています。ステップ
説明
①
次の SQL クエリは、収集された VPC フローログを集計およびソートして、特定のパブリック IP アドレスに対して高トラフィックを生成している ECS インスタンスを示すグラフを作成します。
dstaddr: "101.XX.XX.200" and action: ACCEPT and srcaddr: 172.16.1.* | select date_format(from_unixtime(__time__ - __time__% 60), '%H:%i:%S') as time, srcaddr,sum(bytes*8/(case WHEN "end"-start=0 THEN 1 else "end"-start end)) as bandwidth group by time,srcaddr order by time asc limit 1000この SQL クエリは、
time、bandwidth(bps 単位)、およびsrcaddr(送信元アドレス) の 3 つのフィールドを定義します。クエリ結果はtimeとsrcaddrでグループ化され、timeの昇順でソートされ、1,000 ログエントリに制限されます。フィールドの詳細については、「VPC フローログのフィールド」をご参照ください。パラメーターは次のとおりです:
-
dstaddr:宛先アドレス。パブリック IP アドレスです。この例では、101.XX.XX.200です。 -
srcaddr:送信元アドレス。ECS インスタンスのプライベート IP アドレスです。この例では、172.16.1.*です。 -
他のフィールドについては、例の値をそのまま使用します。
説明-
特定のパブリック IP アドレスから ECS インスタンスへのインバウンドトラフィックをフィルタリングするには、次の SQL クエリを使用します:
srcaddr: "101.XX.XX.200" and action: ACCEPT and dstaddr: 172.16.1.* | select date_format(from_unixtime(__time__ - __time__% 60), '%H:%i:%S') as time, dstaddr,sum(bytes*8/(case WHEN "end"-start=0 THEN 1 else "end"-start end)) as bandwidth group by time,dstaddr order by time asc limit 1000パラメーターは次のとおりです:
-
srcaddr:送信元アドレス。パブリック IP アドレスです。この例では、101.XX.XX.200です。 -
dstaddr:宛先アドレス。ECS インスタンスのプライベート IP アドレスです。この例では、172.16.1.*です。 -
グラフを生成するときは、[集合カラム] を
dstaddrに設定します。
-
-
ECS インスタンスからすべてのパブリック IP アドレスへのアウトバウンドトラフィックをフィルタリングするには、次の SQL クエリを使用します:
srcaddr: 172.16.1.* and action: ACCEPT | select date_format(from_unixtime(__time__ - __time__% 60), '%H:%i:%S') as time, srcaddr,sum(bytes*8/(case WHEN "end"-start=0 THEN 1 else "end"-start end)) as bandwidth from log where ip_to_domain(dstaddr)!='intranet' group by time,srcaddr order by time asc limit 1000パラメーターは次のとおりです:
-
srcaddr:送信元アドレス。プライベート IP アドレスです。この例では、172.16.1.*です。 -
dstaddr:宛先アドレス。パブリック IP アドレスです。 -
グラフを生成するときは、[集合カラム] を
srcaddrに設定します。
-
②
クエリの時間範囲を選択します。この例では、[過去 5 分間] を選択します。
③
共通設定 タブをクリックし、
アイコンをクリックして折れ線グラフ形式を選択します。④
検索と分析変更 で、次のパラメーターを設定します:
-
[X 軸のフィールド]:time に設定します。
-
[Y 軸のフィールド]:bandwidth に設定します。
-
[集合カラム]:srcaddr に設定します。
標準設定 セクションで、[形式] を bits/s (SI) に設定します。
他のパラメーターはデフォルト値のままにします。
⑤
[ダッシュボードに追加] をクリックし、ダイアログボックスで次のパラメーターを設定します:
-
[操作]:この例では、[新規ダッシュボードを作成] を選択します。
-
[レイアウトモード]:この例では、[グリッドレイアウト] を選択します。
-
[ダッシュボード名]:ダッシュボードの名前を入力します。この例では、「NAT ゲートウェイ経由のアウトバウンド ECS トラフィック」と入力します。
ダッシュボード にフローログ情報が表示されます。
⑥
[検索と分析] をクリックして、各 ECS インスタンスからのアウトバウンドトラフィックを表示し、高トラフィックのインスタンスを特定します。
-
関連ドキュメント
-
VPC フローログによってキャプチャされるフィールドの詳細については、「フローログレコード」をご参照ください。
-
フローログのクエリ時にエラーが発生した場合は、「ログのクエリと分析における一般的なエラー」 を参照して問題をトラブルシューティングしてください。
-
ログのクエリと分析方法の詳細については、「ログのクエリと分析のクイックスタート」をご参照ください。