異なるAWSゾーン間でプライベートIPアドレスを持つVPX高可用性ペアを展開する

最終公開日 : Oct 05, 2026
INCモードでプライベートIPアドレスを使用して、2つの異なるサブネットまたは2つの異なるAWSアベイラビリティゾーンに2つのNetScaler VPXインスタンスを構成できます。このソリューションは、既存のマルチゾーン(/ja-jp/vpx/current-release/deploy-aws/vpx-ha-eip-different-aws-zones.html)と簡単に統合できます。したがって、両方のソリューションを一緒に使用できます。
高可用性の詳細については、(/ja-jp/citrix-adc/current-release/system/high-availability-introduction.html)を参照してください。INCの詳細については、(/ja-jp/citrix-adc/current-release/system/high-availability-introduction/configuring-high-availability-nodes-different-subnets.html)を参照してください。
注:
この展開は、NetScalerリリース13.0ビルド67.39以降でサポートされています。この展開はAWS Transit Gatewayと互換性があります。

AWS非共有VPCを使用したプライベートIPアドレスを持つ高可用性ペア

前提条件

AWSアカウントに関連付けられているIAMロールに、次のIAM権限があることを確認してください。
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Action": [
                "ec2:DescribeInstances",
                "ec2:DescribeAddresses",
                "ec2:AssociateAddress",
                "ec2:DisassociateAddress",
                "ec2:DescribeRouteTables",
                "ec2:DeleteRoute",
                "ec2:CreateRoute",
                "ec2:ModifyNetworkInterfaceAttribute",
                "iam:SimulatePrincipalPolicy",
                "iam:GetRole"
            ],
            "Resource": "*",
            "Effect": "Allow"
        }
    ]
}

AWS非共有VPCを使用したプライベートIPアドレスを持つVPX HAペアを展開する

以下は、プライベートIPアドレスを使用して、2つの異なるサブネットまたは2つの異なるAWSアベイラビリティゾーンにVPXペアを展開するための手順の概要です。
  1. Amazon仮想プライベートクラウドを作成します。
  2. 2つの異なるアベイラビリティゾーンに2つのVPXインスタンスを展開します。
  3. 高可用性を構成します
    1. 両方のインスタンスでINCモードで高可用性を設定します。
    2. クライアントインターフェースを指すVPCにそれぞれのルートテーブルを追加します。
    3. プライマリインスタンスに仮想サーバーを追加します。
ステップ1、2、3bについてはAWSコンソールを使用します。ステップ3aと3cについてはNetScaler VPX GUIまたはCLIを使用します。
ステップ1. Amazon仮想プライベートクラウド (VPC) を作成します。
ステップ2. 2つの異なるアベイラビリティゾーンに、同じ数のENI (ネットワークインターフェース) を持つ2つのVPXインスタンスをデプロイします。
AWSでVPCを作成し、VPXインスタンスをデプロイする方法の詳細については、AWSにNetScaler VPXスタンドアロンインスタンスをデプロイするおよびシナリオ: スタンドアロンインスタンスを参照してください。
ステップ3. Amazon VPCサブネットと重複しないサブネットを選択して、ADC VIPアドレスを設定します。VPCが192.168.0.0/16の場合、ADC VIPアドレスを設定するには、次のIPアドレス範囲から任意のサブネットを選択できます。
  • 0.0.0.0 - 192.167.0.0
  • 192.169.0.0 - 254.255.255.0
この例では、10.10.10.0/24サブネットが選択され、このサブネットにVIPが作成されています。VPCサブネット (192.168.0.0/16) 以外の任意のサブネットを選択できます。
ステップ4. VPCルートテーブルから、プライマリノードのクライアントインターフェース (VIP) を指すルートを追加します。
AWS CLIから、次のコマンドを入力します。
aws ec2 create-route --route-table-id rtb-2272532 --destination-cidr-block 10.10.10.0/24 --gateway-id <eni-client-primary>
AWS GUIから、ルートを追加するには次の手順を実行します。
  1. Amazon EC2コンソールを開きます。
  2. ナビゲーションペインで、 を選択し、ルートテーブルを選択します。
  3. を選択し、 をクリックします。
  4. ルートを追加するには、Add route を選択します。Destination には、宛先 CIDR ブロック、単一の IP アドレス、またはプレフィックスリストの ID を入力します。ゲートウェイ ID には、プライマリノードのクライアントインターフェイスの ENI を選択します。
