翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Elastic Load Balancing
Elastic Load Balancing の動作は、AWS OpsWorksスタックレイヤー。Layer を作成してインスタンスを追加する代わりに、Elastic Load Balancing コンソールまたは API を使用してロードバランサーを作成し、既存の Layer にアタッチすることもできます。Elastic Load Balancing は、Layer のインスタンスにトラフィックを分散することに加えて、以下を行います。
-
問題のあるAmazon EC2 インスタンスを検出し、その問題のあるインスタンスが復旧するまで、自動的にトラフィック経路を残りの正常なインスタンスに変更します。
-
受信トラフィックに応じて、自動的にそのリクエスト処理能力を拡張します。
-
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 Load Balancer は、次の場合のみ使用できます。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 を使用して変更することは技術的には可能ですが、そうしないでください。この変更は永続的ではないためです。
Layer に Elastic Load Balancing のロードバランサーをアタッチするには
-
まだ実行していない場合は、Elastic Load Balancing
、API、または CLI を使用して、スタックのリージョンにロードバランサーを作成します。ロードバランサーを作成する場合、以下の作業を行います。 -
アプリケーションに適したヘルスチェック ping パスを指定してください。
デフォルトの ping パスは
/index.html
であるため、アプリケーションのルートにindex.html
が含まれていない場合、適切な ping パスを指定する必要があります。そうしないと、ヘルスチェックは失敗します。 -
Connection Draining を使用する場合は、この機能が有効になっていて、適切なタイムアウト値が設定されていることを確認します。
詳細については、「Elastic Load Balancing」を参照してください。
-
-
Layer の作成バランスが取れたいのか既存のレイヤーのネットワーク設定を編集する。
注記 カスタム Layer の作成時にロードバランサーをアタッチすることはできません。Layer の設定を編集する必要があります。
-
[Elastic Load Balancing] で、レイヤーにアタッチするロードバランサーを選択し、AWS OpsWorks スタックで Connection Draining をサポートするかどうかを指定します。
レイヤーにロードバランサーをアタッチした後に、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 を使用する必要があります。コンソールを使用する方法を次に説明します。
ロードバランサーから一時的にインスタンスを削除するには
-
を開くAmazon EC2 コンソール
を選択し、ロードバランサー。 -
適切なロードバランサーを選択し、[Instances] タブを開きます。
-
選択Load Balancer から削除インスタンスのアクション列でロードバランサーの ID をクリックします。
-
完了したら、[Edit Instances] を選択し、インスタンスをロードバランサーに戻します。
Elastic Load Balancing コンソールまたは API を使用してロードバランサーからインスタンスを削除した場合、Elastic Load Balancing を使用してそのインスタンスを戻す必要もあります。AWS OpsWorksスタックは、他のサービスコンソールまたは API で実行された操作を認識しないため、ロードバランサーにインスタンスが自動的に戻されることはありません。場合によっては、AWS OpsWorks スタックはインスタンスを ELB に戻すことができますが、これは保証されている動作ではなく、すべてのケースで実行されるわけではありません。
次のように、インスタンスの特定のセットに複数のロードバランサーをアタッチできます。
複数のロードバランサーをアタッチするには
-
を使用するElastic Load Balancing
、API、または CLI を使用して、ロードバランサーのセットを作成します。 -
ロードバランサーごとにカスタム Layer を作成し、該当するロードバランサーをアタッチします。これらの Layer にカスタムレシピを実装する必要はありません。デフォルトのカスタム Layer で十分です。
-
各カスタム Layer にインスタンスのセットを追加します。
[Instances] ページに移動して、適切なロードバランサーの名前をクリックすると、ロードバランサーのプロパティを確認できます。

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