Network Load Balancer の設定 - AWS Elastic Beanstalk

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

Network Load Balancer の設定

ロードバランシングを有効にしている場合、AWS Elastic Beanstalk 環境には環境内のインスタンス間にトラフィックを分散する Elastic Load Balancing ロードバランサーが用意されています。Elastic Load Balancing は、いくつかのロードバランサータイプをサポートしています。それらについては、Elastic Load Balancing ユーザーガイドを参照してください。Elastic Beanstalk では、ロードバランサーを作成したり、作成した共有ロードバランサーを指定したりできます。

このトピックでは、Elastic Beanstalk が作成し、環境専用にする Network Load Balancer の設定について説明します。Elastic Beanstalk がサポートするすべてのロードバランサータイプの設定については、「Elastic Beanstalk 環境のロードバランサー」を参照してください。

注記

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

序章

Network Load Balancer では、デフォルトのリスナーはポート 80 で TCP リクエストを受け取り、環境内のインスタンスに分散します。ヘルスチェックの動作の設定、リスナーポートの設定、または他のポートへのリスナーの追加を行うことができます。

注記

Classic Load Balancer や Application Load Balancer とは異なり、Network Load Balancer はアプリケーションレイヤー (レイヤー 7) の HTTP または HTTPS リスナーを配置できません。トランスポートレイヤー (レイヤー 4) TCP リスナーのみをサポートしています。HTTP および HTTPS トラフィックは、TCP 経由で環境にルーティングできます。ウェブクライアントと環境の間でセキュアな HTTPS 接続を確立するには、自己署名証明書 を環境のインスタンスにインストールして、適切なポート (通常は 443) でリッスンして HTTPS 接続を終了するようにインスタンスを設定します。設定はプラットフォームによって異なります。手順については、「インスタンスで HTTPS 接続を終了するようにアプリケーションを設定する」を参照してください。次に、適切なポートでリッスンしているプロセスにマッピングされるリスナーを追加するように、Network Load Balancer を設定します。

Network Load Balancer は、アクティブなヘルスチェックをサポートしています。これらのチェックは、ルート (/) パスへのメッセージに基づきます。さらに、Network Load Balancer はパッシブなヘルスチェックもサポートしています。問題のあるバックエンドインスタンスを自動的に検出し、正常なインスタンスにのみトラフィックをルーティングします。

Elastic Beanstalk コンソールを使用した Network Load Balancer の設定

Elastic Beanstalk コンソールを使用して、環境の作成中か、後で環境の実行中に、Network Load Balancer のリスナーとプロセスを設定できます。

環境の作成中に Elastic Beanstalk コンソールで Network Load Balancer を設定するには
  1. Elastic Beanstalk コンソールを開き、[Regions] (リージョン) リストで AWS リージョンを選択します。

  2. ナビゲーションペインで [Environments] (環境) を選択します。

  3. [新しい環境の作成] を選択して、環境の作成を開始します。

  4. ウィザードのメインページで、[環境の作成] を選択する前に、[さらにオプションを設定] を選択します。

  5. [高可用性] 設定プリセットを選択します。

    または、[容量] 設定カテゴリで [ロードバランサー] 環境タイプを設定します。詳細については、「容量」を参照してください。

  6. [ロードバランサー] 設定カテゴリで、[編集] を選択します。

  7. まだ選択されていない場合は、[Network Load Balancer] オプションを選択します。

    
            Elastic Load Balancing 設定ページ - ロードバランサータイプの選択
  8. Network Load Balancer の設定に、環境に必要な変更を加えます。

  9. [保存] を選択し、環境に必要なその他の任意の設定変更を行います。

  10. [Create environment] (環境の作成) を選択します。

実行中の環境の Network Load Balancer を Elastic Beanstalk コンソールで設定するには
  1. Elastic Beanstalk コンソールを開き、[Regions] (リージョン) リストで AWS リージョンを選択します。

  2. ナビゲーションペインで、[環境] を選択し、リストから環境の名前を選択します。

    注記

    環境が多数ある場合は、検索バーを使用して環境リストをフィルタリングします。

  3. ナビゲーションペインで、[設定] を選択します。

  4. [ロードバランサー] 設定カテゴリで、[編集] を選択します。

    注記

    [ロードバランサー] 設定カテゴリに [編集] ボタンがない場合、お客様の環境にはロードバランサーがありません。設定方法については、「環境タイプの変更」を参照してください。

  5. Network Load Balancer の設定に、環境に必要な変更を加えます。

  6. ページの最下部で [適用] を選択し変更を保存します。

Network Load Balancer の設定

リスナー

このリストを使用して、ロードバランサーにリスナーを指定します。各リスナーは、指定されたポートの着信クライアントトラフィックをインスタンス上のプロセスにルーティングします。初期状態では、このリストには、ポート 80 で着信トラフィックをポート 80 でリッスンする [デフォルト] という名前のプロセスにルーティングするデフォルトのリスナーが表示されます。


          Network Load Balancer の設定 - リスナーリスト
