Application Load Balancer のターゲットグループ - Elastic Load Balancing

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Application Load Balancer のターゲットグループ

ターゲットグループは、指定されたプロトコルとポート番号を使用して、登録済みのターゲット (EC2 インスタンスなど) ごとにリクエストをルーティングできます。1 つのターゲットを複数のターゲットグループに登録できます。ターゲットグループ単位でヘルスチェックを設定できます。ヘルスチェックは、ロードバランサーのリスナールールに指定されたターゲットグループに登録されたすべてのターゲットで実行されます。

各ターゲットグループは、1 つ以上の登録されているターゲットにリクエストをルーティングするために使用されます。各リスナーのルールを作成するときに、ターゲットグループと条件を指定します。ルールの条件が満たされると、トラフィックが該当するターゲットグループに転送されます。さまざまなタイプのリクエストに応じて別のターゲットグループを作成できます。たとえば、一般的なリクエスト用に 1 つのターゲットグループを作成し、アプリケーションのマイクロサービスへのリクエスト用に別のターゲットグループを作成できます。各ターゲットグループは 1 つのロードバランサーのみで使用できます。詳細については、「Application Load Balancer のコンポーネント」を参照してください。

ロードバランサーのヘルスチェック設定は、ターゲットグループ単位で定義します。各ターゲットグループはデフォルトのヘルスチェック設定を使用します。ただし、ターゲットグループを作成したときや、後で変更したときに上書きした場合を除きます。リスナーのルールでターゲットグループを指定すると、ロードバランサーは、ロードバランサーで有効なアベイラビリティーゾーンにある、ターゲットグループに登録されたすべてのターゲットの状態を継続的にモニタリングします。ロードバランサーは、正常な登録済みターゲットにリクエストをルーティングします。

ルーティング設定

デフォルトでは、ロードバランサーはターゲットグループの作成時に指定したプロトコルとポート番号を使用して、リクエストをターゲットにルーティングします。または、ターゲットグループへの登録時にターゲットへのトラフィックのルーティングに使用されるポートを上書きすることもできます。

ターゲットグループでは、次のプロトコルとポートがサポートされています。

  • プロトコル: HTTP、HTTPS

  • ポート: 1 ~ 65535

ターゲットグループが HTTPS プロトコルを使用して設定されているか、HTTPS ヘルスチェックを使用する場合、ターゲットへの TLS 接続には ELBSecurityPolicy-2016-08 ポリシーのセキュリティ設定が使用されます。ロードバランサーは、ターゲットにインストールする証明書を使用して、ターゲットとの TLS 接続を確立します。ロードバランサーはこれらの証明書を検証しません。したがって、自己署名証明書または期限切れの証明書を使用できます。ロードバランサーとそのターゲットは Virtual Private Cloud (VPC) にあるため、ロードバランサーとターゲット間のトラフィックはパケットレベルで認証されるため、ターゲットの証明書が有効でなくても man-in-the-middle 攻撃やスプーフィングのリスクはありません。から出るトラフィック AWS にはこれらの同じ保護はありません。トラフィックをさらに保護するには、追加の手順が必要になる場合があります。

[Target type (ターゲットタイプ)]

ターゲットグループを作成するときは、そのターゲットの種類を指定します。それにより、このターゲットグループ内でターゲットを登録するときに指定するターゲットの種類が決定されます。ターゲットグループを作成した後で、ターゲットの種類を変更することはできません。

可能なターゲットの種類は次のとおりです。

instance

インスタンス ID で指定されたターゲット。

ip

ターゲットは IP アドレスです。

lambda

ターゲットは Lambda 関数です。

ターゲットの種類が ip の場合、次のいずれかの CIDR ブロックから IP アドレスを指定できます。

  • ターゲットグループの VPC のサブネット

  • 10.0.0.0/8 (RFC 1918)

  • 100.64.0.0/10 (RFC 6598)

  • 172.16.0.0/12 (RFC 1918)

  • 192.168.0.0/16 (RFC 1918)

重要

パブリックにルーティング可能な IP アドレスは指定できません。

