📦 EC2 ネットワーク MTU 完全ガイド

Maximum Transmission Unit を宅配便で理解する

「ネットワークの段ボールサイズ」で、データ転送の効率が劇的に変わる!

🎯 3分でわかる!MTUの結論

📦 MTUとは?

1回の通信で送れる最大パケットサイズ(バイト数)。宅配便の段ボールサイズに相当します。

📊 EC2の標準MTU

1500バイト(標準フレーム)と 9001バイト(ジャンボフレーム)の2種類。現行世代は両方対応!

⚡ ジャンボフレームのメリット

1回で6倍のデータ送信!オーバーヘッド削減でCPU効率アップ、スループット向上!

⚠️ 注意すべきポイント

インターネット通信は1500限定。Transit Gatewayは8500。経路によってMTUが異なります!

📦 MTUを宅配便で理解しよう!

🚚 ネットワーク通信 = 宅配便配送

データを送る作業は、荷物を段ボールに詰めて配送するのと同じです!

📦

標準フレーム(Standard Frame)

1,500 バイト

🏪 コンビニサイズの段ボール

  • どこでも受け取り可能
  • インターネット標準サイズ
  • 小さい荷物を何度も送る
  • 配送回数が多くなる
📦📦📦

ジャンボフレーム(Jumbo Frame)

9,001 バイト

🏭 業務用大型段ボール

  • 大容量で効率的
  • VPC内部の高速通信に最適
  • 1回で大量のデータ送信
  • 対応ルートのみ使用可能

💡 具体的な数値で比較

同じ100MBのデータを送信する場合:

MTU 必要パケット数 オーバーヘッド 効率
1,500 (標準) 約 69,906 パケット 約 2.8MB 97.3%
9,001 (ジャンボ) 約 11,654 パケット 約 0.5MB 99.5%

🗺️ AWS各サービスのMTU制限マップ

経路によってMTUが異なります。通信経路全体で最も小さいMTUに合わせる必要があります!

🖥️
EC2 ↔ EC2(同一VPC内)
9,001

最大MTU。高速通信に最適!

🔗
VPC Peering(同一リージョン)
9,001

ジャンボフレーム対応!

🔀
Transit Gateway
8,500

Path MTU Discovery サポート

🌐
Direct Connect(Transit VIF)
8,500

Transit Gateway経由時

📡
Direct Connect(Private VIF)
9,001

プライベートVIF時

🌍
Internet Gateway
1,500

インターネット標準

🔒
VPN Connection
1,500

暗号化オーバーヘッドあり

🔗
VPC Peering(クロスリージョン)
1,500

リージョン間は標準

⚠️ MTU不一致によるパケットドロップの仕組み

🖥️
EC2 (VPC A)
MTU 9001
➡️
🔀
Transit Gateway
MTU 8500
🖥️
EC2 (VPC B)
MTU 9001

⚠️ VPC Peering → Transit Gateway 移行時の注意

VPC Peering(MTU 9001)からTransit Gateway(MTU 8500)に移行する際、非対称ルーティングが発生すると8500バイトを超えるパケットがドロップされる可能性があります。

対策:両方のVPCのルートテーブルを同時に切り替えるか、事前にEC2のMTUを8500に設定しておきましょう。

🔌 AWS ネットワークサービスと MTU の関係

EC2インスタンスから外部へ接続する際、接続経路によってMTUが異なります。 特にDon't Fragment(DF)フラグが設定されている場合、MTUを超えるパケットはドロップされます。

📊 EC2からの接続経路別 MTU と通信結果
🖥️ EC2 インスタンス
ジャンボフレーム対応 MTU 9001
大きなファイル
Don't Fragment フラグ設定
⬇️
📡 Direct Connect
MTU 9001
⬇️
✅ 成功
MTU 9001 サポート
大きなファイル
Don't Fragment フラグ設定
⬇️
🔒 Site-to-Site VPN
MTU 1500
⬇️
❌ 失敗
MTU 1500 制限
大きなファイル
Don't Fragment フラグ設定
⬇️
🌍 インターネット
ゲートウェイ
MTU 1500
⬇️
❌ 失敗
MTU 1500 制限
👤 クライアント / オンプレミス

🚩 Don't Fragment(DF)フラグとは?

IPヘッダに設定できるフラグで、「このパケットを分割しないでください」という指示です。

  • DFフラグ ON:MTUを超えるパケットは分割されず、ドロップされる(ICMP エラーが返る)
  • DFフラグ OFF:MTUを超えるパケットはフラグメント化(分割)されて転送される

