Elastic Load Balancing - AWS OpsWorks

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

Elastic Load Balancing

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

  • Elastic Load Amazon EC2 インスタンスを検出し、そのElastic インスタンスが復旧するまで、自動的にトラフィック経路を残りの正常なインスタンスに変更します。

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

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

レイヤーにロードバランサーをアタッチした後に、AWS OpsWorks スタックによって以下の処理が行われます。

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

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

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

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

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

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

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

Connection Draining機能を有効にしていない場合、インスタンスがシャットダウンされたらすぐに (インスタンスがまだロードバランサーに接続されていても)、AWS OpsWorks スタックは Shutdown イベントをトリガーします。

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

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

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

  • AWS OpsWorksスタックでは、Application Load Balancer はサポートされていません。Classic ロードバランサーはAWS OpsWorksスタック。

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

重要

AWS OpsWorks スタックのレイヤーに対して新しい Elastic Load Balancing ロードバランサーを作成することをお勧めします。既存の Elastic Load Balancing ロードバランサーを使用する場合は、まず、他の目的に使用されておらず、インスタンスがアタッチされていないことを確認する必要があります。ロードバランサーが Layer にアタッチされた後、OpsWorks は既存のインスタンスをすべて削除して、Layer のインスタンスのみを処理するようにロードバランサーを設定します。Layer にアタッチした後でロードバランサーの設定を 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. レイヤーの作成バランスの取れたりしたいとか既存のレイヤーのネットワーク設定を編集する

    注記

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

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

Layer にロードバランサーをアタッチした後は、AWS OpsWorksスタックによって、新しく起動されたインスタンスを含む、スタックのすべてのインスタンスに対してライフサイクルイベントの構成をスタックのインスタンスに追加して、変更を通知します。AWS OpsWorksロードバランサーをデタッチした場合も、 スタックによって Configure イベントがトリガーされます。

注記

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

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

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

ロードバランサーから一時的にインスタンスを削除するには

  1. を開くAmazon EC2 コンソールを選択し、ロードバランサー

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

  3. 選択Load Balancer からの削除インスタンスのアクション列でロードバランサーの ID をクリックします。

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

重要

Elastic Load Balancing コンソールまたは API を使用してロードバランサーからインスタンスを削除した場合、Elastic Load Balancing を使用して元に戻す必要があります。AWS OpsWorksスタックは、他のサービスコンソールまたは API で実行された操作を認識しないため、ロードバランサーにインスタンスが自動的に戻されることはありません。場合によっては、AWS OpsWorks スタックはインスタンスを ELB に戻すことができますが、これは保証されている動作ではなく、すべてのケースで実行されるわけではありません。

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

複数のロードバランサーをアタッチするには

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

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

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

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

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