ルートテーブル - ルートの編集(/en-us/vpx/media/edit-routes.png)
注:
プライマリインスタンスのクライアント ENI で Source/Dest Check を無効にする必要があります。
コンソールを使用してネットワークインターフェイスの送信元/送信先チェックを無効にするには、次の手順を実行します。
  1. Amazon EC2 コンソールを開きます。
  2. ナビゲーションペインで、Network Interfaces を選択します。
  3. プライマリクライアントインターフェイスのネットワークインターフェイスを選択し、Actions を選択して、Change Source/Dest. Check をクリックします。
  4. ダイアログボックスで、Disabled を選択し、Save をクリックします。
送信元/送信先チェックの変更(/en-us/vpx/media/change-source-dst-check.png)
ステップ 5. 高可用性を構成します。高可用性を設定するには、NetScaler VPX CLI または GUI を使用できます。

CLI を使用して高可用性を構成する

  1. 両方のインスタンスで INC モードで高可用性を設定します。
    プライマリノードで:
    add ha node 1 \<sec\_ip\> -inc ENABLED
    セカンダリノードで:
    add ha node 1 \<prim\_ip\> -inc ENABLED
    \&lt;sec\_ip\> は、セカンダリノードの管理 NIC のプライベート IP アドレスを指します。
    \&lt;prim\_ip\> は、プライマリノードの管理 NIC のプライベート IP アドレスを指します。
  2. プライマリインスタンスに仮想サーバーを追加します。選択したサブネット (例: 10.10.10.0/24) から追加する必要があります。
    次のコマンドを入力します。
    add \<server\_type\> vserver \<vserver\_name\> \<protocol\> \<primary\_vip\> \<port\>

GUI を使用して高可用性を構成する

  1. 両方のインスタンスで INC モードで高可用性を設定します
  2. ユーザー名 nsroot とインスタンス ID をパスワードとして使用して、プライマリノードにログオンします。
  3. Configuration > System > High Availability に移動し、Add をクリックします。
  4. Remote Node IP address フィールドで、セカンダリノードの管理 NIC のプライベート IP アドレスを追加します。
  5. 自己ノードで Turn on NIC (Independent Network Configuration) モードを選択します。
  6. Remote System Login Credential で、セカンダリノードのユーザー名とパスワードを追加し、Create をクリックします。
  7. セカンダリノードで手順を繰り返します。
  8. プライマリインスタンスに仮想サーバーを追加する
    設定 > トラフィック管理 > 仮想サーバー > 追加 に移動します。
    仮想サーバーを追加する(/en-us/vpx/media/lb-vserver-pip.png)

AWS共有VPCを使用してプライベートIPアドレスを持つVPX HAペアをデプロイする

AWS共有VPCモデルでは、VPCを所有するアカウント(所有者)が1つ以上のサブネットを他のアカウント(参加者)と共有します。したがって、VPC所有者アカウントと参加者アカウントが存在します。サブネットが共有されると、参加者は共有されたサブネット内で自身のアプリケーションリソースを表示、作成、変更、削除できます。参加者は、他の参加者またはVPC所有者に属するリソースを表示、変更、削除することはできません。
AWS共有VPCの詳細については、AWSドキュメントを参照してください。
注記:
AWS共有VPCを使用してプライベートIPアドレスを持つVPX HAペアをデプロイするための設定手順は、AWS非共有VPCを使用してプライベートIPアドレスを持つVPX HAペアをデプロイすると同じですが、以下の例外があります。
  • クライアントインターフェースを指すVPC内のルートテーブルは、VPC所有者アカウントから追加する必要があります。

