Google Cloud Platform に外部の静的 IP アドレスを指定した VPX 高可用性ペアをデプロイする
VPX ハイアベイラビリティペアは、外部の静的 IP アドレスを使用して GCP にデプロイできます。 プライマリノードのクライアント IP アドレスは、外部の静的 IP アドレスにバインドする必要があります。 フェールオーバー時に、外部静的 IP アドレスがセカンダリノードに移動され、トラフィックが再開されます。
静的外部 IP アドレスは、プロジェクトを解放するまでプロジェクト用に予約されている外部 IP アドレスです。 IP アドレスを使用してサービスにアクセスする場合、その IP アドレスを予約して、プロジェクトのみが使用できるようにすることができます。 詳細については、「 静的外部 IP アドレスの予約」を参照してください。
HA の詳細については、「 高可用性」を参照してください。
はじめに
-
Google Cloud Platform に NetScaler VPX インスタンスをデプロイするに記載されている制限事項、ハードウェア要件、注意事項をお読みください。 この情報は、HA 配置にも適用されます。
- GCP プロジェクトで クラウドリソースマネージャー API を有効にします。
-
インスタンスの作成中に、すべての Cloud API へのフルアクセスを許可します。
-
GCP サービスアカウントに関連付けられた IAM ロールに次の IAM 権限があることを確認します。
REQUIRED_INSTANCE_IAM_PERMS = [ "compute.addresses.use", "compute.forwardingRules.list", "compute.forwardingRules.setTarget", "compute.instances.setMetadata" "compute.instances.addAccessConfig", "compute.instances.deleteAccessConfig", "compute.instances.get", "Compute.instances.list", "compute.networks.useExternalIp", "compute.subnetworks.useExternalIp", "compute.targetInstances.list", "compute.targetInstances.use", "compute.targetInstances.create", "compute.zones.list", "compute.zoneOperations.get", ] <!--NeedCopy-->
-
管理インターフェイス以外のインターフェイスでエイリアス IP アドレスを設定している場合は、GCP サービスアカウントに次の追加の IAM 権限があることを確認してください。
"compute.instances.updateNetworkInterface" <!--NeedCopy-->
- プライマリ ノードで GCP 転送ルールを構成している場合は、 GCP 上の VPX 高可用性ペアの転送ルールのサポート に記載されている制限と要件を読んで、フェイルオーバー時に新しいプライマリに更新してください。
Google Cloud Platform にVPX HAペアを展開する方法
HA 展開手順の概要を次に示します。
- 同じリージョンに VPC ネットワークを作成します。 たとえば、アジア東です。
- 同じリージョンに2つのVPXインスタンス(プライマリノードとセカンダリノード)を作成します。 それらは、同じゾーンまたは異なるゾーンに存在することができます。 たとえば、アジア東-1a、アジア東-Ib。
- NetScaler GUIまたはADC CLIコマンドを使用して、両方のインスタンスで高可用性設定を構成します。
手順1. 手順1:VPC ネットワークを作成する
要件に基づいて VPC ネットワークを作成します。 管理NIC、クライアントNIC、サーバーNICに関連付けるために3つのVPCネットワークを作成することをお勧めします。
VPC ネットワークを作成するには、次の手順を実行します。
- Google コンソールにログインし、[ネットワーク] > [VPC ネットワーク] > [VPC ネットワークの作成] をクリックします。
- 必須フィールドに入力し、[Create] をクリックします。
詳細については、「 Google Cloud Platform に NetScaler VPX インスタンスをデプロイする」の「 VPC ネットワークの作成 」セクションを参照してください。
手順3. 手順2:2つのVPXインスタンスを作成する
シナリオ: マルチ NIC、マルチ IP のスタンドアロン VPX インスタンスをデプロイするに記載されている手順に従って、2 つの VPX インスタンスを作成します。
重要:
プライマリノードのクライアント IP アドレス (VIP) に静的外部 IP アドレスを割り当てます。 既存の予約済み IP アドレスを使用するか、新しい予約済み IP アドレスを作成できます。 静的外部 IP アドレスを作成するには、[ ネットワークインターフェイス] > [外部 IP] に移動し、[ IP アドレスの作成] をクリックします。
フェールオーバー後、古いプライマリが新しいセカンダリになると、スタティック外部 IP アドレスは古いプライマリから移動し、新しいプライマリに接続されます。 詳細については、Google Cloud ドキュメント「 静的外部 IP アドレスを予約する」を参照してください。
VPX インスタンスを構成したら、VIP アドレスと SNIP アドレスを構成できます。 詳細については、「 NetScaler ADC所有のIPアドレスの構成」を参照してください。
手順3. 高可用性の構成
Google Cloud Platform でインスタンスを作成した後、CLI用Citrix ADC GUIを使用してHAを構成できます。
GUI を使用した HA の設定
ステップ 1. 両方のインスタンスで INC モードで高可用性をセットアップします。
プライマリノードで、次の手順を実行します。
- GCP Console
nsroot
からノードのユーザー名とインスタンス ID をパスワードとしてインスタンスにログオンします。 - 構成 > システム > 高可用性 > ノードに移動し、 追加をクリックします。
- [リモートノードの IP アドレス] フィールドに、セカンダリノードの管理 NIC のプライベート IP アドレスを入力します。
- [ セルフノードで INC (独立ネットワーク構成) モードをオンにする ] チェックボックスをオンにします。
- [Create] をクリックします。
先に進む前に、[ Nodes ] ページにセカンダリノードの同期状態が SUCCESS と表示されていることを確認してください。
- GCP Console
nsroot
からノードのユーザー名とインスタンス ID をパスワードとしてインスタンスにログオンします。 - 構成 > システム > 高可用性 > ノードに移動し、 追加をクリックします。
- [ リモートノード IP アドレス ] フィールドに、プライマリノードの管理 NIC のプライベート IP アドレスを入力します。
- [ セルフノードで INC (独立ネットワーク構成) モードをオンにする ] チェックボックスをオンにします。
- [Create] をクリックします。
セカンダリノードで、次の手順を実行します。
注
これで、セカンダリノードは、プライマリノードと同じログオン資格情報を持ちます。
ステップ 2. 両方のノードに仮想 IP アドレスとサブネット IP アドレスを追加します。
プライマリノードで、次の手順を実行します。
- System > Network > IP Sets > Addに移動します。
- 次の手順に従って、プライマリ VIP アドレスを追加します。
- セカンダリインスタンスのクライアント側インターフェイスの内部 IP アドレスと、VM インスタンスのクライアントサブネットに設定されたネットマスクを入力します。
- [IP Type] フィールドで、ドロップダウンメニューから [Virtual IP] を選択します。
- [Create] をクリックします。
- 次の手順に従って、プライマリ SNIP アドレスを追加します。
- セカンダリインスタンスのサーバ側インターフェイスの内部 IP アドレスと、セカンダリインスタンスのサーバサブネットに設定されたネットマスクを入力します。
- [IP Type] フィールドで、ドロップダウンメニューから [Subnet IP] を選択します。
- [Create] をクリックします。
- 次の手順に従って、セカンダリ VIP アドレスを追加します。
- プライマリ・インスタンスのクライアント側インターフェイスの内部 IP アドレスと、VM インスタンスのクライアント・サブネットに対して構成されたネットマスクを入力します。
- [IP Type] フィールドで、ドロップダウンメニューから [Virtual IP] を選択します。
- [Create] をクリックします。
先に進む前に、[ Nodes ] ページにセカンダリノードの同期状態が SUCCESS と表示されていることを確認してください。
- System > Network > IP Sets > Addに移動します。
- 次の手順に従って、セカンダリ VIP アドレスを追加します。
- プライマリ・インスタンスのクライアント側インターフェイスの内部 IP アドレスと、VM インスタンスのクライアント・サブネットに対して構成されたネットマスクを入力します。
- [IP Type] フィールドで、ドロップダウンメニューから [Virtual IP] を選択します。
- 次の手順に従って、セカンダリ SNIP アドレスを追加します。
- プライマリ・インスタンスのサーバ側インターフェイスの内部 IP アドレスと、プライマリ・インスタンスのサーバ・サブネットに対して構成されたネットマスクを入力します。
- [IP Type] フィールドで、ドロップダウンメニューから [Subnet IP] を選択します。
- [Create] をクリックします。
ステップ 3: プライマリ・インスタンスに仮想サーバを追加します。 IP セットを追加し、両方のインスタンスで IP セットをセカンダリ VIP にバインドします。
プライマリノードで、次の手順を実行します。
- ステップ 2: 両方のインスタンスに IP セットを追加します。
- IP セット名を追加し、[Insert] をクリックします。
- [ IPv4 ] ページで、仮想 IP(セカンダリ VIP)を選択し、[ 挿入] をクリックします。
- [Create] をクリックして IP セットを作成します。
先に進む前に、[ Nodes ] ページにセカンダリノードの同期状態が SUCCESS と表示されていることを確認してください。
- ステップ 2: 両方のインスタンスに IP セットを追加します。
- IP セット名を追加し、[Insert] をクリックします。
- [ IPv4 ] ページで、仮想 IP(セカンダリ VIP)を選択し、[ 挿入] をクリックします。
- [Create] をクリックして IP セットを作成します。
注
IP セット名は、両方のインスタンスで同じである必要があります。
ステップ 4: プライマリ・インスタンスに仮想サーバを追加します。 プライマリインスタンスにサービスまたはサービスグループを追加します。
- [設定] > [トラフィック管理] > [負荷分散] > [仮想サーバー] > [追加]に移動します。
-
[名前]、[プロトコル]、[IP アドレスタイプ (IP アドレス)]、[IP アドレス] (プライマリ VIP)、および [ポート] に必要な値を追加します。
- [詳細] クリックします。 [ IP 範囲 IP セット設定] に移動し、ドロップダウンメニューから [ IPSet ] を選択し、 ステップ 3で作成した IPSet を指定します。
- OK をクリックして、負荷分散仮想サーバーを作成します。
ステップ 5. プライマリノードにサービスまたはサービスグループを追加します。
- [設定] > [トラフィック管理] > [負荷分散] > [サービス] >[追加]に移動します。
- サービス名、IPアドレス、プロトコル、およびポートに必要な値を追加し、[ OK]をクリックします。
ステップ 6. サービスまたはサービスグループをプライマリノードの負荷分散仮想サーバーにバインドします。
- [設定] > [トラフィック管理] > [負荷分散] > [仮想サーバー]に移動します。
- 手順4で構成した負荷分散仮想サーバーを選択し、[ 編集]をクリックします。
- [ サービスとサービスグループ ] タブで、[ 負荷分散仮想サーバーサービスバインドなし] をクリックします。
- 手順5で構成したサービスを選択し、[ バインド]をクリックします。
構成を保存します。 強制フェールオーバーの後、セカンダリは新しいプライマリになります。 古いプライマリ VIP の外部スタティック IP は、新しいセカンダリ VIP に移動します。
CLI を使用した高可用性の設定
ステップ 1. 両方のインスタンスで INC モードで高可用性をセットアップします。
セカンダリノードで、次のコマンドを入力します。
add ha node 1 <sec_ip> -inc ENABLED
<!--NeedCopy-->
プライマリノードで、次のコマンドを入力します。
add ha node 1 <prim_ip> -inc ENABLED
<!--NeedCopy-->
prim_ip
は、プライマリノードの管理 NIC の内部 IP アドレスを指します。
sec_ip
は、セカンダリノードの管理 NIC の内部 IP アドレスを指します。
ステップ 2. 両方のノードに仮想 IP とサブネット IP を追加します。
セカンダリノードで、次のコマンドを入力します。
add ns ip <primary_vip> <subnet> -type VIP
add ns ip <secondary_vip> <subnet> -type VIP
add ns ip <primary_snip> <subnet> -type SNIP
<!--NeedCopy-->
secondary_vip
は、セカンダリインスタンスのクライアント側インターフェイスの内部 IP アドレスを指します。
primary_snip
は、プライマリ・インスタンスのサーバ側インターフェイスの内部 IP アドレスを指します。
primary_vip
は、プライマリ・インスタンスのクライアント側インターフェイスの内部 IP アドレスを指します。
プライマリノードで、次のコマンドを入力します。
add ns ip <secondary_vip> <subnet> -type VIP
add ns ip <secondary_snip> <subnet> -type SNIP
<!--NeedCopy-->
primary_snip
は、プライマリ・インスタンスのサーバ側インターフェイスの内部 IP アドレスを指します。
secondary_vip
は、セカンダリインスタンスのクライアント側インターフェイスの内部 IP アドレスを指します。
ステップ 3: プライマリ・インスタンスに仮想サーバを追加します。 IP セットを追加し、両方のインスタンスで IP セットをセカンダリ VIP にバインドします。
セカンダリノードで、次のコマンドを入力します。
add ipset <ipsetname>
bind ipset <ipsetname> <secondary VIP>
<!--NeedCopy-->
セカンダリノードで、次のコマンドを入力します。
add ipset <ipsetname>
bind ipset <ipsetname> <secondary VIP>
<!--NeedCopy-->
注
IP セット名は、両方のインスタンスで同じである必要があります。
ステップ 4: プライマリ・インスタンスに仮想サーバを追加します。 プライマリ・インスタンスに仮想サーバを追加します。
次のコマンドを入力します:
add <server_type> vserver <vserver_name> <protocol> <primary_vip> <port> -ipset <ipset_name>
<!--NeedCopy-->
ステップ 5. プライマリインスタンスにサービスまたはサービスグループを追加します。
次のコマンドを入力します:
add service <service_name> <service_ip_address> <protocol> <port>
<!--NeedCopy-->
ステップ 6. サービス/サービスグループをプライマリインスタンス上の負荷分散仮想サーバーにバインドします。
次のコマンドを入力します:
bind <server_type> vserver <vserver_name> <service_name>
<!--NeedCopy-->
注
設定を保存するには、コマンド
save config
を入力します。 そうしないと、インスタンスの再起動後に設定が失われます。
ステップ 7. 設定を確認します。
プライマリクライアント NIC に接続されている外部 IP アドレスが、フェールオーバー時にセカンダリに移動することを確認します。
- 外部 IP アドレスに cURL 要求を行い、それが到達可能であることを確認します。
-
プライマリインスタンスで、フェイルオーバーを実行します:
GUI から、[ 設定] > [システム] > [高可用性] > [アクション] > [強制フェールオーバー] に移動します。
CLI から、次のコマンドを入力します。
force ha failover -f <!--NeedCopy-->
GCP コンソールで、セカンダリインスタンスに移動します。 外部 IP アドレスは、フェールオーバー後にセカンダリのクライアント NIC に移動されている必要があります。
- 外部 IP に cURL 要求を発行し、再び到達可能であることを確認します。