VPC に IPv6 サポートを追加 - Amazon Virtual Private Cloud

VPC に IPv6 サポートを追加

既存の VPC が IPv4 のみに対応しており、サブネット内のリソースが IPv4 のみを使用するように設定されている場合は、その VPC とリソースに IPv6 を追加できます。VPC は、デュアルスタックモードで動作します。IPv4 または IPv6 あるいは両方を経由して通信できます。IPv4 と IPv6 は、互いに独立して通信されます。

VPC と サブネットの IPv4 サポートを無効にすることはできません。これが、Amazon VPC と Amazon EC2 の IP アドレスシステムのデフォルト値です。

考慮事項
  • 現在、IPv4 専用サブネットから IPv6 専用サブネットへの移行パスはありません。

  • この例は、パブリックサブネットとプライベートサブネットを持つ既存の VPC があることを前提としています。IPv6 で使用する VPC の作成方法については、「「VPC を作成する」」を参照してください。

  • IPv6 の使用を開始する前に、Amazon VPC に対する IPv6 アドレス指定の機能に関する「IPv4 と IPv6 を比較する」を参照したことを確認します。

プロセス

次の表は、VPC で IPv6 を有効にするためのプロセスの概要を示しています。

[ステップ] メモ
ステップ 1: IPv6 CIDR ブロックを VPC およびサブネットと関連付ける Amazon が提供する IPv6 CIDR ブロック、または BYOIP の IPv6 CIDR ブロックを VPC およびサブネットと関連付けます。
ステップ 2: ルートテーブルを更新する IPv6 トラフィックがルーティングされるようにルートテーブルを更新します。パブリックサブネットの場合、サブネットからインターネットゲートウェイに IPv6 トラフィックをすべてルーティングするルートを作成します。プライベートサブネットの場合、サブネットから Egress-only インターネットゲートウェイにインターネット経由の IPv6 トラフィックをすべてルーティングするルートを作成します。
ステップ 3: セキュリティグループルールを更新する IPv6 アドレスのルールを含めて、セキュリティグループルールを更新します。これにより、IPv6 トラフィックはインスタンスに出入りできるようになります。カスタムネットワーク ACL ルールを作成して、サブネットに出入りするトラフィックの流れを制御している場合は、IPv6 トラフィックのルールを含める必要があります。
ステップ 4: IPv6 アドレスをインスタンスに割り当てる サブネットの IPv6 アドレスの範囲からインスタンスに IPv6 アドレスを割り当てます。

例: パブリックサブネットとプライベートサブネットを持つ VPC 内で IPv6 を有効化する

この例では、VPC にパブリックサブネットとプライベートサブネットがあります。プライベートサブネットには、VPC 内の NAT ゲートウェイを経由してインターネットとアウトバウンド通信するデータベースインスタンスがあります。パブリックサブネットには、インターネットゲートウェイ経由でインターネットにアクセスするパブリックのウェブサーバーがあります。次の図は、VPC のアーキテクチャを示しています。


                    パブリックサブネットとプライベートサブネット、NAT ゲートウェイ、インターネットゲートウェイを持つ VPC

ウェブサーバーのセキュリティグループ (例: セキュリティグループ ID sg-11aa22bb11aa22bb1 のある) には、次のインバウンドルールがあります。

タイプ プロトコル ポート範囲 ソース [Comment] (コメント)
すべてのトラフィック すべて すべて sg-33cc44dd33cc44dd3 sg-33cc44dd33cc44dd3 (データベースインスタンス)に関連付けられたインスタンスからのトラフィックのすべてのインバウンドアクセスを許可します。
HTTP TCP 80 0.0.0.0/0 HTTP を介したインターネットからのインバウンドトラフィックを許可します。
HTTPS TCP 443 0.0.0.0/0 HTTPS を介したインターネットからのインバウンドトラフィックを許可します。
SSH TCP 22 203.0.113.123/32 ローカルコンピュータからのインバウンド SSH アクセスを許可します (例: インスタンスに接続して管理タスクを実行する必要がある場合)。

データベースインスタンスのセキュリティグループ (例: セキュリティグループ ID sg-33cc44dd33cc44dd3 のある) には、次のインバウンドルールがあります。

タイプ プロトコル ポート範囲 ソース [Comment] (コメント)
MySQL TCP 3306 sg-11aa22bb11aa22bb1 sg-11aa22bb11aa22bb1 (ウェブサーバーインスタンス)に関連付けられたインスタンスからの MySQL トラフィックのインバウンドアクセスを許可します。

