VPC 内の NAT ゲートウェイを経由するトラフィックを最も増加させている要因を調べるにはどうすればよいですか?

最終更新日: 2022 年 4 月 1 日

Amazon 仮想プライベートクラウド (Amazon VPC) の NAT ゲートウェイに対する AWS の請求書に、通常より高い費用があることに気付きました。VPC 内の NAT ゲートウェイを経由するトラフィックを最も増加させているインスタンスを調べるにはどうすればよいですか?

解決方法

注意: 次の各コマンドで、x.x.x.x を NAT ゲートウェイのプライベート IP に置き換えてください。y.y. は VPC CIDR 範囲の最初の 2 オクテットに置き換えます。

VPC または NAT ゲートウェイの Elastic Network Interface で VPC フローログが有効になっていることを確認します。必要に応じて、フローログを作成し、VPC フローログを有効にします。フローログデータを Amazon CloudWatch Logs または Amazon Simple Storage Solution (Amazon S3) に発行できます。

CloudWatch logs でクエリを実行するには

1.    CloudWatch コンソールを開きます。

2.    ナビゲーションペインで [Logs Insights] を選択します。

3.    ドロップダウンから、NAT ゲートウェイのロググループを選択します。

4.    どのインスタンスが NAT ゲートウェイを介して最もトラフィックを送信しているかを見つけるには、次のクエリを実行します。

filter (dstAddr like 'x.x.x.x' and srcAddr like 'y.y.') 
| stats sum(bytes) as bytesTransferred by srcAddr, dstAddr
| sort bytesTransferred desc
| limit 10

5.    インスタンスとの間で行き来するトラフィックを見つけるには、次のクエリを実行します。

filter (dstAddr like 'x.x.x.x' and srcAddr like 'y.y.') or (srcAddr like 'x.x.x.x' and dstAddr like 'y.y.')
| stats sum(bytes) as bytesTransferred by srcAddr, dstAddr
| sort bytesTransferred desc
| limit 10

6.    VPC 内のインスタンスが最も頻繁に通信するインターネット接続先を見つけるには、次のクエリを実行します。

アップロードの場合:

filter (srcAddr like 'x.x.x.x' and dstAddr not like 'y.y.') 
| stats sum(bytes) as bytesTransferred by srcAddr, dstAddr
| sort bytesTransferred desc
| limit 10

ダウンロードの場合:

filter (dstAddr like 'x.x.x.x' and srcAddr not like 'y.y.') 
| stats sum(bytes) as bytesTransferred by srcAddr, dstAddr
| sort bytesTransferred desc
| limit 10

Athena を使用して S3 バケット内のログをクエリするには

Amazon VPC コンソールまたは Amazon Athena コンソールを使用してテーブルを作成します。この例では、デフォルトはデータベースで、 vpc_flow_logs はテーブルです。

1.    どのインスタンスが NAT ゲートウェイを介して最もトラフィックを送信しているかを見つけるには、次のクエリを実行します。

SELECT srcaddr,dstaddr,sum(bytes) FROM "default"."vpc_flow_logs"
WHERE srcaddr like 'y.y.%' AND dstaddr like 'x.x.x.x' group by 1,2 order by 3 desc
limit 10;

2.    インスタンスとの間で行き来するトラフィックを見つけるには、次のクエリを実行します。

SELECT srcaddr,dstaddr,sum(bytes) FROM "default"."vpc_flow_logs"
WHERE (srcaddr like 'y.y.%' AND dstaddr like 'x.x.x.x') or (srcaddr like 'x.x.x.x' AND dstaddr like 'y.y.%') group by 1,2 order by 3 desc
limit 10;

3.    VPC 内のインスタンスが最も頻繁に通信するインターネット接続先を見つけるには、次のクエリを実行します。

アップロードの場合:

SELECT srcaddr,dstaddr,sum(bytes) FROM "default"."vpc_flow_logs"
WHERE (srcaddr like 'x.x.x.x' AND dstaddr not like 'y.y.%') group by 1,2 order by 3 desc
limit 10;

ダウンロードの場合:

SELECT srcaddr,dstaddr,sum(bytes) FROM "default"."vpc_flow_logs"
WHERE (srcaddr not like 'y.y.%' AND dstaddr like 'x.x.x.x') group by 1,2 order by 3 desc
limit 10;