

# Amazon ECS 蓝绿部署所需的资源
<a name="blue-green-deployment-implementation"></a>

您可以在有或没有托管流量转移的情况下使用 Amazon ECS 蓝绿部署。当您的服务使用 Elastic Load Balancing 或 Service Connect 时，Amazon ECS 会为您管理蓝色和绿色服务修订之间的流量转移。如果服务未使用负载均衡器或 Service Connect（无外设服务），您仍然可以使用蓝绿部署进行受控部署，但 Amazon ECS 不会自动管理流量转移。

对于托管流量转移，请配置以下项之一：
+ Elastic Load Balancing
+ Service Connect

以下列表简要概述了配置 Amazon ECS 蓝绿部署所需的内容：
+ 如果服务使用应用程序负载均衡器、网络负载均衡器或 Service Connect，请配置相应的资源以进行托管流量转移。
  + 应用程序负载均衡器：有关更多信息，请参阅[适用于蓝绿部署、线性部署和金丝雀部署的应用程序负载均衡器资源](alb-resources-for-blue-green.md)。
  + 网络负载均衡器：有关更多信息，请参阅[适用于 Amazon ECS 蓝绿部署、线性部署和金丝雀部署的网络负载均衡器资源](nlb-resources-for-blue-green.md)。
  + Service Connect：有关更多信息，请参阅[适用于 Amazon ECS 蓝绿部署、线性部署和金丝雀部署的 Service Connect 资源](service-connect-blue-green.md)。

  如果服务是无外设的（没有负载均衡器或 Service Connect），则无需配置额外的流量转移资源。
+ 将服务部署控制器设置为 `ECS`。
+ 在服务定义中将部署策略配置为 `blue/green`。
+ 或者，配置其他参数，例如：
  + 新部署的烘焙时间
  + 用于自动回滚的 CloudWatch 警报
  + 用于测试的部署生命周期挂钩（这些挂钩是在指定部署阶段运行的 Lambda 函数）

## 最佳实践
<a name="blue-green-deployment-best-practices"></a>

遵循以下最佳实践，以实现 Amazon ECS 蓝绿部署：
+ 配置适当的运行状况检查，以准确反映应用程序的运行状况。
+ 设置烘焙时间，以便对绿色部署进行充分测试。
+ 实施 CloudWatch 警报，以自动检测问题并触发回滚。
+ 使用生命周期挂钩在每个部署阶段执行自动测试。
+ 确保您的应用程序能够处理同时运行的蓝色和绿色服务修订。
+ 规划足够的集群容量，以便在部署期间处理两个服务修订。
+ 在生产环境中实施回滚程序之前，先对其进行测试。