
AWS NAT Gatewayがリージョナルの可用性モードで利用できるようになりました。
これまで、Nat Gatewayはゾーンを指定して作成する必要があるため、AZ障害に備えて各ゾーンに作成する必要がありました。
さらに、ゾーンの切り替え時はNat Gatewayへのルーティングも手動で指定しなければならず、運用負荷が高くなる傾向がありました。
今回のアップデートでは、リージョナルの可用性モードが追加されたため、AZごとにNat Gatewayを配置する必要がなくなり、運用が簡易になりました。
AWS NAT Gateway now supports regional availability - AWS
Introducing Amazon VPC Regional NAT Gateway | Networking & Content Delivery
アップデート概要
パブリックサブネットが不要になりセキュリティが向上
ポートとIPアドレスの上限が引き上げられ、。AZごとに最大32個の IP アドレスをサポート
IPアドレス1つにつき、同時接続数の上限が55,000まで増加
Nat Gatewayをリージョナルの可用性モードで作成
VPCを作成します。
よくある構成として、AZが2つで、パブリックサブネットとプライベートサブネットを各AZに作成します。

ちなみに、VPC作成画面でもリージョナルNAT Gatewayが作成できるようになっていますが、ここではNAT Gatewayを作成せずに後ほど作成します。

VPCが作成出来たら、NAT Gatewayを作成します。
アベイラビリティーモードで「リージョナル」を選択します。
VPCは先ほど作成したVPCを選択します。
※VPCにInternet Gatewayがアタッチされないと選択できないので注意。

作成が完了しました。
アベイラビリティーモードが「Regional」になっていることを確認します。

IPアドレスを確認すると、AZごとに関連付けされていることが分かります。
今回は2AZなので2IPになります。

Elastic IPアドレスから詳細を確認すると、2つともService Managedが「rnat」であることが確認できます。


リソースマップで確認すると、Nat Gatewayとそれに紐づくルートテーブルが作成されています。


各プライベートサブネットのルートテーブルに、NAT Gatewayへのルーティングを設定します。


これでNAT Gatewayの設定は完了です。
疎通確認
各プライベートサブネットにEC2インスタンスを作成します。

AZがap-northeast-1aにあるEC2インスタンスが、インターネットアクセスに使用するIPアドレスを確認します。
NAT Gatewayに関連付けられたElastic IPアドレスが確認できました。
$ TOKEN=$(curl -s -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600") $ curl -s -H "X-aws-ec2-metadata-token: $TOKEN" http://169.254.169.254/latest/meta-data/placement/availability-zone ap-northeast-1a $ curl http://checkip.amazonaws.com 52.199.97.25
AZがap-northeast-1cにあるEC2インスタンスが、インターネットアクセスに使用するIPアドレスを確認します。
NAT Gatewayに関連付けられたElastic IPアドレスが確認できました。
$ TOKEN=$(curl -s -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600") $ curl -s -H "X-aws-ec2-metadata-token: $TOKEN" http://169.254.169.254/latest/meta-data/placement/availability-zone ap-northeast-1csh-5.2 $ curl http://checkip.amazonaws.com 52.192.144.66
まとめ
リージョンレベルでAWS NAT Gatewayが利用できるようになり、マルチAZ構成では1つのAWS NAT Gatewayを作成するだけでよくなりました。
ワークロードの有無に基づいてAZ間で自動的にスケールし、パブリックサブネットを必要とせず、運用負荷の削減ができます。
マルチAZでのAWS NAT Gatewayの運用に課題感があれば、ぜひ活用してきましょう。