Application Load Balancer (ALB) を使用してリクエストを分散するには、サーバーグループを作成し、少なくとも 1 つのバックエンドサーバーをサーバーグループに追加してリクエストを受信します。 デフォルトでは、ALB はサーバーグループに指定したポートとプロトコルを使用して、指定したバックエンドサーバーにリクエストを分散します。
前提条件
バックエンドサーバーをサーバーグループに追加する前に、バックエンドサーバーがデプロイされたアプリケーションでリクエストを処理する準備ができていることを確認してください。
サーバーグループにトラフィックをルーティングするには、リスナーを作成するときにサーバーグループを指定します。 リスナーの作成については、「HTTP リスナーを追加する」、「HTTPS リスナーを追加する」、または「QUIC リスナーを追加する」をご参照ください。
(オプション) サーバーグループで IPv6 を有効にするには、サーバーグループをデプロイする仮想プライベートクラウド (VPC) で IPv6 CIDR ブロックが有効になっている必要があります。
ALB インスタンスは、バックエンドサーバーとの通信およびヘルスチェックの実行に特定の IP アドレスを使用します。 バックエンドサーバーが iptables ルールまたはその他の方法でこれらの IP アドレスをブロックしていないことを確認してください。
アップグレードされた ALB インスタンス は、デフォルトでバックエンドサーバーとの通信に、デプロイされている vSwitch から割り当てられたローカル IP アドレスを使用します。 ALB コンソール にログインし、インスタンスの詳細ページでインスタンスのローカル IP アドレスを確認します。
ALB インスタンスが想定どおりにリソースをスケーリングするように、ALB インスタンスがデプロイされている vSwitch の CIDR ブロックに少なくとも 8 つの IP アドレスを予約し、CIDR ブロックからのアクセスを許可するようにバックエンドサーバーを構成することをお勧めします。
アップグレードされていない ALB インスタンスは、100.64.0.0/10 CIDR ブロックの IP アドレスを使用してバックエンドサーバーと通信します。
サーバーグループを作成する
[ALB コンソール] にログインします。
上部のナビゲーションバーで、サーバーグループを作成するリージョンを選択します。
左側のナビゲーションウィンドウで、 を選択します。
サーバーグループ ページで、サーバーグループの作成 をクリックします。
[サーバーグループの作成] ダイアログボックスで、パラメーターを構成し、作成 をクリックします。 次の表でパラメーターについて説明します。
サーバー: バックエンドサーバーは、ECS インスタンス、Elastic Network Interface (ENI)、および Elastic Container Instance を指定することで追加されます。
IP: バックエンドサーバーは、IP アドレスを指定することで追加されます。
Function Compute: バックエンドサーバーは、関数を指定することで追加されます。
HTTP: これはデフォルト値です。 このオプションを選択した場合、サーバーグループを HTTPS、HTTP、および QUIC リスナーに関連付けることができます。
HTTPS: このオプションを選択した場合、サーバーグループを HTTPS リスナーに関連付けることができます。
gRPC: このオプションを選択した場合、サーバーグループを HTTPS リスナーに関連付けることができます。
HTTPS または gRPC を使用するサーバーグループのみを、ベーシック ALB インスタンスの HTTPS リスナーに関連付けることができます。
このパラメーターは、Function Compute タイプのサーバーグループでは使用できません。
重み付けラウンドロビン: 重みの大きいバックエンドサーバーは、重みの小さいバックエンドサーバーよりも多くのリクエストを受信します。
重み付け最小接続数: リクエストは、バックエンドサーバーへの重みと接続数に基づいて分散されます。 2 つのバックエンドサーバーの重みが同じ場合、リクエストは接続数の少ないバックエンドサーバーに転送されます。
コンシステントハッシュ: 同じ送信元 IP アドレスからのリクエストは、同じバックエンドサーバーに転送されます。
ハッシュ係数: ハッシュ係数を選択します。
送信元 IP: 同じ送信元 IP アドレスからのリクエストは、同じバックエンドサーバーに転送されます。
URL パラメーター: 同じ URL へのリクエストは、同じバックエンドサーバーに転送されます。 この操作を選択した場合は、[指定 URL] パラメーターを構成します。
タグを追加するには、[タグキー] と [タグ値] を指定します。
リソースグループ: サーバーグループを所属させるリソースグループを選択します。
IPv6 を有効にすると、IPv4 および IPv6 バックエンドサーバーをサーバーグループに追加できます。
IPv6 を無効にすると、IPv4 バックエンドサーバーのみをサーバーグループに追加できます。
サーバータイプまたは IP タイプのサーバーグループはこのパラメーターをサポートしますが、Function Compute タイプのサーバーグループはサポートしません。
サーバーグループがデプロイされている VPC で IPv6 が有効になっている場合 にのみ、このパラメーターを使用できます。
IPv6 が有効になっているサーバーグループは、デュアルスタック ALB インスタンスのリスナーおよび転送ルールにのみ関連付けることができます。
IPv6 が有効になっている IP タイプのサーバーグループの場合:
アップグレードされたデュアルスタック ALB インスタンスのリスナーおよび転送ルールにのみ関連付けることができ、アップグレードされていない ALB インスタンスには関連付けることができません。
サーバーグループがデプロイされている VPC の CIDR ブロック内の IPv6 アドレスのみを、バックエンドサーバーとしてサーバーグループに追加できます。 リモート IP アドレスはサポートされていません。
Cookie オプション: Cookie を処理する方法を選択します。
Cookie を挿入: ALB は、クライアントに送信される最初の HTTP または HTTPS レスポンスにセッション Cookie (SERVERID) を挿入します。 後続の ALB へのリクエストがこの Cookie を保持している場合、ALB は Cookie に基づいてリクエストの宛先サーバーを決定します。ALBALB
Cookie を書き換え: ALB がユーザー定義の Cookie を検出した場合、ALB は元の Cookie をユーザー定義の Cookie に置き換えます。 後続の ALB へのリクエストがこのユーザー定義の Cookie を保持している場合、ALB は Cookie に基づいてリクエストの宛先サーバーを決定します。ALBALB
セッション維持タイムアウト期間: セッション維持のタイムアウト期間を指定します。 有効な値: 1 ~ 86400。 単位: 秒。
クロスゾーンロードバランシングが無効になっているサーバーグループは、スタンダード ALB インスタンスおよび WAF 対応 ALB インスタンスにのみ関連付けることができます。 ベーシック ALB インスタンスには関連付けることができません。
クロスゾーンロードバランシングが無効になっている場合、[セッション維持] を有効にすることはできません。
IP タイプのサーバーグループの場合、[リモート IP] が有効になっている場合、クロスゾーンロードバランシングを無効にすることはできません。
このパラメーターは、Function Compute タイプのサーバーグループでは使用できません。
標準および WAF 対応 ALB インスタンスのみがスロースタートモードをサポートしています。ベーシック ALB インスタンスはスロースタートモードをサポートしていません。
このパラメーターは、Function Compute タイプのサーバーグループでは使用できません。
[スケジューリングアルゴリズム] を [重み付けラウンドロビン] に設定した場合にのみ、サーバーグループでスロースタートモードがサポートされます。
スロースタートモードを有効にしても、正常なバックエンドサーバーは自動的にスロースタートモードになりません。
空のサーバーグループに対してスロースタートモードを有効にする場合:
サーバーグループに追加された最初のバックエンドサーバーは、スロースタートモードになりません。
新しいバックエンドサーバーは、少なくとも 1 つの正常なバックエンドサーバーがスロースタートモードになっている場合にのみ、スロースタートモードになることができます。
スロースタート期間が終了する前に削除されたバックエンドサーバーは、自動的にスロースタートモードを終了します。 バックエンドサーバーをサーバーグループに再度追加する場合、バックエンドサーバーはヘルスチェックに合格した場合にのみスロースタートモードになることができます。
スロースタート期間が終了する前にバックエンドサーバーが異常と宣言された場合、バックエンドサーバーはスロースタートモードを終了します。 バックエンドサーバーは、ヘルスチェックに合格するとスロースタートモードに再び入ります。
スロースタートモードとヘルスチェックを有効にした後、正常なバックエンドサーバーのみがスロースタートモードになります。 ヘルスチェックを無効にすると、すべてのバックエンドサーバーがすぐにスロースタートモードになります。
デフォルトでは、接続ドレインは無効になっています。 既存の接続は、クライアントが積極的に接続を閉じたり、セッション維持期間が終了するまで開いたままになります。
接続ドレインを有効にすると、既存の接続は、接続ドレインのタイムアウト期間が終了するまでデータ転送のために開いたままになります。 接続ドレインにより、サービスのアンデプロイがスムーズに行われます。
スタンダード ALB インスタンスと WAF 対応 ALB インスタンスのみが接続ドレインをサポートします。 ベーシック ALB インスタンスは接続ドレインをサポートしていません。
このパラメーターは、Function Compute タイプのサーバーグループでは使用できません。
ヘルスチェックを作成する場合、サーバーグループまたはリスナーを指定する必要はありません。 ヘルスチェックが作成された後、ヘルスチェックをサーバーグループまたはリスナーに関連付けることができます。
各バックエンドサーバーに対して 1 つのヘルスチェックのみを構成できます。
HTTP: HTTP ヘルスチェックを実行するために、ALB は HEAD または GET リクエストをバックエンドサーバーに送信して、バックエンドサーバーが正常かどうかを確認します。
HTTPS: ALB は、HEAD または GET リクエストをバックエンドサーバーに送信して HTTPS ヘルスチェックを実行し、バックエンドサーバーが正常かどうかを確認します。 詳細については、このトピックの「HTTPS ヘルスチェックの制限」セクションをご参照ください。
TCP: ALB は、SYN パケットをバックエンドサーバーに送信して TCP ヘルスチェックを実行し、バックエンドサーバーのポートがリクエストを受信できるかどうかを確認します。
gRPC: ALB は、POST または GET リクエストをバックエンドサーバーに送信して gRPC ヘルスチェックを実行し、バックエンドサーバーが正常かどうかを確認します。
HEAD: デフォルトでは、HTTP ヘルスチェックは HEAD メソッドを使用します。 バックエンドサーバーが HEAD リクエストをサポートしていることを確認してください。 バックエンドサーバーが HEAD メソッドをサポートしていないか、HEAD メソッドが無効になっている場合、ヘルスチェックが失敗する可能性があります。 この場合は、GET メソッドを使用できます。
POST: デフォルトでは、gRPC ヘルスチェックは POST メソッドを使用します。 バックエンドサーバーが POST リクエストをサポートしていることを確認してください。 バックエンドサーバーが POST メソッドをサポートしていないか、POST メソッドが無効になっている場合、ヘルスチェックが失敗する可能性があります。 この場合は、GET メソッドを使用できます。
GET: レスポンスのサイズが 8 KB を超える場合、レスポンスは切り捨てられます。 ヘルスチェックの結果は影響を受けません。
このパラメーターは、[HTTP]、[HTTPS]、または [gRPC] がヘルスチェックプロトコルとして指定されている場合にのみ有効になります。
[HTTP] および [HTTPS] ヘルスチェックは、[HEAD] および [GET] ヘルスチェックメソッドをサポートします。 [gRPC] ヘルスチェックは、[POST] および [GET] ヘルスチェックメソッドをサポートします。
バックエンドサーバーポート: ALB は、バックエンドサーバーのポートを使用してヘルスチェックを実行します。 これはデフォルト値です。
カスタムポート: ALB は、指定されたポートを使用してヘルスチェックを実行します。 有効な値: 1 ~ 65535。
バックエンドサーバー内部 IP: バックエンドサーバーのプライベート IP アドレスがヘルスチェックに使用されます。 これはデフォルト値です。
カスタムドメイン名: ドメイン名を入力します。 ドメイン名は 1 ~ 80 文字で、小文字、数字、ピリオド (.)、ハイフン (-) のみを含めることができます。 ドメイン名には少なくとも 1 つのピリオド (.) が含まれている必要がありますが、ピリオド (.) で開始または終了することはできません。
ヘルスチェックプロトコルが [HTTP] または [HTTPS] に設定されている場合、[http_2xx]、[http_3xx]、[http_4xx]、および [http_5xx] を選択できます。 [http_2xx] および [http_3xx] はデフォルトで選択されています。
Health Check Protocol パラメーターを [gRPC] に設定した場合、有効値は 0 ~ 99 です。値の範囲がサポートされています。最大 20 個の値の範囲を入力できます。複数の値の範囲はコンマ (,) で区切ります。
パラメーター | 説明 |
サーバーグループタイプ | バックエンドサーバーをサーバーグループに追加する方法を指定します。 有効な値: |
サーバーグループ名 | サーバーグループのカスタム名。 |
VPC | VPC ドロップダウンリストから VPC を選択します。 VPC 内のサーバーのみをサーバーグループに追加できます。 説明 このパラメーターは、Function Compute タイプのサーバーグループでは使用できません。 |
バックエンドサーバープロトコル | バックエンドプロトコルを選択します。 有効な値: 説明 |
スケジューリングアルゴリズム | スケジューリングアルゴリズムを選択します。 有効な値: 説明 このパラメーターは、Function Compute タイプのサーバーグループでは使用できません。 |
タグとリソースグループ | 必要に応じて、タグとリソースグループを指定します。 |
IPv6 | IPv6 を有効にするかどうかを指定します。 IPv6 はデフォルトで無効になっています。 説明 |
セッション維持 | セッション維持を有効にするかどうかを指定します。 セッション維持はデフォルトで無効になっています。 セッション維持が有効になっている場合、ALB はクライアントからのすべてのリクエストを同じバックエンドサーバーに転送します。 説明 このパラメーターは、Function Compute タイプのサーバーグループでは使用できません。 |
クロスゾーンロードバランシング | クロスゾーンロードバランシングを有効にするかどうかを指定します。 クロスゾーンロードバランシングはデフォルトで有効になっています。 ALB は、同じリージョン内のすべてのゾーンにデプロイされているバックエンドサービスにリクエストを分散します。 クロスゾーンロードバランシングが無効になっている場合、ALB は単一ゾーンにデプロイされているバックエンドサービスにリクエストを分散します。 説明 |
バックエンドの持続的接続 | バックエンドの持続的接続機能を有効にするかどうかを指定します。 デフォルトでは、この機能は有効になっています。 バックエンドの持続的接続が有効になっている場合、ALB とバックエンドサーバー間で特定の数の TCP 接続が維持されます。 ALB インスタンスが新しいリクエストを受信し、アイドル状態の持続的 TCP 接続が存在する場合、ALB は優先的にその TCP 接続を使用してリクエストをバックエンドサーバーに転送します。 これにより、TCP ハンドシェイクの数とバックエンドサーバーの負荷が軽減されます。ALBALB 説明 このパラメーターは、Function Compute タイプのサーバーグループでは使用できません。 |
スロースタート | ビジネス要件に基づいてスロースタートモードを有効にします。 スロースタートモードはデフォルトで無効になっています。 スロースタートモードを有効にするには、[スロースタート期間] パラメーターを構成します。 有効な値: 30 ~ 900。 デフォルト値: 30。 単位: 秒。 スロースタートモードを有効にすると、ALB はスケールアウトされたバックエンドサーバーに転送されるリクエスト数を徐々に増やし、リソースの準備、キャッシング、プリフェッチなどのシナリオにおけるトラフィックの急増を防ぎます。スロースタート期間が終了すると、ALB は重みに基づいてバックエンドサーバーにリクエストを転送します。スロースタート期間の終了後にスケールアウトされたバックエンドサーバーは、スロースタートモードになりません。 説明 |
接続ドレイン | 接続ドレインを有効にするかどうかを指定します。 デフォルトでは、接続ドレインは無効になっています。 接続ドレインを有効にするには、[タイムアウト期間] パラメーターを構成します。 有効な値: 0 ~ 900。 デフォルト値: 300。 単位: 秒。 値 0 は即時切断を指定します。 バックエンドサーバーを削除するか、バックエンドサーバーが異常と宣言された場合: 説明 |
ヘルスチェック | ヘルスチェックを有効にするかどうかを指定します。 |
ヘルスチェック設定 | ヘルスチェックを有効にした場合は、[ヘルスチェック設定] の右側にある [変更] をクリックして、その他のヘルスチェック設定を表示できます。 |
ヘルスチェックの選択とロード | ヘルスチェックを選択してロードします。 説明 |
ヘルスチェックプロトコル | ヘルスチェックのプロトコルを選択します。 HTTPS ヘルスチェックの制限事項の詳細については、「HTTPS ヘルスチェックの制限」をご参照ください。 |
ヘルスチェックメソッド | ヘルスチェックメソッドを指定します。 有効な値: 説明 |
ヘルスチェックプロトコルバージョン | HTTP バージョンを選択します。 有効な値: [HTTP1.0] および [HTTP1.1]。 説明 このパラメーターは、ヘルスチェックプロトコルとして [HTTP] または [HTTPS] が指定されている場合にのみ有効になります。 |
ヘルスチェックポート | ヘルスチェックを実行するポートを指定します。 |
ヘルスチェックパス | ヘルスチェックページの URL を入力します。 URL は 1 ~ 80 文字で、文字、数字、ハイフン (-)、スラッシュ (/)、ピリオド (.)、パーセント記号 (%)、疑問符 (?)、番号記号 (#)、アンパサンド (&) を使用できます。 URL には、次の拡張文字を含めることもできます: |
ヘルスチェックドメイン名 | ヘルスチェックに使用するドメイン名を入力します。 |
ヘルスチェックステータスコード | 1 つ以上の HTTP ステータスコードを選択します。 指定された HTTP ステータスコードは、バックエンドサーバーがヘルスチェックに合格したことを示すために使用されます。 説明 このパラメーターは、ヘルスチェックプロトコルとして [HTTP]、[HTTPS]、または [gRPC] が指定されている場合にのみ有効になります。 |
レスポンスタイムアウト期間 | ヘルスチェックレスポンスのタイムアウト期間を指定します。 バックエンドサーバーが指定されたタイムアウト期間内に応答しない場合、サーバーはヘルスチェックに失敗します。 |
ヘルスチェック間隔 | 2 つの連続したヘルスチェックの間隔を指定します。 |
正常しきい値 | 異常なバックエンドサーバーが正常と宣言されるまでに連続してヘルスチェックに合格する必要がある回数を指定します。 |
異常しきい値 | 正常なバックエンドサーバーが異常と宣言されるまでに連続してヘルスチェックに失敗する必要がある回数を指定します。 |
ヘルスチェック構成をテンプレートとして保存し、ヘルスチェックの作成と構成を容易にします | チェックボックスをオンにして、ヘルスチェックテンプレートを保存できます。 このオプションを選択した場合は、テンプレートの名前を入力する必要があります。 説明 このパラメーターは、[ヘルスチェックの選択とロード] パラメーターを [カスタムヘルスチェック] に設定した場合にのみ有効になります。 |
バックエンドサーバーを追加する
サーバーグループを作成した後、サーバーグループに 1 つ以上のバックエンドサーバーを追加する必要があります。 これにより、指定されたバックエンドサーバーは ALB によって分散されたリクエストを受信できます。
バックエンドサーバーの構成が原因で、リクエスト転送チェーンがループにならないようにしてください。 ALB がリクエストを受信すると、ALB はリクエストに ALICLOUD-ALB-TRACE
HTTP ヘッダーを追加します。 ヘッダー値は、ALB インスタンスの rule_id (コンソールに表示されないバックエンドパラメーター) に基づいて生成された 16 桁のハッシュです。 ALB がリクエストに 16 を超える異なる ALICLOUD-ALB-TRACE
ヘッダー値が含まれていることを検出するか、重複する ALICLOUD-ALB-TRACE
ヘッダー値を識別した場合、ALB はループが存在すると判断します。 次に、ALB はクライアントに 463 ステータスコードを返し、ネットワークリソースを使い果たす可能性のあるネットワークストームを防ぐためにリクエストの転送を停止します。
サーバータイプのバックエンドサーバーを追加する
サーバーグループタイプをサーバーに設定した場合、ECS インスタンス、ENI、または Elastic Container Instance を指定してバックエンドサーバーを追加する必要があります。
[ALB コンソール] にログインします。
左側のナビゲーションウィンドウで、 を選択します。
サーバーグループ ページで、管理するサーバーグループを見つけ、[バックエンドサーバーの変更] を 操作 列でクリックします。
バックエンドサーバー タブで、[バックエンドサーバーの追加] をクリックします。
バックエンドサーバーの追加 パネルで、クラウドサービスタイプを選択し、次へ をクリックします。
ECS インスタンス
サーバータイプで ECS/ENI を選択し、追加する ECS インスタンスを選択します。
ECS インスタンスが使用できない場合は、インスタンスリストの右上隅にある [ECS の購入] をクリックします。
ENI
サーバータイプで ECS/ENI を選択し、上級モード をオンにします。
ECS インスタンスの ID の横にある
アイコンをクリックし、ENI を選択します。
ENI が ECS インスタンスに関連付けられていることを確認してください。 セカンダリ ENI を ECS インスタンスに関連付ける方法の詳細については、「セカンダリ ENI をバインドする」をご参照ください。
ECS インスタンスが使用できない場合は、インスタンスリストの右上隅にある [ECS インスタンスの購入] をクリックします。
Elastic Container Instance
サーバータイプで ECI を選択し、Elastic Container Instance を選択します。
Elastic Container Instance が使用できない場合は、インスタンスリストの右上隅にある [Elastic Container Instance の購入] をクリックします。
ポート/重み ステップで、バックエンドサーバーのポートと重みを指定し、[OK] をクリックします。
ポート: サービスを提供するバックエンドサーバーのポートを指定します。
重み: バックエンドサーバーの重みは、それぞれに分散されるトラフィックの割合を指します。 デフォルトの重みは 100 です。 重みの大きいサーバーはより多くのリクエストを受信します。
たとえば、サーバーグループに重みがそれぞれ 100、50、50 の 3 つのバックエンドサーバーがある場合、リクエストは 2:1:1 の割合でサーバーに分散されます。 重みが 100 のサーバーはリクエストの 50% を受信し、他の 2 つのサーバーはそれぞれ 25% を受信します。
説明サーバーグループでセッション維持が有効になっている場合、リクエストはバックエンドサーバー間で均等に分散されない場合があります。
重みが 0 のサーバーはリクエストを受信しません。
サーバーグループにバックエンドサーバーが 1 つしかなく、その重みが 0 でない場合、サーバーグループに転送されたすべてのリクエストがそのバックエンドサーバーに送られます。
サーバーグループに複数のバックエンドサーバーがある場合、トラフィックは次の原則に従って重み付けに基づいて分散されます。
いずれかのバックエンドサーバーの ヘルスチェック 結果が異常な場合、リクエストはそのサーバーに転送されません。 ALB は、すべての正常なサーバーに重み付けに基づいてトラフィックを分散します。 バックエンドサーバーが回復すると、トラフィック処理のためにフェイルバックされます。
すべてのサーバーが異常と宣言された場合、ALB は異常な状態にもかかわらず、すべてのサーバーの重み付けに基づいてトラフィックの分散を続けます。 これは、ビジネスの損失を可能な限り最小限に抑えるためです。
アイコンにポインターを合わせると、複数のサーバーの重みまたはポートを一括で変更できます。
[下に複製] をクリックすると、現在のサーバーの下にリストされているすべてのサーバーの重みが現在のサーバーと同じ重みに設定されます。
[上に複製] をクリックすると、現在のサーバーの上にリストされているすべてのサーバーの重みが現在のサーバーと同じ重みに設定されます。
[すべてに複製] をクリックすると、サーバーグループ内のすべてのサーバーの重みが現在のサーバーと同じ重みに設定されます。
リセット:
[ポート] の横にある [リセット] をクリックすると、サーバーグループ内のすべてのサーバーのポートがクリアされます。
[重み] の横にある [リセット] をクリックすると、サーバーグループ内のすべてのサーバーの重みがデフォルト値にリセットされます。
Function Compute タイプのバックエンドサーバーを追加する
サーバーグループタイプを Function Compute に設定した場合、リクエストを受信するために関数を追加する必要があります。 関数をバックエンドサーバーとして追加する方法の詳細については、「ALB のサーバーグループに Function Compute の関数を追加する」をご参照ください。
ALB は、Function Compute 3.0 または Function Compute 2.0 関数をバックエンドサーバーとして指定することをサポートしています。 ただし、Function Compute 3.0 はデフォルトでは使用できません。 使用するには、アカウントマネージャーに連絡して申請書を提出してください。
ALB で Function Compute を使用するには、最初に Function Compute サービスをアクティブにする必要があります。 2024 年 8 月 27 日の 1 日後にアカウントが登録され、実名認証が完了している場合は、Function Compute のアクティブ化プロセスをスキップできます。
ALB と Function Compute は、Alibaba Cloud の安全な内部ネットワークを介して通信します。
制限
Function Compute が ALB のバックエンドサーバーとしてサポートされているリージョンについては、「リージョンとゾーン」をご参照ください。
ALB インスタンスとバックエンドサーバーとして使用する関数は、同じリージョンにデプロイする必要があります。
Function Compute タイプの ALB サーバーグループの場合、1 つの関数のみをバックエンドサーバーとして追加できます。
Function Compute 2.0 の場合、関数の ハンドラータイプ を イベントハンドラー に設定し、関数を ALB のバックエンドサーバーとして使用する場合、関数に HTTP トリガーを構成する必要があります。
[ALB コンソール] にログインします。
左側のナビゲーションウィンドウで、 を選択します。
サーバーグループ ページで、管理するサーバーグループを見つけ、[バックエンドサーバーの変更] を 操作 列でクリックします。
バックエンドサーバー タブで、[関数の追加] をクリックします。
バックエンドサーバーの追加 パネルで、次のいずれかの方法を使用して関数を追加し、[OK] をクリックします。
関数を選択して関数を追加する
パラメーター
説明
構成方法
バックエンドサーバーを追加する方法を選択します。
ドロップダウンリストから [サービス] を選択します。
関数
ドロップダウンリストから作成した関数を選択します。 関数が使用できない場合は、[関数の作成] をクリックして、関数を作成 します。
バージョンまたはエイリアス
[指定バージョン] または [指定エイリアス] を選択します。
デフォルトでは、新しいサービスには LATEST バージョンが 1 つだけあります。
説明
説明を入力します。
Alibaba Cloud Resource Name (ARN) を指定して関数を追加する
パラメーター
説明
[構成方法]
バックエンドサーバーを追加する方法を選択します。
ドロップダウンリストから [ARN] を選択します。
ARN
追加する関数の ARN を入力します。
Function Compute コンソールで関数の詳細ページに移動し、関数の ARN を取得できます。
説明
説明を入力します。
IP タイプのバックエンドサーバーを追加する
サーバーグループのタイプを IP に設定した場合、リクエストを受信する IP アドレスを追加する必要があります。リモート IP アドレス機能を有効にしていない場合、追加する IP アドレスは、現在の VPC の CIDR ブロック内にある必要があります。リモート IP アドレス機能を有効にした場合は、現在の VPC CIDR ブロック外にある IP アドレスを追加できます。異なるリージョンにある ALB にバックエンドサーバーを追加する方法の詳細については、「異なるリージョンの VPC にあるバックエンドサーバーを ALB に指定する」および「オンプレミスサーバーを同じリージョン内の ALB インスタンスに追加する」をご参照ください。
Alibaba Cloud は、2025 年 2 月 25 日 00:00:00(UTC + 08:00)に ALB インスタンスをアップグレードしました。 2025 年 2 月 25 日 00:00:00(UTC + 08:00)以降に作成された ALB インスタンスは、アップグレードバージョンです。詳細については、「ALB インスタンスのアップグレード」をご参照ください。
制限事項
アップグレードされていない ALB インスタンスを使用している場合、アップグレードされていない ALB インスタンスに関連付けられた IP アドレスタイプのサーバーグループに、同じ VPC 内の ALB、Network Load Balancer(NLB)、または Classic Load Balancer(CLB)インスタンスをバックエンドサーバーとして追加しないでください。このような構成が存在する場合、ALB サービスでエラーが発生する可能性があります。アップグレードされた ALB インスタンスの場合のみ、SLB インスタンスを IP アドレスタイプのサーバーグループにバックエンドサーバーとして追加できます。
アップグレードされた ALB インスタンス
バックエンドサーバーの制限事項
プライベート IP アドレスのみを追加できます。パブリック IP アドレスはサポートされていません。
IPv6 が有効になっているサーバーグループの場合、サーバーグループがデプロイされている VPC の CIDR ブロック内の IPv6 アドレスのみをバックエンドサーバーとしてサーバーグループに追加できます。リモート IP アドレスはサポートされていません。
転送ルールの制限事項
ALB サービスに Enterprise Edition 転送ルータを構成する場合、転送ルータは指定したゾーンの vSwitch 内に Elastic Network Interface(ENI)を作成します。ENI は、VPC からトラフィックを受信するための転送ルータのイングレスとして機能します。そのため、選択したゾーンで使用可能な vSwitch が少なくとも 1 つあることを確認してください。詳細については、「転送ルータのしくみ」をご参照ください。
ALB とバックエンドサーバー間のトラフィック転送のために、ALB サービスがデプロイされている VPC 内のカスタムルートテーブルをカスタマイズすることはできません。システムルートテーブルのみが許可されます。
アップグレードされていない ALB インスタンス
バックエンドサーバーの制限事項
これらのリージョンとゾーンでは、リモート IP アドレスをバックエンドサーバーとして追加できます。「リージョンとゾーン」をご参照ください。
IP タイプのサーバーグループのみが、リージョンをまたいでデプロイされたバックエンドサーバーの追加をサポートしています。
プライベート IP アドレスのみを追加できます。パブリック IP アドレスはサポートされていません。
同じ VPC 内の ALB インスタンス、NLB インスタンス、または CLB インスタンスをバックエンドサーバーとして追加することはできません。
転送ルールの制限事項
リージョン間の転送には、Enterprise Edition 転送ルータと Express Connect 回線を使用できます。Basic Edition 転送ルータはサポートされていません。
ALB サービスに Enterprise Edition 転送ルータを構成する場合、転送ルータは指定したゾーンの vSwitch 内に ENI を作成します。ENI は、VPC からトラフィックを受信するための転送ルータのイングレスとして機能します。そのため、選択したゾーンで使用可能な vSwitch が少なくとも 1 つあることを確認してください。詳細については、「転送ルータのしくみ」をご参照ください。
ALB インスタンスとそのバックエンドサーバー間のネットワークトラフィックは、システムルートテーブルに基づいてのみルーティングできます。VPC カスタムルートテーブルはサポートされていません。
ALB コンソール にログインします。
左側のナビゲーションウィンドウで、 を選択します。
サーバーグループ ページで、管理するサーバーグループを見つけ、[バックエンドサーバーの変更] を 操作 列でクリックします。
バックエンドサーバー タブで、IP アドレスの追加 をクリックします。
バックエンドサーバーの追加 パネルで、バックエンドサーバーの IP アドレスを入力し、[次へ] をクリックします。
リモート IP アドレス機能を有効にした場合、次の CIDR ブロックに該当する IP アドレスがサポートされます。
10.0.0.0/8
100.64.0.0/10
172.16.0.0/12
192.168.0.0/16
リモート IP アドレス機能を有効にしない場合、サーバーグループが作成された VPC の CIDR ブロックに該当する IP アドレスのみがサポートされます。
説明[+ IP アドレスを追加] をクリックして、複数のバックエンドサーバーを追加できます。
ポート/重み ステップで、バックエンドサーバーのポートと重みを指定し、[OK] をクリックします。
ポート: サービスを提供するバックエンドサーバーのポートを指定します。
重み: バックエンドサーバーの重みは、各サーバーに分散されるトラフィックの割合を指します。デフォルトの重みは 100 です。重みが大きいサーバーほど多くのリクエストを受け取ります。
たとえば、サーバーグループに重みがそれぞれ 100、50、50 の 3 つのバックエンドサーバーがある場合、リクエストは 2:1:1 の割合でサーバーに分散されます。重みが 100 のサーバーはリクエストの 50% を受信し、他の 2 つのサーバーはそれぞれ 25% を受信します。
説明サーバーグループでセッション維持が有効になっている場合、リクエストはバックエンドサーバー間で均等に分散されない場合があります。
重みが 0 のサーバーはリクエストを受信しません。
サーバーグループにバックエンドサーバーが 1 つしかなく、その重みが 0 でない場合、サーバーグループに転送されたすべてのリクエストはそのバックエンドサーバーに送られます。
サーバーグループに複数のバックエンドサーバーがある場合、トラフィックは次の原則に従って重みに基づいて分散されます。
いずれかのバックエンドサーバーの ヘルスチェック 結果が異常な場合、リクエストはそのサーバーに転送されません。ALB は、すべての正常なサーバーに重みに基づいてトラフィックを分散します。バックエンドサーバーが回復すると、トラフィック処理のためにフェイルバックされます。
すべてのサーバーが異常と宣言された場合、ALB は異常な状態にもかかわらず、すべてのサーバーの重みに基づいてトラフィックの分散を続けます。これは、ビジネス損失を可能な限り最小限に抑えるためです。
アイコンにポインターを移動すると、複数のサーバーの重みやポートを一括で変更できます。
[下に複製] をクリックすると、現在のサーバーの下にリストされているすべてのサーバーの重みが現在のサーバーと同じ重みに設定されます。
[上に複製] をクリックすると、現在のサーバーの上にリストされているすべてのサーバーの重みが現在のサーバーと同じ重みに設定されます。
[すべてに複製] をクリックすると、サーバーグループ内のすべてのサーバーの重みが現在のサーバーと同じ重みに設定されます。
リセット:
[ポート] の横にある [リセット] をクリックすると、サーバーグループ内のすべてのサーバーのポートがクリアされます。
[重み] の横にある [リセット] をクリックすると、サーバーグループ内のすべてのサーバーの重みがデフォルト値にリセットされます。
バックエンドサーバーを削除する
ビジネス要件に基づいて、サーバーグループからバックエンドサーバーを削除できます。サーバーが削除されると、サーバーはクライアントリクエストを処理しなくなります。
サーバーグループからバックエンドサーバーを削除すると、サービスが中断される可能性があります。サーバーグループからバックエンドサーバーを削除する前に、バックエンドサーバーの重みを 0 に設定することをお勧めします。
[ALB コンソール] にログオンします。
左側のナビゲーションウィンドウで、 を選択します。
サーバーグループ ページで、管理するサーバーグループを見つけ、その ID をクリックします。
バックエンドサーバー タブをクリックし、削除するバックエンドサーバーを見つけて、[削除]操作 列の をクリックします。
表示されるメッセージで、[OK] をクリックします。
サーバーグループを管理する
サーバーグループを作成した後、サーバーグループを管理できます。 たとえば、サーバーグループの名前を変更したり、サーバーグループを削除したりできます。
[ALB コンソール] にログインします。
左側のナビゲーション ウィンドウで、 を選択します。
サーバーグループ ページで、管理するサーバーグループを見つけ、[ヘルスチェックの変更] を 操作 列でクリックします。
[ヘルスチェックの変更] ダイアログボックスで、ヘルスチェックをオンまたはオフにします。[変更] を ヘルスチェック の横でクリックして、ヘルスチェック パラメーターを変更することもできます。
警告ヘルスチェックが無効になると、ALB はバックエンドサーバーのヘルスステータスをチェックしなくなります。バックエンドサーバーがダウンした場合、ネットワークトラフィックは正常なバックエンドサーバーに自動的に切り替わりません。
ヘルスチェックのALB 間隔を長く設定すると、異常なバックエンドサーバーを検出するのにより多くの時間がかかります。
サーバーグループを削除する
リスナーで使用される転送ルールでサーバーグループが指定されていない場合は、サーバーグループを削除できます。サーバーグループを削除しても、サーバーグループ内のバックエンドサーバーには影響しません。
ALB コンソール にログインします。
左側のナビゲーションウィンドウで、 を選択します。
[サーバーグループ] ページで、削除するサーバーグループを見つけ、サーバーグループ 操作 列で を選択します。
表示されるメッセージで、[OK] をクリックします。
参照資料
CreateServerGroup: ALB インスタンスのサーバーグループを作成します。
AddServersToServerGroup: サーバーグループにバックエンドサーバーを追加します。
UpdateServerGroupAttribute: ヘルスチェック、セッション維持、名前、スケジューリングアルゴリズム、およびプロトコル構成など、サーバーグループの構成を更新します。
UpdateServerGroupServersAttribute: サーバーグループ内のバックエンドサーバーの重みと説明を更新します。
ReplaceServersInServerGroup: サーバーグループ内のバックエンドサーバーを置き換えます。
RemoveServersFromServerGroup: サーバーグループからバックエンドサーバーを削除します。
DeleteServerGroup: サーバーグループを削除します。