ゾーン NAT Gateway のマルチAZ化手順

ゾーン NAT Gateway のマルチAZ化手順

AWS VPC環境でNAT Gatewayを一時的に冗長化する実践的な手順を解説。各AZにNAT Gatewayを配置し、プライベートサブネットを同じAZのゲートウェイに関連付ける構成変更方法と検証手順を紹介します。
2026.08.25

ゾーン NAT Gateway の冗長化手順

こんにちは!コンサルティング部のくろすけです!

NAT Gateway を AZ ごとに常時配置すると可用性を高められる一方で、NAT Gateway の利用料金が AZ 数に応じて増加します。
コスト管理がシビアな環境では、通常時は NAT Gateway をシングル AZ 構成にし、必要に応じてマルチ AZ 構成に切り替える運用が考えられます。

この記事では、既存の NAT Gateway に加えて別 AZ に NAT Gateway を作成し、対象のプライベートサブネットが同じ AZ の NAT Gateway を使用する構成へ変更する手順を紹介します。

概要

パブリック NAT Gateway はパブリックサブネットに作成し、Elastic IP アドレスを割り当てます。
インターネットへ通信するプライベートサブネットのルートテーブルには、0.0.0.0/0 の送信先として NAT Gateway を設定します。

今回の構成では、各 AZ に次のリソースを作成します。

  • パブリック NAT Gateway
  • NAT Gateway 用の Elastic IP アドレス
  • 同一 AZ のプライベートサブネット用ルートテーブル
  • プライベートサブネットから NAT Gateway へのデフォルトルート

やってみた

ここでは、既存の NAT Gateway がある ap-northeast-1a に加え、ap-northeast-1c に NAT Gateway を作成し、1c のプライベートサブネットのデフォルトルートを新しい NAT Gateway へ切り替えます。

変更前は、ap-northeast-1c のプライベートサブネットも ap-northeast-1a の NAT Gateway を使用しています。

変更前のリソースマップ

1. 切り替え前のインターネット接続を確認する

  1. 対象のプライベートサブネット内にある EC2 インスタンスへ接続する

  2. 次のコマンドを実行する

    curl inet-ip.info
    
  3. 表示された送信元 IPv4 アドレスを確認する

    1a の NAT Gateway に割り当てられた Elastic IP アドレスが表示されます

    切り替え前に curl inet-ip.info で外部から見える送信元 IPv4 アドレスを確認する

切り替え後に、送信元 IPv4 アドレスが新しい NAT Gateway の Elastic IP アドレスへ変わったことを確認します。

2. プライベートサブネット用のルートテーブルを作成する

  1. Amazon VPC コンソールで「ルートテーブル」を開く

  2. 「ルートテーブルを作成」を選択する

    ルートテーブル一覧で「ルートテーブルを作成」を選択する

  3. 名前と対象 VPC を設定する

  4. 「ルートテーブルを作成」を選択する

    ルートテーブルの名前と VPC を設定して作成する

3. Elastic IP アドレスを割り当てる

  1. Amazon VPC コンソールで「Elastic IP アドレス」を開く

  2. 「Elastic IP アドレスを割り当てる」を選択する

    Elastic IP アドレス一覧で「Elastic IP アドレスを割り当てる」を選択する

  3. ネットワークボーダーグループを NAT Gateway と同じリージョンに設定する

  4. 必要に応じて Name タグを設定する

  5. 「割り当てる」を選択する

    Elastic IP アドレスの設定とタグを入力して割り当てる

  6. Elastic IP アドレスが作成されたことを確認する

    Elastic IP アドレスの割り当て完了を確認する

4. パブリック NAT Gateway を作成する

  1. Amazon VPC コンソールで「NAT ゲートウェイ」を開く

  2. 「NAT ゲートウェイを作成」を選択する

    NAT ゲートウェイ一覧で「NAT ゲートウェイを作成」を選択する

  3. 名前を設定する

  4. ゾーンを選択する

  5. NAT Gateway を配置するパブリックサブネットを選択する

  6. 手順 3 で割り当てた Elastic IP アドレスを選択する

  7. 「NAT ゲートウェイを作成」を選択する

    パブリックサブネットと Elastic IP アドレスを指定して NAT Gateway を作成する

  8. 状態が「Available」になることを確認する

    作成した NAT Gateway の状態が Available であることを確認する

NAT Gateway を配置するパブリックサブネットのルートテーブルには、0.0.0.0/0 の送信先として Internet Gateway が設定されている必要があります。

5. 新しいルートテーブルに NAT Gateway 向けルートを追加する

  1. 手順 2 で作成したルートテーブルを開く

  2. 「ルート」タブで「ルートを編集」を選択する

    ルートテーブルの「ルートを編集」を選択する

  3. 送信先に 0.0.0.0/0 を入力する

  4. ターゲットに「NAT ゲートウェイ」を選択する

  5. 手順 4 で作成した NAT Gateway を選択する

  6. 「変更を保存」を選択する

    デフォルトルートのターゲットに NAT Gateway を設定する

6. プライベートサブネットを新しいルートテーブルに関連付ける

  1. 新しいルートテーブルで「サブネットの関連付け」タブを開く

  2. 「サブネットの関連付けを編集」を選択する

    サブネットの関連付けタブで編集画面を開く

  3. 対象 AZ のプライベートサブネットを選択する

  4. 「関連付けを保存」を選択する

    対象のプライベートサブネットを選択して関連付けを保存する

  5. 関連付けたサブネットと 0.0.0.0/0 の NAT Gateway が意図どおりであることを確認する

    リソースマップで、プライベートサブネット、ルートテーブル、NAT Gateway の経路を確認できます。

    プライベートサブネットが同一 AZ の NAT Gateway を使用している変更後のリソースマップ

7. 切り替え後のインターネット接続を確認する

  1. 手順 6 の関連付け後に、同じ EC2 インスタンスで次のコマンドを実行する

    curl inet-ip.info
    
  2. 表示された IPv4 アドレスが、手順 3 で NAT Gateway に割り当てた Elastic IP アドレスであることを確認する

    切り替え後に curl inet-ip.info で外部から見える送信元 IPv4 アドレスを確認する

パブリック NAT Gateway を経由する場合、外部サービスからは NAT Gateway に割り当てた Elastic IP アドレスが送信元として見えます。

切り戻し手順

切り替え後の状態を確認してから、切り替え手順を逆順にたどって元の構成へ戻します。

  1. 対象の EC2 インスタンスで curl inet-ip.info を実行し、今回追加した NAT Gateway の Elastic IP アドレスからインターネットへ接続できていることを確認する
  2. 切り替え前から使用していた NAT Gateway の状態が「Available」であることを確認する
  3. プライベートサブネットを、切り替え前のルートテーブルへ関連付ける
  4. 対象の EC2 インスタンスで curl inet-ip.info を実行し、切り替え前の NAT Gateway の Elastic IP アドレスが表示されることを確認する
  5. 今回追加したルートテーブルから、今回追加した NAT Gateway をターゲットとする 0.0.0.0/0 のルートを削除する
  6. 今回追加した NAT Gateway を削除し、状態が「Deleted」になることを確認する
  7. 今回追加した Elastic IP アドレスを解放する
  8. 今回追加したルートテーブルを削除する

あとがき

NAT Gateway の作成自体はコンソールから簡単に実施できます。
コスト管理がシビアで、冗長構成が常に必要ではない場合には、この手順を参考にしてみてください。

以上、くろすけでした!

この記事をシェアする

関連記事