どちらのセキュリティグループにも、すべてのアウトバウンド IPv4 トラフィックを許可するアウトバウンドルールがデフォルトで設定されていますが、それ以外のアウトバウンドルールを設定することはできません。

ウェブサーバーは、t2.medium インスタンスタイプです。データベースサーバーは、m3.large です。

VPC とリソースを IPv6 用に有効化し、デュアルスタックモードで操作します。つまり、VPC のリソースとインターネット経由のリソースの間で、IPv6 アドレスと IPv4 アドレスの両方を使用します。

ステップ 1: IPv6 CIDR ブロックを VPC およびサブネットと関連付ける

IPv6 CIDR ブロックを VPC と関連付けたら、範囲内の /64 の CIDR ブロックを各サブネットと関連付けます。

IPv6 CIDR ブロックを VPC と関連付けるには
  1. Amazon VPC コンソール (https://console.aws.amazon.com/vpc/) を開きます。

  2. 画面左枠のナビゲーションペインで、[Your VPCs] を選択します。

  3. VPC を選択します。

  4. [アクション][CIDR の編集][新しい IPv6 CIDR の追加] の順に選択します。

  5. 次のいずれかのオプションを選択し、[CIDR の選択] を選択します。

    • [Amazon が提供する IPv6 CIDR ブロック] - Amazon の IPv6 アドレスプールから IPv6 CIDR ブロックを使用します。[ネットワークボーダーグループ] で、AWS による IP アドレスのアドバタイズ元となるグループを選択します。

    • [IPAM 割り当て済み IPv6 CIDR ブロック]IPAM プールから IPv6 CIDR ブロックを使用します。IPAM プールと IPv6 CIDR ブロックを選択します。

    • [ユーザー所有の IPv6 CIDR] – (BYOIP) IPv6 アドレスプールから IPv6 CIDR ブロックを使用します。IPv6 アドレスプールおよび IPv6 CIDR ブロックを選択します。

  6. [閉じる] を選択します。

IPv6 CIDR ブロックをサブネットと関連付けるには
  1. Amazon VPC コンソール (https://console.aws.amazon.com/vpc/) を開きます。

  2. ナビゲーションペインで、[Subnets(サブネット)] を選択します。

  3. サブネットを選択します。

  4. [アクション][IPv6 CIDR の編集][IPv6 CIDR の追加] の順に選択します。

  5. 必要に応じて CIDR ブロックを編集します (例えば、00 を置き換えます)。

  6. [Save] を選択します。

  7. VPC 内の他のすべてのサブネットにも同様に、上記ステップを繰り返します。

詳細については、「IPv6 VPC CIDR ブロック」を参照してください。

ステップ 2: ルートテーブルを更新する

IPv6 CIDR ブロックを VPC と関連付けると、VPC の各ルートテーブルにローカルルートが自動的に追加され、VPC 内で IPv6 トラフィックが有効になります。

パブリックサブネットの場合、ルートテーブルを更新して、IPv6 トラフィック用にインターネットゲートウェイを使用するように、インスタンス (ウェブサーバーなど) を有効にする必要があります。プライベートサブネットの場合、NAT ゲートウェイは IPv6 をサポートしていないため、ルートテーブルを更新して、IPv6 トラフィック用に Egress-only インターネットゲートウェイを使用するように、インスタンス (データベースインスタンスなど) を有効にする必要があります。

パブリックサブネット用にルートテーブルを更新するには
  1. Amazon VPC コンソール (https://console.aws.amazon.com/vpc/) を開きます。

  2. ナビゲーションペインで、[Subnets(サブネット)] を選択します。パブリックサブネットを選択します。 [ルートテーブル] タブでルートテーブル ID を選択し、ルートテーブルの詳細ページを開きます。

  3. ルートテーブルを選択します。[Routes] タブで、[Edit routes] を選択します。

  4. [Add Rule (ルートの追加)] を選択します。[宛先]::/0 を選択します。[ターゲット] でインターネットゲートウェイの ID を選択します。

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

プライベートサブネット用にルートテーブルを更新するには
  1. Amazon VPC コンソール (https://console.aws.amazon.com/vpc/) を開きます。

  2. ナビゲーションペインで、[Egress Only インターネットゲートウェイ] を選択します。[Egress Only インターネットゲートウェイの作成] を選択します。VPC から [VPC] を選択し、[Egress Only インターネットゲートウェイの作成] を選択します。

    詳細については、「Egress-Only インターネットゲートウェイを使用してアウトバウンド IPv6 トラフィックを有効にする」を参照してください。

  3. ナビゲーションペインで、[Subnets(サブネット)] を選択します。プライベートサブネットを選択します。[ルートテーブル] タブでルートテーブル ID を選択し、ルートテーブルの詳細ページを開きます。

  4. ルートテーブルを選択します。[Routes] タブで、[Edit routes] を選択します。

  5. [Add Rule (ルートの追加)] を選択します。[宛先]::/0 を選択します。[ターゲット] で Egress Only インターネットゲートウェイの ID を選択します。

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

詳細については、「ルーティングオプションの例」を参照してください。

ステップ 3: セキュリティグループルールを更新する

インスタンスが IPv6 経由でトラフィックを送受信できるようにするには、IPv6 アドレスのルールを含めるようにセキュリティグループルールを更新する必要があります。たとえば、上記の例では、ウェブサーバーのセキュリティグループ (sg-11aa22bb11aa22bb1) を更新し、IPv6 アドレスからのインバウンド HTTP、HTTPS、および SSH アクセスを許可するルールを追加できます。データベースのセキュリティグループのインバウンドルールを変更する必要はありません。sg-11aa22bb11aa22bb1 からの通信をすべて許可するルールには、IPv6 通信が含まれています。

インバウンドセキュリティグループルールを更新するには
  1. Amazon VPC コンソール (https://console.aws.amazon.com/vpc/) を開きます。

  2. ナビゲーションペインで [セキュリティグループ] を選択後、ウェブサーバーのセキュリティグループを選択します。

  3. [インバウンドルール] タブで、[インバウンドルールの編集] を選択します。

  4. IPv4 トラフィックを許可するルールごとに、[ルールの追加] を選択し、対応する IPv6 トラフィックを許可するようにルールを設定します。例えば、IPv6 経由ですべての HTTP トラフィックを許可するルールを追加するには、[タイプ][HTTP] を、[ソース] で [::/0] を選択します。

  5. ルールの追加が完了したら、[ルールの保存] を選択します。

アウトバウンドセキュリティグループルールを更新する

IPv6 CIDR ブロックを VPC と関連付けると、すべての IPv6 トラフィックを許可する VPC 用にアウトバウンドルールがセキュリティグループに自動的に追加されます。ただし、セキュリティグループの元のルールを変更する場合、このアウトバウンドルールは自動的に追加されません。そのため、IPv6 トラフィック用に同等のアウトバウンドルールを追加する必要があります。

ネットワーク ACL ルールを更新する

IPv6 CIDR ブロックを VPC と関連付けると、IPv6 トラフィックを許可するように、デフォルトのネットワーク ACL にルールが自動的に追加されます。ただし、デフォルトのネットワーク ACL を変更した場合、またはカスタムネットワーク ACL を作成した場合は、IPv6 トラフィック用のルールを手動で追加する必要があります。詳細については、「ネットワーク ACL の動作」を参照してください。

ステップ 4: IPv6 アドレスをインスタンスに割り当てる

すべての現行世代のインスタンスタイプは、IPv6 をサポートしています。インスタンスタイプが IPv6 をサポートしていない場合は、IPv6 アドレスを割り当てる前に、サポートされるインスタンスタイプに合わせて、インスタンスのサイズを変更する必要があります。使用するプロセスは、選択した新しいインスタンスタイプが現在のインスタンスタイプと互換性があるかどうかによって異なります。詳細については、「Amazon EC2 Linux インスタンス用ユーザーガイド」の「インスタンスタイプを変更する」を参照してください。IPv6 をサポートする新しい AMI からインスタンスを起動する必要がある場合は、起動時に IPv6 アドレスをインスタンスに割り当てることができます。

インスタンスタイプが IPv6 をサポートしていることを確認したら、Amazon EC2 コンソールを使用して IPv6 アドレスをインスタンスに割り当てることができます。IPv6 アドレスは、インスタンスのプライマリネットワークインターフェイス (eth0) に割り当てられます。詳しくは、「Linux インスタンス用 Amazon EC2 ユーザーガイド」の「インスタンスへの IPv6 アドレスの割り当て」を参照してください。

その IPv6 アドレスを使用してインスタンスに接続できます。詳細については、「Linux インスタンス用 Amazon EC2 ユーザーガイド」の「SSH クライアントを使用して Linux インスタンスに接続する」および「Windows インスタンス用 Amazon EC2 ユーザーガイド」の「IPv6 アドレスを使用して Windows インスタンスに接続する」を参照してください。

現在のバージョンのオペレーティングシステム用の AMI を使用してインスタンスを起動した場合、インスタンスは IPv6 用に設定されます。インスタンスから IPv6 アドレスに ping を送信できない場合は、オペレーティングシステムのドキュメントを参照して IPv6 を設定してください。