既存のリスナーを設定するには
  1. そのテーブルエントリの横にあるチェックボックスを選択し、続いて [アクション]、[編集] の順に選択します。

  2. [Network Load Balancer listener (ネットワークロードバランサーリスナー)] ダイアログボックスを使用して設定を編集し、[保存] を選択します。

リスナーを追加するには
  1. [リスナーの追加] を選択します。

  2. [Network Load Balancer listener (ネットワークロードバランサーリスナー)] ダイアログボックスで必要な設定を行い、[追加] を選択します。

[Network Load Balancer listener (ネットワークロードバランサーリスナー)] ダイアログボックスを使用して、リスナーがトラフィックをリッスンするポートを設定し、トラフィックをルーティングするプロセス (プロセスがリッスンするポートによって指定された) を選択します。


          [Network Load Balancer listener (Network Load Balancer リスナー)] ダイアログボックス

プロセス

このリストを使用して、ロードバランサーにプロセスを指定します。プロセスは、トラフィックをルートするターゲットです。各リスナーは、指定されたポートの着信クライアントトラフィックをインスタンス上のプロセスにルーティングします。初期状態では、このリストには、ポート 80 で着信トラフィックをリッスンするデフォルトのプロセスが表示されます。


          Network Load Balancer の設定 - プロセスリスト

既存のプロセスの設定を編集するか、あるいは新しいプロセスを追加します。リストのプロセスの編集またはプロセスの追加を開始するには、リスナーリストと同じステップを使用します。[環境プロセス] ダイアログボックスが開きます。

Network Load Balancer の環境プロセスダイアログボックスでの設定

定義

これらの設定を使用して、[名前] およびリクエストをリッスンする [プロセスポート] でプロセスを定義します。


            Network Load Balancer のプロセスダイアログボックスでの名前、リスナーポート、プロセスポートの設定

ヘルスチェック

次の設定を使用して、プロセスのヘルスチェックを設定します。

  • [Interval (間隔)] - 個々のインスタンスのヘルスチェックの間隔 (秒単位)。

  • [Healthy threshold (正常のしきい値)] - Elastic Load Balancing がインスタンスのヘルス状態を変更する前に、ヘルスチェックに合格しなければならない回数 (Network Load Balancer で、[Unhealthy threshold (非正常のしきい値)] は読み取り専用の設定であり、正常のしきい値と常に等しくなります)。

  • [Deregistration delay (登録解除の遅延)] - インスタンスの登録を解除する前にアクティブリクエストの完了を待機する時間 (秒単位)。


            Network Load Balancer のプロセスダイアログボックスでのヘルスチェックの設定
注記

Elastic Load Balancing ヘルスチェックは、環境の Auto Scaling グループのヘルスチェック動作に影響しません。Elastic Load Balancing ヘルスチェックに失敗したインスタンスは、Amazon EC2 Auto Scaling を手動で設定していなければ、Amazon EC2 Auto Scaling によって自動的に置き換えられません。詳細については、「Auto Scaling ヘルスチェックの設定」を参照してください。

ヘルスチェックと、それが環境の全体的な状態に与える影響の詳細については、「ベーシックヘルスレポート」を参照してください。

例: エンドツーエンド暗号化を使用する環境の Network Load Balancer

この例では、アプリケーションはエンドツーエンドのトラフィック暗号化を必要とします。これらの要件を満たすように環境の Network Load Balancer を設定するには、ポート 443 をリッスンするようにデフォルトのプロセスを設定し、トラフィックをデフォルトのプロセスにルーティングするリスナーをポート 443 に追加して、デフォルトのリスナーを無効にします。

この例でロードバランサーを設定するには
  1. デフォルトプロセスを設定します。デフォルトのプロセスを選択し、[アクション] で [編集] を選択します。[プロセスポート] に「443」と入力します。

    
            Network Load Balancer の設定例 - プロセスポート 443 を使用するようにデフォルトのプロセスを設定する
  2. ポート 443 リスナーを追加します。新しいリスナーを追加します。[リスナーポート] で 443 と入力します。[プロセスポート] として 443 が選択されていることを確認します。

    
            Network Load Balancer の設定例 - ポート 443 リスナーを追加する

    これでリストに追加のリスナーが表示されます。

    
            Network Load Balancer の設定例 - 2 つのリスナーを含むリスナーリスト
  3. デフォルトのポート 80 リスナーを無効にします。デフォルトのリスナーについて、[有効] オプションをオフにします。

    
            Network Load Balancer の設定例 - デフォルトのリスナーを無効にする

EB CLI を使用した Network Load Balancer の設定

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

Network Load Balancer の名前空間

Network Load Balancer に関連する設定は、以下の名前空間にあります。

  • aws:elasticbeanstalk:environment - 環境のロードバランサーのタイプを選択します。Network Load Balancer の値は network です。

  • aws:elbv2:listener - Network Load Balancer のリスナーを設定します。これらの設定は、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 Load Balancer の使用を開始するには、設定ファイルを使用してロードバランサータイプを 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 を参照)。Network Load Balancer の場合、このオプションでは、このリスナーの唯一のターゲットプロセスを指定します。

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