VPC NAT Gateway は、VPC 内のプライベート IPv4 アドレスを NAT IP アドレスに変換します。これにより、CIDR ブロックが重複するネットワーク間の通信が可能になり、指定したアドレスからリソースにアクセスできるようになります。
-
プライベートネットワークのアドレス競合の解決:CIDR ブロックが重複する VPC は相互接続できません。これを解決するには、セカンダリ CIDR ブロックを追加し、VPC NAT Gateway を使用してアドレス変換を行います。
-
指定したアドレスでのアクセス:金融や証券などの規制産業では、クラウドサービスは VPC NAT Gateway を使用して、固定的で指定されたプライベート IP アドレスからオンプレミスデータセンターにアクセスします。
VPC NAT Gateway は、2 種類のディザスタリカバリをサポートしています:
シングルゾーンディザスタリカバリは、NAT Gateway をサポートするすべてのリージョンで利用可能です。この機能を使用するには、アカウントマネージャーに連絡してリクエストしてください。
-
クロスゾーンディザスタリカバリ (デフォルト):NAT ゲートウェイは複数のアベイラビリティーゾーンにまたがって冗長構成でデプロイされます。1 つのアベイラビリティーゾーンで障害が発生した場合、トラフィックは自動的にフェイルオーバーされます。
-
シングルゾーンディザスタリカバリ:NAT ゲートウェイは単一のアベイラビリティーゾーン内にデプロイされ、そのアベイラビリティーゾーン内でのみ高可用性が確保されます。インスタンス料金はクロスゾーンモデルの約 50% で、キャパシティーユニット (CU) 料金はクロスゾーンモデルの約 80% です。
仕組み
以下の例では、固定的で指定されたプライベート IP アドレスを使用して、クラウドサービスとオンプレミスデータセンター間の通信を確立する方法を説明します。
-
クラウドサービスからオンプレミスデータセンターへのアクセス:VPC 内の複数の Elastic Compute Service (ECS) インスタンスが、指定された NAT IP アドレスを使用してオンプレミスデータセンターにアクセスします。
-
ルート転送:ECS インスタンスからのアクセスリクエストは、VPC ルートテーブルに設定されたルートに従って VPC NAT Gateway に転送されます。
-
SNAT (ソースネットワークアドレス変換):VPC NAT Gateway はパケットを受信すると、設定された SNAT エントリに基づいて、パケットの送信元 IP アドレスを ECS インスタンスの IP アドレス (例:192.168.1.10) から指定された NAT IP アドレス (例:192.168.10.2) に変換します。ゲートウェイはこのマッピングをセッションテーブルに記録します。
-
ピアプライベートネットワークへの送信:変換されたパケットはオンプレミスデータセンターに送信されます。データセンター側から見ると、リクエストは ECS インスタンスではなく、NAT IP アドレスから発信されたように見えます。
-
応答と逆変換:オンプレミスデータセンターからの応答パケットは、宛先として NAT IP アドレスを持ちます。VPC NAT Gateway はセッションテーブルを使用して元のプライベート IP アドレスを復元し、パケットを送信元の ECS インスタンスに転送します。
-
-
オンプレミスデータセンターからクラウドサービスへのアクセス:データセンターは、固定の NAT IP アドレス (192.168.10.2) へのリクエストを開始します。VPC NAT Gateway は DNAT エントリを使用して、宛先 IP アドレスを NAT IP アドレスからサービスを提供する ECS インスタンスのプライベート IP アドレス (例:192.168.1.10) に変換し、インバウンドトラフィックを正しいサーバーに転送します。
VPC NAT Gateway はアドレス変換のみを行い、トラフィックフローを決定しないことに注意してください。VPC ルートテーブルは、トラフィックを NAT ゲートウェイに送信するかどうか、および変換後にどこに転送するかを制御します。
他の VPC やオンプレミスデータセンターとの接続は、Cloud Enterprise Network (CEN) や Express Connect などの製品を使用して確立する必要があります。
-
VPC からのアウトバウンドルートの設定 (VPC からピアプライベートネットワークへ):VPC ルートテーブルに、宛先をピアネットワーク (オンプレミスデータセンターなど)、ネクストホップを VPC NAT Gateway とするルートが追加されていることを確認します。これにより、VPC 内のインスタンスからのアウトバウンドリクエストが SNAT のために NAT ゲートウェイに転送されるようになります。
-
NAT IP CIDR ブロックのアドバタイズ:カスタム NAT IP CIDR ブロックを使用する場合、VPC ルートテーブルに宛先をこの CIDR ブロック、ネクストホップを VPC NAT Gateway とするルートを追加します。これにより、CIDR ブロックの所有権を宣言し、インバウンド DNAT トラフィックと SNAT リターントラフィックが VPC 内で正しくルーティングされます。
-
ピアプライベートネットワークのルート設定 (ピアプライベートネットワークから VPC へ):ピアネットワークに、宛先を NAT IP CIDR ブロックとするルートが設定されていることを確認します。これにより、応答パケットやピアプライベートネットワークから開始されたリクエストが NAT ゲートウェイに転送されるようになります。
VPC NAT Gateway の作成
コンソール
NAT Gateway - VPC NAT Gateway の購入ページに移動します。
-
[課金方法]:従量課金。
-
[リージョン]:VPC NAT Gateway を作成するリージョンを選択します。
-
[ディザスタリカバリタイプ]:NAT ゲートウェイのディザスタリカバリモードを選択します。
-
[クロスゾーンディザスタリカバリ] (デフォルト):ゲートウェイをプライマリアベイラビリティーゾーンとセカンダリアベイラビリティーゾーンにデプロイします。プライマリアベイラビリティーゾーンで障害が発生した場合、トラフィックは自動的にセカンダリ側にフェイルオーバーされます。
-
[シングルゾーンディザスタリカバリ]:ゲートウェイを選択したアベイラビリティーゾーン内にデプロイし、デバイスレベルの冗長性によって高可用性を提供します。インスタンス料金はクロスゾーンモデルの約 50% で、キャパシティーユニット (CU) 料金はクロスゾーンモデルの約 80% です。
-
-
[ネットワークとアベイラビリティーゾーン]:VPC NAT Gateway の VPC と vSwitch を選択します。ルート管理を容易にするため、VPC NAT Gateway 専用の vSwitch を計画して使用することを推奨します。
-
[プライベート IP]:これはデフォルトの NAT IP アドレスとして機能します。vSwitch の CIDR ブロック (デフォルトの NAT IP CIDR ブロック) から NAT IP アドレスを指定できます。IP アドレスを指定しない場合、システムが 1 つ割り当てます。
-
[プライベート IP プレフィックス]:これにより、NAT IP アドレスを一括で作成できます。まず、ゲートウェイの vSwitch 用に予約済み CIDR ブロックを作成します。ゲートウェイはこの予約済みブロックを
/28マスクの IP プレフィックスに分割します。IP プレフィックスを指定すると、システムはそのプレフィックス内の 16 個すべてのアドレスを NAT ゲートウェイの NAT IP アドレスとして追加します。
API
CreateNatGateway API を呼び出して VPC NAT Gateway を作成します。AvailabilityMode パラメーターを使用してディザスタリカバリタイプを指定します: CrossAZ (デフォルト、クロスゾーンディザスタリカバリ) または SingleAZ (シングルゾーンディザスタリカバリ)。
NAT IP アドレスと CIDR ブロックの設定
NAT IP アドレスは SNAT および DNAT エントリで使用され、アドレス変換中に ECS インスタンスのプライベート IP アドレスを置き換え、統一された送信元または宛先アドレスとして機能します。NAT IP アドレスは NAT IP CIDR ブロックから割り当てる必要があります。
-
デフォルトの NAT IP CIDR ブロック:デフォルトでは、システムは VPC NAT Gateway に関連付けられた vSwitch の CIDR ブロックをデフォルトの NAT IP CIDR ブロックとして使用します。
-
作成時に設定されたプライベート IP アドレスがデフォルトの NAT IP アドレスとして機能します。このアドレスを指定することも、指定しない場合はシステムが割り当てることもできます。後でさらに NAT IP アドレスを追加できます。
-
vSwitch の予約済み CIDR ブロックからプライベート IP プレフィックスを設定して、NAT IP アドレスを一括で作成できます。
-
-
新しい NAT IP CIDR ブロックの作成:関連付けられた vSwitch で使用されているものとは異なる CIDR ブロックから NAT IP アドレスを割り当てます。
-
RFC 1918 プライベートアドレス範囲 (10.0.0.0/8、172.16.0.0/12、および 192.168.0.0/16) またはそのサブネットをアドレスブロックとして使用することを推奨します。サポートされるサブネットマスク長は 16 ビットから 32 ビットです。
-
パブリック CIDR ブロックを使用する必要がある場合は、ユーザー CIDR ブロック を使用して、それが VPC のアドレス範囲内にあることを確認してから NAT IP CIDR ブロックとして使用する必要があります。
-
新しいアドレスブロックは、VPC NAT Gateway が存在する VPC のプライベート CIDR ブロックと重複することはできません。プライベートアドレスを VPC のプライベート CIDR ブロック内の別のアドレスに変換する必要がある場合は、そのブロック内に新しい vSwitch を作成し、その vSwitch に新しい VPC NAT Gateway を作成してアドレス変換サービスを提供します。
-
コンソール
NAT IP CIDR ブロック
-
デフォルトの NAT IP CIDR ブロック:システムはデフォルトで VPC NAT Gateway に関連付けられた vSwitch の CIDR ブロックを使用します。このブロックは削除できません。
-
新しい NAT IP CIDR ブロックの作成:VPC NAT Gateway ページに移動し、対象の VPC NAT Gateway インスタンスの ID をクリックして詳細ページを開き、NAT IP アドレス タブを選択して CIDR ブロックの作成 をクリックします。
NAT IP アドレス
-
デフォルトの NAT IP CIDR ブロックから追加する:
-
VPC NAT Gateway を作成する際、設定されたプライベート IP アドレスがデフォルトの NAT IP アドレスとして機能します。この IP アドレスを指定するか、システムに自動で割り当てさせることができます。デフォルトの NAT IP アドレスは削除できません。
-
NAT IP アドレスを個別に追加する:VPC NAT Gateway ページに移動し、対象の VPC NAT Gateway インスタンスの ID をクリックして詳細ページを開き、NAT IP アドレス タブを選択して NAT IP アドレスの追加 をクリックします。
-
[CIDR ブロックの選択]:VPC NAT Gateway のデフォルトの NAT IP CIDR ブロックを選択します。
-
[割り当て方法]:ランダムに割り当て を選択するか、手動で割り当て を選択して選択したアドレスブロックから [IP アドレス] を指定します。
-
-
IP プレフィックスを使用して NAT IP アドレスを一括で追加する:VPC NAT Gateway ページに移動し、対象の VPC NAT Gateway インスタンスの ID をクリックし、NAT IP アドレス タブに移動し、[NAT IP プレフィックス] を選択して [IP プレフィックスの追加] をクリックします。
-
一括で追加する場合:[ランダム割り当て] を選択し、割り当てる IP プレフィックスの数を指定します。システムは、ゲートウェイの vSwitch の予約済み CIDR ブロックから、指定された数の未割り当ての
/28IP プレフィックスをランダムに追加します。 -
個別に追加する場合:[手動割り当て] を選択し、ゲートウェイの vSwitch の予約済み CIDR ブロックから未割り当ての
/28IP プレフィックスを指定します。
-
-
-
新しい NAT IP CIDR ブロックから追加する:対象の VPC NAT Gateway インスタンスの ID をクリックして詳細ページを開き、NAT IP アドレス タブを選択して NAT IP アドレスの追加 をクリックします。
-
[CIDR ブロックの選択]:VPC NAT Gateway の下にある新しい NAT IP CIDR ブロックを選択します。
-
[割り当て方法]:ランダムに割り当て を選択するか、手動で割り当て を選択して選択したアドレスブロックから [IP アドレス] を指定します。
-
API
-
CreateNatIpCidr API を呼び出して NAT IP CIDR ブロックを作成します。
-
CreateNatIp API を呼び出して NAT IP アドレスを追加します。
-
DeleteNatIp API を呼び出して NAT IP アドレスを削除します。
-
DeleteNatIpCidr API を呼び出して NAT IP CIDR ブロックを削除します。
SNAT エントリの設定
コンソール
VPC NAT Gateway ページに移動し、対象の VPC NAT Gateway インスタンスを見つけ、[操作] 列の [SNAT 管理] をクリックします。その後、[SNAT エントリの作成] をクリックします。
-
[SNAT エントリの粒度]:管理ニーズに基づいて SNAT ルールのスコープを選択します。
-
[VPC 粒度]:関連付けられた VPC 内のすべての ECS インスタンスが、設定された SNAT ルールを介してピアプライベートネットワークにアクセスできます。
-
[vSwitch 粒度]:指定された vSwitch 内の ECS インスタンスのみがピアプライベートネットワークにアクセスできます。
-
[ECS 粒度]:指定された ECS インスタンスまたは Elastic Network Interface のみがピアプライベートネットワークにアクセスできます。
-
[カスタム CIDR ブロック粒度]:指定された CIDR ブロック内のリソースがピアプライベートネットワークにアクセスできます。
-
-
[[NAT IP アドレスの選択]]:ドロップダウンリストから 1 つ以上の NAT IP アドレスを選択して、ピアプライベートネットワークにアクセスします。リストから NAT IP アドレスの作成 を選択して、新しいアドレスを作成して選択することもできます。
-
[NAT IP アフィニティ]:複数の NAT IP アドレスを選択し、アフィニティを有効にしない場合、単一のプライベート IP アドレスから単一の宛先 IP アドレスへのアクセスは、異なる NAT IP アドレスを使用する可能性があります。アフィニティを有効にすると、同じプライベート IP から同じ宛先 IP への接続は、一貫して同じ NAT IP アドレスを使用します。ただし、単一の宛先への同時接続数が多すぎると、ポート割り当てが失敗する可能性があります。ポート割り当て失敗によるドロップパケット数 を監視する必要があります。
エントリ作成後、エントリの [操作] 列にある [編集] をクリックして、NAT IP アドレスと NAT IP アフィニティの設定を変更できます。
API
-
CreateSnatEntry API を呼び出して SNAT エントリを作成します。
-
ModifySnatEntry API を呼び出して指定した SNAT エントリを変更します。
-
DeleteSnatEntry API を呼び出して SNAT エントリを削除します。
DNAT エントリの設定
DNAT エントリを作成した後、宛先 ECS インスタンスのセキュリティグループのインバウンドルールが、マッピングされたポートでのトラフィックを許可していることを確認する必要があります。たとえば、DNAT エントリがフロントエンドポート 30081 を ECS インスタンスのポート 30081 にマッピングする場合、セキュリティグループにインバウンドルールを追加する必要があります:プロトコルタイプに [カスタム TCP] を選択し、マッピングされたポート範囲 (例:30081/30081) を入力し、認可オブジェクトを 0.0.0.0/0 または特定の送信元 IP 範囲に設定します。セキュリティグループが対応するポートでのトラフィックを許可していない場合、DNAT エントリが正しく設定されていても、ピアプライベートネットワークからのアクセスはタイムアウトします。
コンソール
VPC NAT Gateway ページに移動し、対象の VPC NAT Gateway インスタンスを見つけ、[操作] 列の [DNAT 管理] をクリックします。その後、[DNAT エントリの作成] をクリックします。
-
[NAT IP アドレスの選択]:ピアプライベートネットワークからアクセスされる NAT IP アドレスを選択します。単一の NAT IP アドレスは、DNAT エントリ (ポートマッピング) と SNAT エントリの両方で同時に使用できます。
-
[プライベート IP アドレスの選択]:トラフィックを受信するバックエンドサーバーのプライベート IP アドレスを選択します。ECS インスタンスまたは Elastic Network Interface を指定するか、IP アドレスを手動で入力して選択できます。
-
[ポート設定]:DNAT マッピングを設定します。
-
[[任意のポート]]:IP マッピングを作成します。この NAT IP アドレスへの任意のリクエストは、宛先 ECS インスタンスに転送されます。
-
宛先 ECS インスタンスは、この NAT IP アドレスを使用してピアプライベートネットワークへのアウトバウンドアクセスを開始することもできます。この NAT IP アドレスは、他の DNAT または SNAT エントリでは使用できません。
-
NAT ゲートウェイに DNAT IP マッピングと SNAT エントリの両方が設定されている場合、ECS インスタンスはアウトバウンドアクセスのために DNAT IP マッピングの NAT IP アドレスを優先します。
-
-
[特定のポート]:ポートマッピングを作成します。特定のポートとプロトコルで NAT IP アドレスへのリクエストは、宛先 ECS インスタンスの特定のポートに転送されます。[[フロントエンドポート]] (ピアプライベートネットワークからアクセスされる NAT IP アドレスのポート)、[バックエンドポート] (宛先 ECS インスタンスのポート)、および [プロトコルタイプ]を設定します。
-
ポート番号は 1 から 65535 の間でなければなりません。ポート範囲内の転送はサポートされていません。
-
選択した NAT IP アドレスがすでに SNAT エントリで使用されており、
1024より大きいポートを設定する必要がある場合は、[ポートブレークを有効化する]必要があります。これは、デフォルトの SNAT ポート範囲が 1025~65535 であるためです。重要ポートブレークを有効にすると、一部の既存の SNAT 接続が一時的に切断される可能性があります。これらの接続は再接続することで復元できます。操作は慎重に行ってください。
-
-
エントリ作成後、エントリの [操作] 列にある [編集] をクリックして、NAT IP アドレス、プライベート IP アドレス、およびポート設定を変更できます。
API
-
CreateForwardEntry API を呼び出して DNAT エントリを作成します。
-
DeleteForwardEntry API を呼び出して DNAT エントリを削除します。
リソースのクリーンアップ
VPC NAT Gateway は作成されてから解放されるまでインスタンス料金が課金されます。また、トラフィックを処理する際にはキャパシティーユニット (CU) 料金も課金されます。不要なコストを避けるため、リソースが不要になった場合は、次の手順に従ってクリーンアップしてください:
コンソール
-
設定済みエントリの削除:インスタンス詳細ページで [SNAT 管理] タブと [DNAT 管理] タブに移動し、設定されているすべてのエントリを削除します。
-
NAT IP アドレスの削除:
-
手動で追加した NAT IP アドレスの場合:インスタンス詳細ページで [NAT IP] タブに移動し、対象の NAT IP アドレスの [操作] 列にある [削除] をクリックするか、複数の NAT IP アドレスを選択してページ下部の [削除] をクリックします。
-
IP プレフィックスを使用して追加した NAT IP アドレスの場合:インスタンス詳細ページで [NAT IP] タブに移動し、[NAT IP プレフィックス] を選択し、対象の IP プレフィックスの [操作] 列にある [削除] をクリックします。これにより、すべての関連付けが解除され、IP プレフィックスとそれで作成されたすべての NAT IP アドレスが削除されます。
-
-
新しい NAT IP CIDR ブロックの削除:インスタンス詳細ページの [NAT IP] タブで、対象の NAT IP CIDR ブロックの横にある
アイコンをクリックします。 -
VPC NAT Gateway の削除:対象インスタンスの [操作] 列にある [削除] をクリックします。
NAT IP アドレスやその他のエントリが削除されていない場合、[強制削除 (NAT ゲートウェイとそのリソースを削除)] を選択すると、システムがインスタンスと関連するすべてのリソースを削除します。
インスタンス詳細ページでは、[削除保護] を有効にして、誤った削除を防ぐことができます。インスタンスを削除する前に、削除保護を無効にする必要があります。
API
-
DeleteSnatEntry および DeleteForwardEntry API を呼び出して、それぞれ SNAT および DNAT エントリを削除します。
-
DeleteNatIp API を呼び出して NAT IP アドレスを削除します。
-
DeleteNatIpCidr API を呼び出して NAT IP CIDR ブロックを削除します。
-
DeleteNatGateway API を呼び出して VPC NAT Gateway を削除します。
本番環境
ベストプラクティス
-
ネットワーク計画:ルート管理を容易にするため、VPC NAT Gateway 専用の vSwitch を計画して使用することを推奨します。
-
きめ細かな制御:vSwitch レベルまたは ECS レベルの SNAT エントリを使用して最小権限の原則に従い、必要なリソースにのみアウトバウンドアクセスを許可します。
-
高可用性とディザスタリカバリ:VPC NAT Gateway は、クロスゾーン (デフォルト) とシングルゾーンの両方のディザスタリカバリモードをサポートしています。クロスゾーンモードでは、ゲートウェイはアベイラビリティーゾーンをまたいで冗長構成でデプロイされ、自動フェイルオーバーを実現します。シングルゾーンモードでは、ゲートウェイは単一のアベイラリティーゾーンに低コストでデプロイされ、ビジネスサービスがすでにアベイラビリティーゾーン分離で設計されているシナリオに適しています。
リスク軽減
-
セキュリティグループの設定:VPC NAT Gateway はアドレス変換を行いますが、セキュリティグループとネットワーク ACL を使用してバックエンドの ECS インスタンスを保護する必要があります。常に ECS インスタンスに厳格なインバウンドセキュリティグループルールを設定し、必要なポートでのみトラフィックを許可してください。
-
監視とアラート:VPC NAT Gateway の主要なメトリクス (同時接続数やインバウンド/アウトバウンド帯域幅など) にアラートを設定して、ボトルネックが近づいたときにタイムリーに通知を受け取り、リソースをスケールできるようにします。
-
接続制限:サービスが単一の宛先への大量の接続を必要とする場合は、最大同時接続数 (
N × 55,000、ここで N は SNAT エントリ内の NAT IP アドレスの数) に注意が必要です。事前に十分な数の NAT IP アドレスを計画し、[ポート割り当て失敗によるドロップパケット数]を監視することを推奨します。
詳細情報
課金
VPC NAT Gateway には、インスタンス料金とキャパシティーユニット (CU) 料金が課金されます。
クォータ
|
クォータ名 |
説明 |
デフォルトクォータ |
操作 |
|
natgw_quota_nat_num_per_vpc |
単一の VPC で作成できる NAT ゲートウェイの数。 |
5 |
|
|
natgw_quota_nat_ip_num_per_vpc_nat |
各 VPC NAT Gateway で作成できる NAT IP アドレスの数。 |
15 |
|
|
natgw_quota_snat_entry_num |
各 NAT ゲートウェイで作成できる SNAT エントリの数。 |
40 |
|
|
natgw_quota_dnat_entry_num |
各 NAT ゲートウェイで作成できる DNAT エントリの数。 |
100 |