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