前提条件

  • AWS参加者アカウントのNetScaler VPXインスタンスに関連付けられたIAMロールに、以下のIAM権限があることを確認してください。
    "Version": "2012-10-17",
        "Statement": [
            {
                "Sid": "VisualEditor0",
                "Effect": "Allow",
                "Action": [
                    "ec2:DisassociateAddress",
                    "iam:GetRole",
                    "iam:SimulatePrincipalPolicy",
                    "ec2:DescribeInstances",
                    "ec2:DescribeAddresses",
                    "ec2:ModifyNetworkInterfaceAttribute",
                    “ec2:AssociateAddress”,
                    "sts:AssumeRole"
            ],
                "Resource": "*"
            }
        ]
    }
    注記:
    AssumeRoleにより、NetScaler VPXインスタンスは、VPC所有者アカウントによって作成されたクロスアカウントIAMロールを引き受けることができます。
  • VPC所有者アカウントが、クロスアカウントIAMロールを使用して、参加者アカウントに以下のIAM権限を提供していることを確認してください。
    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Sid": "VisualEditor0",
                "Effect": "Allow",
                "Action": [
                    "ec2:CreateRoute",
                    "ec2:DeleteRoute",
                    "ec2:DescribeRouteTables"
                ],
                "Resource": "*"
            }
        ]
    }

クロスアカウントIAMロールを作成する

  1. AWSウェブコンソールにログインします。
  2. IAMタブで、ロールに移動し、ロールの作成を選択します。
  3. 別のAWSアカウントを選択します。
    共有VPCロールの作成(/en-us/vpx/media/shared-vpc-create-role.png)
  4. 管理者アクセスを付与する参加者アカウントの12桁のアカウントID番号を入力します。

NetScaler CLIを使用してクロスアカウントIAMロールを設定する

次のコマンドにより、NetScaler VPXインスタンスは、VPC所有者アカウントに存在するクロスアカウントIAMロールを引き受けることができます。
set cloud awsParam -roleARN <string>

NetScaler GUIを使用してクロスアカウントIAMロールを設定する

  1. NetScalerアプライアンスにサインインし、Configuration > AWS > Change cloud parametersに移動します。
    クラウドパラメータの変更(/en-us/vpx/media/shared-vpc-change-cloud-parameters.png)
  2. Configure AWS Cloud Parametersページで、RoleARNフィールドの値を入力します。
    AWSクラウドパラメータの設定(/en-us/vpx/media/configure-aws-cloud-parameters.png)

シナリオ

このシナリオでは、単一のVPCが作成されます。そのVPC内に、2つのアベイラビリティーゾーンに2つのVPXインスタンスが作成されます。各インスタンスには、管理用、クライアント用、バックエンドサーバー用の3つのサブネットがあります。
次の図は、AWS上のINCモードでのNetScaler VPX高可用性セットアップを示しています。VPCの一部ではないカスタムサブネット10.10.10.10がVIPとして使用されます。したがって、10.10.10.10サブネットはアベイラビリティーゾーン間で利用できます。
フェイルオーバー前のINCモードでの高可用性セットアップ(/en-us/vpx/media/before-failover-ha-pip.png)
フェイルオーバー後のINCモードでの高可用性セットアップ(/en-us/vpx/media/after-failover-ha-pip.png)
このシナリオでは、CLIを使用して高可用性を構成します。
  1. 両方のインスタンスでINCモードの高可用性を設定します。
    プライマリノードとセカンダリノードの両方で、次のコマンドを入力します。
    プライマリノードで:
    add ha node 1 192.168.4.10 -inc enabled
    ここで、192.168.4.10 はセカンダリノードの管理NICのプライベートIPアドレスを指します。
    セカンダリノードで:
    add ha node 1 192.168.1.10 -inc enabled
    ここで、192.168.1.10 はプライマリノードの管理NICのプライベートIPアドレスを指します。
  2. プライマリインスタンスに仮想サーバーを追加します。
    次のコマンドを入力します:
    add lbvserver vserver1 http 10.10.10.10 80
  3. 設定を保存します。
  4. 強制フェイルオーバー後:
    • セカンダリインスタンスが新しいプライマリインスタンスになります。
    • プライマリENIを指すVPCルートは、セカンダリクライアントENIに移行します。
    • クライアントトラフィックは新しいプライマリインスタンスに再開されます。

