GWLB は、ファイアウォール、侵入検知システム (IDS)、トラフィックミラーリングシステム、ディープパケットインスペクション (DPI) システムなどのネットワーク仮想アプライアンスのグループにトラフィックを分散し、高可用性を備えたセキュリティ検査と保護を提供します。サービスプロバイダーはエンドポイントサービスを作成し、サービスリソースとして GWLB インスタンスを指定します。その後、サービスコンシューマーは GWLB エンドポイント (GWLBe) を作成して、エンドポイントサービスとの接続を確立します。
サービスとセキュリティの分離:サービスネットワークとセキュリティインフラストラクチャを独立してデプロイおよび管理し、PrivateLink を使用してプライベートに接続します。
透過的なセキュリティ検査:GWLB はレイヤー 3 ゲートウェイとして動作します。セキュリティ検査中もトラフィックの送信元と宛先の IP アドレスは変更されないため、クライアントやバックエンドサービスの設定を変更する必要はありません。
単一障害点の排除:GWLB を使用すると、セキュリティアプライアンスを高可用性構成でデプロイできます。アプライアンスに障害が発生した場合、トラフィックは自動的に正常なアプライアンスにルーティングされ、アプライアンスの障害によるサービスの中断を防げます。
弾力的なスケーリング:サービス VPC のネットワークアーキテクチャを変更することなく、トラフィック量に合わせて GWLB インスタンスの背後にあるネットワーク仮想アプライアンスをいつでも追加または削除できます。
仕組み
サービスプロバイダーは、セキュリティ VPC に GWLB インスタンスとバックエンドのネットワーク仮想アプライアンスをデプロイします。その後、サービスプロバイダーはエンドポイントサービスを作成し、その GWLB インスタンスをサービスリソースとして指定して、セキュリティ検査を提供します。
サービスコンシューマーは、サービス VPC に GWLBe を作成します。GWLBe がエンドポイントサービスに接続された後、サービスコンシューマーはルートを設定して、VPC からのインバウンドおよびアウトバウンドトラフィックをセキュリティ検査のためにネットワーク仮想アプライアンスに誘導します。
システムは、GWLBe が配置されている vSwitch にエンドポイント ENI を作成します。
IPv4 ゲートウェイを介してサービス VPC に入るすべてのトラフィックは、まずゲートウェイルートテーブルのルートに基づいて GWLBe に転送されます。トラフィックはその後 PrivateLink を経由して GWLB インスタンスに転送され、GWLB インスタンスはトラフィックをバックエンドのネットワーク仮想アプライアンスに分散して検査します。検査後、トラフィックは GWLBe に戻り、サービス VPC 内のアプリケーションサーバーにルーティングされます。
IPv4 インバウンドトラフィック | IPv4 アウトバウンドトラフィック |
1. IPv4 トラフィックは、IPv4 ゲートウェイを介してサービス VPC に入ります。 2. ゲートウェイルートテーブルは、トラフィックを GWLBe に転送します。 3. GWLBe はトラフィックを GWLB インスタンスに転送し、GWLB インスタンスはトラフィックをセキュリティアプライアンスに転送します。 4. 検査後、セキュリティアプライアンスはトラフィックを GWLB インスタンスに戻し、GWLB インスタンスは PrivateLink を介して GWLBe に転送します。 5. GWLBe の vSwitch ルートテーブルは、トラフィックをサービスサーバーに送信します。 | 1. サービスサーバーの vSwitch ルートテーブルは、トラフィックを GWLBe に送信します。 2. GWLBe はトラフィックを GWLB インスタンスに送信し、GWLB インスタンスはトラフィックをセキュリティアプライアンスに転送します。 3. 検査後、セキュリティアプライアンスはトラフィックを GWLB インスタンスに戻し、GWLB インスタンスは PrivateLink を介して GWLBe に転送します。 4. GWLBe の vSwitch ルートテーブルは、トラフィックを IPv4 ゲートウェイに送信します。 5. IPv4 ゲートウェイは、トラフィックをインターネットにルーティングします。 |
前提条件
VPC と GWLB インスタンスが作成されていること:
GWLB インスタンスにリスナーとバックエンドサーバーグループが設定されている。
GWLB インスタンスのバックエンドサーバー (ネットワーク仮想アプライアンス) のセキュリティグループは、UDP ポート 6081 (Geneve プロトコルポート) およびヘルスチェックに必要なポートとプロトコルへのトラフィックを許可する必要があります。
ネットワーク仮想アプライアンスに使用される ECS インスタンスのインスタンスタイプがジャンボフレームをサポートしていることを確認してください。Geneve カプセル化により、元のデータパケットに 68 バイトが追加され、パケットサイズが 1,500 バイトを超える可能性があります。
サービスリソースが GWLB の場合は、「PrivateLink をサポートするリージョンとアベイラビリティーゾーン」をご参照ください。
PrivateLink を使用したネットワーク仮想アプライアンスへのアクセス
サービスプロバイダーはエンドポイントサービスを作成します。サービスコンシューマーは GWLBe を作成し、ルートを設定して、サービス VPC からのトラフィックをセキュリティ検査のためにネットワーク仮想アプライアンスに誘導します。
コンソール
プロバイダー:エンドポイントサービスの作成
PrivateLink コンソールのエンドポイントサービスの作成ページに移動します。
[リージョン]:ネットワーク仮想アプライアンスがデプロイされているリージョンを選択します。
[サービスリソースタイプ]:[GWLB] を選択します。高可用性を実現するために、複数のアベイラビリティーゾーンに [サービスリソース] を追加します。
[エンドポイント接続を自動で許可]:サービスコンシューマーがネットワーク仮想アプライアンスにアクセスするために GWLBe を作成した際に、接続リクエストを自動的に承諾するかどうかを指定します。エンドポイントサービスの作成後にこの設定を変更しても、既存の接続には影響しません。
[はい]:サービスコンシューマーがサービスに接続するために GWLBe を作成すると、接続は自動的に確立されます。
[いいえ]:サービスプロバイダーは接続リクエストを手動で承認する必要があります。
[IP バージョン]:IPv4 のみがサポートされています。
[サービスの支払人]:PrivateLink 接続の 支払いを行う側を選択します。デフォルトでは、サービスコンシューマーが支払者です。この設定は確定後に変更できません。
エンドポイントサービスを作成した後、クロスアカウントのユーザーがエンドポイントサービスへの接続リクエストを送信できるように、サービスホワイトリストを設定する必要があります。
エンドポイントサービスの詳細ページで、サービスホワイトリスト タブをクリックします。次に、ホワイトリストに追加 をクリックして、サービスにアクセスできるユーザーを指定します。
*を入力:すべてのユーザーがエンドポイントサービスに接続リクエストを送信できます。アカウント UID を入力:指定されたユーザーのみがエンドポイントサービスに接続リクエストを送信できます。
コンシューマー:GWLBe の作成
[エンドポイント] - [エンドポイントの作成] ページに移動します。
GWLBe を設定します:
[リージョン]:GWLBe を作成するリージョンを選択します。これは、エンドポイントサービスが配置されているリージョンと同じである必要があります。
[タイプ]:その他のエンドポイントサービス を選択し、サービス名でエンドポイントサービスを検証します。検証が成功すると、サービスにアクセスできます。
[ネットワーク設定]:
アベイラビリティーゾーンは、エンドポイントサービスが利用可能なゾーン (サービスリソースのアベイラビリティーゾーンと同じである必要があります) から選択する必要があります。
エンドポイントのアベイラビリティーゾーンにあるエラスティックネットワークインターフェイスに対し、vSwitch から IP アドレスを割り当てることができます。IP アドレスを指定しない場合、システムが自動的に IP アドレスを 1 つ割り当てます。vSwitch の システム予約アドレスをエラスティックネットワークインターフェイスに指定することはできません。
[IP バージョン]:IPv4 のみがサポートされています。
ルートの設定
GWLBe がデプロイされているサービス VPC のルートを設定して、インバウンドおよびアウトバウンドトラフィックを GWLBe に誘導します。トラフィックはその後 PrivateLink を介してネットワーク仮想アプライアンスに転送され、セキュリティ検査が行われます。
ゲートウェイルートテーブルの設定
ルートテーブルページに移動し、ターゲットのゲートウェイルートテーブルの ID をクリックして詳細ページに移動します。
タブをクリックします。ターゲットの vSwitch CIDR ブロックのシステムルートを見つけ、操作 列の 編集 をクリックします。ネクストホップを GWLBe に変更します。変更後、ルートエントリは カスタムルート タブに表示されます。
vSwitch ルートテーブルの設定
手順:
ルートテーブルページに移動し、ターゲットの vSwitch ルートテーブルの ID をクリックして詳細ページに移動します。
タブをクリックします。ルートエントリの追加 をクリックして、宛先 CIDR ブロックとネクストホップを設定します。
ルート設定:
ルートテーブル
宛先 CIDR
ネクストホップ
サービス ECS インスタンスの vSwitch のルートテーブル
0.0.0.0/0GWLBe
GWLBe が属する vSwitch のルートテーブル
0.0.0.0/0IPv4 ゲートウェイ
API
サービスプロバイダーは CreateVpcEndpointService API を呼び出してエンドポイントサービスを作成します。
ServiceResourceTypeをgwlbに設定します。サービスコンシューマーは CreateVpcEndpoint API を呼び出して GWLBe を作成します。
EndpointTypeをGatewayLoadBalancerに設定します。UpdateGatewayRouteTableEntryAttribute API を呼び出して、ゲートウェイルートテーブルのネクストホップタイプと ID を変更します。
NextHopTypeをGatewayLoadBalancerEndpointに設定し、NextHopIdを GWLBe の ID に設定します。CreateRouteEntry API を呼び出して、vSwitch ルートテーブルにカスタムルートエントリを作成します。
サービス ECS インスタンスの vSwitch ルートテーブルの場合:
NextHopTypeをGatewayLoadBalancerEndpointに設定し、NextHopIdを GWLBe の ID に設定します。GWLBe の vSwitch のルートテーブルの場合:
NextHopTypeをIpv4Gatewayに設定し、NextHopIdを IPv4 ゲートウェイの ID に設定します。
高可用性の確保
エンドポイントサービス:GWLB インスタンスとそのバックエンドのネットワーク仮想アプライアンスは、複数のアベイラビリティーゾーンにデプロイできます。1 つのアベイラビリティーゾーンのネットワーク仮想アプライアンスに障害が発生した場合、トラフィックは自動的に他のアベイラビリティーゾーンの正常なアプライアンスに分散されるため、セキュリティ検査サービスの高可用性が確保されます。
エンドポイント:GWLBe は、ルートテーブルのネクストホップに基づいてトラフィックを転送します。マルチアベイラビリティーゾーン構成では、各アベイラビリティーゾーンのサービスサブネットが、同じアベイラビリティーゾーン内の GWLBe をネクストホップとして使用するように設定します。IPv4 ゲートウェイルートテーブルでは、各サービスサブネットも対応するアベイラビリティーゾーンの GWLBe を指すようにします。こうすることで、正確でゾーンを意識したトラフィックルーティングが保証されます。
コンソール
プロバイダー:マルチ AZ のサービスリソース
エンドポイントサービスを作成する際に、複数のアベイラビリティーゾーンにある GWLB インスタンスをサービスリソースとして選択します。
エンドポイントサービスの作成後、その ID をクリックします。基本情報 タブで サービスリソースの追加 をクリックし、アベイラビリティーゾーンと対応する GWLB インスタンスを選択します。
コンシューマー:AZ ごとの GWLBe の作成
各アベイラビリティーゾーンに個別の GWLBe を作成し、そのアベイラビリティーゾーン内の vSwitch を選択します。
各アベイラビリティーゾーンのサービス vSwitch ごとに個別のルートテーブルを作成し、
0.0.0.0/0ルートを同じアベイラビリティーゾーンの GWLBe に向けます。IPv4 ゲートウェイルートテーブルでは、各サービスサブネットを対応するアベイラビリティーゾーンの GWLBe に向けます。
GWLBe は、ルートテーブルのネクストホップに基づいてトラフィックを転送します。各アベイラビリティーゾーンには、個別の GWLBe インスタンスが必要です。既存の GWLBe にアベイラビリティーゾーンを追加することはできません。
API
エンドポイントサービス:AttachResourceToVpcEndpointService API を呼び出してサービスリソースを追加します。
GWLBe:
各アベイラビリティーゾーンごとに CreateVpcEndpoint API を呼び出して、個別の GWLBe を作成する必要があります。
UpdateGatewayRouteTableEntryAttribute API を呼び出して、ゲートウェイルートテーブルのネクストホップタイプと ID を変更します。
CreateRouteEntry API を呼び出して、vSwitch ルートテーブルにカスタムルートエントリを作成します。
サービスリソースの管理
エンドポイントサービスを作成した後、必要に応じてサービスリソース (GWLB インスタンス) を追加または削除して、アベイラビリティーゾーン全体でセキュリティ検査サービスの可用性をスケーリングできます。
コンソール
サービスリソースの追加
エンドポイントサービスのリストページに移動し、ターゲットのエンドポイントサービスの ID をクリックして詳細ページに移動します。
基本情報 タブの サービスリソース セクションで、サービスリソースの追加 をクリックします。アベイラビリティーゾーンと対応する GWLB インスタンスを選択します。
サービスリソースの削除
ターゲットのエンドポイントサービスの 基本情報 タブの サービスリソース セクションで、ターゲットのサービスリソースを見つけ、操作 列の 削除 をクリックします。これにより、リソースはエンドポイントサービスから削除されますが、リソースインスタンス自体は削除されません。
サービスリソースがエンドポイントのアベイラビリティーゾーンに関連付けられている場合、直接削除することはできません。まず、エンドポイント接続を切断する必要があります。
API
AttachResourceToVpcEndpointService API を呼び出して、エンドポイントサービスにサービスリソースを追加します。
DetachResourceFromVpcEndpointService API を呼び出して、エンドポイントサービスからサービスリソースを削除します。
ネットワーク仮想アプライアンスへのアクセスの停止
GWLBe を介してネットワーク仮想アプライアンスにトラフィックを誘導する必要がなくなった場合は、サービスの中断を引き起こす可能性のあるルーティングブラックホールを防ぐため、次の順序でリソースを解放する必要があります。
コンソール
ルート設定の復元:ルートテーブルページに移動し、ゲートウェイおよび vSwitch ルートテーブルにある GWLBe または IPv4 ゲートウェイを指すカスタムルートエントリを削除します。
GWLBe の削除:エンドポイントのリストページに移動し、ターゲットの GWLBe を見つけ、操作 列の 削除 をクリックします。
エンドポイントサービスの削除:エンドポイントサービスのリストページに移動し、ターゲットのエンドポイントサービスを見つけ、操作 列の 削除 をクリックします。
API
DeleteRouteEntry API を呼び出して、カスタムルートエントリを削除します。
DeleteVpcEndpoint API を呼び出して、GWLBe を削除します。
DeleteVpcEndpointService API を呼び出して、エンドポイントサービスを削除します。
詳細情報
ネットワーク仮想アプライアンスの設定
GWLB は、OSI モデルのレイヤー 3 で透過的に動作します。バックエンドの ネットワーク仮想アプライアンスは、Geneve プロトコルでカプセル化されたサービストラフィックを処理できる必要があります。
Alibaba Cloud GWLB は、Fortinet などのさまざまなサードパーティ製ネットワーク仮想アプライアンスとの統合をサポートしています。具体的な設定手順については、アプライアンスベンダーが提供するドキュメントをご参照ください。
デプロイに関する推奨事項
GWLB インスタンスをデプロイする際には、以下の機能を有効にすることを推奨します:
GWLB ヘルスチェック:バックエンドのネットワーク仮想アプライアンスの可用性を自動的に検出します。アプライアンスが異常になった場合、リクエストは自動的に正常なアプライアンスにルーティングされます。
コネクションドレイニング:バックエンドのネットワーク仮想アプライアンスが削除された際に、既存の接続をスムーズに処理します。
フローリバランシング:バックエンドのネットワーク仮想アプライアンスに障害が発生したり、削除されたりした場合に、既存のトラフィックフローを正常なバックエンドアプライアンスに再ルーティングします。