メニュー
AWS Elastic Beanstalk
開発者ガイド

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

負荷分散を有効にしている場合、AWS Elastic Beanstalk 環境には環境内のインスタンス間でトラフィックを分散する Elastic Load Balancing ロードバランサーが装備されています。Elastic Load Balancing はいくつかのロードバランサータイプをサポートしています。これについての詳細は、Elastic Load Balancing ユーザーガイド を参照してください。

このトピックでは、ネットワークロードバランサー の設定について説明します。Elastic Beanstalk がサポートするすべてのロードバランサータイプの設定に関する詳細は、「AWS Elastic Beanstalk 環境のロードバランサー」を参照してください。

注記

環境の作成時にのみに環境が使用するロードバランサーのタイプを選択できます。実行中の環境のロードバランサーの行動管理の設定は変更できますが、タイプを変更することはできません。

はじめに

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

注記

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

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

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

EB CLI を使用した ネットワークロードバランサー の設定

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 の上部に実装されているため、これは問題ありません。