将部署策略从滚动更新更新为 Amazon ECS 蓝绿部署
如果希望在生产环境中实施服务更改之前进行服务更改并测试,可以从滚动更新部署迁移到 Amazon ECS 蓝绿部署。
先决条件
在将服务从滚动部署迁移到蓝绿部署之前,请确保满足以下条件:
-
等待当前所有部署完成。
-
使用滚动部署策略的现有 Amazon ECS 服务。
-
如果有多个传送流量的服务修订版,Amazon ECS 会在迁移期间尝试将流量整合到单个修订中。如果此操作失败,可能需要将服务手动更新为使用单个修订,然后再进行迁移。
-
配置相应的权限。
-
有关 Elastic Load Balancing 权限的信息,请参阅适用于负载均衡器的 Amazon ECS 基础设施 IAM 角色。
-
有关最低权限的更多信息,请参阅 Amazon ECS 蓝绿部署中 Lambda 函数所需的权限。
-
-
根据配置,需要执行以下操作之一:
-
如果服务使用 Elastic Load Balancing,请使用新的“advancedConfiguration”更新服务并启动滚动部署。
-
如果服务使用 Service Connect,请更新服务并启动滚动部署。
-
如果服务同时使用 Elastic Load Balancing 和 Service Connect,请执行上述两个步骤(可以使用单个 UpdateService 请求)。
-
如果服务不使用上述任何一项,则无需进行其他操作。
-
-
Amazon ECS 蓝绿部署要求服务使用以下功能之一。配置相应的资源。
-
应用程序负载均衡器:有关更多信息,请参阅适用于蓝绿部署、线性部署和金丝雀部署的应用程序负载均衡器资源。
-
网络负载均衡器:有关更多信息,请参阅适用于 Amazon ECS 蓝绿部署的网络负载均衡器资源。
-
Service Connect:有关更多信息,请参阅适用于 Amazon ECS 蓝绿部署、线性部署和金丝雀部署的 Service Connect 资源。
-
过程
-
从 https://console.amazonaws.cn/ecs/v2
打开 Amazon ECS 控制台。 -
在导航窗格中,选择集群。
-
在集群页面上,选择包含要迁移的服务的集群。
将显示集群详细信息页面。
-
在集群详细信息页面上,选择服务选项卡。
-
选择服务,然后选择更新。
将显示更新服务页面。
-
展开部署选项,然后执行以下操作:
-
对于部署策略,选择蓝绿部署。
-
配置蓝绿部署设置:
-
对于烘焙时间,输入在蓝色修订服务终止之前蓝色服务修订版和绿色服务修订版同时运行的分钟数。
这样可以留出验证和测试时间。
-
(可选)配置 Lambda 函数以在部署的特定阶段运行。在部署生命周期挂钩下,为以下阶段配置 Lambda 函数:
-
纵向扩展前:在纵向扩展绿色服务修订版之前运行
-
纵向扩展后:在纵向扩展绿色服务修订版之后运行
-
测试流量转移:在将测试流量路由到绿色服务修订版期间运行
-
测试流量转移后:在将测试流量路由到绿色服务修订版之后运行
-
生产流量转移:在将生产流量路由到绿色服务修订版期间运行
-
生产流量转移后:在将生产流量路由到绿色服务修订版之后运行
要添加生命周期挂钩,请执行以下操作:
-
选择添加。
-
对于 Lambda 函数,输入函数名称或 ARN。
-
对于角色,选择有权调用 Lambda 函数的 IAM 角色。
-
对于生命周期阶段,选择应运行 Lambda 函数的阶段。
-
可选:对于挂钩详细信息,输入键值对以提供有关挂钩的其他信息。
-
-
-
配置负载均衡器设置:
-
在 Load balancing 下,验证服务是否配置为使用负载均衡器。
-
对于目标组,选择生产(蓝色)环境的主目标组。
-
对于备用目标组,选择测试(绿色)环境的目标组。
-
对于生产侦听器规则,选择用于路由生产流量的侦听器规则。
-
可选:对于测试侦听器规则,选择用于将测试流量路由到绿色环境的侦听器规则。
-
对于角色,选择允许 Amazon ECS 管理负载均衡器的 IAM 角色。
-
-
查看配置更改,然后选择更新。
后续步骤
更新服务以启动部署。有关更多信息,请参阅 更新 Amazon ECS 服务。
-
监控部署过程,确保其遵循蓝绿模式:
-
创建绿色服务修订版并进行纵向扩展
-
将测试流量路由到绿色修订(如果已配置)
-
向绿色服务修订转移生产流量
-
烘焙时间结束后,蓝色修订将终止
-