サポートされているすべての CIDR ブロックによって、次のターゲットをターゲットグループに登録できます。

  • ロードバランサー VPC (同じリージョンまたは異なるリージョン) にピアリングされている VPC 内のインスタンス。

  • AWS IP アドレスとポート (データベースなど) でアドレス指定できる リソース。

  • AWS Direct Connect または Site-to-Site VPN 接続 AWS を介して にリンクされたオンプレミスリソース。

注記

Local Zone 内にデプロイされた Application Load Balancer の場合、トラフィックを受信するには ip ターゲットが同じ Local Zone 内にある必要があります。

詳細については、AWS 「ローカルゾーンとは」を参照してください。

インスタンス ID を使用してターゲットを指定すると、トラフィックはインスタンスのプライマリネットワークインターフェイスで指定されたプライマリプライベート IP アドレスを使用して、インスタンスにルーティングされます。IP アドレスを使用してターゲットを指定する場合は、1 つまたは複数のネットワークインターフェイスからのプライベート IP アドレスを使用して、トラフィックをインスタンスにルーティングできます。これにより、インスタンスの複数のアプリケーションが同じポートを使用できるようになります。各ネットワークインターフェイスは独自のセキュリティグループを持つことができます。

ターゲットグループのターゲットの種類が lambda である場合、1 つの Lambda 関数を登録できます。ロードバランサーが Lambda 関数のリクエストを受け取ると、Lambda 関数を呼び出します。詳細については、「ターゲットとしての Lambda 関数」を参照してください。

Application Load Balancer のターゲットとして、Amazon Elastic Container Service (Amazon ECS) を設定できます。詳細については、「 用 Amazon Elastic Container Service ユーザーガイド」のApplication Load Balancer の作成」を参照してください。 AWS Fargate

IP アドレスタイプ

新しいターゲットグループを作成するときは、ターゲットグループの IP アドレスタイプを選択できます。これは、ターゲットとの通信、およびそれらのヘルスステータスのチェックに使用される IP バージョンを制御します。

Application Load Balancer は、IPv4 ターゲットグループと IPv6 ターゲットグループの両方をサポートします。デフォルトで選択されるのは IPv4 です。

考慮事項
  • ターゲットグループ内のすべての IP アドレスは、同じ IP アドレスタイプである必要があります。例えば、IPv4 ターゲットを IPv6 ターゲットグループに登録することはできません。

  • IPv6 ターゲットグループは、dualstack ロードバランサーのみで使用できます。

  • IPv6 ターゲットグループでは、IP およびインスタンスタイプのターゲットがサポートされています。

プロトコルバージョン

デフォルトでは、Application Load Balancer は HTTP/1.1 を使用してターゲットにリクエストを送信します。プロトコルバージョンを使用して、HTTP/2 または grPC を使用するターゲットにリクエストを送信できます。

次の表は、リクエストプロトコルとターゲットグループのプロトコルバージョンの組み合わせの結果をまとめたものです。

リクエストプロトコル プロトコルバージョン 結果
HTTP/1.1 HTTP/1.1 成功
HTTP/2 HTTP/1.1 成功
gRPC HTTP/1.1 エラー
HTTP/1.1 HTTP/2 エラー
HTTP/2 HTTP/2 成功
gRPC HTTP/2 ターゲットが grPC をサポートしている場合は成功
HTTP/1.1 gRPC エラー
HTTP/2 gRPC POST リクエストの場合は成功
gRPC gRPC 成功
gRPC プロトコルバージョンの考慮事項
  • サポートされているリスナープロトコルは HTTPS だけです。

  • リスナールールでサポートされるアクションタイプは、forward のみです 。

  • サポートされているターゲットタイプは、instanceip のみです。

  • ロードバランサーは、gRPC リクエストを解析し、パッケージ、サービス、メソッドに基づいて、適切なターゲットグループに gRPC 呼び出しをルーティングします。

  • ロードバランサーは、単項ストリーミング、クライアントサイドストリーミング、サーバーサイドストリーミング、および双方向ストリーミングをサポートします。

  • カスタムヘルスチェックメソッドには、/package.service/method という形式で指定する必要があります。

  • ターゲットからの正常な応答をチェックするときに使用する gRPC ステータスコードを指定する必要があります。

  • Lambda 関数をターゲットとして使用することはできません。