HAプライベートIPソリューションのAWS Transit Gateway設定

内部ネットワーク、AWS VPC、リージョン、およびオンプレミスネットワーク全体でプライベートVIPサブネットをルーティング可能にするには、AWS Transit Gatewayが必要です。VPCはAWS Transit Gatewayに接続する必要があります。AWS Transit Gatewayルートテーブル内のVIPサブネットまたはIPプールに対する静的ルートが作成され、VPCに向けられます。
AWS トランジットゲートウェイ(/en-us/vpx/media/aws-transit-gateway.png)
AWS Transit Gateway を設定するには、次の手順に従います。
  1. Amazon VPC コンソールを開きます。
  2. ナビゲーションペインで、Transit Gateway ルートテーブルを選択します。
  3. ルートタブを選択し、静的ルートの作成をクリックします。
    AWS Transit Gateway ルートテーブル(/en-us/vpx/media/aws-transit-gateway-route-table.png)
  4. CIDR がプライベート VIPS サブネットを指し、アタッチメントが NetScaler VPX を持つ VPC を指す静的ルートを作成します。
    静的ルートの作成(/en-us/vpx/media/tg-create-static-route.png)
  5. 静的ルートの作成をクリックし、閉じるを選択します。

トラブルシューティング

マルチゾーン HA で HA プライベート IP ソリューションを設定する際に問題が発生した場合は、トラブルシューティングのために次の重要な点を確認してください。
  • プライマリノードとセカンダリノードの両方に同じ IAM 権限セットがあること。
  • プライマリノードとセカンダリノードの両方で INC モードが有効になっていること。
  • プライマリノードとセカンダリノードの両方に同じ数のインターフェイスがあること。
  • インスタンスを作成する際は、デバイスインデックス番号に基づいて、プライマリノードとセカンダリノードの両方でインターフェイスをアタッチする同じ順序に従ってください。たとえば、プライマリノードでクライアントインターフェイスが最初にアタッチされ、サーバーインターフェイスが2番目にアタッチされたとします。セカンダリノードでも同じ順序に従ってください。不一致がある場合は、インターフェイスをデタッチして正しい順序で再アタッチしてください。
  • インターフェースのシーケンスは、次のナビゲーションパスで確認できます: AWS console > Network & Security > ENI > Device Index number。 デフォルトでは、次のデバイスインデックス番号がこれらのインターフェースに割り当てられます:
    • 管理インターフェース – 0
    • クライアントインターフェース – 1
    • サーバーインターフェース – 2
  • プライマリENIのデバイスインデックス番号のシーケンスが0、1、2の場合、セカンダリENIも同じデバイスインデックス番号のシーケンス0、1、2に従う必要があります。
    デバイスインデックス番号のシーケンスに不一致がある場合、ルートの損失を避けるために、不一致のすべてのルートはインデックス0(管理インターフェース)に転送されます。しかし、トラフィックの輻輳を引き起こす可能性があるため、ルートが管理インターフェースに移動するのを避けるために、インターフェースをデタッチして正しいシーケンスで再度アタッチする必要があります。
  • トラフィックが流れない場合は、初回にプライマリノードのクライアントインターフェースで「Source/dest. Check」が無効になっていることを確認してください。
  • cloudhadaemon コマンド (ps -aux | grep cloudha) がシェルで実行されていることを確認してください。
  • NetScalerファームウェアのバージョンが13.0ビルド70.x以降であることを確認してください。
  • フェイルオーバープロセスに関する問題については、/var/log/cloud-ha-daemon.log で利用可能なログファイルを確認してください。