amazon-web-services - AWS 云信息 : Set up ECS cluster with parameters

标签 amazon-web-services aws-cloudformation amazon-ecs

根据official CF/ECS documentation ,ECS 集群资源根本不使用任何参数 (!)。

但是,在通过 AWS 控制台设置集群时,需要定义几个(而且很关键!)参数(例如实例数量、实例类型等)

如何通过 CloudFormation 正确定义集群?

为什么 CF 和控制台在该资源上存在如此巨大的差异?

最佳答案

ECS 集群只是 ECS 服务内的逻辑命名空间。将要运行任务的实际 EC2 实例不是由 ECS 本身管理的,它们必须单独创建。

ECS 控制台向导的作用是启动包含 ECS 集群定义和 EC2 实例的 Cloudformation 模板。该模板包含您在控制台向导中看到的参数。

您也许可以重用此模板,否则请使用如下所示的 Cloudformation 模板。这使用 Amazon ECS-optimized AMI其中包含您需要的所有应用程序。

  AppServerLaunchConfig:
   Type: AWS::AutoScaling::LaunchConfiguration
   Properties:
     ImageId: "ami-c91624b0"
     # instance role must have permissions to join ECS cluster
     IamInstanceProfile: !Ref InstanceProfile
     KeyName: !Ref KeyName
     InstanceType: t2.micro
     SecurityGroups: [ !Ref InstanceSecurityGroup ]
     UserData:
       Fn::Base64: !Sub |
         #!/bin/bash
         # join cluster with this name
         echo ECS_CLUSTER=myclustername >> /etc/ecs/ecs.config           

   AppServerGroup:
    Type: AWS::AutoScaling::AutoScalingGroup
    Properties:
      MaxSize: 2
      MinSize: 0
      DesiredCapacity: 1
      LaunchConfigurationName: !Ref AppServerLaunchConfig
      VPCZoneIdentifier:
        - !Ref SomeSubnetId

   ECSCluster:
     Type: AWS::ECS::Cluster
     DependsOn: AppServerGroup
     Properties:
       ClusterName: myclustername

关于amazon-web-services - AWS 云信息 : Set up ECS cluster with parameters,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52084137/

相关文章:

amazon-web-services - 如何添加 Cognito 用户名/密码来验证 ALB?

amazon-web-services - 如何从 CDK API 网关访问 AWS::Lambda::Permissions 资源逻辑 ID

csv - 将CSV加载到Redshift : "Missing newline: Unexpected character found at location 2"

amazon-web-services - 云信息 : Encountered unsupported property DeletionPolicy on S3 Bucket

docker - 在 AWS 上部署容器后部署时出现 OutOfMemoryError

docker - 如何在不使用Docker Hub的情况下将应用程序部署到容器OS?

amazon-web-services - Lambda 在使用 Lambda 执行角色设置 Lambda 函数时受到限制

amazon-web-services - AWS刷新CloudFormation模板

amazon-web-services - AWS Cloudformation:Fn::GetAtt 转换为 Fn::ImportValue

amazon-web-services - 使用 ECS Fargate 执行 Step Function "Tasks"