Alibaba Cloud Network Load Balancer (NLB) は、TCP、UDP、および TCP over SSL (TCPSSL) をサポートし、レイヤー 4 負荷分散を提供します。このトピックでは、NLB インスタンスを作成し、クライアントリクエストをバックエンドサーバーに転送して、IPv4 サービスの負荷分散を提供する方法について説明します。
前提条件
-
中国 (上海) リージョンに VPC1 という名前の Virtual Private Cloud (VPC) を作成し、それぞれゾーン E とゾーン G に VSW1 と VSW2 という 2 つの vSwitch を作成済みであること。詳細については、「VPC と vSwitch の作成」をご参照ください。
NLB インスタンスの伸縮機能が正しく動作するように、インスタンスが使用する各 vSwitch に少なくとも 8 つの IP アドレスを予約してください。
-
VSW1 と VSW2 にそれぞれ Elastic Compute Service (ECS) インスタンスである ECS01 と ECS02 を作成し、各インスタンスにアプリケーションをデプロイ済みであること。
-
ECS インスタンスの作成方法の詳細については、「ウィザードを使用したインスタンスの作成」をご参照ください。
-
次のサンプルコマンドを使用して、ECS01 と ECS02 にテストアプリケーションをデプロイします。
-
-
ドメイン名を登録し、ICP 登録を取得済みであること。詳細については、「Alibaba Cloud でのドメイン名の登録」および「ICP 登録」をご参照ください。
このトピックの VPC と ECS の構成は参考用です。
次の表に、ECS インスタンスの構成を示します。
ステップ 1: NLB インスタンスの作成
-
Network Load Balancer コンソールにログインします。
-
上部のナビゲーションバーで、NLB インスタンスがデプロイされているリージョンを選択します。
-
インスタンス ページで、NLB の作成 をクリックします。
-
Network Load Balancer (従量課金) ページで、次のパラメーターを設定します。次に、今すぐ購入 をクリックし、画面の指示に従ってインスタンスを作成します。
このトピックでは、必須パラメーターのみを説明します。その他のパラメーターはデフォルト値を使用します。詳細については、「NLB インスタンスの作成と管理」をご参照ください。
パラメーター
説明
リージョン
インスタンスのリージョンを選択します。
インスタンスのネットワークタイプ
インスタンスのネットワークタイプを選択します。選択内容に応じて、プライベート IP アドレスまたはパブリック IP アドレスが割り当てられます。このトピックでは、インターネットに接続 を選択します。
VPC
インスタンスがデプロイされている VPC を選択します。
ゾーン
少なくとも 2 つのゾーンで vSwitch を選択します。このトピックでは、上海ゾーン E と 上海ゾーン G の vSwitch を使用します。
IP バージョン
インスタンスの IP バージョンを選択します。このトピックでは、IPv4 を選択します。
インスタンス名
インスタンスの名前を入力します。
リソースグループ
インスタンスのリソースグループを選択します。
サービスリンクロール
初めて NLB インスタンスを作成するときは、[サービスリンクロールの作成] をクリックして AliyunServiceRoleForNlb サービスリンクロールを作成します。システムはこのロールに AliyunServiceRolePolicyForNlb ポリシーを割り当て、NLB インスタンスが他の Alibaba Cloud リソースにアクセスできるようにします。詳細については、「NLB のシステムポリシー」をご参照ください。
ステップ 2: サーバーグループの作成
-
左側のナビゲーションウィンドウで、NLB > [サーバーグループ] を選択します。
-
[サーバーグループ] ページで、サーバーグループの作成 をクリックします。
-
サーバーグループの作成 ダイアログボックスで、次のパラメーターを設定し、作成 をクリックします。
次の表に、主要なパラメーターを示します。その他のパラメーターはデフォルト値を使用します。詳細については、「サーバーグループの作成」をご参照ください。
パラメーター
説明
サーバーグループタイプ
バックエンドサーバーのタイプを指定します。このトピックでは、サーバータイプ が選択されています。
サーバーグループ名
サーバーグループの名前を入力します。
VPC
ドロップダウンリストから VPC を選択します。選択した VPC のサーバーのみがこのサーバーグループに追加できます。
バックエンドサーバープロトコル
バックエンドサーバーのプロトコルを選択します。このトピックでは、TCP を選択します。
スケジューリングアルゴリズム
スケジューリングアルゴリズムを選択します。このトピックでは、重み付けラウンドロビン を選択します。
ヘルスチェック
ヘルスチェックをオンし、デフォルトのヘルスチェック設定を使用します。
-
サーバーグループが作成されたら、その ID をクリックし、次にバックエンド サーバー タブをクリックします。
-
バックエンドサーバーの追加 をクリックします。バックエンドサーバーの追加 パネルで、 ECS01 と ECS02 を選択し、次へ をクリックします。
-
「ポートと重みの設定」ステップで、ポートを 80 に設定し、デフォルトの重み 100 を使用して OK をクリックします。
ステップ 3: リスナーの設定
-
左側のナビゲーションウィンドウで、 を選択します。
-
インスタンス ページで、ターゲットインスタンスを見つけ、リスナーの作成 列の リスナーの作成 をクリックします。
-
NLB 設定ウィザード で、次のパラメーターを設定し、次へ をクリックします。
このトピックでは、必須パラメーターのみを説明します。その他のパラメーターはデフォルト値を使用します。リスナーの設定方法の詳細については、「TCP リスナーの追加」をご参照ください。
パラメーター
説明
リスナープロトコルの選択
リスナーのプロトコルを選択します。このトピックでは、TCP を選択します。
リスナーポート
リクエストを受信してバックエンドサーバーに転送するポート。このトピックでは、80 を入力します。
リスナー名
リスナーの名前を入力します。
詳細設定
デフォルト設定を使用します。設定を変更するには、変更 をクリックします。
-
サーバーグループ 設定ウィザードで、サーバータイプ と サーバータイプ の下にある対象のサーバーグループを選択し、追加されたバックエンドサーバーを確認してから、次へ をクリックします。
-
確定 ステップで、構成を確認し、送信 をクリックします。
-
OK をクリックして リスナー タブに戻ります。 リスナーの ヘルスチェックステータス が 正常 に変わると、バックエンドサーバー ECS01 および ECS02 は NLB インスタンスからのリクエストを処理できるようになります。
ステップ 4: DNS 名前解決の設定
本番環境では、CNAME レコードを追加して、ドメイン名を NLB インスタンスのドメイン名にマッピングすることを推奨します。
-
左側のナビゲーションウィンドウで、 を選択します。
-
インスタンス ページで、作成された NLB インスタンスの DNS 名をコピーします。
-
CNAME レコードを追加します。
説明-
Alibaba Cloud DNS コンソールにログインします。
-
Add Record パネルで、CNAME レコードに次のパラメーターを設定し、OK をクリックします。
パラメーター
説明
レコードタイプ
ドロップダウンリストから CNAME を選択します。
ホストレコード
ドメイン名のプレフィックス。このトピックでは、@ を入力します。
説明ルートドメインの場合、ホスト名を @ に設定します。
DNS リクエストソース
デフォルトを選択します。
レコード値
ドメイン名の CNAME アドレスを入力します。これは、ご利用の NLB インスタンスの DNS 名です。
TTL
Time to Live (TTL) は、DNS サーバーがレコードをキャッシュする期間を指定します。デフォルト値を使用します。
-
ステップ 5: 結果の検証
-
NLB インスタンスの可用性をテストします。
-
パブリックインターネットにアクセスできる Linux クライアントから、telnet がまだ存在しない場合はインストールします。たとえば、CentOS では
yum install -y telnetコマンドを実行します。 -
telnet <Domain Name> <Port>コマンドを実行します。応答に Connected to... が含まれている場合、NLB インスタンスはリクエストをバックエンドサーバーに転送しています。Trying *.*.*.*... Connected to www.example.com. Escape character is '^]'.ブラウザにドメイン名を入力します。例:
http://<Domain Name>。次の図に示すページが表示された場合、NLB インスタンスはリクエストをバックエンドサーバーに転送しています。
-
-
(オプション) 障害をシミュレートします。
-
ECS01 上のアプリケーションを停止します。ECS01 で
systemctl stop nginx.serviceコマンドを実行します。 -
クライアントから、再度
telnet <Domain Name> <Port>コマンドを実行します。接続は成功し、Connected to... 応答が含まれているはずです。Trying *.*.*.*... Connected to www.example.com. Escape character is '^]'.ブラウザにドメイン名を入力します。例:
http://<Domain Name>。次の図に示すページが表示された場合、NLB インスタンスはリクエストを正常なバックエンドサーバーに正しく転送しています。
-
ECS01 でアプリケーションを起動し、ECS02 で停止します。ECS01 で
systemctl start nginx.serviceを実行してアプリケーションを起動し、ECS02 でsystemctl stop nginx.serviceを実行して停止します。 -
クライアントから、再度
telnet <Domain Name> <Port>コマンドを実行します。接続は成功し、Connected to... 応答が含まれているはずです。Trying *.*.*.*... Connected to www.example.com. Escape character is '^]'.ブラウザにドメイン名を入力します。例:
http://<Domain Name>。次の図に示すページが表示された場合、NLB インスタンスはリクエストを正常なバックエンドサーバーに正しく転送しています。
-
このテストは、単一のバックエンドサーバーの障害が NLB インスタンスの可用性に影響しないことを示しています。
-
リソースのリリース
-
ECS インスタンスとセキュリティグループをクリーンアップします。
-
ECS01 インスタンスとそのセキュリティグループを削除します。
-
ECS インスタンスコンソールにログインし、上部のナビゲーションバーでインスタンスのリージョンを選択し、ECS01 インスタンスの右側にある
アイコンをクリックし、表示されるウィンドウで リリース を選択して、即時リリースを確認します。 -
ECS コンソールのセキュリティグループページにログインします。 上部のナビゲーションバーで、リージョンを選択します。 ECS01 のカスタムセキュリティグループを選択し、削除 をクリックして、セキュリティグループを削除します。
-
-
上記の手順を繰り返して、ECS02 インスタンスとそのセキュリティグループを削除します。
-
-
DNS レコードを削除します。
DNS レコードを削除するには、「レコードの削除」をご参照ください。
-
NLB リソースをクリーンアップします。
-
Network Load Balancer コンソールにログインします。上部のナビゲーションバーで、リージョンを選択します。インスタンスを探し、[操作] 列の
アイコンをクリックして、リリース を選択します。次に、操作を確定します。 -
Network Load Balancer コンソールにログインします。 上部のナビゲーションバーで、リージョンを選択します。 左側のナビゲーションウィンドウで、サーバーグループ をクリックします。 サーバーグループを見つけ、[操作] 列の
アイコンをクリックし、削除 を選択します。 次に、操作を確定します。
-
-
VPC リソースをクリーンアップします。
-
Virtual Private Cloud コンソールにログインします。上部のナビゲーションバーでリージョンを選択します。
-
VPC を見つけ、削除 列の 削除 をクリックします。VPC とそれに関連付けられた vSwitch を強制削除するオプションを選択します。
-
関連トピック
-
NLB のユースケースとコンポーネントについては、「Network Load Balancer とは」をご参照ください。
-
NLB の機能については、「特徴」をご参照ください。
-
NLB のクォータとクォータ増加のリクエスト方法については、「クォータ」をご参照ください。
-
NLB をサポートするリージョンについては、「NLB をサポートするリージョンとゾーン」をご参照ください。
-
NLB の課金については、「課金」をご参照ください。