このトピックでは、Bring Your Own IP Address (BYOIP) をサポートする Google Cloud Platform (GCP) でのプロビジョニングと構成について説明します。
GCP での Linux サーバ クラウドおよび GCP IP アドレス管理は、NSX Advanced Load Balancer でサポートされません。内部ロード バランサと BYOIP の詳細については、「内部ロード バランサおよび BYOIP としての GCP VIP」を参照してください。
GCP での BYOIP のパブリック IP アドレスのサポート
Google では、GCP で内部ロード バランシングのパブリック IP アドレスのサポートを導入しました。このサポートにより、パブリック IP アドレスを Google クラウドにホストできます。NSX Advanced Load Balancer は Google クラウドでこの機能をサポートし、GCP VPC サブネットから VIP を使用してロード バランサを作成できます。また、宛先としてパブリック IP アドレスを使用し、VIP をネクスト ホップとして使用して、GCP にスタティック ルートを作成する必要があります。
GCP での BYOIP
GCP は、TCP および UDP トラフィックの内部ロード バランシングを提供します。これにより、内部仮想マシン インスタンスのみがアクセスできるプライベート ロード バランシング IP アドレスの背後でサービスを運用およびスケールを変更できます。
ロード バランサを使用すると、プライベート ロード バランシング IP アドレスをプライベート バックエンド インスタンスのフロントエンドとして構成できます。これにより、ロード バランシング サービスにパブリック IP アドレスは必要なくなります。内部クライアント要求は VPC ネットワークとリージョンの内部に残り、すべてのロード バランシングされたトラフィックは Google ネットワーク内で制限されるため、遅延が短くなります。
機能
自動モードの VPC ネットワーク、カスタム モードの VPC ネットワーク、およびレガシー ネットワークで動作します。
リージョン全体で自動スケーリングを許可し、そのリージョンの管理対象インスタンス グループ内に実装できるため、サービスはゾーン障害を回避できます。
従来の 3 層 Web サービスをサポートします。Web 層は HTTP、HTTPS、TCP/UDP ネットワークロード バランシングなどの外部ロード バランサを使用します。これは、内部ロード バランサの背後に展開されたアプリケーション層またはバックエンド データベースを実行するインスタンスもサポートします。
ロード バランシングと健全性チェックのサポート
内部 IP アドレスへの TCP および UDP トラフィックのロード バランシングをサポートします。VPC ネットワーク内から内部ロード バランシング IP アドレスを構成することもできます。
リージョン内のインスタンス間のロード バランシングをサポートします。これにより、同じリージョン内の複数のアベイラビリティ ゾーンでインスタンスをインスタンス化できます。
クライアント トラフィックを処理するために、必要に応じて拡張する完全に管理されたロード バランシング サービスを提供します。
GCP 健全性チェック システムは、バックエンド インスタンスをモニターします。これらのインスタンスの TCP、SSL (TLS)、HTTP、または HTTPS 健全性チェックを構成できます。
考慮事項
健全性チェック プローブのアドレス範囲は 130.211.0.0/22 から 35.191.0.0/16 です。ファイアウォール ルールを追加して、これらのアドレスを許可します。
バックエンド サービスですべてのインスタンスが健全でない場合、ILB はすべてのインスタンス間でトラフィックのロード バランシングを行います。
VIP:内部ロード バランサ (ILB)
VIP の到達可能性は、内部ロードバランサ (ILB) を介して提供されます。ここで VIP は GCP サブネットから割り当てられ、VIP が ILB のフロントエンド IP アドレスになります。ILB バックエンドは、仮想サービスが配置される SE です。
ILB は、共有 VPC ケースのプロジェクト間で機能します。VIP の自動割り当てだけがサポートされます。
SE のプロジェクトで、ILB のすべての GCP リソースを作成できます。ただし、一度作成した転送ルール ポートは更新できません。
フローティングまたはパブリック IP:ILB をネクスト ホップとして使用する GCP ルート
フローティング IP アドレスは、パブリック IP アドレス(BYOIP または GCP 割り当て済み)として宛先 IP アドレスを持ち、ILB としてネクスト ホップを持つ GCP ルートです。
BGP を介して FIP ルートをアドバタイズするように GCP クラウド ルーターを構成できます。
制限
ILB は UDP と TCP をサポートします。ただし、UDP の場合、健全性チェック タイプは、Google の制限のために UDP ではなく、フェイルオーバー時間が長くなります。
転送ポートを更新できないため、仮想 IP アドレスを他の仮想サービスと共有することはできません。同じ IP アドレスで異なるポートを持つ新しい転送ルールは、GCP では許可されません。
転送ルールには 5 つのポートしか設定できないため、仮想サービスは最大 5 つのポートのみを持つことができます。
健全性チェックは、インスタンス IP アドレスではなく VIP と同じポートで実行されます。
サービス エンジンが N 個のバックエンド サービスにある場合は、健全性チェック間隔ごとに N 個の健全性チェック プローブを受信します。
VIP がサービス エンジンと同じサブネットで構成されていないことを確認します。
BYOIP の展開
BYOIP を使用すると、プライベート RFC 1918 アドレスをロード バランシング IP アドレスとして構成し、クライアント インスタンスからロード バランシング IP アドレスに送信される要求を処理するようにバックエンド インスタンス グループを構成できます。
バックエンド インスタンス グループはゾーンまたはリージョンにできます。これにより、可用性の要件に応じてインスタンス グループを構成できます。
クライアント インスタンスから ILB に送信されるトラフィックは、同じ VPC ネットワークとリージョンに属している必要がありますが、ロード バランシングの IP アドレスおよびバックエンドに対して異なるサブネットに配置できます。
展開例を次の図に示します。
マルチプロジェクトのプロビジョニング
Virtual Private Cloud (VPC) は、GCP リソースに管理対象ネットワーク機能を提供するグローバル プライベート隔離仮想ネットワーク パーティションです。GCP 内の BYOIP は、共有 VPC(XPN とも呼ばれる)をサポートします。これにより、複数のプロジェクトのリソースを共通の VPC ネットワークに接続できます。
共有 VPC を使用する場合は、プロジェクトをホスト プロジェクトとして指定し、1 つ以上のプロジェクトをサービス プロジェクトとして指定する必要があります。
- ホスト プロジェクト:
-
これには、1 つ以上の共有 VPC ネットワークが含まれます。共有ネットワーク リソースを使用するために、1 つ以上のサービス プロジェクトをホスト プロジェクトに接続できます。
- サービス プロジェクト:
-
これは、ホスト プロジェクトに接続して共有 VPC に参加するプロジェクトです。NSX Advanced Load Balancer で新しい IP アドレス管理フィールドを構成でき、プロジェクト間の展開もサポートされます。
特定のプロジェクトを許可するには、Google サポート窓口にお問い合わせください。
GCP 設定
NSX Advanced Load Balancer コントローラ、サービス エンジン、およびネットワークはすべて異なるプロジェクトに配置できます。
デフォルトでは、GCP は各仮想マシンにサービス アカウントを [プロジェクト_番号][email protected] の形式で追加します。
NSX Advanced Load Balancer との統合の場合は次のとおりです。
コントローラ仮想マシンが Google クラウド API を呼び出すように、エディタ ロールでサービス アカウントを設定します。
このサービス アカウントをメンバーとしてサービス エンジンおよび XPN プロジェクトに追加します。
必要な権限が割り当てられるように、このアカウントを作成された仮想マシンにマッピングします。
次に、新しいサービス アカウントを作成する例を示します。
コントローラ プロジェクト内の [email protected]:
NSX Advanced Load Balancer 構成
GCP で NSX Advanced Load Balancer BYOIP サポートを構成するには、次の手順を実行します。
コントローラを設定します。
GCP IP アドレス管理を構成している仮想マシン。
GCP IP アドレス管理を接続します。
サービス エンジンを設定します。
仮想サービスを構成します。
NSX Advanced Load Balancer コントローラ仮想マシンの設定
Linux サーバ クラウドへの NSX Advanced Load Balancer Controller のインストールに記載されている手順に従って、以前に作成したインスタンスにコントローラをインストールまたは実行します。また、サービス エンジンの状態がアクティブであり、緑色で表示されていることを確認します。
CLI を使用した GCP IP アドレス管理の構成
次に示すコマンドを使用して、GCP IP アドレス管理を構成できます。
[admin:10-1-1-1]: > configure ipamdnsproviderprofile gcp-ipam [admin:10-1-1-1]: ipamdnsproviderprofile> type ipamdns_type_gcp [admin:10-1-1-1]: ipamdnsproviderprofile> gcp_profile [admin:10-1-1-1]: ipamdnsproviderprofile:gcp_profile> **use_gcp_network** [admin:10-1-1-1]: ipamdnsproviderprofile:gcp_profile> vpc_network_name gcp_vcp [admin:10-1-1-1]: ipamdnsproviderprofile:gcp_profile> region_name us-central1 [admin:10-1-1-1]: ipamdnsproviderprofile:gcp_profile> network_host_project_id net1 [admin:10-1-1-1]: ipamdnsproviderprofile:gcp_profile> save [admin:10-1-1-1]: ipamdnsproviderprofile> save +-------------------------+-------------------------------------------------------------+ | Field | Value | +-------------------------+-------------------------------------------------------------+ | uuid | ipamdnsproviderprofile-e39d51e5-2170-415d-b4ac-7a82068b2bc5 | | name | gcp-ipam | | type | IPAMDNS_TYPE_GCP | | gcp_profile | | | match_se_group_subnet | False | | **use_gcp_network** | True | | region_name | us-central1 | | vpc_network_name | gcp_vcp | | allocate_ip_in_vrf | False | | network_host_project_id | net1 | | tenant_ref | admin | +-------------------------+-------------------------------------------------------------+
use_gcp_network フィールドは、ユーザー インターフェイスでは使用できません。このオプションは、CLI を使用してのみ有効にできます。
ユーザー インターフェイスを介した GCP IP アドレス管理の構成
[作成] をクリックします。
の順に移動し、ドロップダウン メニューから [タイプ] として Google Cloud Platform の IP アドレス管理を選択します。
プロファイル構成で [手動構成] をクリックして、次の詳細を入力します。
ネットワーク ホストのプロジェクト ID
サービス エンジンのプロジェクト ID
リージョン名
VPC ネットワーク名
または、[コントローラからデバイス] のためのオプションを選択して、プロファイル構成のパラメータを取得することもできます。
[使用可能なネットワークの追加] をクリックして、ネットワークの詳細を指定します。
NSX Advanced Load Balancer 22.1.3 以降では、次のユーザー インターフェイスを使用できます。
[新しい IP アドレス管理/DNS プロファイル] 画面で、プロファイル名を指定します。
[タイプ] ドロップダウン メニューから [Avi Vantage IP アドレス管理] を選択し、以前に作成したクラウドを [クラウド] フィールドに選択します。
[使用可能なネットワーク] を追加して、[保存] をクリックします。
GCP IP アドレス管理の接続
GCP IP アドレス管理を Linux サーバ クラウドに接続するには、デフォルト クラウドを編集します。GCP IP アドレス管理プロバイダを選択します。
NSX Advanced Load Balancer 22.1.3 以降では、次のユーザー インターフェイスを使用できます。
クラウドの編集中に、IP アドレス管理プロファイルを次のように追加できます。
既存のクラウドを編集します。
[IP アドレス管理/DNS] タブに移動します。[IP アドレス管理プロファイル] フィールドで、作成した IP アドレス管理プロファイルをドロップダウン メニューから選択します。
サービス エンジンの設定
サービス エンジンを作成します。
作成したサービス エンジンを Linux サーバ クラウドに追加します。
サービス エンジン インスタンスの IP アドレスを使用して Linux サーバ クラウドを構成します。
仮想サービスの構成
仮想サービスを作成するには、Google Cloud Platform (GCP) 向けの『NSX Advanced Load Balancer インストール ガイド』の仮想サービスの作成に記載されている手順に従います。
構成された VIP が、サービス エンジンのサブネットと同じサブネットにないことを確認します。
Cloud Router 統合
Google Cloud Router は、Border Gateway Protocol (BGP) を使用して、Virtual Private Cloud (VPC) とオンプレミス ネットワーク間のルートの動的な交換を可能にします。
GCP Cloud Router はコントローラによって更新されます。
前提条件
Cloud Router を更新するには、次の権限が必要です。
詳細については、「カスタム ロールの作成」を参照してください。
制限
複数のクラスタ間で更新を調整できないため、複数のクラスタで同じクラウド ルーターを共有することはできません。
複数の NSX Advanced Load Balancer クラウドで同じ Cloud Router を共有することはできません。
Cloud Router がクラウド構成から削除された場合、コントローラはそのルーターを管理しなくなるため、Cloud Router 上の NSX Advanced Load Balancer フローティング IP アドレス (FIP) を GCP の Cloud Router から手動で削除する必要があります。
Cloud Router の構成
ネットワーク プロジェクトおよびサービス エンジン仮想マシンが作成されるリージョンに、Cloud Router を作成します。詳細については、「Cloud Router の作成」を参照してください。
次の構成に示すように、クラウドの custom_tags フィールドに Cloud Router 名を追加します。
[admin:10-152-134-17]: > configure cloud Default-Cloud [admin:10-152-134-17]: cloud> custom_tags New object being created [admin:10-152-134-17]: cloud:custom_tags> tag_key cloud_router_ids [admin:10-152-134-17]: cloud:custom_tags> tag_val "router-1, router-2" [admin:10-152-134-17]: cloud:custom_tags> save [admin:10-152-134-17]: cloud> save +--------------------------------+--------------------------------------------+ | Field | Value | +--------------------------------+--------------------------------------------+ | uuid | cloud-1a388500-1d6c-45e0-a557-f7b79af6f362 | | name | Default-Cloud | | vtype | CLOUD_LINUXSERVER | | apic_mode | False | | linuxserver_configuration | | | se_sys_disk_size_GB | 10 | | se_log_disk_size_GB | 5 | | se_inband_mgmt | False | | ssh_user_ref | user1 | | dhcp_enabled | False | | mtu | 1500 bytes | | prefer_static_routes | False | | enable_vip_static_routes | False | | license_type | LIC_CORES | | ipam_provider_ref | gcp-ipam | | custom_tags[1] | | | tag_key | cloud_router_ids | | tag_val | router-1, router-2 | | state_based_dns_registration | True | | ip6_autocfg_enabled | False | | tenant_ref | admin | | license_tier | ENTERPRISE_18 | | autoscale_polling_interval | 60 seconds | +--------------------------------+--------------------------------------------+
NSX Advanced Load Balancer クラウドには複数の Cloud Router を追加でき、すべてのルーターは FIP で更新されます。
クラウド tag_key のカスタム タグを cloud_router_ids として追加します。tag_val は、Cloud Router 名のカンマ区切りのリストです。
Cloud Router の更新ごとに、対応するイベントが次のように生成されます。
GCP_CLOUD_ROUTER_UPDATE_SUCCESS
:Cloud Router が正常に更新されるたびに生成される内部イベント。GCP_CLOUD_ROUTER_UPDATE_FAIL
:Cloud Router の更新に失敗したときに生成される外部イベント。
Cloud Router には、NSX Advanced Load Balancer によって作成されなかった他の IP アドレスも含めることができます。これらの IP アドレスはそのまま残り、Cloud Router のコントローラによって構成されたすべての IP アドレスには、AVI によって追加されたことを示す説明が付加されます。
トラブルシューティング
FIP がアドバタイズされない場合は、[Cloud Router の詳細] で [カスタム IP アドレス範囲] を確認します。
Cloud Router の詳細を表示するには、次の手順を実行します。
の順に移動します。
必要な Cloud Router をクリックします。
[カスタム IP アドレス範囲] タブをクリックして、次のように [ IP アドレス範囲] と [説明] を表示します。
FIP が [カスタム IP アドレス範囲] にリストされていない場合は、NSX Advanced Load Balancer のコントローラの [イベント] ページを表示します。
の順に移動します。
[GCP_CLOUD_ROUTER_UPDATE_FAIL] イベントをクリックすると、次のようなエラー メッセージが表示されます。