从 CodeDeploy 蓝绿服务部署迁移到 Amazon ECS 蓝绿服务部署 - Amazon Elastic Container Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

从 CodeDeploy 蓝绿服务部署迁移到 Amazon ECS 蓝绿服务部署

通过使用 Amazon ECS 蓝绿部署,您可以进行服务更改并测试,然后再在生产环境中实施服务更改。

必须为 Amazon ECS 蓝绿部署创建新的生命周期挂钩。

先决条件

在开始蓝绿部署之前,执行以下操作。

  1. 将 Amazon ECS CodeDeploy IAM 角色替换为以下权限。

  2. 关闭 CodeDeploy 自动化。有关更多信息,请参阅《CodeDeploy 用户指南》中的在 CodeDeploy 中使用部署组

  3. 确保拥有 CodeDeploy 蓝绿部署中的以下信息。可在 Amazon ECS 蓝绿部署中重复使用以下信息:

    • 生产目标组

    • 生产侦听器

    • 生产规则

    • 测试目标组

      这是绿色服务修订版的目标组。

  4. 确保应用程序负载均衡器目标组与侦听器规则正确关联:

    • 如果不使用测试侦听器,则两个目标组(生产和测试)都必须与生产侦听器规则相关联。

    • 如果使用测试侦听器,则必须将一个目标组关联到生产侦听器规则,并将另一个目标组关联到测试侦听器规则。

    如果未满足此要求,服务部署将失败并出现以下错误:Service deployment rolled back because of invalid networking configuration. Both targetGroup and alternateTargetGroup must be associated with the productionListenerRule or testListenerRule.

  5. 确认服务没有正在进行的服务部署。有关更多信息,请参阅 使用 Amazon ECS 服务部署查看服务历史记录

  6. Amazon ECS 蓝绿部署要求服务使用以下功能之一:配置相应的资源。

  7. 决定是否要在 Amazon ECS 蓝绿部署的各个阶段为生命周期阶段运行 Lambda 函数。

    • 纵向扩展前

    • 纵向扩展后

    • 测试流量转移

    • 测试流量转移后

    • 生产流量转移

    • 生产流量转移后

    为每个生命周期阶段创建 Lambda 函数。有关更多信息,请参阅《Amazon Lambda 开发人员指南》中的使用控制台创建 Lambda 函数

有关更新服务部署控制器的更多信息,请参阅更新 Amazon ECS 服务参数

过程

  1. https://console.aws.amazon.com/ecs/v2 打开控制台。

  2. Clusters(集群)页面上,选择集群。

    此时将显示集群详细信息页面。

  3. 服务选项卡中,选择服务。

    此时将显示服务详细信息页面。

  4. 在横幅中,选择更新部署控制器类型

    将显示迁移部署控制器类型页面。

  5. 展开新建,然后指定以下参数。

    1. 对于部署控制器类型,选择 ECS

    2. 对于部署策略,选择蓝绿部署

    3. 对于烘焙时间,输入蓝色服务修订版和绿色服务修订版同时运行的时间。

    4. 要在生命周期阶段运行 Lambda 函数,请在部署生命周期挂钩下为每个唯一的 Lambda 函数执行以下操作:

      1. 选择添加

        对每个要运行的唯一函数重复此操作。

      2. 对于 Lambda 函数,输入函数名称。

      3. 对于角色,选择在先决条件中创建的具有蓝绿权限的角色。

        有关更多信息,请参阅 Amazon ECS 蓝绿部署中 Lambda 函数所需的权限

      4. 对于生命周期阶段,选择 Lambda 函数运行的阶段。

      5. (可选)对于挂钩详细信息,输入包含挂钩相关信息的键值对。

  6. 展开 Load Balancing,然后配置以下内容:

    1. 对于角色,选择在先决条件中创建的具有蓝绿权限的角色。

      有关更多信息,请参阅 Amazon ECS 蓝绿部署中 Lambda 函数所需的权限

    2. 对于侦听器,从 CodeDeploy 蓝绿部署中选择生产侦听器。

    3. 对于生产规则,从 CodeDeploy 蓝绿部署中选择生产规则。

    4. 对于测试规则,从 CodeDeploy 蓝绿部署中选择测试规则。

    5. 对于目标组,从 CodeDeploy 蓝绿部署中选择生产目标组。

    6. 对于备用目标组,从 CodeDeploy 蓝绿部署中选择测试目标组。

  7. 选择更新

后续步骤

  • 更新服务以启动部署。有关更多信息,请参阅 更新 Amazon ECS 服务

  • 监控部署过程,确保其遵循蓝绿模式:

    • 创建绿色服务修订版并进行纵向扩展

    • 将测试流量路由到绿色修订(如果已配置)

    • 向绿色服务修订转移生产流量

    • 烘焙时间结束后,蓝色修订将终止