

# インターネットトラフィックを単一のネットワークインターフェイスにルーティングする
<a name="igw-ingress-routing"></a>

パブリック IP アドレスの大規模なプール宛てのインバウンドインターネットトラフィックを、VPC 内にある単一の Elastic Network Interface (ENI) にルーティングできます。

これまで、インターネットゲートウェイが受け入れるのは、VPC 内のネットワークインターフェイスに直接関連付けられたパブリック IP アドレス宛てのトラフィックのみでした。インスタンスタイプにはネットワークインターフェイスに関連付けることができる IP アドレス数の制限があるため、これらの制限を超える規模の IP プールのトラフィックを処理する必要がある電気通信やモノのインターネット (IoT) といった業界の課題となっていました。

このルーティングを使用すると、インバウンドインターネット接続での複雑なアドレス変換が不要になります。独自のパブリック IP プールを持ち込み (BYOIP)、プール全体のトラフィックを受け入れて単一のネットワークインターフェイスにルーティングするように VPC インターネットゲートウェイを設定できます。この機能は、次の場合に特に有用です。
+ **電気通信**: アドレス変換のオーバーヘッドを発生させることなく大規模なサブスクライバー IP プールを管理
+ **IoT アプリケーション**: 何千ものデバイス IP アドレスからのトラフィックを統合
+ **すべてのシナリオ**: ENI の関連付け制限を超えるトラフィックルーティングを要求

このルーティングは、フェイルオーバーシナリオ時の動的なルート更新のために VPC Route Server に統合できます。

**主な利点**  
このルーティングアプローチには以下の利点があります。
+ **アドレス変換が不要** – 直接的なルーティングが NAT の複雑性を解消
+ **ENI 制限を回避** – インスタンスの関連付け制限を超える IP プールを処理
+ **業界最適化** – 電気通信と IoT の要件に特化した設計
+ **動的フェイルオーバー** – 自動更新のために Route Server と統合

**可用性**  
この機能は、すべての AWS 商用リージョン、AWS 中国リージョン、および AWS GovCloud リージョンで使用できます。

