メニュー
AWS Elastic Beanstalk
開発者ガイド (API Version 2010-12-01)

AWS Toolkit for Eclipse の使用による Elastic Load Balancing の設定

Elastic Load Balancing は、アプリケーションの可用性とスケーラビリティを改善する Amazon のウェブサービスです。Elastic Load Balancing を使用すると、複数の Amazon EC2 インスタンス間でアプリケーションの負荷を分散できます。Elastic Load Balancing による冗長化で可用性が改善され、アプリケーションのトラフィック増加に対応できます。

Elastic Load Balancing を使用すると、実行しているすべての EC2 サーバーインスタンス間で、アプリケーションの着信トラフィックの負荷を分散して調整することができます。また、アプリケーションの処理能力を増やす必要があるときには、新しいインスタンスを簡単に追加することもできます。

アプリケーションをデプロイすると、Elastic Beanstalk によって自動的に Elastic Load Balancing がプロビジョニングされます。[Load Balancing] の、Toolkit for Eclipse 内の環境の [Configuration] タブでは、Elastic Beanstalk 環境のロードバランシング設定を編集できます。

ここでは、アプリケーションで設定できる Elastic Load Balancing パラメータについて説明します。

ポート

Elastic Beanstalk アプリケーションへのリクエストを処理するためにプロビジョニングされたロードバランサーは、アプリケーションを実行している Amazon EC2 インスタンスにリクエストを送信します。プロビジョニングされたロードバランサーは、HTTP ポートと HTTPS ポートのリクエストをリッスンし、AWS Elastic Beanstalk アプリケーションの Amazon EC2 インスタンスにリクエストをルーティングすることができます。デフォルトでは、ロードバランサーは HTTP ポートのリクエストを処理します。少なくともいずれかのポート(HTTP または HTTPS)を有効にする必要があります。

重要

指定したポートがロックされていないことを確認してください。ロックされている場合、ユーザーは Elastic Beanstalk アプリケーションに接続できません。

HTTP ポートを制御する

HTTP ポートをオフにするには、[HTTP Listener Port] で [OFF] を選択します。HTTP ポートを有効にするには、HTTP ポート (80 など) を選択します。

注記

デフォルトポート 80 以外のポート (例: ポート 8080) を使用して環境にアクセスする場合は、既存のロードバランサーにリスナーを追加し、そのポートでリッスンするようにリスナーを設定します。

たとえば、Classic Load Balancer 用の AWS CLI を使用して、次のコマンドを入力します。LOAD_BALANCER_NAME は Elastic Beanstalk のロードバランサーの名前に置き換えてください。

aws elb create-load-balancer-listeners --load-balancer-name LOAD_BALANCER_NAME --listeners "Protocol=HTTP, LoadBalancerPort=8080, InstanceProtocol=HTTP, InstancePort=80"

たとえば、Application Load Balancer 用の AWS CLI を使用して、次のコマンドを入力します。LOAD_BALANCER_ARN は Elastic Beanstalk のロードバランサーの ARN に置き換えてください。

aws elbv2 create-listener --load-balancer-arn LOAD_BALANCER_ARN --protocol HTTP --port 8080

Elastic Beanstalk を使用して環境を監視する場合は、ポート 80 のリスナーを削除しないでください。

HTTPS ポートを制御する

Elastic Load Balancing は、ロードバランサーへのクライアント接続のトラフィックを暗号化するために、HTTPS/TLS プロトコルをサポートしています。ロードバランサーから EC2 インスタンスへの接続には、プレーンテキストが使用されます。デフォルトで、HTTPS ポートは無効です。

HTTPS ポートを有効にするには

  1. AWS Identity and Access Management (IAM)サービスの証明書およびキーを作成してアップロードします。 IAM サービスは証明書を保存し、アップロードした SSL 証明書の Amazon Resource Name(ARN)を提供します。証明書の作成とアップロードの詳細については、「Using AWS Identity and Access Management」の「Managing Server Certificates」を参照してください。

  2. [HTTPS Listener Port] ドロップダウンリストからポートを選択して、HTTPS ポートを指定します。

  3. [SSL Certificate ID] テキストボックスに、SSL 証明書の Amazon Resources Name(ARN)を入力します(例えば、arn:aws:iam::123456789012:server-certificate/abc/certs/build)。ステップ 1 で作成し、アップロードした SSL 証明書を使用します。証明書の ARN の表示については、「Using IAM Guide」の「Creating and Uploading Server Certificates」の「Verify the Certificate Object」を参照してください。

HTTPS ポートをオフにするには、[HTTPS Listener Port] で [OFF] を選択します。

ヘルスチェック

[Load Balancing] パネルの EC2 Instance Health Check] を使用して、ヘルスチェックの設定を制御できます。

次の一覧では、アプリケーションで設定できるヘルスチェックパラメータについて説明します。

  • Elastic Beanstalk は照会する URL で応答コード 200 を探して、インスタンスのヘルスを確認します。デフォルトでは、Elastic Beanstalk はレガシーではないコンテナの場合は TCP:80 を確認し、レガシーコンテナの場合は HTTP:80 を確認します。オーバーライドしてアプリケーションの既存のリソース(例えば、/myapp/index.jsp)に一致させるには、[Application Health Check URL] ボックスに入力します。 デフォルトの URL をオーバーライドすると、Elastic Beanstalk は HTTP を使用してリソースを照会します。レガシーコンテナタイプを使用しているかどうかを確認するには、「いくつかのコンテナタイプがレガシーとマークされている理由」を参照してください。

  • [Health Check Interval (seconds)] に、アプリケーションの Amazon EC2 インスタンスでヘルスチェックを実行する間隔の秒数を入力します。

  • [Health Check Timeout] に、Elastic Load Balancing がインスタンスの応答がないと見なす応答待機時間の秒数を入力します。

  • [Healthy Check Count Threshold] および [Unhealthy Check Count Threshold] には、Elastic Load Balancing がインスタンスのヘルスステータスを変更するまでの URL プローブの連続成功回数または失敗回数を指定します。例えば、[Unhealthy Check Count Threshold] テキストボックスに 5 と指定すると、URL から 5 回連続してエラーメッセージが返されるか、タイムアウトしてから、Elastic Load Balancing はヘルスチェックを "失敗した" と見なします。

セッション

デフォルトでは、ロードバランサーは負荷が最小になるように、各リクエストを個別にサーバーインスタンスにルーティングします。比較すると、スティッキーセッションの場合、セッション中にユーザーから受信するすべてのリクエストが、同じサーバーインスタンスに送信されるように、ユーザーのセッションを特定のサーバーインスタンスにバインドします。

アプリケーションでスティッキーセッションが有効な場合、Elastic Beanstalk は、ロードバランサーで生成された HTTP Cookie を使用します。ロードバランサーは、ロードバランサーが生成する特別な Cookie を使って、各リクエストのアプリケーションインスタンスを追跡します。ロードバランサーがリクエストを受け取ると、まずこの Cookie がリクエスト内にあるかどうかを調べます。ある場合は、Cookie で指定されたアプリケーションインスタンスにリクエストが送信されます。Cookie がない場合、ロードバランサーは、既存の負荷分散アルゴリズムに基いてアプリケーションインスタンスを選択します。同じユーザーからの以降のリクエストをそのアプリケーションインスタンスにバインドするため、応答に Cookie が挿入されます。ポリシー設定では、各 Cookie の有効期間を設定する Cookie 期限を定義します。

[Load Balancer] 以下の [Sessions] セクションで、アプリケーションのロードバランサーでスティッキーセッションを許可するかどうかと、各 Cookie の有効期間を指定します。

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

このページの内容: