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