Alibaba Cloud Application Load Balancer (ALB) は、HTTP、HTTPS、QUIC プロトコルをサポートし、アプリケーション層向けに設計されています。このトピックでは、IPv4 ALB インスタンスを迅速に作成し、IPv4 クライアントからのリクエストをバックエンドサーバーに転送する方法を説明します。
前提条件
中国 (上海) リージョンに VPC1 という名前の Virtual Private Cloud (VPC) を作成済みであること。また、ゾーン E に VSW1 という名前の vSwitch、ゾーン G に VSW2 という名前の vSwitch を作成済みであること。詳細については、「VPC と vSwitch の作成」をご参照ください。
ALB インスタンスを VSW1 と VSW2 にデプロイする場合、アップグレードされた ALB インスタンスは、指定された各 vSwitch から 3 つの IP アドレスを予約することにご注意ください。1 つはサービス提供用の仮想 IP アドレス (VIP)、2 つはバックエンドサーバーとの通信用のローカル IP アドレスです。vSwitch の利用可能な IP アドレスが不足している場合、インスタンスの作成は失敗します。VSW1 と VSW2 に十分な利用可能な IP アドレスがあることを確認してください。この制限は、アップグレードされていない ALB インスタンスには適用されません。
説明ALB インスタンスのアップグレード時にすべての弾力性のある機能を利用できるようにするため、インスタンスが含まれる各 vSwitch に、少なくとも 8 つの IP アドレスを予約することを推奨します。
アップグレードされた ALB インスタンスとバックエンドサービス間の適切な通信を確保するため、バックエンドサービスが iptables などのアクセス制御ポリシーを使用している場合は、ALB インスタンスの vSwitch の CIDR ブロックからのトラフィックを許可してください。
VSW1 に ECS01 という名前の Elastic Compute Service (ECS) インスタンスを、VSW2 に ECS02 という名前の ECS インスタンスを作成済みであること。ECS01 と ECS02 の両方にアプリケーションサービスがデプロイされていること。
ECS インスタンスの作成方法の詳細については、「ウィザードを使用したインスタンスの作成」をご参照ください。
以下は、ECS01 と ECS02 にテストアプリケーションをデプロイする方法の例です。
ドメイン名を登録し、ICP 登録を完了していること。詳細については、「ドメイン名の登録」および「ICP 登録プロセス」をご参照ください。
次の表は、このチュートリアルで使用される VPC の設定を示しています。この設定は参考用です。
次の表は、このチュートリアルで使用される ECS インスタンスの設定を示しています。この設定は参考用です。
手順1:ALB インスタンスの作成
ALB コンソールにログインします。
インスタンス ページで、ALB の作成 をクリックします。
Application Load Balancer (従量課金) 購入ページで、インスタンスを設定します。
ここでは、このトピックに関連する設定項目のみをリストアップしています。他のすべての設定項目については、デフォルト値を使用してください。パラメーターの詳細については、「ALB インスタンスの作成と管理」をご参照ください。
パラメーター
説明
リージョン
インスタンスをデプロイするリージョンを選択します。このチュートリアルでは [中国 (上海)] を使用します。
ネットワークタイプ
インスタンスのネットワークタイプを選択します。選択に応じて、システムはプライベートまたはパブリック IP アドレスを割り当てます。このチュートリアルでは パブリック を使用します。
VPC
インスタンスをデプロイする VPC を選択します。
ゾーン ID
少なくとも 2 つのゾーンを選択します。このチュートリアルでは、[上海ゾーン E] とその vSwitch VSW1、および [上海ゾーン G] とその vSwitch VSW2 を使用します。
IP バージョン
インスタンスの IP バージョンを選択します。このチュートリアルでは [IPv4] を使用します。
エディション (インスタンス料金)
インスタンスのエディションを選択します。このチュートリアルでは Standard を使用します。
インスタンス名
インスタンスのカスタム名を入力します。
サービスにリンクされたロール
初めて ALB インスタンスを作成する場合、[サービスリンクロールの作成] をクリックして AliyunServiceRoleForAlb という名前のサービスリンクロールを作成する必要があります。システムはこのロールに AliyunServiceRolePolicyForAlb 権限ポリシーをアタッチし、ALB が他のクラウドリソースにアクセスできるようにします。詳細については、「負荷分散のシステム権限ポリシー」をご参照ください。
今すぐ購入 をクリックし、画面の指示に従って購入を完了します。
インスタンス ページに戻ります。新しいインスタンスが、選択したリージョンのリストに表示されます。
手順2:サーバーグループの作成
左側のナビゲーションウィンドウで、を選択します。
サーバーグループ ページで、サーバーグループの作成 をクリックします。
サーバーグループの作成 ダイアログボックスで、サーバーグループのパラメーターを設定し、作成 をクリックします。
ここでは、このトピックに密接に関連する設定項目のみをリストアップしています。他のすべての設定項目については、デフォルト値を使用してください。パラメーターの詳細については、「サーバーグループの作成/削除」をご参照ください。
パラメーター
説明
サーバーグループタイプ
サーバーグループのタイプを選択します。このチュートリアルでは サーバー を使用します。
サーバーグループ名
サーバーグループの名前を入力します。
VPC
ECS インスタンスが含まれる VPC を選択します。
説明選択した VPC が、ALB インスタンス作成時に選択したものと同じであることを確認してください。
バックエンドサーバープロトコル
バックエンドプロトコルを選択します。このチュートリアルでは [HTTP] を使用します。
スケジューリングアルゴリズム
スケジューリングアルゴリズムを選択します。このチュートリアルでは 重み付けラウンドロビン を使用します。
セッション維持の有効化
セッション維持を有効または無効にします。このチュートリアルではデフォルト設定 (無効) を使用します。
バックエンドの持続的接続
バックエンドの接続保持を有効または無効にします。このチュートリアルではデフォルト設定 (有効) を使用します。
ヘルスチェック
ヘルスチェックを有効または無効にします。このチュートリアルではこの機能は有効になっています。
ヘルスチェック
ヘルスチェックを有効にした後、詳細設定を行うには編集をクリックします。
サーバーグループが作成されました ダイアログボックスで、バックエンドサーバーの追加 をクリックします。
バックエンドサーバー タブで、バックエンドサーバーの追加 をクリックします。
バックエンドサーバーの追加 パネルで、作成した ECS01 および ECS02 インスタンスを選択し、次へ をクリックします。
ポート/重み ウィザードで、追加されたサーバーの ポート と 重み を設定し、OK をクリックします。
このチュートリアルでは、ECS インスタンスのポートは 80 に設定され、重みはデフォルト値の 100 に設定されています。
手順3:リスナーの設定
左側のナビゲーションウィンドウで、 を選択し、インスタンス ID をクリックします。
リスナー タブをクリックし、リスナーの作成 をクリックします。
リスナーの設定 ウィザードページで、構成を完了し、次へ をクリックします。
このセクションでは、このトピックに関連するパラメーターのみをリストアップしています。他のすべてのパラメーターについては、デフォルト値を使用してください。リスナーの設定方法の詳細については、「HTTP リスナーの追加」をご参照ください。
パラメーター
説明
リスナープロトコル
リスナーのプロトコルを選択します。このチュートリアルでは [HTTP] を使用します。
リスナーポート
リクエストを受信し、バックエンドサーバーに転送するために使用されるリスナーポート。このチュートリアルではポート 80 を使用します。
リスナー名
リスナーのカスタム名を入力します。
詳細設定
デフォルト設定を使用します。変更 をクリックして設定を変更できます。
サーバーグループ 設定ウィザードで、サーバータイプ を選択し、サーバータイプ の下にある対象のサーバーグループを選択して、バックエンドサーバー情報を確認し、次へ をクリックします。
設定の確認 ページで、構成を確認し、送信 をクリックします。
OK をクリックして リスナー タブに戻ります。リスナーの ヘルスチェックステータス 列に 正常 と表示されると、バックエンドサーバーの ECS01 と ECS02 は、 ALB インスタンスによって転送されたリクエストを処理できます。
手順4:DNS 設定
本番環境では、CNAME レコードを作成して、カスタムドメイン名を ALB インスタンスのドメイン名にマッピングすることを推奨します。
ロードバランサーのドメイン名がアップグレードされました。ALB が提供する DNS 名を使用して直接サービスにアクセスすることはできなくなりました。
左側のナビゲーションウィンドウで、 を選択します。
インスタンス ページで、作成された ALB インスタンスの DNS 名をコピーします。
次の手順に従って CNAME レコードを追加します。
説明ドメイン名が Alibaba Cloud 以外のプロバイダーによって登録されている場合は、DNS 設定を行う前に、ドメイン名を Alibaba Cloud DNS コンソールに追加する必要があります。詳細については、「ドメイン名の管理」をご参照ください。ドメイン名が Alibaba Cloud に登録されている場合は、次の手順に進んでください。
Alibaba Cloud DNS コンソールにログインします。
インターネットの権威ある DNS 解決 ページで、対象のドメイン名を見つけ、操作 列の 解決設定 をクリックします。
解決設定 ページで、Add Record をクリックします。
Add Record パネルで、次のパラメーターを設定して CNAME レコードを構成し、OK をクリックします。
パラメーター
説明
レコードタイプ
ドロップダウンリストから [CNAME] を選択します。
ホストレコード
ドメイン名のプレフィックス。このチュートリアルでは @ を使用します。
説明ルートドメインを使用するには、ホスト名を
@に設定します。Query Source
デフォルトを選択します。
レコード値
コピーした ALB インスタンスの DNS 名を入力します。
TTL
Time to Live (TTL) は、DNS レコードが DNS サーバーにキャッシュされる期間です。デフォルト値を使用します。
手順5:接続性のテスト
クライアントと ECS01 および ECS02 サーバー間の接続性をテストします。このチュートリアルでは、パブリックネットワークアクセスを持つクライアントを例として使用します。
ブラウザのアドレスバーに、ドメイン名 (例:http://<yourdomain.com>) を入力します。ページを複数回更新します。表示されるメッセージが交互に変わり、ALB が両方のバックエンドサーバーにリクエストを分散していることを示します。
応答の 1 つは Hello World ! This is ECS01. となり、リクエストが ECS01 サーバーに転送されたことを示します。
Hello World ! This is ECS02.これにより、クライアントが ALB インスタンスを使用して、ラウンドロビン方式で異なるバックエンドサーバーにアクセスできることが確認されます。
DNS 設定を行っていない場合は、ALB インスタンスに割り当てられた EIP (Elastic IP) を使用してサービスの接続性をテストすることもできます。ALB インスタンスの詳細ページで、ゾーン情報セクションの各ゾーンにバインドされている EIP を表示します。ブラウザで http://<EIP address> と入力するか、curl http://<EIP address> を実行します。インターネット向けの ALB インスタンスはゾーンごとに 1 つの EIP を割り当て、これらの EIP のいずれかを使用してテストできます。バックエンドサーバーの応答が返された場合、ALB サービスは正常に動作しています。
EIP への直接アクセスは、テストおよびデバッグ専用です。本番環境では、マルチゾーンの高可用性負荷分散のために、ドメイン名を ALB の DNS 名にマッピングするように DNS 設定を構成してください。
リソースのクリーンアップ
ECS、セキュリティグループ、その他のリソースをクリーンアップします。
ECS01 インスタンスとそのセキュリティグループを削除します。
Elastic Compute Service コンソールにログインします。上部のナビゲーションバーで、インスタンスが配置されているリージョンを選択します。ECS01 インスタンスを見つけ、[操作] 列の
アイコンをクリックし、表示されるダイアログボックスで [リリース] を選択し、リリースを確認します。ECS セキュリティグループコンソールにログインします。上部のナビゲーションバーで、インスタンスが配置されているリージョンを選択し、ECS01 のカスタムセキュリティグループを選択して [削除] をクリックします。
上記の手順に従って、ECS02 インスタンスとそれに対応するセキュリティグループを削除します。
DNS レコードを削除します
詳細については、「DNS レコードの削除」をご参照ください。
ALB リソースをクリーンアップします。
ALB インスタンスをリリースします。続行する前に、関連付けられているリスナーを削除したことを確認してください。ALB コンソールにログインします。上部のナビゲーションバーで、インスタンスが配置されているリージョンを選択します。インスタンスを見つけ、[操作] 列の
アイコンをクリックし、表示されたダイアログボックスで リリース を選択して、操作を確定します。サーバーグループからバックエンドサーバーを削除します。詳細については、「サーバーグループの作成と管理」をご参照ください。
サーバーグループを削除します。詳細については、「サーバーグループの作成と管理」をご参照ください。
VPC リソースをクリーンアップします。
Virtual Private Cloud コンソールにログインします。上部のナビゲーションバーで、インスタンスが配置されているリージョンを選択します。
インスタンスの [操作] 列で [削除] をクリックします。システムは、削除されていないクラウドリソースまたは関連リソースをチェックします。依存リソースが存在する場合、VPC と vSwitch を削除する前に、それらを完全にリリースする必要があります。
関連ドキュメント
ALB のユースケースとコンポーネントについては、「Application Load Balancer とは」をご参照ください。
ALB の機能については、「特徴」をご参照ください。
ALB が利用可能なリージョンのリストについては、「ALB をサポートするリージョンとゾーン」をご参照ください。
ALB のクォータと増加リクエストの方法については、「クォータと制限」をご参照ください。
ALB の課金については、「ALB の課金」をご参照ください。