Elastic ロードバランシングレイヤー - AWS OpsWorks

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

Elastic ロードバランシングレイヤー

重要

この AWS OpsWorks Stacks サービスは 2024 年 5 月 26 日にサポート終了となり、新規および既存のお客様の両方で無効になっています。できるだけ早くワークロードを他のソリューションに移行することを強くお勧めします。移行についてご質問がある場合は、 AWS re:Post またはAWS プレミアムサポートを通じて AWS サポート チームにお問い合わせください。

Elastic Load Balancing AWS OpsWorks は、 スタックレイヤーとは動作が多少異なります。レイヤーを作成してインスタンスを追加する代わりに、Elastic Load Balancing コンソールまたは API を使用してロードバランサーを作成し、既存のレイヤーにアタッチします。レイヤーのインスタンスにトラフィックを分散することに加えて、Elastic Load Balancing は以下を行います。

  • 異常な Amazon EC2インスタンスを検出し、異常なインスタンスが復元されるまで、残りの正常なインスタンスにトラフィックを再ルーティングします。

  • 受信トラフィックに応じて、自動的にそのリクエスト処理能力を拡張します。

  • Connection Draining を有効にすると、異常があるまたは登録解除されるインスタンスへの新しいリクエストの送信がロードバランサーで停止されるものの、指定された最大タイムアウト値まで接続が維持されるため、インスタンスはすべての処理中のリクエストを完了できます。

ロードバランサーをレイヤーにアタッチすると、 AWS OpsWorks Stacks は以下を実行します。

  • 現在登録されているインスタンスの登録を解除します。

  • レイヤーのインスタンスがオンラインになるとこれを自動的に登録し、オフラインになるとインスタンスの登録を解除します。これには、負荷ベースのインスタンスも、時間ベースのインスタンスも含まれます。

  • アベイラビリティーゾーンの登録されたインスタンスへのリクエストのルーティングを自動的に開始します。

ロードバランサーの Connection Draining 機能を有効にしている場合は、 AWS OpsWorks スタックがサポートするかどうかを指定できます。Connection Draining サポート (デフォルト設定) を有効にすると、インスタンスがシャットダウンされた後、 AWS OpsWorks Stacks は以下を実行します。

  • ロードバランサーからインスタンスを登録解除します。

    ロードバランサーは新しいリクエストの送信を停止し、Connection Drainingを開始します。

  • ロードバランサーが Connection Draining を完了するまで、Shutdown ライフサイクルイベントのトリガーを遅らせます。

Connection Draining サポートを有効にしない場合、インスタンスがまだロードバランサーに接続されていても、インスタンスがシャットダウンするとすぐに AWS OpsWorks 、スタックによって Shutdown イベントがトリガーされます。

スタックで Elastic Load Balancing を使用するには、まず Elastic Load Balancing コンソール、、または を使用して、同じリージョンに 1 つ以上のロードバランサーを作成する必要がありますAPI。 CLI以下に注意する必要があります。

  • レイヤーにアタッチできるロードバランサーの数は 1 つのみです。

  • 各ロードバランサーで処理できるレイヤーは 1 つのみです。

  • AWS OpsWorks スタックは Application Load Balancer をサポートしていません。 AWS OpsWorks スタックは Classic Load Balancer でのみ使用できます。

つまり、負荷分散する各スタックのレイヤーごとに個別の Elastic Load Balancing ロードバランサーを作成し、その目的のためだけに使用する必要があります。推奨される方法は、 MyStack1-RailsLayer- など、 AWS OpsWorks スタックで使用する予定の各 Elastic Load Balancing ロードバランサーに固有の名前を割り当てELBて、複数の目的でロードバランサーを使用しないことです。

重要

スタックレイヤー用に新しい Elastic Load Balancing AWS OpsWorks ロードバランサーを作成することをお勧めします。既存の Elastic Load Balancing ロードバランサーを使用する場合は、まず、他の目的で使用されておらず、インスタンスがアタッチされていないことを確認する必要があります。ロードバランサーがレイヤーにアタッチされると、 は既存のインスタンスをすべて OpsWorks 削除し、レイヤーのインスタンスのみを処理するようにロードバランサーを設定します。技術的には、Elastic Load Balancing コンソールを使用したり、レイヤーAPIにアタッチした後にロードバランサーの設定を変更したりすることは可能ですが、そうしないでください。変更は永続的ではありません。