**Topics**
+ [開始する前に](#before-you-begin)
+ [この機能の仕組み](#how-this-feature-works)
+ [ステップ 1: VPC を作成する](#step-1-create-a-vpc)
+ [ステップ 2: インターネットゲートウェイを作成してアタッチする](#step-2-create-and-attach-an-internet-gateway)
+ [ステップ 3: ターゲットインスタンスのサブネットを作成する](#step-3-create-a-subnet)
+ [ステップ 4: サブネットのルートテーブルを作成する](#step-4-create-a-route-table-for-the-subnet)
+ [ステップ 5: ターゲットインスタンスのセキュリティグループを作成する](#step-5-create-a-security-group)
+ [ステップ 6: ターゲット EC2 インスタンスを起動する](#step-6-launch-an-ec2-instance)
+ [ステップ 7: インターネットゲートウェイのルートテーブルを作成する](#step-7-create-a-route-table-for-the-internet-gateway)
+ [ステップ 8: ルートテーブルをインターネットゲートウェイに関連付ける](#step-8-associate-the-route-table-with-the-internet-gateway)
+ [ステップ 9: BYOIP プールをインターネットゲートウェイに関連付ける](#step-9-associate-your-byoip-pool-with-the-internet-gateway)
+ [ステップ 10: インスタンスをターゲットにする静的ルートを追加する](#step-10-add-static-route-to-target-your-instance)
+ [ステップ 11: ターゲットインスタンスを設定する](#step-11-configure-the-target-instance)
+ [ステップ 12: トラフィック処理用のインスタンスを設定する](#step-12-configure-instance-for-traffic-handling)
+ [ステップ 13: 接続をテストする](#step-13-test-connectivity)
+ [トラブルシューティング](#troubleshooting)
+ [高度なオプション: 動的ルーティングのための Route Server 統合](#advanced-option-route-server-integration)
+ [クリーンアップ](#clean-up)

## 開始する前に
<a name="before-you-begin"></a>

このチュートリアルを開始する前に、以下を確認してください。

1. **BYOIP プール**: 独自の IP アドレス範囲が既に AWS に持ち込まれている必要があります。「[Amazon EC2 に自分の IP アドレスを持ち込む (BYOIP)](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-byoip.html)」の手順を完了してください。

1. **BYOIP プールの検証**: 以下を実行して、プールの使用準備が整っていることを確認します。

   ```
   aws ec2 describe-public-ipv4-pools --region us-east-1
   ```

   出力内でプールを見つけて、`PoolAddressRanges` に `Available` アドレスが表示されていることを確認します。

1. **適切な許可**: AWS VPC リソースと EC2 インスタンスを作成し、BYOIP プールを管理する許可がアカウントにあることを確認します。

## この機能の仕組み
<a name="how-this-feature-works"></a>

このセクションでは、インターネットゲートウェイのイングレスルーティングの背景にある技術的な概念と、トラフィックがインターネットからターゲットインスタンスに流れる仕組みについて説明します。

### インターネットゲートウェイのイングレスルーティングを使用する理由
<a name="why-use-internet-gateway-ingress-routing"></a>

これまでは、ENI の関連付けに制限があったことから、多数の IP アドレスのトラフィックを統合するためのアドレス変換を実行する必要がありました。この機能強化は、ターゲットインスタンスへの BYOIP プールの直接的なルーティングを可能にすることで、このような複雑性を解消します。

### ルーティングの仕組み
<a name="how-the-routing-works"></a>

この機能は、BYOIP プロセスに従ってユーザーが AWS に持ち込むパブリック IP CIDR でのみ動作します。BYOIP プロセスは、アカウントがパブリック IP CIDR を所有していることを確実にします。BYOIP パブリック CIDR を取得したら、以下を実行します。

1. このパブリック IP アドレスプールをインターネットゲートウェイのルートテーブルに関連付けます。インターネットゲートウェイは、既に VPC に関連付けられている必要があります。この関連付けにより、VPC が IP CIDR 宛てトラフィックを受け入れることが可能になります。インターネットゲートウェイに、サブネットと共有されていない専用のルートテーブルがあることを確認してください。

1. BYOIP プールをインターネットゲートウェイのルートテーブルに関連付けたら、送信先が IP CIDR と等しいルート、またはそのサブセットをインターネットゲートウェイのルートテーブルに入力できるようになります。このルートのターゲットは、トラフィックをルーティングする ENI になります。

1. BYOIP CIDR 宛てのトラフィックが AWS 内に入ると、AWS がインターネットゲートウェイのルートテーブルを調べ、それに応じてトラフィックを関連する VPC にルーティングします。

1. VPC 内では、インターネットゲートウェイがトラフィックをターゲット ENI にルーティングします。

1. ターゲット (ワークロードに関連付けられた Elastic Network Interface) はトラフィックを処理します。

**ベストプラクティス**
+ **ルートテーブルを分離する**: インターネットゲートウェイのルートテーブルは、インターネットゲートウェイ専用である必要があります。このルートテーブルはどの VPC サブネットにも関連付けないでください。サブネットルーティングには別のルートテーブルを使用します。
+ **BYOIP IP を直接割り当てない**: BYOIP プールからのパブリック IP アドレスを EC2 インスタンスやネットワークインターフェイスに直接関連付けないでください。インターネットゲートウェイのイングレスルーティング機能は、直接的な IP の関連付けを必要とすることなく、トラフィックをインスタンスにルーティングします。

**重要**  
[VPC ブロックパブリックアクセス (BPA)](security-vpc-bpa.md) を使用している場合に BPA を有効にすると、サブネットレベルで BPA 除外を設定している場合でも、イングレスルーティングを使用するサブネットへのトラフィックがブロックされます。イングレスルーティングでは、サブネットレベルでの除外が機能しません。BPA を有効にした状態でイングレスルーティングトラフィックを許可するには、以下を実行します。  
BPA を完全に無効化する、または
VPC レベルでの除外を使用する

## ステップ 1: VPC を作成する
<a name="step-1-create-a-vpc"></a>

このステップを実行して、ターゲットインスタンスとインターネットゲートウェイをホストする VPC を作成します。

**注記**  
VPC のクォータ制限に到達していないことを確認してください。詳細については、「[Amazon VPC クォータ](amazon-vpc-limits.md)」を参照してください。

**AWS コンソール**

1. [Amazon VPC コンソール](https://console.aws.amazon.com/vpc)を開きます。

1. VPC ダッシュボードで、[**Create VPC (VPC を作成する)**] を選択します。

1. **[作成するリソース]**で、**[VPC のみ]** を選択します。

1. **[名前タグ]** には、VPC の名前を入力します (**IGW-Ingress-VPC** など)。

1. **[IPv4 CIDR ブロック]** には、CIDR ブロックを入力します (**10.0.0.0/16** など)。

1. [**Create VPC（VPC の作成）**] を選択します。

**AWS CLI**

```
aws ec2 create-vpc --cidr-block 10.0.0.0/16 --tag-specifications 'ResourceType=vpc,Tags=[{Key=Name,Value=IGW-Ingress-VPC}]' --region us-east-1
```

## ステップ 2: インターネットゲートウェイを作成してアタッチする
<a name="step-2-create-and-attach-an-internet-gateway"></a>

このステップを実行してインターネットゲートウェイを作成して VPC にアタッチし、インターネット接続を有効にします。

**AWS コンソール**

1. [Amazon VPC コンソール](https://console.aws.amazon.com/vpc)を開きます。

1. VPC コンソールで **[インターネットゲートウェイ]** を選択します。

1. [**インターネットゲートウェイの作成**] を選択します。

1. **[名前タグ]** には、インターネットゲートウェイの名前を入力します (**IGW-Ingress-Gateway** など)。

1. [**インターネットゲートウェイの作成**] を選択します。

1. インターネットゲートウェイを選択してから、**[アクション]**、**[VPC にアタッチ]** の順に選択します。

1. VPC を選択し、**[インターネットゲートウェイのアタッチ]** を選択します。

**AWS CLI**

```
aws ec2 create-internet-gateway --tag-specifications 'ResourceType=internet-gateway,Tags=[{Key=Name,Value=IGW-Ingress-Gateway}]' --region us-east-1

aws ec2 attach-internet-gateway --internet-gateway-id igw-0123456789abcdef0 --vpc-id vpc-0123456789abcdef0 --region us-east-1
```

**注意**: リソース ID を前のステップからの実際の ID に置き換えてください。

## ステップ 3: ターゲットインスタンスのサブネットを作成する
<a name="step-3-create-a-subnet"></a>

このステップを実行して、ターゲットインスタンスのデプロイ先になるサブネットを作成します。

**AWS コンソール**

1. VPC コンソールのナビゲーションペインで、**[Subnets]** (サブネット) を選択します。

1. [**サブネットの作成**] を選択します。

1. **[VPC ID]** で VPC を選択します。

1. **[サブネット名]** に名前を入力します (**Target-Subnet** など)。

1. **[Availability Zone]** (アベイラビリティーゾーン) で、サブネットのゾーンを選択するか、デフォルトの **[No Preference]** (設定なし) のままにして AWS が選択できるようにします。

1. **[IPv4 CIDR ブロック]** には **[手動入力]** を選択し、CIDR ブロックを入力します (**10.0.1.0/24** など)。

1. [**サブネットの作成**] を選択します。

**AWS CLI**

```
aws ec2 create-subnet \
    --vpc-id vpc-0123456789abcdef0 \
    --cidr-block 10.0.1.0/24 \
    --tag-specifications 'ResourceType=subnet,Tags=[{Key=Name,Value=Target-Subnet}]' \
    --region us-east-1
```

## ステップ 4: サブネットのルートテーブルを作成する
<a name="step-4-create-a-route-table-for-the-subnet"></a>

このステップを実行してサブネットのルートテーブルを作成し、サブネットに関連付けます。

**AWS コンソール**

1. VPC コンソールのナビゲーションペインで **[ルートテーブル]** を選択します。

1. [**ルートテーブルの作成**] を選択します。

1. **[名前]** にルートテーブルの名前を入力します (**Target-Subnet-Route-Table** など)。

1. [**VPC**] で、ユーザーの VPC を選択します。

1. [**ルートテーブルの作成**] を選択します。

1. ルートテーブルを選択してから、**[アクション]**、**[サブネットの関連付けの編集]** の順に選択します。

1. サブネットを選択して、**[関連付けを保存]** を選択します。

**AWS CLI**

```
aws ec2 create-route-table \
    --vpc-id vpc-0123456789abcdef0 \
    --tag-specifications 'ResourceType=route-table,Tags=[{Key=Name,Value=Target-Subnet-Route-Table}]' \
    --region us-east-1

aws ec2 associate-route-table \
    --route-table-id rtb-0987654321fedcba0 \
    --subnet-id subnet-0123456789abcdef0 \
    --region us-east-1
```

## ステップ 5: ターゲットインスタンスのセキュリティグループを作成する
<a name="step-5-create-a-security-group"></a>

このステップを実行して、ターゲットインスタンスへのネットワークアクセスを制御するセキュリティグループを作成します。

**AWS コンソール**

1. VPC コンソールのナビゲーションペインで **[セキュリティグループ]** を選択します。

1. **セキュリティグループの作成** を選択します。

1. **[セキュリティグループ名]** に名前を入力します (**IGW-Target-SG** など)。

1. **[説明]** に **Security group for IGW ingress routing target instance** と入力します。

1. [**VPC**] で、自分の VPC を選択します。

1. インバウンドルールを追加するには、**[インバウンドルール]** を選択します。ルールごとに **[ルールを追加]** を選択して、以下を指定します。
   + **[タイプ]**: すべての ICMP – IPv4、**[ソース]**: 0.0.0.0/0 (ping テスト用）。
   + **[タイプ]**: SSH、**[ポート]**: 22、**[ソース]**: 0.0.0.0/0 (EC2 Instance Connect 用)。

**注記**  
このセキュリティグループは、このチュートリアルのすべてのインターネットトラフィックに対して SSH ポートを開きます。このチュートリアルは教育を目的としているため、本番環境には設定しないでください。本番環境では、SSH アクセスを特定の IP 範囲に制限します。
+ **[セキュリティグループの作成]** を選択してください。

**AWS CLI**

```
aws ec2 create-security-group \
    --group-name IGW-Target-SG \
    --description "Security group for IGW ingress routing target instance" \
    --vpc-id vpc-0123456789abcdef0 \
    --region us-east-1

aws ec2 authorize-security-group-ingress \
    --group-id sg-0123456789abcdef0 \
    --protocol icmp \
    --port -1 \
    --cidr 0.0.0.0/0 \
    --region us-east-1

aws ec2 authorize-security-group-ingress \
    --group-id sg-0123456789abcdef0 \
    --protocol tcp \
    --port 22 \
    --cidr 0.0.0.0/0 \
    --region us-east-1
```

## ステップ 6: ターゲット EC2 インスタンスを起動する
<a name="step-6-launch-an-ec2-instance"></a>

このステップを実行して、BYOIP プールからのトラフィックを受信する EC2 インスタンスを起動します。

**AWS コンソール**

1. [Amazon EC2 コンソール](https://console.aws.amazon.com/ec2)を開きます。

1. **[インスタンスを起動]** を選択してください。

1. **[名前]** にインスタンスの名前を入力します (**IGW-Target-Instance** など)。

1. **[アプリケーションと OS イメージ (Amazon マシンイメージ)]** には、**[Amazon Linux 2023 AMI]** を選択します。

1. **[インスタンスタイプ]** には **[t2.micro]** (無料利用枠対象) を選択します。

1. **[キーペア (ログイン)]** には、既存のキーペアを選択するか、新しいキーペアを作成します。

1. **[ネットワーク設定]** で **[編集]** を選択します。
   + **[VPC]**: 使用する VPC を選択します
   + **[サブネット]**: 使用するサブネットを選択します
   + **[パブリック IP の自動割り当て]**: 有効にします
   + **[ファイアウォール (セキュリティグループ)]**: 既存のセキュリティグループを選択するか、独自のセキュリティグループを選択します

1. **[インスタンスを起動]** を選択してください。

1. **重要**: 起動後はインスタンスの詳細に移動して、**[ネットワークインターフェイス ID]** (「eni-」で始まるもの) を書き留めてください。この ID はステップ 10 で必要になります。

**AWS CLI**

```
aws ec2 run-instances \
    --image-id ami-0abcdef1234567890 \
    --count 1 \
    --instance-type t2.micro \
    --key-name your-key-pair \
    --security-group-ids sg-0123456789abcdef0 \
    --subnet-id subnet-0123456789abcdef0 \
    --associate-public-ip-address \
    --tag-specifications 'ResourceType=instance,Tags=[{Key=Name,Value=IGW-Target-Instance}]' \
    --region us-east-1
```

**コンソールで ENI ID を見つける:**

1. EC2 コンソールでインスタンスを選択します。

1. **[ネットワーク]** タブに移動します。

1. **[ネットワークインターフェイス ID]** (`eni-0abcdef1234567890` など) を書き留めます。

**AWS CLI を使用して ENI ID を見つける:**

```
aws ec2 describe-instances --instance-ids i-0123456789abcdef0 --query 'Reservations[0].Instances[0].NetworkInterfaces[0].NetworkInterfaceId' --output text --region us-east-1
```

## ステップ 7: インターネットゲートウェイのルートテーブルを作成する
<a name="step-7-create-a-route-table-for-the-internet-gateway"></a>

このステップを実行して、イングレスルーティングを処理するインターネットゲートウェイ専用のルートテーブルを作成します。

**AWS コンソール**

1. VPC コンソールで **[ルートテーブル]** を選択します。

1. [**ルートテーブルの作成**] を選択します。

1. **[名前]** にルートテーブルの名前を入力します (**IGW-Ingress-Route-Table** など)。

1. [**VPC**] で、ユーザーの VPC を選択します。

1. [**ルートテーブルの作成**] を選択します。

1. ルートテーブルを選択してから、**[エッジの関連付け]** タブを選択します。

1. **[エッジの関連付けを編集]** を選択します。

1. インターネットゲートウェイを選択してから、**[変更を保存]** を選択します。

**AWS CLI**

```
aws ec2 create-route-table \
    --vpc-id vpc-0123456789abcdef0 \
    --tag-specifications 'ResourceType=route-table,Tags=[{Key=Name,Value=IGW-Ingress-Route-Table}]' \
    --region us-east-1
```

## ステップ 8: ルートテーブルをインターネットゲートウェイに関連付ける
<a name="step-8-associate-the-route-table-with-the-internet-gateway"></a>

このステップを実行してルートテーブルをインターネットゲートウェイに関連付け、イングレスルーティング機能を有効にします。

**AWS コンソール**

1. VPC コンソールのナビゲーションペインで **[ルートテーブル]** を選択してから、作成したルートテーブルを選択します。

1. **[Edge associations]** (エッジの関連付け) タブから、**[Edit edge associations]** (Edge の関連付けを編集) を選択します。

1. インターネットゲートウェイのチェックボックスにチェックを入れます。

1. **[Save changes]** (変更の保存) をクリックします。

**AWS CLI**

```
aws ec2 associate-route-table \
    --route-table-id rtb-0123456789abcdef0 \
    --gateway-id igw-0123456789abcdef0 \
    --region us-east-1
```

## ステップ 9: BYOIP プールをインターネットゲートウェイに関連付ける
<a name="step-9-associate-your-byoip-pool-with-the-internet-gateway"></a>

このステップを実行して BYOIP プールをインターネットゲートウェイのルートテーブルに関連付け、VPC が IP 範囲内のトラフィックを受け入れるようにします。

**AWS コンソール**

1. VPC コンソールのナビゲーションペインで **[ルートテーブル]** を選択してから、作成したインターネットゲートウェイのルートテーブルを選択します。

1. **[IPv4 プールの関連付け]** タブをクリックします。

1. **[関連付けを編集]** ボタンをクリックします。

1. BYOIP プールを選択します (`pool-12345678901234567` など)。

1. **[関連付けを保存]** ボタンをクリックします。

**AWS CLI**

```
aws ec2 associate-route-table \
    --route-table-id rtb-0123456789abcdef0 \
    --public-ipv4-pool pool-12345678901234567 \
    --region us-east-1
```

**注意**: `rtb-0123456789abcdef0` を独自のインターネットゲートウェイルートテーブル ID に置き換えて、`pool-12345678901234567` を独自の BYOIP プール ID に置き換えてください。

## ステップ 10: インスタンスをターゲットにする静的ルートを追加する
<a name="step-10-add-static-route-to-target-your-instance"></a>

このステップを実行して、BYOIP 範囲からのトラフィックをターゲットインスタンスのネットワークインターフェイスにルーティングするルートを追加します。

**AWS コンソール**

1. VPC コンソールのナビゲーションペインで **[ルートテーブル]** を選択してから、作成したインターネットゲートウェイのルートテーブルを選択します。

1. [**アクション**]、[**ポリシーの編集**] の順に選択します。

1. [**Add Rule (ルートの追加)**] を選択します。

1. **[送信先]** には、BYOIP CIDR またはサブセット (**203.0.113.0/24** など) を入力します。プレフィックスは /23 と /28 の間のものにする必要があります。

1. **[ターゲット]** に **[ネットワークインターフェイス]** を選択し、インスタンスの ENI ID (`eni-0abcdef1234567890` など) を入力します。

1. **[Save changes]** (変更の保存) をクリックします。

**AWS CLI**

```
aws ec2 create-route \
    --route-table-id rtb-0123456789abcdef0 \
    --destination-cidr-block 203.0.113.0/24 \
    --network-interface-id eni-0abcdef1234567890 \
    --region us-east-1
```

## ステップ 11: ターゲットインスタンスを設定する
<a name="step-11-configure-the-target-instance"></a>

このステップを実行して、BYOIP アドレス宛てのトラフィックを適切に処理するようにターゲットインスタンスを設定します。

**重要**: このインスタンス設定ステップは、接続をテスト (ステップ 12) する前に完了してください。イングレスルーティングを正しく機能させるには、BYOIP アドレスに応答するようにインスタンスを設定する必要があります。

**AWS コンソール**

1. EC2 Instance Connect を使用してターゲットインスタンスに接続します。
   + EC2 コンソールでインスタンスを選択します。
   + **[アクション]** > **[接続]** の順に選択します。
   + **[EC2 Instance Connect]** タブを選択します。
   + **[接続]** を選択します。

1. インスタンスインターフェイスに特定の BYOIP IP アドレスを追加します。

   まず、ネットワークインターフェイス名を見つけます。

   ```
   ip link show
   ```

   次に、IP アドレスを追加します (`203.0.113.10` を BYOIP 範囲からの IP に置き換えてください)。

   ```
   sudo ip addr add 203.0.113.10/32 dev eth0
   ```

   **注意**: `203.0.113.10` は、テストする BYOIP 範囲からの IP アドレスに置き換えてください。インターフェイス名は、インスタンスタイプに応じて `eth0`、`ens5`、または同様の名前になっている場合があります。

1. EC2 コンソールで、送信元/送信先チェックを無効にします。
   + インスタンスを選択してください。
   + **[ネットワーク]** タブに移動して、ネットワークインターフェイスをクリックします。
   + **[アクション]**、**[送信元/送信先チェックを変更]**、**[無効化]** の順にクリックします。

**AWS CLI**

```
aws ec2 modify-network-interface-attribute \
    --network-interface-id eni-0abcdef1234567890 \
    --no-source-dest-check \
    --region us-east-1
```

## ステップ 12: トラフィック処理用のインスタンスを設定する
<a name="step-12-configure-instance-for-traffic-handling"></a>

このステップを実行してインスタンスに BYOIP アドレスを追加し、送信元/送信先チェックを無効にして、適切なトラフィック処理を有効にします。

**AWS コンソール**

1. EC2 Instance Connect を使用してターゲットインスタンスに接続します。
   + EC2 コンソールでインスタンスを選択します。
   + **[アクション]** > **[接続]** の順に選択します。
   + **[EC2 Instance Connect]** タブを選択します。
   + **[接続]** を選択します。

1. インスタンスインターフェイスに特定の BYOIP IP アドレスを追加します。

   まず、ネットワークインターフェイス名を見つけます。

   ```
   ip link show
   ```

   次に、IP アドレスを追加します (`ens5` を実際のインターフェイス名に置き換えます)。

   ```
   sudo ip addr add 203.0.113.10/32 dev ens5
   ```

   **注意**: `203.0.113.10` は、テストする BYOIP 範囲からの IP アドレスに置き換えてください。インターフェイス名は、インスタンスタイプに応じて `eth0`、`ens5`、または同様の名前になっている場合があります。

1. EC2 コンソールで、送信元/送信先チェックを無効にします。
   + インスタンスを選択してください。
   + **[ネットワーク]** タブに移動して、ネットワークインターフェイスをクリックします。
   + **[アクション]**、**[送信元/送信先チェックを変更]**、**[無効化]** の順にクリックします。

**AWS CLI**

```
aws ec2 modify-network-interface-attribute \
    --network-interface-id eni-0abcdef1234567890 \
    --no-source-dest-check \
    --region us-east-1
```

## ステップ 13: 接続をテストする
<a name="step-13-test-connectivity"></a>

このステップを実行して、インターネットトラフィックが BYOIP アドレスを経由してターゲットインスタンスに適切にルーティングされていることを確認します。

1. ターゲットインスタンスで、tcpdump を使用して受信トラフィックを監視します。

   ```
   sudo tcpdump -i any icmp
   ```

1. 別のターミナルまたはコンピュータから、BYOIP IP アドレスへの接続をテストします。

   ```
   ping 203.0.113.10
   ```

1. 予想される結果:
   + Ping が成功し、BYOIP IP アドレスからのレスポンスが表示されます。
   + tcpdump には、以下のような BYOIP アドレスの受信パケットが表示されます。

     ```
     12:34:56.789012 IP 203.0.113.100 > 203.0.113.10: ICMP echo request, id 1234, seq 1, length 64
     12:34:56.789123 IP 203.0.113.10 > 203.0.113.100: ICMP echo reply, id 1234, seq 1, length 64
     ```
   + トラフィックは外部 IP アドレスからのものであるように表示されます。これは、インターネットゲートウェイのイングレスルーティングがインスタンスにインターネットトラフィックを配信していることを証明しています。

## トラブルシューティング
<a name="troubleshooting"></a>

このセクションを使用して、インターネットゲートウェイのイングレスルーティングの設定時に発生する可能性のある一般的な問題を解決します。

**トラフィックがインスタンスに到達しない**  
+ ルートテーブルのターゲットとして正しい ENI ID が設定されていることを確認します。
+ BYOIP プールがインターネットゲートウェイのルートテーブルに関連付けられていることを確認します。
+ インスタンスで送信元/送信先チェックが無効になっていることを確認します。
+ セキュリティグループがテスト対象のトラフィックタイプを許可していることを確認します。

**ルートの作成が失敗する**  
+ BYOIP プールがルートテーブルに適切に関連付けられていることを確認します。
+ 送信先 CIDR が BYOIP 範囲内であることを確認します。
+ ターゲット ENI が存在しており、実行中のインスタンスにアタッチされていることを確認します。
+ BYOIP プレフィックスが /23 から /28 の間のものであることを確認します (この範囲外のプレフィックスはサポートされません)。

**Ping/接続が失敗する**  
+ IP アドレスがインスタンスインターフェイスに追加されていることを確認します。
+ セキュリティグループが ICMP (ping 用) または関連するポートを許可していることを確認します。
+ インスタンスが実行状態になっていることを確認します。
+ 外部にある複数の場所からテストします。

## 高度なオプション: 動的ルーティングのための Route Server 統合
<a name="advanced-option-route-server-integration"></a>

自動フェイルオーバーを必要とする環境では、この機能が VPC Route Server と統合して以下を実行します。
+ インスタンス障害が発生した時に**ルートを動的に更新**します。
+ ルート管理における**手動介入を排除**します。
+ 重要なワークロードに**エンタープライズグレードの可用性を提供**します。

これは、高可用性が不可欠な電気通信や IoT のユースケースにとって特に重要です。

**注記**  
複数の BGP ピアで Route Server を使用する場合は、最大 32 の BGP ピアが、ルートサーバーを使用して同じルートテーブルに同じプレフィックスをアドバタイズできることに注意してください。

動的ルーティング、自動フェイルオーバー、複数のインスタンス全体での負荷分散を必要とする環境では、AWS Route Server との統合を検討してください。Route Server は、静的ルートの代わりに BGP ベースの動的ルーティングを有効にすることで、以下を実現します。
+ BGP 経由でのインスタンスからの**動的ルートアドバタイズ**。
+ 複数のターゲットインスタンス間での**自動フェイルオーバー**。
+ 複数のエンドポイント全体での**負荷分散**。
+ BGP プロトコルを使用した**一元的なルート管理**。

これは、高可用性と動的ルーティング機能が必要とされるエンタープライズデプロイの重要なユースケースです。Route Server の詳しい設定手順については、「[AWS Route Server ドキュメント](dynamic-routing-route-server.md)」を参照してください。

## クリーンアップ
<a name="clean-up"></a>

このチュートリアルで作成したリソースは、継続的な料金の発生を回避するために削除してください。

### ステップ 1: EC2 インスタンスを終了する
<a name="step-1-terminate-ec2-instance"></a>

このステップを実行して EC2 インスタンスを終了し、コンピューティングリソースの料金が発生しないようにします。

**AWS コンソール**

1. [Amazon EC2 コンソール](https://console.aws.amazon.com/ec2)を開きます。

1. EC2 コンソールのナビゲーションペインで **[インスタンス]** を選択します。

1. インスタンスを選択してから、**[インスタンスの状態]**、**[インスタンスの終了]** の順に選択します。

1. **[終了]** を選択して確認します。

**AWS CLI**

```
aws ec2 terminate-instances --instance-ids i-0123456789abcdef0 --region us-east-1
```

### ステップ 2: VPC からインターネットゲートウェイをデタッチする
<a name="step-2-detach-internet-gateway-from-vpc"></a>

このステップを実行して、VPC からインターネットゲートウェイをデタッチし、削除します。

**AWS コンソール**

1. [Amazon VPC コンソール](https://console.aws.amazon.com/vpc)を開きます。

1. VPC コンソールのナビゲーションペインで **[インターネットゲートウェイ]** を選択します。

1. インターネットゲートウェイを選択してから、**[アクション]**、**[VPC からデタッチ]** の順に選択します。

1. **[インターネットゲートウェイをデタッチ]** を選択します。

1. デタッチしたら、**[アクション]**、**[インターネットゲートウェイの削除]** の順に選択します。

1. **[インターネットゲートウェイを削除]** を選択します。

**AWS CLI**

```
aws ec2 detach-internet-gateway --internet-gateway-id igw-0123456789abcdef0 --vpc-id vpc-0123456789abcdef0 --region us-east-1

aws ec2 delete-internet-gateway --internet-gateway-id igw-0123456789abcdef0 --region us-east-1
```

### ステップ 3: VPC を削除する
<a name="step-3-delete-vpc"></a>

このステップを実行して VPC とすべての関連リソースを削除し、クリーンアッププロセスを完了します。

**AWS コンソール**

1. VPC コンソールで **[VPC]** を選択します。

1. VPC を選択してから、**[アクション]**、**[VPC の削除]** の順に選択します。

1. **delete** と入力して確定し、**[削除]** を選択します。

**AWS CLI**

```
aws ec2 delete-vpc --vpc-id vpc-0123456789abcdef0 --region us-east-1
```

**注記**  
VPC を削除すると、関連付けられたサブネット、ルートテーブル、セキュリティグループも削除されます。

**注記**  
BYOIP プールはこの後も引き続き使用でき、このクリーンアッププロセスの一環として削除されることはありません。