Network Load Balancer (NLB) では、異なるリージョンのバックエンドサーバーを追加できます。このトピックでは、NLB インスタンスと Cloud Enterprise Network (CEN) のトランジットルーターを設定して、他のリージョンのサーバーにリクエストを分散する方法について説明します。
利用シーン
ある企業が、中国 (成都) リージョンに VPC1 という名前の Virtual Private Cloud (VPC) を作成します。VPC1 には、NLB インスタンスと ECS1 という名前の Elastic Compute Service (ECS) インスタンスをデプロイします。ECS1 は、クロスリージョンの負荷分散をテストするためのクライアントとして使用されます。また、この企業は中国 (上海) リージョンに VPC2 という名前の VPC を、中国 (青島) リージョンに VPC3 という名前の VPC を作成します。VPC2 には ECS2 という名前の ECS インスタンスが、VPC3 には ECS3 という名前の ECS インスタンスが作成されます。ECS2 と ECS3 には同じアプリケーションがデプロイされています。
この企業は、クロスリージョンの高可用性を実現するために、VPC1 の NLB インスタンスに ECS2 と ECS3 をバックエンドサーバーとして追加したいと考えています。以下のアーキテクチャ図は、このソリューションを示しています。
制限事項
バックエンドサーバーの制限
他のリージョンのバックエンドサーバーは、IP タイプとしてのみ追加できます。
プライベート IP アドレスのみがサポートされています。パブリック IP アドレスを使用してバックエンドサーバーを追加することはできません。
トランジットルーターと VPC の制限
Enterprise Edition トランジットルーターは、指定されたゾーンの vSwitch 上に Elastic Network Interface (ENI) を作成します。この ENI は、VPC からトランジットルーターへのトラフィックのエントリポイントとして機能します。VPC を作成する際は、Enterprise Edition トランジットルーターをサポートするゾーンに少なくとも 1 つの vSwitch を作成してください。これにより、VPC をトランジットルーターに接続できます。詳細については、「Enterprise Edition トランジットルーターをサポートするリージョンとゾーン」をご参照ください。
前提条件
開始する前に、次の表の説明に従って必要なリソースを作成します。
必要なリソースを手動で作成するには、以下のトピックの指示に従ってください:
ウィザードを使用したインスタンスの作成。ECS2 と ECS3 のセキュリティグループが、アプリケーションポートでのインバウンドトラフィックを許可していることを確認してください。この例では、ポート 80 が使用されます。
ステップ 1:VPC とトランジットルーターの接続
Cloud Enterprise Network (CEN) コンソールにログインし、作成した CEN インスタンスの ID をクリックして、 ページに移動します。
TR1 インスタンスの 操作 列で 接続の作成 をクリックして、VPC1 を TR1 に接続します。ピアネットワークインスタンスとの接続 ページで、主要な設定情報については下表を参照し、その他の設定項目はデフォルト値のままにして、OK をクリックします。
パラメーター
説明
例
インスタンスタイプ
アタッチするネットワークインスタンスのタイプ。
Virtual Private Cloud (VPC)
リージョン
ネットワークインスタンスがデプロイされているリージョン。これは VPC1 のリージョンです。
中国 (成都)
リソース所有者 ID
ネットワークインスタンスが属するアカウントの ID。
現在のアカウント
ネットワーク
CEN にアタッチする VPC。
VPC1
vSwitch
CEN にアタッチする vSwitch。
VPC1 内の vSwitch
上記の手順を繰り返し、VPC2 を TR2 に、VPC3 を TR3 に接続します。
ステップ 2:リージョン間接続の作成
Cloud Enterprise Network CEN コンソールにログインし、インスタンス ID をクリックして、 ページに移動します。
TR1 インスタンスの右側にある 接続の作成 をクリックして、TR1 と TR2 の間にリージョン間接続を作成します。主要な設定情報については以下の表を参照し、その他の設定はデフォルト値のままにします。設定が完了したら、OK をクリックします。
パラメーター
説明
例
インスタンスタイプ
アタッチするネットワークインスタンスのタイプ。
リージョン間接続
リージョン
ネットワークインスタンスがデプロイされているリージョン。これは TR1 のリージョンです。
中国 (成都)
ピアリージョン
対向のトランジットルーターがデプロイされているリージョン。トランジットルーターを含むリージョンを選択する必要があります。
中国 (上海)
帯域幅割り当てモード
Cloud Data Transfer (CDT) を使用して、CEN のリージョン間トラフィックコストを削減できます。CDT 課金へのアップグレードを推奨します。CDT を有効にしても料金は発生しません。ビジネス要件に応じて帯域幅プランを選択することもできます。
データ転送量による支払い
上記の手順を繰り返し、TR1 と TR3 の間にリージョン間接続を作成します。
ステップ 3:NLB サーバーグループの設定
中国 (成都) リージョンの Network Load Balancer (NLB) サーバーグループコンソールにログインし、サーバーグループの作成 をクリックします。
サーバーグループ情報を設定します。主要なパラメーターについては以下の表を参照してください。その他のパラメーターはデフォルト値のままにします。その後、作成 をクリックします。
パラメーター
説明
例
サーバーグループタイプ
サーバーグループに追加するバックエンドサーバーのタイプ。
IP
サーバーグループ名
-
test
VPC
サーバーグループが属する VPC。
VPC1
リソースグループ
サーバーグループが属するリソースグループ。
デフォルトリソースグループ
サーバーグループインスタンスの [操作] 列にある バックエンドサーバーの変更 をクリックし、次に IP アドレスの追加 をクリックします。
IP リソースを追加します。ECS2 と ECS3 の IP アドレスを入力します。その後、次へ をクリックします。
ポートを ECS2 と ECS3 にデプロイされたアプリケーションサービスポート (例:ポート 80) に設定し、その他の設定はデフォルト値のままにします。完了したら、OK をクリックします。
ステップ 4:NLB リスナーの設定
中国 (成都) リージョンの Network Load Balancer (NLB) コンソールにログインし、ターゲットインスタンスの [操作] 列にある リスナーの作成 をクリックします。
負荷分散プロトコルとして TCP を選択し、リスナーポート (例:80) を設定します。次へ をクリックします。
以前に設定した IP ベースのサーバーグループを選択します。次へ をクリックします。
設定が正しいことを確認した後、送信 をクリックします。
ステップ 5:設定のテスト
ECS2 と ECS3 にテストアプリケーションをデプロイします:
中国 (上海) リージョンの Elastic Compute Service (ECS) インスタンスコンソールにログインし、インスタンスの右側にある 接続 をクリックして、Workbench を使用して ECS インスタンスにリモートログインします。
ECS2 で以下のコマンドを実行して、テストアプリケーションをデプロイします。
中国 (青島) リージョンの Elastic Compute Service (ECS) コンソールにログインし、インスタンスの右側にある 接続 をクリックし、Workbench を使用して ECS インスタンスにリモートログインします。
ECS3 で以下のコマンドを実行して、テストアプリケーションをデプロイします。
ECS1 から可用性をテストします:
中国 (成都) リージョンの Elastic Compute Service (ECS) コンソールにログインし、インスタンスの右側にある 接続 をクリックして、Workbench を使用して接続します。
sudo yum install -y telnetコマンドを実行して telnet をインストールします。telnet <domain name> <port>コマンドを実行します。「Connected to nlb-...」というメッセージが返された場合、NLB がバックエンドサーバーにリクエストを転送できることを示します。
障害をシミュレートします:
ECS2 で
systemctl stop nginx.serviceを実行してアプリケーションを停止します。数分後、ECS1 で再度
telnet <Domain name> <Port>コマンドを実行します。次の図に示すように、引き続き「Connected to nlb-...」という応答メッセージが表示されます。
ECS2 で
systemctl start nginx.serviceを実行してアプリケーションを起動します。ECS3 でsystemctl stop nginx.serviceを実行してアプリケーションを停止します。数分後、ECS1 で再度
telnet domain_name portコマンドを実行します。次の図に示すように、引き続き「Connected to nlb-...」という応答メッセージが表示されます。
この結果は、単一のバックエンドサーバーの障害が NLB インスタンスの可用性に影響しないことを示しています。
リソースの削除
CEN とトランジットルーターのリソースを削除します:
CEN コンソールにログインします。cen-test インスタンスの ID をクリックして、インスタンスの詳細ページに移動します。
TR1 インスタンスを削除します:
タブで、TR1 インスタンス ID をクリックして、TR インスタンスの詳細ページに移動します。
リージョン内接続数 タブで、各インスタンスの右側にある デタッチ をクリックして操作を確認し、リージョン内で接続されているすべてのネットワークインスタンスをデタッチします。
クロスリージョン接続 タブで、インスタンスの右側にある 削除 をクリックして削除を確認します。
CEN インスタンスの詳細ページに戻ります。インスタンスの右側にある 削除 をクリックし、TR1 インスタンスの削除を確認します。
上記の手順を繰り返し、TR2 と TR3 インスタンスを削除します。
CEN インスタンスページに戻り、インスタンスの右側にある 削除 をクリックします。
ECS とセキュリティグループのリソースを削除します:
ECS1 インスタンスとそのセキュリティグループを削除します:
中国 (成都) リージョンの Elastic Compute Service (ECS) インスタンスコンソールにログインし、ECS1 インスタンスの右側にある
アイコンをクリックし、表示されるウィンドウで リリース を選択し、インスタンスを即時リリースして確認します。中国 (成都) リージョンの Elastic Compute Service (ECS) セキュリティグループコンソールにログインし、ECS1 カスタムセキュリティグループを選択して 削除 をクリックします。
上記の手順を繰り返し、ECS2 と ECS3 インスタンスおよび対応するセキュリティグループを削除します。
DNS レコードを削除します。
DNS レコードの削除方法の詳細については、「レコードの削除」をご参照ください。
NLB リソースを削除します:
中国 (成都) リージョンの Network Load Balancer (NLB) インスタンスコンソールにログインし、インスタンスの右側にある
をクリックし、表示されるウィンドウで リリース を選択して確認します。中国 (成都) リージョンの Network Load Balancer (NLB) サーバーグループコンソールにログインし、インスタンスの右側にある
アイコンをクリックし、表示されるウィンドウで 削除 を選択して確認します。
VPC リソースを削除します:
中国 (成都) リージョンの Virtual Private Cloud (VPC) コンソールにログインし、インスタンスの右側にある 削除 をクリックし、強制削除を選択して VPC と vSwitch リソースを削除します。
中国 (上海) リージョンの Virtual Private Cloud (VPC) コンソールにログインし、インスタンスの右側にある 削除 をクリックし、強制削除オプションを選択して VPC と vSwitch リソースを削除します。
中国 (青島) リージョンの VPC コンソールにログインし、インスタンスの右側にある 削除 をクリックし、強制削除のチェックボックスを選択して VPC とその vSwitch を削除します。