Elastic Load Balancing ロードバランサーをレイヤーにアタッチするには
  1. まだ作成していない場合は、Elastic Load Balancing コンソール、API、または を使用してCLI、スタックのリージョンにロードバランサーを作成します。ロードバランサーを作成する場合、以下の作業を行います。

    • アプリケーションに適したヘルスチェック ping パスを指定してください。

      デフォルトの ping パスは /index.html であるため、アプリケーションのルートに index.html が含まれていない場合、適切な ping パスを指定する必要があります。そうしないと、ヘルスチェックは失敗します。

    • Connection Draining を使用する場合は、この機能が有効になっていて、適切なタイムアウト値が設定されていることを確認します。

    詳細については、「Elastic Load Balancing」を参照してください。

  2. バランスを取りたいレイヤーを作成するか、既存のレイヤーのネットワーク設定を編集します。

    注記

    カスタムレイヤーの作成時にロードバランサーをアタッチすることはできません。レイヤーの設定を編集する必要があります。

  3. Elastic Load Balancing で、レイヤーにアタッチするロードバランサーを選択し、 スタックで Connection Draining AWS OpsWorks をサポートするかどうかを指定します。

ロードバランサーをレイヤーにアタッチすると、 AWS OpsWorks スタックはスタックのインスタンスで Configure ライフサイクルイベントをトリガーして変更を通知します。また、ロードバランサーをデタッチすると AWS OpsWorks 、スタックは Configure イベントもトリガーします。

注記

インスタンスが起動すると、 AWS OpsWorks スタックは Setup レシピと Deploy レシピを実行し、パッケージをインストールしてアプリケーションをデプロイします。これらのレシピが完了すると、インスタンスはオンライン状態になり、 AWS OpsWorks スタックはインスタンスを Elastic Load Balancing に登録します。 AWS OpsWorks スタックは、インスタンスがオンラインになった後に Configure イベントもトリガーします。これは、Elastic Load Balancing 登録と Configure レシピが同時に実行される可能性があり、Configure レシピの終了前にインスタンスが登録される可能性があることを意味します。インスタンスが Elastic Load Balancing に登録される前にレシピを終了させるには、レイヤーの Setup または Deploy ライフサイクルイベントにレシピを追加する必要があります。詳細については、「レシピの実行」を参照してください。

ロードバランサーからインスタンスを削除した方がよい場合があります。たとえば、アプリケーションを更新するときは、アプリケーションを 1 つのインスタンスにデプロイし、各インスタンスにデプロイする前にアプリケーションが正しく動作していることを確認することをお勧めします。通常、ロードバランサーからそのインスタンスを削除するため、更新を確認するまでユーザーリクエストを受信しません。

ロードバランサーからオンラインインスタンスAPIを一時的に削除するには、Elastic Load Balancing コンソールまたは を使用する必要があります。コンソールを使用する方法を次に説明します。

ロードバランサーから一時的にインスタンスを削除するには
  1. Amazon EC2コンソールを開き、ロードバランサーを選択します。

  2. 適切なロードバランサーを選択し、[Instances] タブを開きます。

  3. インスタンスの [Actions] (アクション) 列で [Remove from Load Balancer] (ロードバランサーから移動) を選択します。

  4. 完了したら、[Edit Instances] を選択し、インスタンスをロードバランサーに戻します。

重要

Elastic Load Balancing コンソールまたは を使用してロードバランサーからインスタンスAPIを削除する場合は、Elastic Load Balancing を使用してインスタンスを戻す必要もあります。 AWS OpsWorks スタックは、他のサービスコンソールまたは で実行するオペレーションを認識しないためAPIs、インスタンスがロードバランサーに返されることはありません。 AWS OpsWorks スタックはインスタンスを に追加し直す場合がありますがELB、これは保証された動作ではなく、すべてのケースで発生するわけではありません。

次のように、インスタンスの特定のセットに複数のロードバランサーをアタッチできます。

複数のロードバランサーをアタッチするには
  1. Elastic Load Balancing コンソール、API、または CLIを使用して、ロードバランサーのセットを作成します。

  2. ロードバランサーごとにカスタムレイヤーを作成し、該当するロードバランサーをアタッチします。これらのレイヤーにカスタムレシピを実装する必要はありません。デフォルトのカスタムレイヤーで十分です。

  3. 各カスタムレイヤーにインスタンスのセットを追加します。

[Instances] ページに移動して、適切なロードバランサーの名前をクリックすると、ロードバランサーのプロパティを確認できます。

PHP App Server table showing two online instances with their details and status.

ELB このページには、関連するインスタンスDNSの名前とヘルスステータスを含むロードバランサーの基本プロパティが表示されます。スタックが で実行されている場合VPC、ページにはアベイラビリティーゾーンではなくサブネットが表示されます。緑のチェックマークは、正常なインスタンスを示します。名前をクリックすると、ロードバランサーを通じてサーバーに接続できます。

ELB My-Stack-PHP settings showing DNS name, layer, region, and instance status.