1

我的用例:我有一个由位于 1 个 EC2 实例前面的弹性负载均衡器提供服务的 Web 应用程序。该架构旨在模拟蓝/绿部署流程,这意味着当我需要更新代码并切换我的 ELB 指向的实例时,我将打开第二个实例。

假设 Instance-A 具有我的应用程序的当前版本,我的 ELB 正在将流量路由到该实例,因为它是唯一可用的。我想将更新推送到我的应用程序,因此我在实例 B 上部署了我的应用程序的新版本打开实例 B 并部署新版本的代码)。同时,任何访问我的应用程序的用户仍将被路由到 Instance-A 并创建一个会话,直到我进行切换。

一旦部署了Instance-B并且可以使用较新的代码,我如何确保 ELB仅在Instance-B上发送新流量,并在instanceA上保留旧流量(以前的用户及其会话),直到我从负载均衡器?

希望这是有道理的,我知道这种架构设计不是蓝/绿部署的正确实现。但是由于我的应用程序的大小和预算,我想限制我使用的实例数量。

谢谢您的帮助。

4

1 回答 1

1

好的,如果您使用的是经典 ELB,则需要为 ELB 创建和粘性策略,您可以在此处找到详细说明https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/elb-sticky-sessions.html

如果您使用 ALB 或应用程序负载均衡器几乎相同,但粘性策略是针对目标组https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-target-groups.html #sticky 会话

如果你想改进你的蓝/绿部署策略,最好使用Route53进行切换,成本非常低

我希望这有帮助

于 2018-10-11T22:06:37.337 回答