AWSTemplateFormatVersion: "2010-09-09" Parameters: AppId: Description: An application ID that is prefixed to resource names Type: String EnvId: Description: An environment ID that is prefixed to resource names Type: String ImageTag: Description: An image tag that is used in ECS task definition Type: String Resources: #----------------------------------------------------------# # Frontend #----------------------------------------------------------# FrontendEcsService: Type: AWS::ECS::Service Properties: ServiceName: !Sub "${AppId}-${EnvId}-frontend-ecs-service" Cluster: {"Fn::ImportValue": !Sub "${AppId}-${EnvId}-ecs-cluster-id"} LaunchType: FARGATE DesiredCount: 1 EnableExecuteCommand: true DeploymentController: Type: ECS NetworkConfiguration: AwsvpcConfiguration: AssignPublicIp: DISABLED Subnets: - {"Fn::ImportValue": !Sub "${AppId}-${EnvId}-private-subnet-1"} - {"Fn::ImportValue": !Sub "${AppId}-${EnvId}-private-subnet-2"} SecurityGroups: - {"Fn::ImportValue": !Sub "${AppId}-${EnvId}-frontend-layer-ecs-sg-id"} TaskDefinition: !Ref FrontendEcsTaskDefinition LoadBalancers: - TargetGroupArn: {"Fn::ImportValue": !Sub "${AppId}-${EnvId}-frontend-alb-tg-arn"} ContainerPort: 80 ContainerName: "frontend-app" FrontendEcsTaskDefinition: Type: AWS::ECS::TaskDefinition Properties: ContainerDefinitions: - Name: "frontend-app" Image: !Sub - "${EcrRepositoryUri}:${ImageTag}" - EcrRepositoryUri: {"Fn::ImportValue": !Sub "${AppId}-${EnvId}-frontend-ecr-repository-uri"} ImageTag: !Ref ImageTag LinuxParameters: InitProcessEnabled: True PortMappings: - ContainerPort: 80 Protocol: tcp LogConfiguration: LogDriver: awslogs Options: awslogs-create-group: True awslogs-group: {"Fn::ImportValue": !Sub "${AppId}-${EnvId}-ecs-log-group-name"} awslogs-region: !Ref AWS::Region awslogs-stream-prefix: frontend Family: !Sub "${AppId}-${EnvId}-frontend" Cpu: 1024 Memory: 2048 NetworkMode: awsvpc RequiresCompatibilities: - FARGATE ExecutionRoleArn: {"Fn::ImportValue": !Sub "${AppId}-${EnvId}-ecs-task-execution-role-arn"} TaskRoleArn: {"Fn::ImportValue": !Sub "${AppId}-${EnvId}-ecs-task-role-arn"} #----------------------------------------------------------#