はじめに
先日のブログ記事で、Regional NAT Gatewayについて紹介しました。この記事では、新たにリリースされたRegional NAT Gatewayと、従来からあるZonal NAT Gatewayのどちらを選ぶかを考えてみます。さらに、Regional NAT Gatewayには自動/手動モードの選択が可能です。こちらについても合わせて考えてみました。
結論
結論は、以下のフローチャートをご覧ください。NAT Gatewayの集約が必要な場合を除いて、Regional NAT Gatewayを選択する方針で問題ないでしょう。
flowchart TD;
A[NAT Gatewayが必要] --> B{NAT Gatewayの<br>集約が必要か?}
B --> |不要| E
B --> |必要| D
E[Regional NAT Gateway]
E --> M
F{割当てるパブリックIPアドレスを<br>コントロールするか?}
D[Zonal NAT Gateway]
F --> |する| X
F --> |しない| Y
Y[自動モード]
X{IPAMを利用するのか?}
X --> |する| Y
X --> |しない| W
W[手動モード]
M{NAT Gatewayが自動で拡張されても良いか?}
M --> |良い|F
M --> |不可|W
以下、フローチャートの補足事項です。
- Private NAT GatewayにRegionalはありません。Private NAT Gatewayが必要な場合は、従来のZonal NAT Gatewayを利用する必要があります
- NAT Gatewayの集約はこちらのブログ記事で紹介していますのでご覧ください
- IPAMを利用する場合は、最低でも/30(4つ)のIPアドレスを割り当てることになります。よって、小規模な2AZ構成などの場合は、未使用のIPアドレスが発生する可能性があります。高価ではありませんが、もったいないですね。また、逆に不足する場合についても監視運用などの考慮が必要となります
- 自動モードは、AZにENIが1つでもあると拡張が自動で行われます
自動モードのユースケース
自動モードは、運用の手間を最小限にしたい場合に最適です。以下のようなケースで推奨されます。
本番環境での高可用性構成
本番環境では、可用性を最優先にすべきです。自動モードを利用することで、各AZに自動的にNAT Gatewayが配置され、AZ障害時にも他のAZで通信が継続できます。手動での設定ミスや設定漏れのリスクも軽減できます。
動的にスケールする環境
Auto Scalingなどで動的にリソースが増減する環境では、自動モードが便利です。新しいAZにリソースが展開された際、自動的にそのAZにNAT Gatewayが作成されるため、手動での追加作業が不要になります。また、リクエストの増加によりIPアドレスがが不足した場合にも自動で拡張が行われます。
IPアドレス管理をIPAMで一元化している場合
IPAMを利用してIPアドレスを管理している環境では、自動モードとの相性が良いです。IPAMのプールから自動的にIPアドレスが割り当てられるため、手動でのEIP管理が不要になります。ただし、プールのサイズには注意が必要です。
運用負荷を削減したい場合
インフラの運用チームが小規模な場合や、他の業務に集中したい場合、自動モードを選択することで、NAT Gatewayの管理にかかる時間を削減できます。AWSに任せられる部分は任せるという方針です。
手動モードのユースケース
手動モードは、より細かい制御が必要な場合に選択します。以下のようなケースで推奨されます。
開発・検証環境でのコスト最適化
開発環境や検証環境では、可用性よりもコストを優先することがあります。例えば、2AZ構成でインスタンスは稼働しているが、NAT Gatewayは1つのAZにのみ配置してコストを削減したい場合です。
自動モードだとAZにENIが存在すると自動で拡張されて2AZ分の料金が請求されてしまいます。手動モードを利用することで、必要最小限のNAT Gatewayのみを配置できます。
コスト例:
- 自動モード(2AZ): 約$90/月($0.045/時間 × 2AZ × 730時間)
- 手動モード(1AZ): 約$45/月($0.045/時間 × 1AZ × 730時間)
アウトバウンドIPアドレスの固定化が必要な場合
SaaSやパートナー企業のAPIを利用する際、接続元のIPアドレスをホワイトリストに登録する必要があるケースがあります。このような要件では、IPアドレスが変動しないことが重要です。
自動モードでは、AZの追加・削除に伴ってIPアドレスが自動で追加・削除されるため、ホワイトリストの管理が煩雑になります。手動モードを利用することで、事前に確保したEIPを固定的に利用でき、ホワイトリストの変更頻度を最小限に抑えられます。
具体例:
- 外部決済サービスのAPI連携
- 社外パートナーとのVPN接続
- セキュリティ要件が厳しいSaaSの利用
- コンプライアンス上、通信元IPの記録が必要な場合
モード選択のポイント
どちらのモードを選ぶかは、以下の観点で判断すると良いでしょう。
| 観点 | 自動モード | 手動モード |
|---|---|---|
| 運用負荷 | 低い | 高い |
| コスト制御 | 難しい | 容易 |
| 可用性 | 高い | 設定次第 |
| IPアドレス管理 | 自動 | 手動 |
| IP固定化 | 可能(要IPAM) | 可能 |
各モードでのEIPの割り当てについて
NAT GatewayがEIPを確保・解放する動作については以下の通りです。
自動モードの場合の動作
EIPの確保はNAT Gatewayが行います。NAT Gatewayを作成すると自動でEIPが確保されます。NAT Gatewayを削除すると、EIPも解放されます。
IPAMを利用している場合は、確保したブロックから自動でIPが確保・解放されます。
手動モードの場合の動作
EIPの確保はユーザー自身が行う必要があります。NAT Gatewayを作成する前にEIPを確保し、NAT Gatewayを作成・変更する際に確保したEIPをパラメーターで指定する必要があります。NAT Gatewayを削除しても、EIPは解放されず残ります。
最後に
Regional NAT Gatewayを選択することで、運用が劇的に楽になるといったことはありません。しかし、あえて従来のZonal NAT Gatewayを選ぶ理由はないでしょう。さらに、Regional NAT GatewayはZonal NAT Gatewayに比べ拡張性も向上しています。今後はRegional NAT Gatewayを活用していきましょう。
おまけ
今回の記事を書いていて気づいたのですが、マネジメントコンソールからもRegional NAT Gatewayを作成・確認できるようになっています。リリース当初はCLIやAPIのみでしたが、現在はGUIからも操作可能です。

参考資料
- 公式ドキュメント: Regional NAT gateways for automatic multi-AZ expansion
- Regional NAT Gatewayの紹介記事: Introducing Amazon VPC Regional NAT Gateway | Networking & Content Delivery
- Regional NAT GatewayとIPAMを利用した構成の紹介記事: Build scalable IPv4 addressing with AWS NAT gateway in regional availability mode, Amazon VPC IPAM policies and Prefix Lists | Networking & Content Delivery
- NAT GatewayのAWS CLIリファレンス: create-nat-gateway — AWS CLI 2.32.10 Command Reference
石田順一(記事一覧)
カスタマーサクセス部 CS3課