異なるAWSゾーンにプライベートIPアドレスを使用してVPX高可用性ペアを展開する
INCモードのプライベートIPアドレスを使用して、2つの異なるサブネットまたは2つの異なるAWSアベイラビリティーゾーンで2つのNetScaler ADC VPXインスタンスを設定できます。 このソリューションは、弾性 IP アドレス</a>を備えた既存のマルチゾーン VPX 高可用性ペアと簡単に統合できます。 したがって、両方のソリューションを一緒に使用できます。</p>
高可用性の詳細については、「 高可用性」を参照してください。 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ペアをデプロイする手順の概要を示します。
- Amazon 仮想プライベートクラウドを作成します。
- 2 つの異なるアベイラビリティーゾーンに 2 つの VPX インスタンスをデプロイします。
- 高可用性の構成
- 両方のインスタンスで INC モードで高可用性をセットアップします。
- クライアントインターフェイスを指すそれぞれのルートテーブルを VPC に追加します。
- プライマリ・インスタンスに仮想サーバを追加します。
ステップ 1、2、および 3b では、AWS コンソールを使用します。 ステップ3aと3cでは、NetScaler VPX GUIまたはCLIを使用します。
ステップ1。 Amazon 仮想プライベートクラウド (VPC) を作成します。
ステップ2。 同じ数の ENI (ネットワーク インターフェイス) を持つ 2 つの異なるアベイラビリティ ゾーンに 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 から、次の手順を実行してルートを追加します。
- Amazon EC2 コンソールを開きます。
- ナビゲーションペインで、 ルートテーブルを選択し、ルートテーブルを選択します。
- [ アクション] を選択し、[ ルートの編集] をクリックします。
- ルートを追加するには、[ Add route] を選択します。 [ 宛先]に、宛先CIDRブロック、単一のIPアドレス、またはプレフィックスリストのIDを入力します。 ゲートウェイ ID には、プライマリノードのクライアントインターフェイスの ENI を選択します。
注
プライマリ・インスタンスのクライアント ENI で Source/Dest Check を無効にする必要があります。
コンソールを使用してネットワークインターフェイスのsource/destinationチェックを無効にするには、次の手順を実行します。
- Amazon EC2 コンソールを開きます。
- ナビゲーションペインで、[ ネットワークインターフェイス]を選択します。
- プライマリクライアントインターフェイスのネットワークインターフェイスを選択し、[ アクション] を選択し、[ **ソース/デストを変更] をクリックします。 **を確認してください。
- ダイアログボックスで、[ 無効] を選択し、[ 保存] をクリックします。
ステップ5。 高可用性の構成. NetScaler VPX CLIまたはGUIを使用して、高可用性をセットアップできます。
CLI を使用した高可用性の設定
- 両方のインスタンスで 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 アドレスを参照します。
- プライマリ・インスタンスに仮想サーバを追加します。 選択したサブネット(10.10.10.0/24 など)から追加する必要があります。
次のコマンドを入力します:
```
add \<server\_type\> vserver \<vserver\_name\> \<protocol\> \<primary\_vip\> \<port\>
<!--NeedCopy--> ```
GUI を使用した高可用性の構成
-
両方のインスタンスで INC モードで高可用性をセットアップする
-
ユーザー名
nsroot
とインスタンス ID をパスワードとしてプライマリノードにログオンします。 -
[ 構成 ] > [ システム ] > [ 高可用性] に移動し、[ 追加] をクリックします。
-
リモートノード IP アドレスフィールドに 、2 次ノードの管理NIC のプライベート IP アドレスを追加します。
-
[ セルフノードで NIC (独立ネットワーク構成) モードをオンにする ] を選択します。
-
[ リモートシステムログイン認証情報] で、セカンダリノードのユーザー名とパスワードを追加し、[ 作成] をクリックします。
-
セカンダリノードで手順を繰り返します。
-
プライマリ・インスタンスに仮想サーバを追加する
[ 設定 ] > [ トラフィック管理 ] > [ 仮想サーバー] > [追加]に移動します。
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 ロールの作成
- AWS ウェブコンソールにログインします。
- [ IAM ] タブで [ロール] に移動し、[ **ロールの作成**] を選択します。
- [ 別の AWS アカウント] を選択します。
- 管理者アクセス権を付与する参加者アカウントの 12 桁のアカウント ID 番号を入力します。
NetScaler CLIを使用してクロスアカウントIAMロールを設定する
次のコマンドを実行すると、NetScaler VPXインスタンスがVPC所有者アカウントに存在するクロスアカウントIAMロールを引き継ぐことができます。
set cloud awsParam -roleARN <string>
<!--NeedCopy-->
NetScaler GUIを使用してクロスアカウントIAMロールを設定
- NetScalerアプライアンスにサインインし、[ 構成] > [AWS] > [クラウドパラメータの変更] に移動します。
- AWS クラウドパラメータの設定ページで 、 RolLearn フィールドの値を入力します。
シナリオ
このシナリオでは、1 つの VPC が作成されます。 その VPC では、2 つのアベイラビリティーゾーンに 2 つの VPX インスタンスが作成されます。 各インスタンスには、管理用、クライアント用、バックエンドサーバー用の 3 つのサブネットがあります。
次の図は、AWS上のINCモードでのNetScaler VPX高可用性セットアップを示しています。 VPC の一部ではないカスタムサブネット 10.10.10.10 が VIP として使用されます。 したがって、10.10.10.10 サブネットはアベイラビリティーゾーン全体で使用できます。
このシナリオでは、CLI を使用して高可用性を設定します。
- 両方のインスタンスで 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 アドレスを指します。
- プライマリ・インスタンスに仮想サーバを追加します。
次のコマンドを入力します:
```
add lbvserver vserver1 http 10.10.10.10 80
<!--NeedCopy--> ```
-
構成を保存します。
-
強制フェールオーバーの後:
- セカンダリインスタンスが新しいプライマリインスタンスになります。
- プライマリ 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 を設定するには、次の手順に従います。
- Amazon VPC コンソールを開きます。
- ナビゲーションペインで、[ Transit Gateway ートテーブル] を選択します。
- [ ルート ] タブを選択し、[ 静的ルートの作成] をクリックします。
- CIDRがプライベートVIPSサブネットを指し、アタッチメントがNetScaler VPXのあるVPCを指す静的ルートを作成します。
- [ スタティックルートの作成] をクリックし、[ 閉じる] を選択します。
トラブルシューティング
マルチゾーン HA で HA プライベート IP ソリューションを設定する際に問題が発生した場合は、トラブルシューティングのために次の重要なポイントを確認してください。
- プライマリノードとセカンダリノードの両方に同じ IAM 権限セットがあります。
- INC モードは、プライマリノードとセカンダリノードの両方で有効になっています。
- プライマリノードとセカンダリノードの両方に同じ数のインターフェイスがあります。
- インスタンスを作成するときは、デバイスインデックス番号に基づいてプライマリノードとセカンダリノードの両方にインターフェイスをアタッチする同じ手順に従います。 プライマリノードで、クライアントインターフェイスが最初に接続され、サーバーインターフェイスが 2 番目に接続されているとします。 セカンダリノードでも同じ手順に従います。 不一致がある場合は、正しい順序でインターフェイスを取り外して再接続します。
-
インターフェイスの順序を確認するには、[ AWS コンソール] > [ネットワークとセキュリティ] > [ ENI] > [デバイスインデックス番号]のナビゲーションパスをたどります。 デフォルトでは、これらのインターフェイスには次のデバイスインデックス番号が割り当てられます。 - 管理インターフェイス — 0 - クライアントインターフェイス — 1 - サーバーインターフェイス — 2 デフォルトでは、これらのインターフェイスには次のデバイス インデックス番号が割り当てられます。
- 管理インターフェース – 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