💡 ポイント:Path MTU Discovery(PMTUD)はDFフラグを利用して経路上の最小MTUを検出します。 セキュリティグループでICMPをブロックしているとPMTUDが機能せず、通信障害の原因になることがあります。

📋 接続経路別 MTU 詳細比較

接続経路 MTU ジャンボフレーム 用途・特徴
📡 Direct Connect(Private VIF) 9001 ✅ 対応 専用線接続。高帯域・低遅延
📡 Direct Connect(Transit VIF) 8500 ✅ 対応 Transit Gateway経由の専用線
🔒 Site-to-Site VPN 1500 ❌ 非対応 暗号化オーバーヘッドあり
🌍 Internet Gateway 1500 ❌ 非対応 インターネット標準
🔀 Transit Gateway 8500 ⚠️ 制限あり VPC間接続のハブ
🔗 VPC Peering(同一リージョン) 9001 ✅ 対応 VPC間直接接続
🔗 VPC Peering(クロスリージョン) 1500 ❌ 非対応 リージョン間は標準MTU

💡 実務でのポイント

  • オンプレミス接続でジャンボフレームを使いたい場合 → Direct Connect(Private VIF)を選択
  • VPN経由の通信が遅い場合 → MTU 1500の制限を考慮し、アプリケーション側でパケットサイズを調整
  • 大容量ファイル転送で問題が発生する場合 → DFフラグの設定とPath MTU Discoveryの動作を確認

💻 MTU確認・設定コマンド集

📊 現在のMTU値を確認する

🐧 Linux
# プライマリネットワークインターフェイスのMTU確認
ip link show eth0

# または
cat /sys/class/net/eth0/mtu
📤 出力例
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9001 qdisc pfifo_fast state UP
    link/ether 02:90:c0:b7:9e:d1 brd ff:ff:ff:ff:ff:ff
🪟 Windows
# PowerShellでMTU確認
Get-NetAdapterAdvancedProperty -Name "*" -RegistryKeyword "*JumboPacket"

# または
netsh interface ipv4 show interfaces
📤 出力例
Name     : Ethernet
Property : Jumbo Packet
Value    : 9015  ← ジャンボフレーム有効

🔄 パスMTUを確認する

🐧 Linux
# 宛先へのパスMTUを確認
tracepath <宛先IPアドレス>

# 例:別のEC2インスタンスへのパスMTU
tracepath 10.0.2.100
📤 出力例
 1?: [LOCALHOST]                      pmtu 9001
 1:  ip-10-0-2-100.ec2.internal       0.512ms reached
     Resume: pmtu 9001 hops 1 back 1

⚙️ MTUを変更する

🐧 Linux - 一時的な変更
# MTUを1500に一時変更(再起動で戻る)
sudo ip link set dev eth0 mtu 1500

# 変更を確認
ip link show eth0
🐧 Amazon Linux 2 - 永続的な変更
# 1. ネットワーク設定ファイルを編集
sudo vi /etc/sysconfig/network-scripts/ifcfg-eth0

# 最終行に追加
MTU=1500

# 2. DHCPクライアント設定を編集
sudo vi /etc/dhcp/dhclient.conf

# 以下を追加(DHCPからのMTU上書きを防ぐ)
default interface-mtu 1500;
supersede interface-mtu 1500;

# 3. ネットワーク再起動
sudo systemctl restart network
🐧 Amazon Linux 2023 - 永続的な変更
# systemd-networkdの設定ファイルを編集
sudo vi /usr/lib/systemd/network/80-ec2.network

# [Link]セクションに追加
[Link]
MTUBytes=1500

# ネットワーク再起動
sudo systemctl restart systemd-networkd

🎯 ユースケース別 MTU推奨設定

🚀
HPC / 機械学習クラスター
ジャンボフレーム推奨

クラスタープレイスメントグループ内のインスタンス間で大量のデータ転送を行う場合。最大スループットを実現。

設定: MTU 9001
🗄️
EC2 ↔ RDS/Redshift
標準フレーム推奨

Redshiftとの通信でジャンボフレームを使うと接続がハングする場合があります。安定性を重視。

設定: MTU 1500
🌍
インターネット向けサービス
標準フレーム(自動)

Internet Gateway経由の通信は自動的に1500に制限。特別な設定不要。

設定: デフォルトでOK
🔀
Transit Gateway経由通信
8500以下に設定