HTTP/2 プロトコルバージョンの考慮事項
  • サポートされているリスナープロトコルは HTTPS だけです。

  • リスナールールでサポートされるアクションタイプは、forward のみです 。

  • サポートされているターゲットタイプは、instanceip のみです。

  • ロードバランサーは、クライアントからのストリーミングをサポートします。ロードバランサーは、ターゲットへのストリーミングをサポートしていません。

登録済みターゲット

ロードバランサーは、クライアントにとって単一の通信先として機能し、正常な登録済みターゲットに受信トラフィックを分散します。各ターゲットは、1 つ以上のターゲットグループに登録できます。

アプリケーションの需要が高まった場合、需要に対処するため、1 つまたは複数のターゲット グループに追加のターゲットを登録できます。ロードバランサーは、登録プロセスが完了し、設定されたしきい値に関係なく、ターゲットが最初の最初のヘルスチェックに合格するとすぐに、新しく登録されたターゲットへのトラフィックのルーティングを開始します。

アプリケーションの需要が低下した場合や、ターゲットを保守する必要がある場合、ターゲットグループからターゲットを登録解除することができます。ターゲットを登録解除するとターゲットグループから削除されますが、ターゲットにそれ以外の影響は及びません。登録解除するとすぐに、ロードバランサーはターゲットへのリクエストのルーティングを停止します。ターゲットは、未処理のリクエストが完了するまで draining 状態になります。リクエストの受信を再開する準備ができると、ターゲットをターゲットグループに再度登録することができます。

インスタンス ID でターゲットを登録する場合は、Auto Scaling グループでロードバランサーを使用できます。Auto Scaling グループにターゲットグループをアタッチすると、ターゲットの起動時に Auto Scaling によりターゲットグループにターゲットが登録されます。詳細については、Amazon EC2 Auto Scaling ユーザーガイドのAuto Scaling グループへのロードバランサーのアタッチを参照してください。

制限
  • 同じ VPC に別の Application Load Balancer の IP アドレスを登録することはできません。もう一方の Application Load Balancer が、ロードバランサー VPC にピアリング接続されている VPC に含まれている場合は、その IP アドレスを登録できます。

  • ロードバランサー VPC (同じリージョンまたは異なるリージョン) とピア接続されている VPC にインスタンスがある場合、そのインスタンスをインスタンス ID で登録することはできません。このようなインスタンスは IP アドレスで登録できます。

ターゲットグループの属性

ターゲットグループの種類が instance または ip である場合、以下のターゲットグループ属性がサポートされています。

deregistration_delay.timeout_seconds

ターゲットを登録解除する前に Elastic Load Balancing が待機する時間。範囲は 0 ~ 3600 秒です。デフォルト値は 300 秒です。

load_balancing.algorithm.type

ロードバランシングアルゴリズムは、リクエストをルーティングするときにロードバランサーがターゲットを選択する方法を決定します。値は round_robinleast_outstanding_requests、または ですweighted_random。デフォルトは round_robin です。

load_balancing.algorithm.anomaly_mitigation

load_balancing.algorithm.type が の場合にのみ使用できますweighted_random。異常緩和が有効になっているかどうかを示します。値は on または off です。デフォルト: off

load_balancing.cross_zone.enabled

クロスゾーンロードバランサーが有効かどうかを示します。値は truefalse または use_load_balancer_configuration です。デフォルト: use_load_balancer_configuration

slow_start.duration_seconds

ロードバランサーが新しく登録されたターゲットに、ターゲットグループに対するトラフィックのシェアを直線的に増加させて送信する期間 (秒)。範囲は 30 ~ 900 秒 (15 分) です。デフォルトは 0 秒 (無効) です。

stickiness.enabled

スティッキーセッションが有効かどうかを示します。値は true または false です。デフォルト: false

stickiness.app_cookie.cookie_name

アプリケーション Cookie 名 アプリケーション Cookie 名に、ロードバランサーで使用するために予約されている AWSALBAWSALBAPP、または AWSALBTG のプレフィックスを含めることはできません。

stickiness.app_cookie.duration_seconds

アプリケーションベースの Cookie の有効期間 (秒) この期間が過ぎると、Cookie は古いと見なされます。最小値は 1 秒で、最大値は 7 日間 (604800秒) です。デフォルト値は 1 日 (86400 秒) です。

