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