NAT ゲートウェイ冗長性に関する通知を受けたけど、どうしたら良いでしょうか?
困っていた内容
Personal Health Dashboard (PHD) に 「 Natgateway operational notification 」 のタイトルで以下のようなメッセージがありました。この場合、どんな対応が必要でしょうか?
English follows Japanese
いつもお世話になっております。
本通知は、1 つ以上の VPC 内の AWS リソースにて 1 つの NAT ゲートウェイを共有しているお客様へお送りしております。 各 NAT ゲートウェイは、特定のアベイラビリティーゾーンで作成され、そのゾーンでのみの冗長性で実装されています。 したがって、NAT ゲートウェイのあるアベイラビリティーゾーンがダウンしている場合、その NAT ゲートウェイを使用している他のアベイラビリティーゾーンのリソースもインターネットにアクセスできなくなります。
アベイラビリティーゾーン間で可用性を維持するには、VPC 内の各アベイラビリティーゾーンに NAT ゲートウェイを作成し、リソースが同じアベイラビリティーゾーンの NAT ゲートウェイを使用するようにルーティングを設定することをお勧めします。
単一の NAT ゲートウェイを持つ VPC ID は [影響を受けるリソース](Affected resources) タブからご確認頂けます。
その他ご不明点などありましたらAWS サポートまでご連絡ください [1]。
[1] https://aws.amazon.com/support
---
We are reaching out because your AWS resources in one or more VPCs are sharing one NAT Gateway. Each NAT gateway is created in a specific Availability Zone and implemented with redundancy in that zone only. Thus, if the NAT gateway's Availability Zone is down, resources in the other Availability Zones that are using that NAT gateway lose internet access too.
To maintain availability across Availability Zones, we recommend that you create a NAT gateway in each Availability Zone in your VPC(s) and configure your routing to ensure that resources use the NAT gateway in the same Availability Zone.
A list of your VPC ID(s) with a single NAT Gateway can be found in the "Affected Resources" tab.
Should you have any questions or concerns, please reach the AWS Support team[1].
[1] https://aws.amazon.com/support
どうすればいいの?
この通知はどういった意味合いなのか?
複数のアベイラビリティーゾーンにリソースがあって、1 つの NAT ゲートウェイを共有している場合 その NAT ゲートウェイが属するアベイラビリティーゾーンがダウンすると、その他のアベイラビリティーゾーンのリソースはインターネットにアクセスできなくなります。 アベイラビリティーゾーンに依存しないアーキテクチャを作成するには、アベイラビリティーゾーン別に NAT ゲートウェイを作成し、同じアベイラビリティーゾーンに属する NAT ゲートウェイをリソースで使用するようにルーティングを設定します。
(引用:参考情報[1]より)
つまり 単一 AZ(サブネット) に作成した NAT ゲートウェイを複数AZで共有していると、AZ 障害時のシングルポイントとなり可用性が担保できないため、各 AZ 単位で NAT ゲートウェイの作成を推奨する案内となります。
状況を調べる方法
VPC
> NAT ゲートウェイ
を選択
対象 VPC に対して、一つの NAT ゲートウェイまたは単一の AZ (サブネットから判断)に対する NAT ゲートウェイのみ作成されていると、今回のケースに該当します。
対応案
本案内に対して、取れる対応案として、以下のものが考えられます。(状況に応じて、他にも取り得るかと思います)
- 案内にある NAT ゲートウェイを必要な AZ(サブネット) に対して作成し、ルーティングを変更する
- 複数の NAT ゲートウェイ以外で可用性を保つ方法を実装する
- リスクは承知の上でこの構成のままとする(ただし、備えはする)
冗長化することがベストではありますが、コストやサービスによっては実現できないケースも想定されます。その際は、モニタリングを実施することをお勧めします(コールドスタンバイのようにいざという時の準備も出来るとなお安心です)。 NAT ゲートウェイは、Amazon CloudWatch にてメトリクスを収集しています。詳細は 参考情報[2]をご確認下さい。
例えば、「 PacketsDropCount 」メトリクスをベースに、異常が発生した際にアラームを設定することで、迅速に異常に検知することが可能です。まずは CloudWatch で取得されているメトリクスと傾向をご確認の上、サービスにあわせたアラームをご検討ください。
参考情報
[1] NAT ゲートウェイ
[2] Amazon CloudWatch を使用した NAT ゲートウェイのモニタリング
[3] NAT Gatewayによるアクセス元IPアドレスの固定