stickiness.lb_cookie.duration_seconds

期間ベースの Cookie の有効期間 (秒) この期間が過ぎると、Cookie は古いと見なされます。最小値は 1 秒で、最大値は 7 日間 (604800秒) です。デフォルト値は 1 日 (86400 秒) です。

stickiness.type

維持の種類です。指定できる値は lb_cookie および app_cookie です。

target_group_health.dns_failover.minimum_healthy_targets.count

正常である必要があるターゲットの最小数。正常なターゲットの数がこの値を下回っている場合は、DNS でそのゾーンを異常とマークして、トラフィックが正常なゾーンにのみルーティングされるようにします。指定できる値は off または 1 から最大ターゲット数までの整数です。off の場合、DNS フェイルアウェイが無効になります。つまり、各ターゲットグループが独立してDNSフェイルオーバーに寄与することになります。デフォルト は 1 です。

target_group_health.dns_failover.minimum_healthy_targets.percentage

正常でなければならないターゲットの最小割合。正常なターゲットの割合がこの値を下回っている場合は、DNS でそのゾーンを異常とマークして、トラフィックが正常なゾーンにのみルーティングされるようにします。指定できる値は off、または 1 から最大ターゲット数までの整数です。off の場合、DNS フェイルアウェイが無効になります。つまり、各ターゲットグループが独立してDNSフェイルオーバーに寄与することになります。デフォルト は 1 です。

target_group_health.unhealthy_state_routing.minimum_healthy_targets.count

正常でなければならないターゲットの最小数。正常なターゲットの数がこの値を下回っている場合は、異常なターゲットを含むすべてのターゲットにトラフィックを送信します。範囲は 1 からターゲットの最大数です。デフォルト は 1 です。

target_group_health.unhealthy_state_routing.minimum_healthy_targets.percentage

正常でなければならないターゲットの最小割合。正常なターゲットの割合がこの値を下回っている場合は、異常なターゲットを含むすべてのターゲットにトラフィックを送信します。指定できる値は、off または 1 から 100 までの整数です。デフォルトは off です。

ターゲットグループの種類が lambda である場合、以下のターゲット属性がサポートされています。

lambda.multi_value_headers.enabled

ロードバランサーと Lambda 関数との間で交換されるリクエストとレスポンスのヘッダーに、値のまたは文字列の配列が含まれるかどうかを示します。使用できる値は、true または false です。デフォルト値は false です。詳細については、「複数値ヘッダー」を参照してください。

ルーティングアルゴリズム

ルーティングアルゴリズムは、リクエストを受信するターゲットを決定するときにロードバランサーが使用する方法です。ラウンドロビンルーティングアルゴリズムは、ターゲットグループレベルでリクエストをルーティングするためにデフォルトで使用されます。最小未処理のリクエスト加重ランダムルーティングアルゴリズムも、アプリケーションのニーズに基づいて利用できます。ターゲットグループには、一度に 1 つのアクティブなルーティングアルゴリズムしか使用できませんが、必要に応じてルーティングアルゴリズムを更新できます。

スティッキーセッションを有効にすると、選択したルーティングアルゴリズムが最初のターゲット選択に使用されます。同じクライアントからの今後のリクエストは、選択したルーティングアルゴリズムをバイパスして、同じターゲットに転送されます。

ラウンドロビン
  • ラウンドロビンルーティングアルゴリズムは、ターゲットグループ内の正常なターゲット間でリクエストを順番に均等にルーティングします。

  • このアルゴリズムは、受信されるリクエストが複雑さが類似している場合、登録されたターゲットの処理能力が類似している場合、またはターゲット間でリクエストを均等に分散する必要がある場合によく使用されます。

最小の未処理のリクエスト
  • 最小未処理のリクエストルーティングアルゴリズムは、進行中のリクエストの数が最も少ないターゲットにリクエストをルーティングします。

  • このアルゴリズムは、受信するリクエストの複雑さが異なり、登録されたターゲットの処理能力が変わる場合によく使用されます。

  • HTTP/2 をサポートするロードバランサーが HTTP/1.1 のみをサポートするターゲットを使用している場合、リクエストは複数の HTTP/1.1 リクエストに変換されます。この設定では、最小未処理のリクエストアルゴリズムは、各 HTTP/2 リクエストを複数のリクエストとして扱います。

  • を使用する場合 WebSockets、ターゲットは最小未処理のリクエストアルゴリズムを使用して選択されます。選択すると、ロードバランサーはターゲットへの接続を作成し、この接続を介してすべてのメッセージを送信します。

  • 最小未処理のリクエストルーティングアルゴリズムは、スロースタートモードでは使用できません。

