如何在不停机的情况下更新 ECS 服务并添加服务与之通信的附加负载平衡?
How can I update and ECS service adding an addition load balance to which a service talks to without downtime?
我们使用 Terraform 来管理我们的 AWS 资源,并拥有将服务从一个负载均衡器更改为两个负载均衡器的代码。
不过,
terraform 想要在重新创建服务之前销毁它。 AWS cli 文档指出了原因 - API 只能在服务创建期间修改 LB,而不能在更新时修改。
看来我们需要一个 blue/green 部署,其中一个 LB 和两个 LB 服务同时存在于同一集群上。我预计我们需要在进行此更改之前创建多个任务集和 blue/green 方法的其余部分(无论如何,我们已经为此做好了计划,只是现在没有)
有没有人对此场景有很好的示例,或者知道除了完全 blue/green 部署之外的任何其他方法?
唉,在更新期间无法更改 LB 的数量。必须销毁并重新创建该服务。
理想情况下,可以使用多个 ECS 集群和一组 LB 进行蓝绿部署。然后集群 A 可以有旧服务,集群 B 有新服务,允许流量在我们从蓝色变为绿色时从 A 移动到 B。
我们还没有完成,但计划很快完成。所以,现在,我们将采用经典的停车场切换方法:
在此示例中,需要从 1 LB 增加到 2 LB 的服务称为 target_service
- 克隆target_service成为target_service2
- 部署可以与 target_service 或 target_service2
通信的微服务
- 验证 target_service 和 target_service2 都在处理传入数据和请求
- 修改 target_service infra-as-code 以从 1 磅变为 2 磅
- deploy modified target_service (terraform deployment tool will destroy target_service leaving target_service2 to cover the gap, and then it will deploy target_service with 2 LBs
- 验证 target_service 与 2 LBS 工作并处理请求
- 销毁并删除 target_service2,因为不再需要它
所以,这是一个 blue-green 类似的部署,尽管不太优雅。
我们使用 Terraform 来管理我们的 AWS 资源,并拥有将服务从一个负载均衡器更改为两个负载均衡器的代码。
不过, terraform 想要在重新创建服务之前销毁它。 AWS cli 文档指出了原因 - API 只能在服务创建期间修改 LB,而不能在更新时修改。
看来我们需要一个 blue/green 部署,其中一个 LB 和两个 LB 服务同时存在于同一集群上。我预计我们需要在进行此更改之前创建多个任务集和 blue/green 方法的其余部分(无论如何,我们已经为此做好了计划,只是现在没有)
有没有人对此场景有很好的示例,或者知道除了完全 blue/green 部署之外的任何其他方法?
唉,在更新期间无法更改 LB 的数量。必须销毁并重新创建该服务。
理想情况下,可以使用多个 ECS 集群和一组 LB 进行蓝绿部署。然后集群 A 可以有旧服务,集群 B 有新服务,允许流量在我们从蓝色变为绿色时从 A 移动到 B。
我们还没有完成,但计划很快完成。所以,现在,我们将采用经典的停车场切换方法:
在此示例中,需要从 1 LB 增加到 2 LB 的服务称为 target_service
- 克隆target_service成为target_service2
- 部署可以与 target_service 或 target_service2 通信的微服务
- 验证 target_service 和 target_service2 都在处理传入数据和请求
- 修改 target_service infra-as-code 以从 1 磅变为 2 磅
- deploy modified target_service (terraform deployment tool will destroy target_service leaving target_service2 to cover the gap, and then it will deploy target_service with 2 LBs
- 验证 target_service 与 2 LBS 工作并处理请求
- 销毁并删除 target_service2,因为不再需要它
所以,这是一个 blue-green 类似的部署,尽管不太优雅。