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

最終公開日 : Sep 25, 2026
INCモードでプライベートIPアドレスを使用して、2つの異なるサブネットまたは2つの異なるAWSアベイラビリティゾーンに2つのNetScaler VPXインスタンスを設定できます。このソリューションは、既存のマルチゾーン(/ja-jp/vpx/13-1/deploy-aws/vpx-ha-eip-different-aws-zones.html)と簡単に統合できます。したがって、両方のソリューションを一緒に使用できます。
高可用性の詳細については、(/ja-jp/citrix-adc/13-1/system/high-availability-introduction.html)を参照してください。INCの詳細については、(/ja-jp/citrix-adc/13-1/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 Virtual Private Cloud (VPC) を作成します。
ステップ2. 2つの異なるアベイラビリティゾーンに、同じ数のENI (ネットワークインターフェース) を持つ2つのVPXインスタンスを展開します。
VPCを作成し、AWSに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. ルートを追加するには、ルートの追加を選択します。送信先には、送信先CIDRブロック、単一のIPアドレス、またはプレフィックスリストのIDを入力します。ゲートウェイIDには、プライマリノードのクライアントインターフェイスのENIを選択します。
ルートテーブル - ルートの編集(/en-us/vpx/media/edit-routes.png)
注:
プライマリインスタンスのクライアントENIで送信元/送信先チェックを無効にする必要があります。
コンソールを使用してネットワークインターフェイスの送信元/送信先チェックを無効にするには、次の手順を実行します。
  1. Amazon EC2 コンソールを開きます。
  2. ナビゲーションペインで、ネットワークインターフェイスを選択します。
  3. プライマリクライアントインターフェイスのネットワークインターフェイスを選択し、アクションを選択して、送信元/送信先チェックの変更をクリックします。
  4. ダイアログボックスで、無効を選択し、保存をクリックします。
送信元/送信先チェックの変更(/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-citrix.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ロールの作成
  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 に移動します。
    クラウドパラメータの変更
  2. Configure AWS Cloud Parameters ページで、RoleARN フィールドの値を入力します。
    AWSクラウドパラメータの設定

シナリオ

このシナリオでは、単一のVPCが作成されます。そのVPC内に、2つのアベイラビリティゾーンに2つのVPXインスタンスが作成されます。各インスタンスには、管理用、クライアント用、バックエンドサーバー用の3つのサブネットがあります。
次の図は、AWS上のINCモードにおけるNetScaler VPX高可用性セットアップを示しています。VPCの一部ではないカスタムサブネット10.10.10.10がVIPとして使用されます。したがって、10.10.10.10サブネットはアベイラビリティゾーン間で利用できます。
フェイルオーバー前のINCモードでの高可用性セットアップフェイルオーバー後のINCモードでの高可用性セットアップ
このシナリオでは、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 トランジットゲートウェイ
AWS Transit Gateway を設定するには、次の手順に従います。
  1. Amazon VPC コンソールを開きます。
  2. ナビゲーションペインで、Transit Gateway ルートテーブルを選択します。
  3. Routesタブを選択し、静的ルートの作成をクリックします。
    AWS Transit Gateway ルートテーブル
  4. CIDRがプライベートVIPSサブネットを指し、アタッチメントがNetScaler VPXを持つVPCを指す静的ルートを作成します。
    静的ルートの作成
  5. 静的ルートの作成をクリックし、閉じるを選択します。

トラブルシューティング

マルチゾーンHAでHAプライベートIPソリューションを設定する際に問題が発生した場合は、トラブルシューティングのために以下の重要な点を確認してください。
  • プライマリノードとセカンダリノードの両方が、同じIAM権限セットを持っていること。
  • プライマリノードとセカンダリノードの両方でINCモードが有効になっていること。
  • プライマリノードとセカンダリノードの両方が、同じ数のインターフェースを持っていること。
  • インスタンスを作成する際は、両方のノードでインターフェースをアタッチする順序を同じにしてください。プライマリノードでクライアントインターフェースが最初にアタッチされ、サーバーインターフェースが2番目にアタッチされた場合、セカンダリノードでも同じ順序に従ってください。不一致がある場合は、インターフェースをデタッチして正しい順序で再アタッチしてください。
  • トラフィックが流れない場合は、プライマリノードのクライアントインターフェイスで「送信元/送信先チェック」が初回のみ無効になっていることを確認してください。
  • cloudhadaemon コマンド (ps -aux | grep cloudha) が Shell で実行されていることを確認してください。
  • NetScaler ファームウェアのバージョンが 13.0 ビルド 70.x 以降であることを確認してください。
  • フェイルオーバープロセスに関する問題については、次の場所にあるログファイルを確認してください: /var/log/cloud-ha-daemon.log