FargateServiceAPIGWPrivateIntegration

Description

Creates an auto-scaling ECS service with internal Application Load Balancer.

Resources

AWS::ElasticLoadBalancingV2::LoadBalancer

Internal Application Load Balancer (ALB)

AWS::EC2::SecurityGroup x 2

Security groups for ALB and ECS service

AWS::ElasticLoadBalancingV2::TargetGroup

Target group for an ALB

AWS::S3::Bucket

S3 bucket to store ALB logs

AWS::S3::BucketPolicy

Bucket policy for ALB log bucket

AWS::ElasticLoadBalancingV2::Listener

Listener for ALB

AWS::ElasticLoadBalancingV2::ListenerRule

ALB listener rule

AWS::ECS::Service

ECS service that runs and maintains the requested number of tasks and associated load balancers.

AWS::ApplicationAutoScaling::ScalableTarget

Specifies ECS service as a scaling target for Application Auto Scaling.

AWS::ApplicationAutoScaling::ScalingPolicy x 2

Scaling policies that Application Auto Scaling uses to adjust the capacity of an ECS service.

This pattern defines 2 scaling policies:

Average Application Load Balancer request count per target for the Auto Scaling group. Average CPU utilization of the Auto Scaling group.

Input

VPC

Logical ID of AWS::EC2::VPC resource

VPCLinkSG

Logical ID of AWS::EC2::SecurityGroup resource associated with the VPC link (VPCLinkSG output of ApiGatewayAddPrivateIntegration pattern)

ECSCluster

Logical ID of AWS::ECS::Cluster resource to run the service ECSTaskDefinition

Logical ID of AWS::ECS::TaskDefinition resource to run in the service (FargateTaskDefinition output of FargateServiceTask pattern).

privateSubnet1

Logical ID of AWS::EC2::Subnet resource to be used as private subnet #1 associated with the ECS service.

privateSubnet2

Logical ID of AWS::EC2::Subnet resource to be used as private subnet #2 associated with the ECS service.

containerName

The name of the ECS Fargate container. Must be the same as containerName input of FargateServiceTask pattern).

Must be a valid Cloudformation syntax that resolves to a string.

Output

ALBListener

Logical ID of Application Load Balancer listener resource AWS::ElasticLoadBalancingV2::Listener created by this pattern.