NetScaler VPX

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

INCモードでプライベートIPアドレスを使用して、2つの異なるサブネットまたは2つの異なるAWSアベイラビリティゾーンに2つのNetScaler VPXインスタンスを設定できます。このソリューションは、既存のマルチゾーンエラスティックIPアドレスを持つVPX高可用性ペアと簡単に統合できます。したがって、両方のソリューションを一緒に使用できます。

高可用性の詳細については、高可用性を参照してください。INCの詳細については、異なるサブネットでの高可用性ノードの設定を参照してください。

注:

このデプロイは、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"
        }
    ]
}

<!--NeedCopy-->

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インスタンスを展開します。

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>
<!--NeedCopy-->

AWS GUIから、ルートを追加するには、次の手順を実行します。

  1. Amazon EC2コンソールを開きます。
  2. ナビゲーションペインで、[ルートテーブル] を選択し、ルートテーブルを選択します。
  3. [アクション] を選択し、[ルートの編集] をクリックします。
  4. ルートを追加するには、ルートの追加を選択します。送信先には、送信先CIDRブロック、単一のIPアドレス、またはプレフィックスリストのIDを入力します。ゲートウェイIDには、プライマリノードのクライアントインターフェイスのENIを選択します。

ルートテーブル - ルートの編集

注記:

プライマリインスタンスのクライアントENIで送信元/送信先チェックを無効にする必要があります。

コンソールを使用してネットワークインターフェイスの送信元/送信先チェックを無効にするには、次の手順を実行します。

  1. Amazon EC2 コンソールを開きます。
  2. ナビゲーションペインで、ネットワークインターフェイスを選択します。
  3. プライマリクライアントインターフェイスのネットワークインターフェイスを選択し、アクションを選択して、送信元/送信先チェックの変更をクリックします。
  4. ダイアログボックスで、無効を選択し、保存をクリックします。

送信元/送信先チェックの変更

ステップ5. 高可用性を構成します。高可用性を設定するには、NetScaler VPX CLIまたはGUIを使用できます。

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

  1. 両方のインスタンスでINCモードで高可用性を設定します。

    プライマリノードで:

    add ha node 1 \<sec\_ip\> -inc ENABLED
    <!--NeedCopy-->
    

    セカンダリノードで:

    add ha node 1 \<prim\_ip\> -inc ENABLED
    <!--NeedCopy-->
    

    <sec_ip> は、セカンダリノードの管理NICのプライベートIPアドレスを指します。

    <prim_ip> は、プライマリノードの管理NICのプライベートIPアドレスを指します。

  2. プライマリインスタンスに仮想サーバーを追加します。選択したサブネット (例: 10.10.10.0/24) から追加する必要があります。

    次のコマンドを入力します。

    add \<server\_type\> vserver \<vserver\_name\> \<protocol\> \<primary\_vip\> \<port\>
    <!--NeedCopy-->
    

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

  1. 両方のインスタンスでINCモードの高可用性を設定します

  2. ユーザー名 nsroot とパスワードとしてインスタンスIDを使用して、プライマリノードにログオンします。

  3. 構成」 > 「システム」 > 「高可用性」 に移動し、「追加」をクリックします。

  4. Remote Node IP address フィールドで、セカンダリノードの管理NICのプライベートIPアドレスを追加します。

  5. 自己ノードで「NIC (独立ネットワーク構成) を有効にする」モードを選択します。

  6. Remote System Login Credential の下で、セカンダリノードのユーザー名とパスワードを追加し、Create をクリックします。

  7. セカンダリノードで手順を繰り返します。

  8. プライマリインスタンスに仮想サーバーを追加します

    設定 > トラフィック管理 > 仮想サーバー > 追加」に移動します。

    仮想サーバーを追加

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": "*"
             }
         ]
     }
     <!--NeedCopy-->
    

    注:

    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": "*"
             }
         ]
     }
     <!--NeedCopy-->
    

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

  1. AWSウェブコンソールにログインします。
  2. IAMタブで、ロールに移動し、ロールの作成を選択します。
  3. 別のAWSアカウントを選択します。

    「共有VPCロールの作成」(/ja-jp/vpx/media/shared-vpc-create-role.png)

  4. 管理者アクセスを付与する参加者アカウントの12桁のアカウントID番号を入力します。

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

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

set cloud awsParam -roleARN <string>
<!--NeedCopy-->

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

  1. NetScalerアプライアンスにサインインし、「設定 > AWS > クラウドパラメータの変更」に移動します。

    「クラウドパラメータの変更」(/ja-jp/vpx/media/shared-vpc-change-cloud-parameters-citrix.png)

  2. AWSクラウドパラメータの設定 ページで、RoleARN フィールドに値を入力します。

    「AWSクラウドパラメータの設定」(/ja-jp/vpx/media/configure-aws-cloud-parameters-citrix.png)

