共有ロードバランサーを使用する AWS Elastic Beanstalk 環境用の追加リスナーを作成するにはどうすればよいですか?

最終更新日: 2021 年 3 月 12 日

共有ロードバランサーを使用する AWS Elastic Beanstalk 環境用の追加リスナーを作成したいと思います。

簡単な説明

Elastic Beanstalk で共有ロードバランサーを使用している場合は、aws:elbv2:listener:listener_port オプション設定または Elastic Beanstalk コンソールを使用して追加リスナーを作成することはできません。これは、ロードバランサーが Elastic Beanstalk によって管理されていないためです。

.ebextension カスタムリソースを使用して、共有ロードバランサーを備えた Elastic Beanstalk 環境用の追加リスナーを作成できます。

ヒント: 追加のリスナーを環境のライフサイクルに関連付けて、環境を終了する場合にリスナーを削除することをおすすめします。

解決方法

1.    デフォルトのリスナーとターゲットグループを含む Application Load Balancer を作成します。

2.    以下を含め、additional-listener.config ファイルと呼ばれる構成ファイルを作成します。

Resources:
  AdditionalHttpListener:
      Type: AWS::ElasticLoadBalancingV2::Listener
      Properties:
        LoadBalancerArn:
          "Fn::GetOptionSetting":
            Namespace: "aws:elbv2:loadbalancer"
            OptionName: "SharedLoadBalancer"
        DefaultActions:
        - Type: forward
          TargetGroupArn:
            Ref: AWSEBV2LoadBalancerTargetGroup
        Port: 8080
        Protocol: HTTP

注: ステップ 2 の YAML ファイルは、AWS::ElasticLoadBalancingV2::Listener リソースの AWS CloudFormation 仕様に従います。

3.    ステップ 2 のファイルを、アプリケーションソースバンドルの一部である .ebextensions フォルダに配置します。

4.    更新したアプリケーションソースバンドルの ZIP ファイルを作成します。

5.    ステップ 4 の ZIP ファイルを使用して、新しい Elastic Beanstalk 環境を作成するか、ステップ 1 で共有ロードバランサーで構成されている既存の環境を更新します。

ステップ 2 の設定ファイルは、Elastic Beanstalk 環境に関連付けられた共有ロードバランサーの HTTP リスナーをポート 8080 に作成します。次に、リスナーはすべてのトラフィックをデフォルトプロセスに転送します。CloudFormation の AWS::ElasticLoadBalancingV2::ListenerRule リソース定義を使用して、この設定ファイルをさらに拡張し、リスナーにルールを追加することができます。

重要: このリスナーは Elastic Beanstalk 環境の一部である追加リソースとして作成されるため、環境が終了するとリスナーは削除されます。

注: 共有ロードバランサーとデフォルトのリスナールールの詳細については、共有 Application Load Balancer の設定を参照してください。


この記事は役に立ちましたか?


請求に関するサポートまたは技術サポートが必要ですか?