Alibaba Cloud の Network Load Balancer (NLB) を使用すると、RDS Custom インスタンスに効率的にトラフィックをルーティングし、バランスの取れたトラフィック分散を確保できます。このソリューションは、RDS Custom インスタンスをインターネットに接続し、内部ネットワークを保護しながら、サービスの可用性とスケーラビリティを向上させます。
前提条件
ターゲットの RDS Custom インスタンスにアプリケーションサービスをデプロイしておく必要があります。このトピックでは、Nginx サービスを例として使用します。ターゲットの RDS Custom インスタンスで、次のコマンドを実行します:
yum install -y nginx
systemctl start nginx.service
cd /usr/share/nginx/html/
echo "Hello World ! this is RDS Custom." > index.html
ステップ 1: NLB インスタンスの作成
- NLBコンソールにログインします。
-
トップナビゲーションバーで、ターゲットの RDS Custom インスタンスと同じリージョンを選択します。
-
インスタンス ページで、NLB の作成 をクリックします。
-
NLB (Pay-As-You-Go) 購入ページで、次のパラメーターを設定し、今すぐ購入 をクリックして、画面の指示に従ってインスタンスを作成します:
以下では、関連するパラメーターのみを説明します。その他のパラメーターはデフォルト値を使用します。詳細については、「NLB インスタンスの作成と管理」をご参照ください。
パラメーター
説明
[地理]
ターゲットの RDS Custom インスタンスと同じリージョンを選択します。
[Network Type]
インスタンスのネットワークタイプを選択します。選択したネットワークタイプに応じて、システムがプライベートまたはパブリックのサービスアドレスを割り当てます。このトピックでは、プライベート を選択します。
-
[プライベート]:各ゾーンにプライベート IP アドレスが提供されます。NLB インスタンスは、Alibaba Cloud 内部ネットワーク経由でのみアクセスできます (例:同じ VPC 内の ECS インスタンスから)。NLB インスタンスはインターネットからはアクセスできません。
-
[パブリック]:各ゾーンにパブリック IP アドレスとプライベート IP アドレスが提供されます。インターネット向けの NLB インスタンスは、Elastic IP アドレス (EIP) を使用してパブリックサービスを提供します。このオプションを選択した場合、EIP インスタンスおよび帯域幅またはデータ転送に対して課金されます。
[VPC]
ターゲットの RDS Custom インスタンスと同じ VPC を選択します。
[可用性ゾーン]
少なくとも 2 つのゾーンを選択します。たとえば、RDS Custom インスタンスが中国 (上海) リージョンにある場合、[中国 (上海) ゾーン E] とそのゾーンの vSwitch、および [中国 (上海) ゾーン L] とそのゾーンの vSwitch を選択できます。
[プロトコルバージョン]
インスタンスの IP バージョンを選択します。このトピックでは、[IPv4] を選択します。
[サービスにリンクされたロール]
初めて NLB インスタンスを作成する場合は、サービスアソシエーションロールの作成 をクリックして、[AliyunServiceRoleForNlb] という名前のサービスリンクロールを作成します。システムはこのロールに [AliyunServiceRolePolicyForNlb] ポリシーを付与し、NLB が他のクラウドリソースにアクセスできるようにします。詳細については、「Network Load Balancer のシステムポリシー」をご参照ください。
[インスタンス名]
インスタンスのカスタム名を入力します。
[リソースグループ]
インスタンスが属するリソースグループを選択します。
-
ステップ 2: NLB サーバーグループの作成
-
左側のナビゲーションペインで、 を選択します。
-
サーバーグループ ページで、サーバーグループの作成 をクリックします。
-
サーバーグループの作成 ダイアログボックスで、次のパラメーターを設定し、作成 をクリックします:
次の表では、主要なパラメーターのみを説明します。その他のパラメーターはデフォルト値を使用します。詳細については、「サーバーグループの作成」をご参照ください。
パラメーター
説明
[サーバーグループタイプ]
サーバーグループに追加するバックエンドサーバーのタイプです。このトピックでは、IP タイプ を選択します。
[サーバーグループ名]
サーバーグループの名前を入力します。
[VPC]
ターゲットの RDS Custom インスタンスと同じ VPC を選択します。
[バックエンドサーバープロトコル]
バックエンドプロトコルを選択します。このトピックでは、TCP を選択します。
[スケジューリングアルゴリズム]
Select a scheduling algorithm. In this topic, [重み付けラウンドロビン] is selected.
[ヘルスチェック]
ヘルスチェックをオープンし、デフォルト設定を使用します。
-
サーバーグループが作成されたら、その ID をクリックし、バックエンドサーバー タブをクリックします。
-
IP アドレスの追加 をクリックします。バックエンドサーバーの追加 パネルで、RDS Custom インスタンスのプライベート IP アドレスを入力し、次へ をクリックします。
-
[ポートと重みの設定] ステップで、ポートを 80 に設定し、デフォルトの重み 100 を維持します。その後、OK をクリックします。
説明サーバーグループで全ポート転送が有効になっている場合、バックエンドサーバーを追加する際にポートを指定する必要はありません。NLB は、フロントエンドリクエストのポートに基づいてバックエンドサーバーにトラフィックを転送します。
ステップ 3: リスナーの設定
左側のナビゲーションウィンドウで、を選択します。
-
インスタンス ページで、ターゲットインスタンスを見つけ、リスナーの作成 列の リスナーの作成 をクリックします。
-
[Server Load Balancer を設定]ウィザードで、次のパラメーターを設定し、次へ をクリックします:
以下では、関連するパラメーターのみを説明します。その他のパラメーターはデフォルト値を使用します。リスナーの設定方法の詳細については、「TCP リスナーの追加」をご参照ください。
パラメーター
説明
[リスナープロトコルの選択]
リスナーのプロトコルを選択します。このトピックでは、TCP を選択します。
[リスナーポート]
リクエストを受信し、バックエンドサーバーに転送するためのポートです。このトピックでは、80 と入力します。
[リスナー名]
リスナーのカスタム名を入力します。
[詳細設定]
デフォルト設定を使用します。編集 をクリックして変更できます。
-
サーバーグループ ステップで、サーバーグループタイプで IP タイプ を選択し、ターゲットのサーバーグループを選択します。追加されたバックエンドサーバー情報を確認し、次へ をクリックします。
-
確定 ステップで、設定を確認し、提出 をクリックします。
-
OK をクリックします。リスナー タブで、リスナーの ヘルスチェックステータス 列を確認します。ステータスが 正常 の場合、バックエンドの RDS Custom インスタンスは NLB インスタンスによって転送されたリクエストを処理できます。
ステップ 4: 結果の確認
-
NLB インスタンスの詳細ページで、インスタンスの ドメイン名 を取得します。
CNAME レコードを作成して、カスタムドメイン名を NLB インスタンスの DNS 名にマッピングできます。詳細については、「DNS レコードの追加」をご参照ください。
-
RDS Custom インスタンスと同じリージョンおよび VPC 内にある ECS インスタンスで、次の
telnetコマンドを実行してルーティングを検証します。この例では、CentOS 7 を実行する ECS インスタンスを使用します。説明telnet がインストールされていない場合は、
yum install -y telnetコマンドを実行してインストールします。telnet <target_address> <listener_port>-
target_address:NLB インスタンスの DNS 名、または RDS Custom インスタンスのプライベート IP アドレス。このトピックでは、NLB インスタンスの DNS 名を例として使用します。 -
listener_port:NLB インスタンスに設定したリスナーポート。このトピックでは、80 を例として使用します。
例:
telnet nlb-r3rw8kyfwm5bfm****.cn-shanghai.nlb.aliyuncsslb.com 80次のレスポンスが返された場合、NLB インスタンスはバックエンドサーバーにリクエストを転送できます。
Trying 47.116.XXX.XXX... Connected to nlb-r3rw8kyfwm5bfm****.cn-shanghai.nlb.aliyuncsslb.com. Escape character is '^]'. -
-
curlコマンドを実行して、RDS Custom インスタンス上の Nginx サービスのデフォルトウェブページにアクセスします。curl http://nlb-r3rw8kyfwm5bfm****.cn-shanghai.nlb.aliyuncsslb.com次のレスポンスが返されます。
Hello World ! this is RDS Custom.
(オプション) インターネットトラフィックの RDS Custom へのルーティング
-
Network Load Balancer コンソールにログインします。
-
トップナビゲーションバーで、インスタンスのリージョンを選択します。
-
インスタンス ページで、ターゲットの内部向け NLB インスタンスを見つけ、その ID をクリックします。
-
インスタンスの詳細 タブの 基本情報 セクションで、ネットワークタイプ を見つけ、IPv4 の横にある ネットワークタイプの変更 をクリックします。
-
ネットワークタイプの変更 ダイアログボックスで、EIP で IP タイプ を選択します。
-
各ゾーンの EIP の関連付け ドロップダウンリストから、EIP の購入 または既存の EIP を選択し、変更の確認 をクリックします。
説明リスト内の各ゾーンに EIP を割り当てる必要があります。
EIP の購入 を選択した場合、新しい EIP は、NLB インスタンスをリリースするか、そのネットワークタイプをインターネット向けから内部向けに変更するとリリースされます。既存の EIP を選択した場合、これらのシナリオでも EIP は保持されます。
Elastic IP Addresses コンソールで EIP の情報を表示できます。
-
インスタンスの詳細 タブで、ネットワークタイプ を確認します。
変更が有効になるまで約 1 分かかります。ネットワークタイプ タブの IPv4 の インスタンスの詳細 が パブリック に変わると、操作は成功です。
-
結果を確認します。
Web ブラウザで
http://nlb-r3rw8kyfwm5bfm****.cn-shanghai.nlb.aliyuncsslb.comにアクセスすると、ページが読み込まれてHello World ! this is RDS Custom.が表示されます。