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

ネットワークロードバランサー の設定

負荷分散を有効にしている場合は、環境のインスタンス間でトラフィックを分散する Elastic Load Balancing ロードバランサーが環境に装備されています。Elastic Beanstalk は、いくつかの Elastic Load Balancing タイプをサポートしています。詳細は、Elastic Load Balancing ユーザーガイド を参照してください。このトピックでは、ネットワークロードバランサー の設定について説明します。他のロードバランサーを設定する方法については、「Classic Load Balancer」および「Application Load Balancer」を参照してください。

はじめに

ネットワークロードバランサー では、デフォルトのリスナーはポート 80 で TCP リクエストを受け取り、環境内のインスタンスに分散します。ヘルスチェックの動作の設定、ロードバランサーから Amazon Simple Storage Service(Amazon S3) バケットへのアクセスログのプッシュ、リスナーポートの設定、他のポートでのリスナーの追加を行うことができます。

注記

Classic Load Balancer または Application Load Balancer とは異なり、ネットワークロードバランサー では HTTP または HTTPS リスナーを持つことはできません。TCP リスナーのみサポートしています。レイヤー 7 の HTTP および HTTPS プロトコルのウェブトラフィックではいずれも、レイヤー 4 の TCP プロトコルを使用しているため、ネットワークロードバランサー は、設定された TCP ポートのウェブトラフィックをすべて処理します。さまざまなポート (通常 443) に移動するセキュアな HTTPS トラフィックを実現するには、このポート向けに別のリスナーを設定して、トラフィックを別のターゲットプロセスに直接送信することができます。

ネットワークロードバランサー は、アクティブなヘルスチェックをサポートしています。これらのチェックは、他のロードバランサータイプと同様、設定されたヘルスチェックパスへのメッセージに基づいています。さらに、ネットワークロードバランサー は、パッシブのヘルスチェックをサポートしています。問題のあるバックエンドインスタンスを自動的に検出し、正常なインスタンスにのみトラフィックをルーティングします。

開始方法

注記

ロードバランサータイプは、EB CLI、Elastic Beanstalk API、または例 (.ebextensions/network-load-balancer.config) にあるように、.ebextensions を使用して環境の作成中にのみ設定できます。コンソールではこの機能はサポートされません。

eb create の実行時に、EB CLI によりロードバランサータイプの選択が求められます。

$ eb create Enter Environment Name (default is my-app): test-env Enter DNS CNAME prefix (default is my-app): test-env-DLW24ED23SF Select a load balancer type 1) classic 2) application 3) network (default is 1): 3

--elb-type オプションでロードバランサータイプを指定することもできます。

$ eb create test-env --elb-type network

ネットワークロードバランサー の名前空間

ネットワークロードバランサー に関連する設定は、以下の名前空間で確認できます。

  • aws:elasticbeanstalk:environment – 環境のロードバランサーのタイプを選択します。ネットワークロードバランサー の値は network です。

  • aws:elbv2:loadbalancer – ネットワークロードバランサー に全体として適用されるアクセスログの設定とその他の設定を行います。

    注記

    この名前空間の ManagedSecurityGroupSecurityGroups の設定は、ネットワークロードバランサー に適用されません。

  • aws:elbv2:listener – ネットワークロードバランサー でリスナーを設定します。これらの設定は、Classic Load Balancer に対する aws:elb:listener の設定にマッピングされます。

  • aws:elasticbeanstalk:environment:process – ヘルスチェックを設定し、環境のインスタンスで実行するプロセス用のポートとプロトコルを指定します。ポートとプロトコル設定は Classic Load Balancer のリスナー用の aws:elb:listener のインスタンスポートおよびインスタンスプロトコル設定にマッピングされます。ヘルスチェックの設定は、aws:elb:healthcheck および aws:elasticbeanstalk:application 名前空間の設定にマッピングされます。

.ebextensions/network-load-balancer.config

ネットワークロードバランサー の使用を開始するには、設定ファイルを使用してロードバランサータイプを network に設定します。

option_settings: aws:elasticbeanstalk:environment: LoadBalancerType: network

注記

環境の作成中にのみ、ロードバランサータイプを設定できます。

.ebextensions/nlb-default-process.config

以下の設定ファイルでは、デフォルトプロセスのヘルスチェックの設定を変更します。

option_settings: aws:elasticbeanstalk:environment:process:default: DeregistrationDelay: '20' HealthCheckInterval: '10' HealthyThresholdCount: '5' UnhealthyThresholdCount: '5' Port: '80' Protocol: TCP

例 .ebextensions/nlb-secure-listener.config

以下の設定ファイルでは、ポート 443 のセキュアなトラフィックのリスナーと、ポート 443 をリッスンする一致するターゲットプロセスが追加されます。

option_settings: aws:elbv2:listener:443: DefaultProcess: https ListenerEnabled: 'true' aws:elasticbeanstalk:environment:process:https: Port: '443'

注記

この DefaultProcess オプションは、Application Load Balancer によりこのように名前が付けられており、特定のパスのトラフィックの同一ポートのデフォルトでないリスナーを設定することができます (詳細については Application Load Balancer を参照)。ネットワークロードバランサー のこのオプションは、このリスナーのターゲットプロセスのみ指定します。

この例では、セキュアな (HTTPS) トラフィックをリッスンするため、プロセスは https という名前になります。ネットワークロードバランサー は TCP でのみ使用できるため、リスナーは、TCP プロトコルを使用して、指定ポートのプロセスにトラフィックを送信します。HTTP および HTTPS トラフィックは TCP の上部に実装されているため、これは問題ありません。