AWS::ECS::Service LoadBalancer - AWS CloudFormation

AWS::ECS::Service LoadBalancer

LoadBalancer プロパティは、サービスで使用されるロードバランサーの詳細を指定します。

サービスが ECS デプロイコントローラーを使用している場合は、1 つのロードバランサーまたはターゲットグループに制限されます。

サービスが CODE_DEPLOY デプロイコントローラーを使用している場合、サービスは Application Load Balancer または Network Load Balancer を使用する必要があります。AWS CodeDeploy デプロイグループを作成するときには、2 つのターゲットグループ (targetGroupPair と呼ばれる) を指定します。各ターゲットグループが、デプロイの別のタスクセットにバインドされます。ロードバランサーには、最大 2 つのリスナー、本稼働トラフィックに必要なリスナー、および本稼働トラフィックをルーティングする前にサービスの新しいリビジョンをテストできるオプションのリスナーを含めることもできます。

awsvpc ネットワークモードを使用するタスク (たとえば、Fargate 起動タイプのサービス) は、Application Load Balancer と Network Load Balancer のみをサポートします。Classic Load Balancer はサポートされていません。また、このようなサービス用にターゲットグループを作成する場合は、ターゲットタイプとして instance ではなく、ip を選択する必要があります。これは、awsvpc ネットワークモードを使用するタスクは、Amazon EC2 インスタンスではなく、Elastic Network Interface に関連付けられているためです。

構文

AWS CloudFormation テンプレートでこのエンティティを宣言するには、次の構文を使用します。

JSON

{ "ContainerName" : String, "ContainerPort" : Integer, "LoadBalancerName" : String, "TargetGroupArn" : String }

YAML

ContainerName: String ContainerPort: Integer LoadBalancerName: String TargetGroupArn: String

プロパティ

ContainerName

ロードバランサーに関連付けるコンテナの名前 (コンテナ定義に表示)。

必須: いいえ

タイプ: 文字列

Update requires: Replacement

ContainerPort

ロードバランサーに関連付けるコンテナのポート。このポートは、サービスのタスクが使用しているタスク定義の containerPort に対応する必要があります。EC2 起動タイプを使用するタスクの場合、起動されるコンテナインスタンスは、ポートマッピングの hostPort で進入トラフィックを許可する必要があります。

必須: はい

タイプ: 整数

Update requires: Replacement

LoadBalancerName

Amazon ECS サービスまたはタスクセットに関連付けられるロードバランサーの名前。

ロードバランサー名は、Classic Load Balancer を使用するときにのみ指定します。Application Load Balancer または Network Load Balancer を使用している場合は、ロードバランサーの名前パラメータを省略する必要があります。

必須: いいえ

タイプ: 文字列

Update requires: Replacement

TargetGroupArn

サービスまたはタスクセットに関連付ける 1 つ以上の Elastic Load Balancing ターゲットグループの完全な Amazon リソースネーム (ARN)。

ターゲットグループ ARN は、Application Load Balancer または Network Load Balancer を使用する場合にのみ指定します。Classic Load Balancer を使用している場合は、ターゲットグループの ARN を省略する必要があります。

ECS デプロイコントローラーを使用するサービスの場合は、1 つ以上のターゲットグループを指定できます。詳細については、Amazon Elastic Container Service 開発者ガイドの「サービスに複数のターゲットグループを登録する」を参照してください。

CODE_DEPLOY デプロイコントローラーを使用するサービスの場合、ロードバランサーの 2 つのターゲットグループを定義する必要があります。詳細については、Amazon Elastic Container Service 開発者ガイドの「CodeDeploy を使用した Blue/Green デプロイを」参照してください。

重要

サービスのタスク定義で awsvpc ネットワークモード (Fargate 起動タイプの場合に必須) を使用している場合、ターゲットグループを作成する際に、ターゲットタイプとして instance ではなく ip を選択する必要があります。これは、awsvpc ネットワークモードを使用するタスクが、Amazon EC2 インスタンスではなく、Elastic Network Interface に関連付けられているためです。

必須: いいえ

タイプ: 文字列

Update requires: Replacement