ADC

異なるAWSゾーンにプライベートIPアドレスを使用してVPX高可用性ペアを展開する

INCモードのプライベートIPアドレスを使用して、2つの異なるサブネットまたは2つの異なるAWSアベイラビリティーゾーンで2つのNetScaler ADC VPXインスタンスを設定できます。このソリューションは、 Elastic 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:同じ数の ENI (ネットワークインターフェイス) を持つ 2 つの異なるアベイラビリティーゾーンに 2 つの VPX インスタンスをデプロイします。

VPCを作成してAWSにVPXインスタンスをデプロイする方法の詳細については、「AWS へのNetScaler ADC 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. ルートを追加するには、[ Add route] を選択します。[ 宛先]に、宛先CIDRブロック、単一のIPアドレス、またはプレフィックスリストのIDを入力します。ゲートウェイ ID には、プライマリノードのクライアントインターフェイスの ENI を選択します。

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

注:

プライマリ・インスタンスのクライアント ENI で Source/Dest Check を無効にする必要があります。

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

  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. リモートノード IP アドレスフィールドに 、2 次ノードの管理NIC のプライベート IP アドレスを追加します。

  5. [ セルフノードで NIC (独立ネットワーク構成) モードをオンにする ] を選択します。

  6. [ リモートシステムログイン認証情報] で、セカンダリノードのユーザー名とパスワードを追加し、[ 作成] をクリックします。

  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 作成ロール

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

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

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

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

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

  1. NetScalerアプライアンスにサインインし、[ 構成] > [AWS] > [クラウドパラメータの変更] に移動します。

    クラウドパラメーターの変更

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

    AWS クラウドパラメータの設定

シナリオ

このシナリオでは、1 つの 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
    <!--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 の設定

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

AWS Transit Gateway

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

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

    AWS Transit Gateway ートテーブル

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

    スタティックルートの作成

  5. [ スタティックルートの作成] をクリックし、[ 閉じる] を選択します。

トラブルシューティング

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

  • プライマリノードとセカンダリノードの両方に同じ IAM 権限セットがあります。
  • INC モードは、プライマリノードとセカンダリノードの両方で有効になっています。
  • プライマリノードとセカンダリノードの両方に同じ数のインターフェイスがあります。
  • インスタンスを作成するときは、デバイスインデックス番号に基づいてプライマリノードとセカンダリノードの両方にインターフェイスをアタッチする同じ手順に従います。プライマリノードで、クライアントインターフェイスが最初に接続され、サーバーインターフェイスが 2 番目に接続されているとします。セカンダリノードでも同じ手順に従います。不一致がある場合は、正しい順序でインターフェイスを取り外して再接続します。
  • インターフェイスの順序を確認するには、[ AWS コンソール] > [ネットワークとセキュリティ] > [ ENI] > [デバイスインデックス番号]のナビゲーションパスをたどります。 デフォルトでは、これらのインターフェイスには次のデバイスインデックス番号が割り当てられます。 - 管理インターフェイス — 0 - クライアントインターフェイス — 1 - サーバーインターフェイス — 2
  • プライマリ ENI のデバイスインデックス番号の順序が 0、1、2 の場合。セカンダリ ENI も、デバイスインデックス番号と同じシーケンス(0、1、2)に従う必要があります。

    デバイスインデックス番号の順序に不一致がある場合、ルートが失われないように、一致しないすべてのルートが管理インターフェイスであるインデックス 0 に転送されます。ただし、管理インターフェイスへのルートの移動は、トラフィックの輻輳を引き起こす可能性があるため、インターフェイスを切り離してから正しい順序で接続し直す必要があります。

  • トラフィックが流れない場合は、「送信元/宛先」を確認してください。プライマリノードのクライアントインターフェイスで「Check」が初めて無効になります。
  • cloudhadaemon コマンド (ps -aux | grep cloudha) がシェルで実行されていることを確認します。
  • NetScalerファームウェアのバージョンが13.0ビルド70.x以降であることを確認してください。
  • フェイルオーバープロセスの問題については、/var/log/cloud-ha-daemon.log にあるログファイルを確認してください。
異なるAWSゾーンにプライベートIPアドレスを使用してVPX高可用性ペアを展開する