Application Load Balancer (ALB) は、HTTP、HTTPS、およびQuick UDP Internet Connections (QUIC) プロトコルをサポートし、レイヤー7でアプリケーションの負荷を分散するように設計されています。 このトピックでは、IPv4をサポートするALBインスタンスを作成して、IPv4クライアントからバックエンドサーバーにリクエストを転送する方法について説明します。
前提条件
仮想プライベートクラウド (VPC) が中国 (上海) リージョンにデプロイされています。 VPCの名前はVPC1です。 vSwitch (VSW1) はゾーンEにデプロイされ、別のvSwitch (VSW2) はゾーンGにデプロイされます。詳細については、「VPCとvSwitchの作成」をご参照ください。
Elastic Compute Service (ECS) インスタンス (ECS01) がVSW1にデプロイされ、別のECSインスタンス (ECS02) がVSW2にデプロイされています。
ECSインスタンスの作成方法の詳細については、「ウィザードを使用したインスタンスの作成」をご参照ください。
次のコードブロックは、ECS01およびECS02にアプリケーションをデプロイする方法を示しています。
ドメイン名を登録し、そのドメイン名に対してICP (Internet content provider) 番号を取得する。 詳細については、「ジェネリックドメイン名の登録」および「ICPファイリングプロセス」をご参照ください。
次の表に、VPC1の設定を示します。 構成は参照だけのためです。
次の表に、ECS01およびECS02の設定を示します。 構成は参照だけのためです。
手順1: ALBインスタンスの作成
ALBコンソールにログインします。
インスタンスページで、ALBの作成をクリックします。
Application Load Balancer購入ページで、次の表で説明するパラメーターを設定します。
次の表に、一部のパラメーターのみを示します。 他のパラメーターにはデフォルト値を使用します。 パラメーターの詳細については、「ECSインスタンスの作成」をご参照ください。
パラメーター
説明
リージョン
ALBインスタンスを作成するリージョン。 この例では、中国 (上海) が選択されています。
ネットワークタイプ
ALBインスタンスのネットワークタイプを選択します。 選択したネットワークタイプに基づいて、ALBインスタンスにパブリックIPアドレスまたはプライベートIPアドレスが割り当てられます。 この例では、インターネットが選択されています。
[VPC]
ALBインスタンスをデプロイするVPCを選択します。
ゾーン
少なくとも2つのゾーンを選択します。 この例では、上海ゾーンEと上海ゾーンGが選択され、ゾーンEのVSW1とゾーンGのVSW2が選択されています。
IPモード
ALBインスタンスのIPモードを選択します。 この例では、[静的IP] が選択されています。
IPバージョン
ALBインスタンスのIPバージョンを選択します。 この例では、IPv4が選択されています。
エディション
ALBインスタンスのエディションを選択します。 この例では、[標準] が選択されています。
[インスタンス名]
ALBインスタンスの名前を入力します。
サービスにリンクされたロール
初めてALBインスタンスを作成するときは、[サービスにリンクされたロールの作成] をクリックしてAliyunServiceRoleForAlbロールを作成します。 ALBインスタンスが他のクラウドサービスにアクセスできるように、ポリシーAliyunServiceRolePolicyForAlbがサービスにリンクされたロールにアタッチされています。 詳細については、「ALBのシステムポリシー」をご参照ください。
[今すぐ購入] をクリックして、支払いを完了します。
インスタンスページを開き、ALBインスタンスがデプロイされているリージョンを選択して、ALBインスタンスを表示します。
手順2: サーバーグループの作成
左側のナビゲーションウィンドウで、を選択します。
サーバーグループページで、サーバーグループの作成をクリックします。
サーバーグループの作成ダイアログボックスでパラメーターを設定し、作成をクリックします。
次の表に、一部のパラメーターのみを示します。 他のパラメーターはデフォルト値を使用します。 詳細については、「サーバーグループの作成と管理」をご参照ください。
パラメーター
説明
サーバーグループタイプ
サーバーグループタイプを選択します。 この例では、[サーバー] が選択されています。
サーバーグループ名
サーバーグループの名前を入力します。
[VPC]
ECSインスタンスがデプロイされているVPCを選択します。
説明ALBインスタンスがデプロイされているVPCを選択します。
バックエンドサーバープロトコル
バックエンドプロトコルを選択します。 この例では、HTTPが選択されています。
スケジューリングアルゴリズム
スケジューリングアルゴリズムを選択します。 この例では、[加重ラウンドロビン] が選択されています。
セッション永続性
セッション維持を有効または無効にします。 この例では、デフォルト値が使用されます。 セッション維持が有効にされている場合
バックエンド永続接続
永続接続機能を有効にするかどうかを指定します。 この例では、永続的なTCP接続機能は無効になっています。
ヘルスチェック
ヘルスチェック機能を有効にするかどうかを示します。 この例では、ヘルスチェック機能が有効になっています。
ヘルスチェックの設定
ヘルスチェック機能を有効にした後、[変更] をクリックしてヘルスチェックの設定を行います。
サーバーグループが作成されます。メッセージで、 [バックエンドサーバーの追加] をクリックします。
表示されるページのバックエンドサーバータブで、バックエンドサーバーの追加をクリックします。
バックエンドサーバーの追加パネルで、ECS01およびECS02を選択して次へをクリックします。
ポート /重みステップを指定し、ECSインスタンスのポートと重量を指定し、OKをクリックします。
この例では、両方のECSインスタンスがポート番号80とデフォルトの重み100を使用します。
手順3: リスナーの設定
左側のナビゲーションウィンドウで、 を選択します。 [インスタンス] ページで、管理するALBインスタンスのIDをクリックします。
リスナータブで、リスナーの作成をクリックします。
リスナーの設定ステップで、パラメータを設定し、次へをクリックします。
次の表に、一部のパラメーターのみを示します。 他のパラメーターはデフォルト値を使用します。 詳細については、「HTTPリスナーの追加」をご参照ください。
パラメーター
説明
リスナープロトコルの選択
リスナープロトコルを選択します。 この例では、HTTPが選択されています。
リスナーポート
リクエストを受信してバックエンドサーバーに転送するリスナーポートを指定します。 この例では、ポート80が指定されています。
リスナー名
リスナーの名前を入力します。
詳細設定
この例では、デフォルト設定を使用します。 [変更] をクリックして、設定を変更できます。
サーバーグループステップで、サーバータイプパラメーターを設定し、サーバータイプに基づいてサーバーグループを選択します。バックエンドサーバーを確認し、次へ をクリックします。
構成レビューステップで、設定を確認し、送信をクリックします。
OK をクリックして [リスナー] タブに戻ります。 ヘルスチェックステータス 列のリスナーステータスが [正常] の場合、ECS01とECS02はALBインスタンスによって転送されたリクエストを処理できます。
ステップ4: CNAMEレコードの作成
実際のビジネスシナリオでは、CNAMEレコードを使用して、カスタムドメイン名をALBインスタンスのドメイン名にマップすることを推奨します。
左側のナビゲーションウィンドウで、
を選択します。インスタンスページで、ALBインスタンスのドメイン名をコピーします。
CNAMEレコードを作成するには、次の手順を実行します。
説明ドメイン名がAlibaba Cloudドメインを使用して登録されていない場合、DNSレコードを設定する前にドメイン名をAlibaba Cloud DNSに追加する必要があります。 詳細については、「ドメイン名の管理」をご参照ください。
Alibaba Cloud DNSコンソールにログインします。
権威DNS解決ページで、ドメイン名を見つけて、アクション列でDNS設定をクリックします。
ドメイン名の詳細ページのDNS設定タブで、DNSレコードの追加をクリックします。
[DNSレコードの追加] パネルでパラメーターを設定し、[OK] をクリックします。 下表にパラメーターを示します。
パラメーター
説明
レコードタイプ
ドロップダウンリストから [CNAME] を選択します。
ホスト名
ドメイン名のプレフィックスを入力します。 この例では、@ を入力します。
説明ルートドメイン名を使用する場合は、
@
と入力します。DNSリクエストソース
[デフォルト] を選択します。
レコード値
ALBインスタンスのドメイン名であるCNAMEを入力します。
TTL
DNSサーバーにキャッシュされるCNAMEレコードの有効期限 (TTL) 値を選択します。 この例では、デフォルト値が使用されます。
ステップ5: ネットワーク接続のテスト
クライアント、ECS01、およびECS02間の接続をテストします。 この例では、インターネットへのアクセスを有するランダムクライアントが使用される。 ブラウザのアドレスバーにドメイン名を入力します (例: http://<domain name>
) 。 ブラウザを複数回更新します。 結果は、要求がECS01とECS02の間で分配されることを示す。
上記の結果は、クライアントがバックエンドサーバーにアクセスできることを示しており、ALBインスタンスはラウンドロビンアルゴリズムに基づいてバックエンドサーバーにリクエストを配信します。
リリースリソース
ECSインスタンスとセキュリティグループをリリースします。
DNSレコードの削除
詳細については、「DNSレコードの削除」をご参照ください。
ALBリソースをリリース:
にログインします。ALBコンソール. 上部のナビゲーションバーで、ALBインスタンスのリージョンを選択します。 リリースするALBインスタンスを見つけ、[操作] 列のアイコンをクリックし、[リリース] をクリックします。 [インスタンスのリリース] メッセージで、[確認] をクリックします。
バックエンドサーバーを削除する方法の詳細については、「バックエンドサーバーの削除」をご参照ください。
サーバーグループを削除する方法の詳細については、「サーバーグループの削除」をご参照ください。
VPCリソースのリリース:
VPCコンソールにログインします。 上部のナビゲーションバーで、VPCが存在するリージョンを選択します。
[操作] 列の [削除] をクリックし、[強制削除] を選択してVPCとvSwitchを削除します。
関連ドキュメント
ALBの使用シナリオとコンポーネントの詳細については、ALBとは何ですか? をご参照ください。
ALBの機能の詳細については、「機能と機能」をご参照ください。
ALBが使用可能なリージョンの詳細については、「ALBが使用可能なリージョンとゾーン」をご参照ください。
ALBクォータとクォータの増加の詳細については、「制限」をご参照ください。
ALBの課金の詳細については、「ALB課金」をご参照ください。