シナリオ

このシナリオでは、単一のVPCが作成されます。そのVPC内に、2つのアベイラビリティゾーンに2つのVPXインスタンスが作成されます。各インスタンスには、管理用、クライアント用、バックエンドサーバー用の3つのサブネットがあります。

次の図は、AWS上のINCモードでのNetScaler VPX高可用性セットアップを示しています。VPCの一部ではないカスタムサブネット10.10.10.10がVIPとして使用されます。したがって、10.10.10.10サブネットはアベイラビリティゾーン間で利用できます。

「フェイルオーバー前のINCモードでの高可用性セットアップ」(/ja-jp/vpx/media/before-failover-ha-pip.png)

「フェイルオーバー後のINCモードでの高可用性セットアップ」(/ja-jp/vpx/media/after-failover-ha-pip.png)

このシナリオでは、CLIを使用して高可用性を構成します。

  1. 両方のインスタンスでINCモードの高可用性を設定します。

    プライマリノードとセカンダリノードで次のコマンドを入力します。

    プライマリノードで:

    add ha node 1 192.168.4.10 -inc enabled
    <!--NeedCopy-->
    

    ここで、192.168.4.10はセカンダリノードの管理NICのプライベートIPアドレスを指します。

    セカンダリノードで:

    add ha node 1 192.168.1.10 -inc enabled
    <!--NeedCopy-->
    

    ここで、192.168.1.10はプライマリノードの管理NICのプライベートIPアドレスを指します。

  2. プライマリインスタンスに仮想サーバーを追加します。

    次のコマンドを入力します。

    add lbvserver vserver1 http 10.10.10.10 80
    <!--NeedCopy-->
    
  3. 設定を保存します。

  4. 強制フェイルオーバー後:

    • セカンダリインスタンスが新しいプライマリインスタンスになります。
    • プライマリENIを指すVPCルートは、セカンダリクライアントENIに移行します。
    • クライアントトラフィックは新しいプライマリインスタンスに再開されます。

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

プライベートVIPサブネットを、内部ネットワーク内、AWS VPC、リージョン、およびオンプレミスネットワーク間でルーティング可能にするには、AWS Transit Gatewayが必要です。VPCはAWS Transit Gatewayに接続する必要があります。AWS Transit Gatewayルートテーブル内のVIPサブネットまたはIPプール用の静的ルートが作成され、VPCを指します。

AWS トランジットゲートウェイ(/ja-jp/vpx/media/aws-transit-gateway.png)

AWS Transit Gateway を設定するには、次の手順に従います。

  1. Amazon VPC コンソール を開きます。
  2. ナビゲーションペインで、Transit Gateway ルートテーブルを選択します。
  3. ルートタブを選択し、静的ルートの作成をクリックします。

    AWS トランジットゲートウェイ ルートテーブル(/ja-jp/vpx/media/aws-transit-gateway-route-table.png)

  4. CIDR がプライベート VIPS サブネットを指し、アタッチメントが NetScaler VPX を持つ VPC を指す静的ルートを作成します。

    「静的ルートの作成」(/ja-jp/vpx/media/tg-create-static-route.png)

  5. 静的ルートの作成をクリックし、閉じるを選択します。

トラブルシューティング

マルチゾーン HA で HA プライベート IP ソリューションを設定する際に問題が発生した場合は、トラブルシューティングのために次の重要な点を確認してください。

  • プライマリノードとセカンダリノードの両方に同じ IAM 権限セットがあります。
  • プライマリノードとセカンダリノードの両方で INC モードが有効になっています。
  • プライマリノードとセカンダリノードの両方に同じ数のインターフェイスがあります。
  • インスタンスを作成する際は、両方のノードでインターフェイスをアタッチする順序を同じにしてください。プライマリノードでクライアントインターフェイスが最初にアタッチされ、サーバーインターフェイスが2番目にアタッチされる場合、セカンダリノードでも同じ順序に従ってください。不一致がある場合は、インターフェイスをデタッチして正しい順序で再アタッチしてください。
  • トラフィックが流れない場合は、初回にプライマリノードのクライアントインターフェースで「Source/dest. Check」が無効になっていることを確認してください。
  • cloudhadaemon コマンド (ps -aux | grep cloudha) が Shell で実行されていることを確認してください。
  • NetScaler ファームウェアのバージョンが 13.0 ビルド 70.x 以降であることを確認してください。
  • フェイルオーバープロセスに問題がある場合は、次の場所にあるログファイルを確認してください: /var/log/cloud-ha-daemon.log
異なるAWSゾーン間でプライベートIPアドレスを持つVPX高可用性ペアを展開する