重み付きランダム
  • 加重ランダムルーティングアルゴリズムは、ターゲットグループ内の正常なターゲット間でリクエストをランダムな順序で均等にルーティングします。

  • このアルゴリズムは、自動ターゲット重み (ATW) 異常緩和をサポートします。

  • 加重ランダムルーティングアルゴリズムは、スロースタートモードでは使用できません。

ターゲットグループのルーティングアルゴリズムを変更する

ターゲットグループのルーティングアルゴリズムはいつでも変更できます。

新しいコンソールを使用してルーティングアルゴリズムを変更するには
  1. Amazon EC2 コンソール (https://console.aws.amazon.com/ec2/) を開きます。

  2. ナビゲーションペインの [ Load Balancing (ロードバランシング) ] で [ Target Groups (ターゲットグループ) ] を選択します。

  3. ターゲットグループの名前を選択して、その詳細ページを開きます。

  4. ターゲットグループの詳細ページの属性タブで、編集 を選択します。

  5. 「ターゲットグループ属性の編集」ページの「トラフィック設定」セクションの「負荷分散アルゴリズム」で、「ラウンドロビン」、「最小未処理リクエスト」、または「重み付きランダム」を選択します。

  6. [変更の保存] をクリックします。

を使用してルーティングアルゴリズムを変更するには AWS CLI

load_balancing.algorithm.type 属性を指定して modify-target-group-attributes コマンドを使用します。

自動ターゲット重み (ATW)

自動ターゲット重み (ATW) は、アプリケーションを実行しているターゲットを常にモニタリングし、異常と呼ばれる重大なパフォーマンス偏差を検出します。ATW は、リアルタイムのデータ異常検出を通じて、ターゲットにルーティングされるトラフィック量を動的に調整する機能を提供します。

自動ターゲット重み (ATW) は、アカウント内のすべての Application Load Balancer で異常検出を自動的に実行します。異常なターゲットが特定されると、ATW は、異常緩和と呼ばれるルーティングされるトラフィックの量を減らすことで、それらの安定を自動的に試みることができます。ATW は、ターゲットグループ障害率を最小限に抑えながら、ターゲットごとの成功率を最大化するようにトラフィック分散を継続的に最適化します。

考慮事項:
  • 異常検出は現在、ターゲットからの HTTP 5xx レスポンスコードとターゲットへの接続失敗をモニタリングしています。異常検出は常にオンであり、オフにすることはできません。

  • Lambda をターゲットとして使用する場合、ATW はサポートされていません。

異常検出

ATW 異常検出は、ターゲットグループ内の他のターゲットとの動作に重大な偏差を示しているターゲットをモニタリングします。これらの偏差は異常と呼ばれ、1 つのターゲットのエラー率とターゲットグループ内の他のターゲットのエラー率を比較することで決定されます。これらのエラーは、接続エラーと HTTP エラーコードの両方である可能性があります。その後、ピアよりも大幅に上位の を報告するターゲットは、異常と見なされます。

異常検出には、ターゲットグループ内で少なくとも 3 つの正常なターゲットが必要です。ターゲットがターゲットグループに登録されると、まずヘルスチェックに合格してトラフィックの受信を開始する必要があります。ターゲットがターゲットを受信すると、ATW はターゲットのモニタリングを開始し、異常結果を継続的に発行します。異常のないターゲットの場合、異常結果は ですnormal。異常のあるターゲットの場合、異常結果は ですanomalous

ATW 異常検出は、ターゲットグループのヘルスチェックとは独立して機能します。ターゲットはすべてのターゲットグループのヘルスチェックに合格できますが、エラー率が高いため、異常とマークされます。ターゲットが異常になっても、ターゲットグループのヘルスチェックのステータスには影響しません。

異常検出ステータス

ATW は、ターゲットに対して実行する異常検出のステータスを継続的に発行します。現在のステータスは、 AWS Management Console または を使用していつでも表示できます AWS CLI。

コンソールを使用して異常検出ステータスを表示するには
  1. Amazon EC2 コンソール (https://console.aws.amazon.com/ec2/) を開きます。

  2. ナビゲーションペインの [ Load Balancing (ロードバランシング) ] で [ Target Groups (ターゲットグループ) ] を選択します。

  3. ターゲットグループの名前を選択して、その詳細ページを開きます。

  4. ターゲットグループの詳細ページで、ターゲットタブを選択します。

  5. 登録済みターゲットテーブル内で、各ターゲットの異常ステータスを異常検出結果列に表示できます。

    異常が検出されなかった場合、結果は ですnormal

    異常が検出された場合、結果は ですanomalous

を使用して異常検出結果を表示するには AWS CLI

Include.member.N 属性値を に設定して describe-target-health コマンドを使用しますAnomalyDetection

異常の軽減

重要

ATW の異常軽減関数は、加重ランダムルーティングアルゴリズムを使用する場合にのみ使用できます。

ATW 異常緩和は、異常なターゲットからトラフィックを自動的にルーティングし、復旧する機会を提供します。

緩和中:
  • ATW は、異常なターゲットにルーティングされるトラフィックの量を定期的に調整します。現在、期間は 5 秒ごとです。

  • ATW は、異常ターゲットにルーティングされるトラフィックの量を、異常緩和の実行に必要な最小量に減らします。

  • 異常として検出されなくなったターゲットは、ターゲットグループ内の他の通常のターゲットと同等になるまで、徐々にトラフィックがルーティングされます。

ATW 異常緩和を有効にする

異常緩和はいつでも有効にできます。

コンソールを使用して異常緩和を有効にするには
  1. Amazon EC2 コンソール (https://console.aws.amazon.com/ec2/) を開きます。

  2. ナビゲーションペインの [ Load Balancing (ロードバランシング) ] で [ Target Groups (ターゲットグループ) ] を選択します。

  3. ターゲットグループの名前を選択して、その詳細ページを開きます。

  4. ターゲットグループの詳細ページの属性タブで、編集 を選択します。

  5. 「ターゲットグループ属性の編集」ページの「トラフィック設定」セクションの「負荷分散アルゴリズム」で、重み付きランダムが選択されていることを確認します。

    注: 加重ランダムアルゴリズムを最初に選択すると、異常検出はデフォルトでオンになります。

  6. 「異常緩和」で、異常緩和を有効にするが選択されていることを確認します。

  7. [変更の保存] をクリックします。

を使用して異常緩和を有効にするには AWS CLI

load_balancing.algorithm.anomaly_mitigation 属性を指定して modify-target-group-attributes コマンドを使用します。

異常軽減ステータス

ATW がターゲットに対して緩和を実行するたびに、 AWS Management Console または を使用していつでも現在のステータスを表示できます AWS CLI。

コンソールを使用して異常緩和ステータスを表示するには
  1. Amazon EC2 コンソール (https://console.aws.amazon.com/ec2/) を開きます。

  2. ナビゲーションペインの [ Load Balancing (ロードバランシング) ] で [ Target Groups (ターゲットグループ) ] を選択します。

  3. ターゲットグループの名前を選択して、その詳細ページを開きます。

  4. ターゲットグループの詳細ページで、ターゲットタブを選択します。

  5. 登録済みターゲットテーブル内では、各ターゲットの異常緩和ステータスを「緩和策が有効」列に表示できます。

    緩和が進行中でない場合、ステータスは ですyes

    緩和が進行中の場合、ステータスは ですno

を使用して異常緩和ステータスを表示するには AWS CLI

Include.member.N 属性値を に設定して describe-target-health コマンドを使用しますAnomalyDetection

登録解除の遅延

Elastic Load Balancing は、登録解除するターゲットへのリクエストの送信を停止します。デフォルトでは、Elastic Load Balancing 登録解除プロセスを完了する前に 300 秒待って、ターゲットへ処理中のリクエストが完了するのを助けることができます。Elastic Load Balancing が待機する時間を変更するには、登録解除の遅延値を更新します。

登録解除するターゲットの初期状態は draining です。登録解除の遅延が経過すると、登録解除プロセスは完了し、ターゲットの状態は unused になります。ターゲットが Auto Scaling グループの一部である場合、ターゲットを終了して置き換えることができます。

登録解除するターゲットに未処理のリクエストやアクティブな接続がない場合は、Elastic Load Balancing は登録解除の遅延時間が経過するのを待たずに、即時登録解除プロセスを完了します。ただし、ターゲットの登録解除が完了しても、ターゲットのステータスは、登録解除の遅延タイムアウトの期限が切れるまで draining と表示されます。タイムアウトの期限が切れると、ターゲットは unused 状態に移行します。

登録解除の遅延が経過する前に登録解除するターゲットが接続を終了すると、クライアントは 500 レベルのエラー応答を受信します。

コンソールを使用して登録解除の遅延値を更新するには
  1. Amazon EC2 コンソール (https://console.aws.amazon.com/ec2/) を開きます。

  2. ナビゲーションペインの [ Load Balancing (ロードバランシング) ] で [ Target Groups (ターゲットグループ) ] を選択します。

  3. ターゲットグループの名前を選択して、その詳細ページを開きます。

  4. [グループの詳細] タブの [属性] セクションで、[編集] を選択します。

  5. [属性の編集] ページで、必要に応じて [登録解除の遅延] の値を変更します。

  6. [変更の保存] をクリックします。

を使用して登録解除の遅延値を更新するには AWS CLI

deregistration_delay.timeout_seconds 属性を指定して modify-target-group-attributes コマンドを使用します。

スロースタートモード

デフォルトでは、ターゲットはターゲットグループを使用して登録され初期ヘルスチェックを渡した後、すぐにリクエストの全シェアを受信し始めます。スロースタートモードを使用すると、ロードバランサーがターゲットにリクエストの全シェアを送信し始めるまでの猶予期間が設定されます。

ターゲットグループのスロースタートを有効にした後、ターゲットグループによってそのターゲットが正常と見なされると、ターゲットはスロースタートモードになります。スロースタートモードのターゲットは、設定されたスロースタート期間が経過するか、ターゲットが異常になると、スロースタートモードを終了します。ロードバランサーは、スロースタートモードのターゲットに送信できるリクエスト数を直線的に増加させます。正常なターゲットがスロースタートモードを終了すると、ロードバランサーはリクエストの全シェアを送信できます。

考慮事項
  • ターゲットグループのスロースタートを有効にした時点で、ターゲットグループに登録されていた正常なターゲットは、スロースタートモードになりません。

  • 空のターゲットグループでスロースタートを有効にし、その後、単一登録オペレーションを使用してターゲットを登録した場合、それらのターゲットはスロースタートモードになりません。新しく登録されたターゲットは、スロースタートモードになっていない正常なターゲットが 1 つ以上ある場合にのみ、スロースタートモードになります。

  • スロースタートモードのターゲットを登録解除すると、そのターゲットはスロースタートモードを終了します。同じターゲットを再度登録すると、ターゲットグループによって正常と見なされたときに、スロースタートモードになります。

  • スロースタートモードのターゲットが異常になった場合、ターゲットはスロースタートモードを終了します。ターゲットが正常になると、再びスロースタートモードになります。

  • 最小未処理のリクエストまたは加重ランダムルーティングアルゴリズムを使用する場合、スロースタートモードを有効にすることはできません。

コンソールを使用してスロースタート期間の値を更新するには
  1. Amazon EC2 コンソール (https://console.aws.amazon.com/ec2/) を開きます。

  2. ナビゲーションペインの [ Load Balancing (ロードバランシング) ] で [ Target Groups (ターゲットグループ) ] を選択します。

  3. ターゲットグループの名前を選択して、その詳細ページを開きます。

  4. [グループの詳細] タブの [属性] セクションで、[編集] を選択します。

  5. [属性の編集] ページで、必要に応じて [スロースタート期間] の値を変更します。スロースタートモードを無効にするには、期間を 0 に設定します。

  6. [変更の保存] をクリックします。

を使用してスロースタート期間の値を更新するには AWS CLI

slow_start.duration_seconds 属性を指定して modify-target-group-attributes コマンドを使用します。