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 の挿入]ALBALB: ALB は、クライアントに送信される最初の HTTP または HTTPS レスポンスにセッションクッキー (SERVERID) を挿入します。 ALB への後続のリクエストがこの Cookie を持っている場合、ALB は Cookie に基づいてリクエストの宛先サーバーを決定します。
[Cookie の書き換え]: [ALB] がユーザー定義の Cookie を検出した場合、[ALB] は元の Cookie をユーザー定義の Cookie に置き換えます。後続の [ALB] へのリクエストがこのユーザー定義の Cookie を保有している場合、[ALB] は Cookie に基づいてリクエストの宛先サーバーを決定します。
[セッション永続化タイムアウト期間]: セッション永続化のタイムアウト期間を指定します。 有効な値: 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 ] はデフォルトで選択されています。
ヘルスチェックプロトコルパラメーターを [ GRPC ] に設定した場合、有効な値は 0 ~ 99 です。 値の範囲がサポートされています。 最大 20 個の値の範囲を入力できます。 複数の値の範囲はコンマ (,) で区切ります。
パラメーター | 説明 |
[サーバーグループタイプ] | バックエンドサーバーをサーバーグループに追加する方法を指定します。 有効な値: |
[サーバーグループ名] | サーバーグループのカスタム名。 |
[ VPC ] | VPC ドロップダウンリストから VPC を選択します。 VPC 内のサーバーのみをサーバーグループに追加できます。 説明 このパラメーターは、Function Compute タイプのサーバーグループでは使用できません。 |
[バックエンドサーバープロトコル] | バックエンドプロトコルを選択します。 有効な値: 説明 |
[スケジューリングアルゴリズム] | スケジューリングアルゴリズムを選択します。 有効な値: 説明 このパラメーターは、Function Compute タイプのサーバーグループでは使用できません。 |
[タグとリソースグループ] | 必要に応じて、タグとリソースグループを指定します。 |
[ IPv6 ] | IPv6 を有効にするかどうかを指定します。 IPv6 はデフォルトで無効になっています。 説明 |
[セッションの永続化] | セッションの永続化を有効にするかどうかを指定します。 セッションの永続化はデフォルトで無効になっています。 セッションの永続性が有効になっている場合、ALB はクライアントからのすべてのリクエストを同じバックエンドサーバーに転送します。 説明 このパラメーターは、Function Compute タイプのサーバーグループでは使用できません。 |
[ゾーン間の負荷分散] | ゾーン間の負荷分散を有効にするかどうかを指定します。 ゾーン間の負荷分散はデフォルトで有効になっています。 ALB は、同じリージョン内のすべてのゾーンにデプロイされたバックエンドサービスにリクエストを分散します。 ゾーン間の負荷分散が無効になっている場合、ALB は単一のゾーンにデプロイされたバックエンドサービスにリクエストを分散します。 説明 |
[バックエンドの持続的接続] | バックエンドの持続的接続機能を有効にするかどうかを指定します。 デフォルトでは、この機能は有効になっています。 ALBALBバックエンドの持続的接続が有効になっている場合、ALB とバックエンドサーバー間で特定の数の TCP 接続が維持されます。 ALB インスタンスが新しいリクエストを受信し、アイドル状態の持続的 TCP 接続が存在する場合、ALB は優先的にその TCP 接続を使用してリクエストをバックエンドサーバーに転送します。 これにより、TCP ハンドシェイクの数とバックエンドサーバーの負荷が軽減されます。 説明 このパラメーターは、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 の両方をサポートしています。
ALB に Function Compute 関数を使用するには、最初に Function Compute サービスをアクティブにする必要があります。 2024 年 8 月 27 日の 1 日後にアカウントが登録され、実名認証が完了している場合は、Function Compute のアクティブ化プロセスをスキップできます。
ALB と Function Compute は、Alibaba Cloud の安全な内部ネットワークを介して通信します。
制限
ALB のバックエンドサーバーとして Function Compute がサポートされているリージョンについては、「リージョンとゾーン」をご参照ください。
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: サーバーグループを削除します。
> [削除]