从 CodeDeploy 蓝绿服务部署迁移到 Amazon ECS 蓝绿服务部署
通过使用 Amazon ECS 蓝绿部署,您可以进行服务更改并测试,然后再在生产环境中实施服务更改。
必须为 Amazon ECS 蓝绿部署创建新的生命周期挂钩。
先决条件
在开始蓝绿部署之前,执行以下操作。
-
将 Amazon ECS CodeDeploy IAM 角色替换为以下权限。
-
有关 Elastic Load Balancing 权限的信息,请参阅适用于负载均衡器的 Amazon ECS 基础设施 IAM 角色。
-
有关最低权限的更多信息,请参阅 Amazon ECS 蓝绿部署中 Lambda 函数所需的权限。
-
-
关闭 CodeDeploy 自动化。有关更多信息,请参阅《CodeDeploy 用户指南》中的在 CodeDeploy 中使用部署组。
-
确保拥有 CodeDeploy 蓝绿部署中的以下信息。可在 Amazon ECS 蓝绿部署中重复使用以下信息:
-
生产目标组
-
生产侦听器
-
生产规则
-
测试目标组
这是绿色服务修订版的目标组。
-
-
确保应用程序负载均衡器目标组与侦听器规则正确关联:
-
如果不使用测试侦听器,则两个目标组(生产和测试)都必须与生产侦听器规则相关联。
-
如果使用测试侦听器,则必须将一个目标组关联到生产侦听器规则,并将另一个目标组关联到测试侦听器规则。
如果未满足此要求,服务部署将失败并出现以下错误:
Service deployment rolled back because of invalid networking configuration. Both targetGroup and alternateTargetGroup must be associated with the productionListenerRule or testListenerRule. -
-
确认服务没有正在进行的服务部署。有关更多信息,请参阅 使用 Amazon ECS 服务部署查看服务历史记录。
-
Amazon ECS 蓝绿部署要求服务使用以下功能之一:配置相应的资源。
-
应用程序负载均衡器:有关更多信息,请参阅适用于蓝绿部署、线性部署和金丝雀部署的应用程序负载均衡器资源。
-
网络负载均衡器:有关更多信息,请参阅适用于 Amazon ECS 蓝绿部署的网络负载均衡器资源。
-
Service Connect:有关更多信息,请参阅适用于 Amazon ECS 蓝绿部署、线性部署和金丝雀部署的 Service Connect 资源。
-
-
决定是否要在 Amazon ECS 蓝绿部署的各个阶段为生命周期阶段运行 Lambda 函数。
-
纵向扩展前
-
纵向扩展后
-
测试流量转移
-
测试流量转移后
-
生产流量转移
-
生产流量转移后
为每个生命周期阶段创建 Lambda 函数。有关更多信息,请参阅《Amazon Lambda 开发人员指南》中的使用控制台创建 Lambda 函数。
-
有关更新服务部署控制器的更多信息,请参阅更新 Amazon ECS 服务参数。
过程
-
在 Clusters(集群)页面上,选择集群。
此时将显示集群详细信息页面。
-
从服务选项卡中,选择服务。
此时将显示服务详细信息页面。
-
在横幅中,选择更新部署控制器类型。
将显示迁移部署控制器类型页面。
-
展开新建,然后指定以下参数。
-
对于部署控制器类型,选择 ECS。
-
对于部署策略,选择蓝绿部署。
-
对于烘焙时间,输入蓝色服务修订版和绿色服务修订版同时运行的时间。
-
要在生命周期阶段运行 Lambda 函数,请在部署生命周期挂钩下为每个唯一的 Lambda 函数执行以下操作:
-
选择添加。
对每个要运行的唯一函数重复此操作。
-
对于 Lambda 函数,输入函数名称。
-
对于角色,选择在先决条件中创建的具有蓝绿权限的角色。
有关更多信息,请参阅 Amazon ECS 蓝绿部署中 Lambda 函数所需的权限。
-
对于生命周期阶段,选择 Lambda 函数运行的阶段。
-
(可选)对于挂钩详细信息,输入包含挂钩相关信息的键值对。
-
-
-
展开 Load Balancing,然后配置以下内容:
-
对于角色,选择在先决条件中创建的具有蓝绿权限的角色。
有关更多信息,请参阅 Amazon ECS 蓝绿部署中 Lambda 函数所需的权限。
-
对于侦听器,从 CodeDeploy 蓝绿部署中选择生产侦听器。
-
对于生产规则,从 CodeDeploy 蓝绿部署中选择生产规则。
-
对于测试规则,从 CodeDeploy 蓝绿部署中选择测试规则。
-
对于目标组,从 CodeDeploy 蓝绿部署中选择生产目标组。
-
对于备用目标组,从 CodeDeploy 蓝绿部署中选择测试目标组。
-
-
选择更新。
后续步骤
-
更新服务以启动部署。有关更多信息,请参阅 更新 Amazon ECS 服务。
-
监控部署过程,确保其遵循蓝绿模式:
-
创建绿色服务修订版并进行纵向扩展
-
将测试流量路由到绿色修订(如果已配置)
-
向绿色服务修订转移生产流量
-
烘焙时间结束后,蓝色修订将终止
-