ECSをCloudFormationで構築する-AWS

※以下の変数は右の値に変更してください。
・subnet_id:サブネットID
・security_group_id:セキュリティグループID

AWSTemplateFormatVersion: 2010-09-09

Resources:
  ECSLogGroup:
    Type: 'AWS::Logs::LogGroup'
    Properties:
      LogGroupName: /ecs/sample-app

  ECSCluster:
    Type: 'AWS::ECS::Cluster'
    Properties:
      ClusterName: SampleAppCluster

  ECSTaskDefinition:
    Type: 'AWS::ECS::TaskDefinition'
    Properties:
      ContainerDefinitions:
        - Image: 'httpd:2.4'
          LogConfiguration:
            LogDriver: awslogs
            Options:
              awslogs-group: /ecs/sample-app
              awslogs-region: !Ref AWS::Region
              awslogs-stream-prefix: ecs
          Name: sample-app
          PortMappings:
            - ContainerPort: 80
              HostPort: 80
              Protocol: tcp
      Cpu: 256
      ExecutionRoleArn: !Sub 'arn:aws:iam::${AWS::AccountId}:role/ecsTaskExecutionRole'
      Family: task-definition-sample-app
      Memory: 512
      NetworkMode: awsvpc
      RequiresCompatibilities:
        - FARGATE
      RuntimePlatform:
        CpuArchitecture: X86_64
        OperatingSystemFamily: LINUX

  ECSService:
    Type: 'AWS::ECS::Service'
    Properties:
      ServiceName: sample-app-service
      Cluster: !Ref ECSCluster
      DesiredCount: 1
      LaunchType: FARGATE
      NetworkConfiguration:
        AwsvpcConfiguration:
          AssignPublicIp: ENABLED
          SecurityGroups:
            - security_group_id
          Subnets:
            - subnet_id
            - subnet_id
      TaskDefinition: !Ref ECSTaskDefinition