Amazon ECS Deployment with CloudFormation: Difference between revisions

From NovaOrdis Knowledge Base
Jump to navigation Jump to search
Line 19: Line 19:
       [[Amazon_ECS_Concepts#Family|Family]]: 'themyscira'
       [[Amazon_ECS_Concepts#Family|Family]]: 'themyscira'
       [[Amazon_ECS_Concepts#Compatibilities|RequiresCompatibilities]]: ['FARGATE']
       [[Amazon_ECS_Concepts#Compatibilities|RequiresCompatibilities]]: ['FARGATE']
       TaskRoleArn: !GetAtt TaskRole.Arn
       [[Amazon_ECS_Concepts#Task_Role|TaskRoleArn]]: !GetAtt TaskRole.Arn
       ExecutionRoleArn: !GetAtt TaskExecutionRole.Arn
       [[Amazon_ECS_Concepts#Task_Execution_Role|ExecutionRoleArn]]: !GetAtt TaskExecutionRole.Arn


       NetworkMode: "awsvpc"
       NetworkMode: "awsvpc"

Revision as of 18:59, 30 March 2019

External

Internal

Organizatorium

AWS::ECS::TaskDefinition

Resources:
  TaskDefinition:
    Type: AWS::ECS::TaskDefinition
    Properties:
      Family: 'themyscira'
      RequiresCompatibilities: ['FARGATE']
      TaskRoleArn: !GetAtt TaskRole.Arn
      ExecutionRoleArn: !GetAtt TaskExecutionRole.Arn
      NetworkMode: "awsvpc"
      Cpu: '2048'
      Memory: '4096'
      ContainerDefinitions:
      - Name: 'some-name'
        Cpu: '2048'
        Memory: '4096'
        Essential: 'true'
        Environment:
        - Name: SPRING_PROFILES_ACTIVE
          Value: 'something'
        Image: !Sub ${Image}:${Tag}
        PortMappings:
        - HostPort: 10002
          ContainerPort: 10002
        LogConfiguration:
          LogDriver: "awslogs"
          Options:
            awslogs-group: 'some-group'
            awslogs-region: !Sub ${AWS::Region}
            awslogs-stream-prefix: 'some-prefix'

AWS::ECS::Service

Resources:
  ServiceDefinition:
    Type: AWS::ECS::Service
    DependsOn: LoadBalancerListener
    Properties:
      ServiceName: themyscira
      LaunchType: FARGATE
      Cluster: 'some-cluster'
      TaskDefinition: !Ref TaskDefinition
      DesiredCount: 1
      HealthCheckGracePeriodSeconds: 60
      NetworkConfiguration:
        AwsvpcConfiguration:
          AssignPublicIp: DISABLED
          SecurityGroups:
          - !Ref ServiceSecurityGroup
          Subnets:
            - 'blue-subnet'
            - 'green-subnet'
      ServiceRegistries:
      - RegistryArn: !GetAtt ServiceDiscovery.Arn
      LoadBalancers:
      - ContainerName: 'some-name'
        ContainerPort: 10002
        TargetGroupArn: !Ref TargetGroup

Create a Cluster