TGW経由の場合は8500が上限。パケットドロップを避けるため調整が必要。

設定: MTU 8500
🏢
オンプレミス ↔ AWS(VPN)
標準フレーム推奨

VPN接続はMTU 1500に制限。暗号化オーバーヘッドも考慮が必要。

設定: MTU 1500
💾
EC2 ↔ S3/EBS(VPC内)
ジャンボフレーム可

VPCエンドポイント経由のS3アクセスやEBS通信はジャンボフレーム対応。

設定: MTU 9001

🔧 トラブルシューティング

🚨 症状:大きなファイル転送が途中で停止する
原因:送信側のMTUが経路途中のMTUより大きく、パケットがドロップされている
✅ 解決策:
  1. tracepath <宛先> でパスMTUを確認
  2. 送信側のMTUをパスMTU以下に設定
  3. または DF フラグをオフにしてフラグメンテーションを許可
🚨 症状:Redshiftへのクエリがハングする
原因:EC2のMTUが9001(ジャンボフレーム)のままになっている
✅ 解決策:
  1. EC2インスタンスのMTUを1500に変更
  2. sudo ip link set dev eth0 mtu 1500
  3. 永続化のため設定ファイルも更新
🚨 症状:Transit Gateway移行後に通信が不安定
原因:VPC Peering(MTU 9001)とTransit Gateway(MTU 8500)の不一致
✅ 解決策:
  1. 両方のVPCのルートテーブルを同時に切り替え
  2. または事前にEC2のMTUを8500に設定
  3. 切り替え完了後、必要に応じてMTU調整
📋 MTU設定 判断フローチャート
インターネット経由の
通信がある?
⬇️
Yes
MTU 1500
(自動適用)
⬇️
No
Transit Gateway
経由?
⬇️
Yes
MTU 8500
に設定
⬇️
No
MTU 9001
(ジャンボフレーム)

❓ よくある質問(FAQ)

Q: ジャンボフレームは全てのEC2インスタンスで使えますか?
A: 現行世代のインスタンスタイプは全て9001 MTU(ジャンボフレーム)をサポートしています。ただし、古い世代(C1, CC1, T1, M1など)は1500 MTUのみの対応となります。
Q: MTUを変更するとサービスに影響がありますか?
A: MTUを小さくする場合は問題ありません。大きくする場合は、経路全体がそのMTUをサポートしているか確認が必要です。サポートしていない場合、パケットがドロップされる可能性があります。
Q: Path MTU Discovery(PMTUD)とは何ですか?
A: 通信経路上の最小MTUを自動的に検出する仕組みです。ICMPの「Fragmentation Needed」メッセージを使用します。Transit Gatewayはこの機能をサポートしていますが、セキュリティグループでICMPをブロックしていると動作しません。
Q: WindowsとLinuxでMTUの扱いは異なりますか?
A: 基本的な概念は同じですが、設定方法とデフォルト値が異なります。Windowsではジャンボフレームがデフォルトで無効(9015で有効表示)、Linuxでは有効な場合が多いです(9001)。
Q: NAT Gatewayを使う場合のMTUは?
A: NAT Gatewayは最大8500 MTUをサポートしています。ただし、インターネット向け通信の場合は最終的に1500に制限されます。VPC内部での通信には8500まで使用可能です。

📝 まとめ:MTU設定のベストプラクティス

1

通信経路を把握する

EC2から宛先までの全ての経路(Internet Gateway, NAT Gateway, Transit Gateway, VPN等)を確認し、最も小さいMTUを把握しましょう。

2

ユースケースに応じて設定

VPC内部の高速通信にはジャンボフレーム(9001)、インターネット経由やVPN接続には標準フレーム(1500)を使い分けましょう。

3

移行時は同時切り替え

VPC PeeringからTransit Gatewayへの移行など、MTUが異なる経路への切り替え時は、両端のルートテーブルを同時に更新してパケットロスを防ぎましょう。

4

永続化を忘れずに

一時的なMTU変更は再起動で元に戻ります。本番環境では設定ファイル(ifcfg-eth0, dhclient.conf等)を更新して永続化しましょう。

✅ 覚えておくべき数値

経路 MTU メモ
VPC内部 / VPC Peering(同一リージョン) 9001 最大効率
Transit Gateway / NAT Gateway 8500 PMTUD対応
Internet / VPN / クロスリージョン 1500 標準

Created by SSuzuki1063

AWS SAP Learning Resources