はじめに
こんにちは、Finatextでエンジニアをしているtoumakidoです。
本記事は2026 Japan AWS Jr. Champions 真夏のQiitaリレーの22日目の記事になります。
さて、2025年11月に、NAT Gatewayに Regional Availability Mode(以下、Regional NAT Gateway)が追加されました。AZごとにNAT Gatewayを作らなくてよくなる機能です。
ただ、この機能はデフォルトではEIPをAWSが自動で払い出すため、送信元IPを連携先に登録している 固定IP要件 のある環境では採用できません。
そこで使えるのが Manual Mode です。EIPとAZを自分で指定できるので、固定IPを維持したままRegional NAT Gatewayを導入できます。
この記事ではZonal NAT Gateway 2台 の構成と、Regional NAT GatewayをManual Modeで2AZに割り当てた 構成を比較し、固定IP要件がある環境でRNATを使うメリットについて考えます。
Regional NAT Gatewayとは
従来のNAT Gateway(Regionalとの対比で Zonal NAT Gateway と呼ばれるようになりました)は単一のAZで動作するリソースで、マルチAZで冗長化するにはAZごとにpublic subnet・EIP・NAT Gateway・ルートテーブルを一式用意する必要がありました。
Regional NAT Gatewayは、VPC内で 1つのIDを持つスタンドアロンなリソース です。サブネットを指定せずVPCに対して作成し、すべてのAZのprivate subnetが同じNAT Gateway IDを向くだけで済みます。NAT Gatewayを置くためのpublic subnetも不要になります。
2つのMode
Regional NAT Gatewayは、Automatic Mode と Manual Modeという2つから選択してリソースを作成します。
| Automatic Mode | Manual Mode | |
|---|---|---|
| EIP | AWSが自動で払い出す | 自分で指定する |
| AZの拡張 | ワークロードを検知して自動 | 自分で指定する |
| 送信元IP | 事前に確定しない | 確定する |
AWSはAutomatic Modeを推奨していますが、このモードでは同時接続数に応じてEIPが自動追加されることもあるため、送信元IPが事前に確定しません。「このIPからのアクセスのみ許可」というallowlist登録がある場合は採用できないので、固定IP要件がある環境ではManual Mode一択になります。以降はManual Modeに絞って話を進めます。
Zonal vs Regional(Manual Mode)
今回は2AZ冗長構成で両方のやり方で組んで比較します。
構成図
private subnet内のアプリケーションからインターネットに通信する際の構成はそれぞれ次のようになります。
Zonal(NAT Gateway 2台)
Regional(Manual Mode / 2AZにEIPを割り当て)
この構成から読み取れる通り
ルートテーブルはzonalの場合、自分で3つ作る必要があります。
* RTB-private-a
* RTB-private-c
* RTB-public
regionalの場合、自分で作るのは1つだけです。
* RTB-private(全AZ共通)
zonalのprivate subnet用のルートテーブルがAZごとに分かれていた理由は「AZごとに向き先のNAT Gatewayが違うから」だけでした。向き先が1つになるので、この分割は不要になります。
なお、RNAT→IGWのルートテーブルはAWSが自動で作成します。IGWへのデフォルトルートが最初から入っているので、自分で用意する必要はありません。
何が減るのかまとめると
| zonal(NAT 2台) | regional(Manual / 2AZ) | |
|---|---|---|
| NAT Gatewayリソース | 2 | 1 |
| public subnet | 2 | 0 |
| 自分で作るルートテーブル | 3 | 1 |
| AZを1つ増やすとき | subnet / EIP / NAT / RTBを一式追加 | EIPを1つ足すだけ |
管理するリソースが減り、構成変更が容易になっていることがわかります。
AZ障害発生時の対応
続いて障害発生時の挙動を比べます。
ここで扱う(2つの構成で違いが出る)ケースは、アプリは動いているのに、そのアプリが紐づいているNAT Gatewayが使えなくなった場面です。
上記の構成で言えば、AZ-cのNAT Gatewayだけが使えなくなったケースが該当します。
また別のケースとして、AZ-dでもアプリケーションが動いていて、そのルートテーブルがAZ-cのNAT Gatewayに紐づいていた場合に、AZ-cの全機能で障害が起きるケースも該当します。
Zonal: 手動でルートテーブルを直す必要がある
RTB-private-c の 0.0.0.0/0 → nat-c がblackholeになり、AZ-cのアプリは生きているのに外部通信ができなくなります。
復旧させるには、RTB-private-c の向き先を nat-a に書き換える必要があります。
Regional: ルートテーブルの操作が不要
AZ-a も AZ-c も同じ nat-regional を向いているので、ルートテーブルは何も変更しなくて済みます。
公式ブログには、RNATが有効でないAZのインターネット向けトラフィックは、RNATが有効な別のAZへルーティングされると記載されています。AZ-cのトラフィックはAZ-a経由で外に出ていくことになります。
復旧時も自動で元に戻るため、戻し作業も不要です。
dev/stgはEIP 1つで回すこともできる
ここまでは本番向けの2AZ構成の話でしたが、dev/stg環境ではコストを抑えるためにNAT Gatewayを1台で運用しているケースも多いと思います。
Regional NAT Gatewayでこれを再現するのは簡単で、Manual ModeでEIPを1つのAZにだけ割り当てます。
RNATが有効でないAZのトラフィックは有効なAZへ流れるので、AZ-cのアプリもAZ-aのEIPから出ていきます。従来のSingle NAT Gateway構成とまったく同じ挙動です。
そしてこの時もルートテーブルは2AZ構成のときとまったく同じになります。
料金は従来と同じ
NAT Gatewayの料金は「時間課金」と「データ処理料金」の2つで構成されています。
このうち時間課金が、Regional NAT Gatewayでは「そのNAT Gatewayが有効になっているAZごと」にかかります。2AZにEIPを割り当てていれば2 NAT Gateway-hours、1AZだけなら1 NAT Gateway-hourです。
つまり本番の2AZ構成はzonal 2台と同額、EIPを1つに絞ったdev/stg構成は従来のSingle NAT Gatewayと同額になります。データ処理料金もGBあたりのレートは従来と同じなので、どの構成でも従来と料金は変わりません。
クロスAZのデータ転送料金についても、本番の2AZ構成ではゾーンアフィニティが効いて各AZのアプリが自AZのNATを使うため、zonalと同じく発生しません。dev/stgのようにEIPを1つに絞った場合は他AZからのトラフィックがクロスAZになりますが、これも従来のSingle NAT Gateway構成と同じです。(実際には時間課金がコストの大半を占めているのであまり気にしなくて良いです)
移行について
実際にzonalから既存のEIPを引き継ぐ移行にはダウンタイムが必要です
EIPはNAT Gatewayに紐づいているため、既存のZonal NAT Gatewayを削除してEIPを解放しないと再利用できません。
- 既存のZonal NAT Gatewayを削除してEIPを解放する
- 解放したEIPを使ってRegional NAT Gatewayを作成する
- ルートテーブルの向き先を変更する
固定IPを維持したままの移行にはメンテナンスウィンドウが必要になります。
接続先と事前に調整を済ませ新しいIPに変えてよい場合は、先にRegional NAT Gatewayを作ってからルートを切り替え、後で古いNAT Gatewayを削除する順序が取れます(この場合も切り替え時に既存のコネクションはリセットされます)。
まとめ
Regional NAT GatewayのManual Modeについて紹介しました。
- Automatic ModeはEIPが自動で払い出されるため、固定IP要件があると採用できない
- Manual Modeなら固定IPを維持したまま、これまでのzonal構成を置き換えられる
- メリット①管理リソースの削減: public subnetが不要になり、自分で作るルートテーブルが3つから1つに。IaCの記述も減る
- メリット②障害時対応の軽減: AZのNAT経路に障害が起きても、ルートテーブルを書き換えずに正常なAZ経由で通信が継続する
- dev/stgはEIPを1つにすればコストを抑えたまま運用でき、本番と構成を揃えられる
- 料金はAZごとの時間課金なので、EIPの数を揃えればどの構成でも従来と同額
「固定IPが必要だから」という理由でRegional NAT Gatewayを見送っていた方は、Manual Modeを検討してみてください。zonalよりシンプルに、同じ構成、コストを実現することができます。