【问题标题】:Does AWS CDK provide constructs to deploy ECS applications?AWS CDK 是否提供用于部署 ECS 应用程序的构造?
【发布时间】:2020-06-18 13:00:13
【问题描述】:

我们一般采用BlueGreen & Rolling部署策略,

用于 ECS 容器实例中的 docker 容器,以进行部署和更新。


Ansible ECS 模块允许使用以下模块实施此类部署策略:

https://docs.ansible.com/ansible/latest/modules/ecs_taskdefinition_module.html

https://docs.ansible.com/ansible/latest/modules/ecs_task_module.html

https://docs.ansible.com/ansible/latest/modules/ecs_service_module.html


AWS CDK 是否提供此类结构来实施部署策略?

【问题讨论】:

标签: deployment amazon-cloudformation amazon-ecs terraform-provider-aws aws-cdk


【解决方案1】:

CDK 支持更高级别的 ECS 构造,称为“ECS 模式”。其中之一是 ApplicationLoadBalancedFargateService,它允许您在 Application Load Balancer 后面定义 ECS Fargate 服务。在这种情况下,开箱即用支持滚动更新。您只需使用更新的 Docker 映像运行 cdk deploy,ECS 将负责部署。它将:

  1. 使用新的 Docker 映像启动新任务。
  2. 等待新部署的几次成功的运行状况检查。
  3. 开始向新任务发送新流量,同时让现有连接优雅地完成旧任务。
  4. 所有旧连接完成后,ECS 将自动停止旧任务。

如果您的新任务未启动或运行状况不佳,ECS 将继续运行原始任务。

关于蓝绿部署,我认为是yet to be supported in CloudFormation。完成后,它可以在 CDK 中实现。如果您可以不用 BlueGreen 作为 IaC,您可以手动定义您的 CodeDeploy。

【讨论】:

【解决方案2】:

查看这个 NPM 插件,它有助于使用 CDK 进行蓝绿部署。

https://www.npmjs.com/package/@cloudcomponents/cdk-blue-green-container-deployment

【讨论】:

    【解决方案3】:

    现在云形成支持蓝绿色部署。

    https://aws.amazon.com/about-aws/whats-new/2020/05/aws-cloudformation-now-supports-blue-green-deployments-for-amazon-ecs/

    不要认为 CDK 实现已经完成。

    【讨论】:

      猜你喜欢
      • 2018-09-09
      • 2020-06-28
      • 2020-10-07
      • 1970-01-01
      • 2021-09-04
      • 2020-05-20
      • 2022-10-28
      • 2021-01-24
      • 1970-01-01
      相关资源
      最近更新 更多