を使用して Elastic Load Balancing を設定するAWS Toolkit for Eclipse - AWS Elastic Beanstalk

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

を使用して Elastic Load Balancing を設定するAWS Toolkit for Eclipse

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

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

アプリケーションをデプロイすると、Elastic Beanstalk によって自動的に Elastic Load Balancing がプロビジョニングされます。Toolkit for Eclipse で、環境の [設定] タブにある [ロードバランシング] を使うと、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 Certificate Manager (ACM) を使用して新しい証明書を作成するか、あるいは証明書とキーを AWS Identity and Access Management (IAM) にアップロードします。ACM 証明書のリクエストの詳細については、AWS Certificate Manager ユーザーガイドの「証明書のリクエスト」を参照してください。ACM へのサードパーティー証明書のインポートの詳細については、AWS Certificate Manager ユーザーガイドの「証明書のインポート」を参照してください。ACM がお客様の AWS リージョンで使用できない場合は、AWS Identity and Access Management (IAM) を使用してサードパーティー証明書をアップロードします。ACM および IAM サービスは証明書を保存し、SSL 証明書の Amazon リソースネーム (ARN) を提供します。証明書の作成と IAM へのアップロードに関する詳細については、IAM ユーザーガイドの「サーバー証明書の使用」を参照してください。

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

  3. [SSL Certificate ID] テキストボックスに、SSL 証明書の Amazon Resources Name (ARN) を入力します。例えば、arn:aws:iam::123456789012:server-certificate/abc/certs/buildarn:aws:acm:us-east-2:123456789012:certificate/12345678-12ab-34cd-56ef-12345678 などです。ステップ 1 で作成し、アップロードした SSL 証明書を使用します。

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 を入力します。デフォルトの URL をオーバーライドした場合、Elastic Beanstalk では HTTP を使用してリソースの照会が行われます。レガシーコンテナタイプを使用しているかどうかを確認するには、「一部のプラットフォームバージョンがレガシーとマークされているのはなぜですか?」を参照してください。

  • [ヘルスチェック間隔 (秒)] に、アプリケーションの 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 開発者ガイドを参照してください。