使用 HTTP 错误代码 (503) 在两个 AWS Auto Scaling 组之间自动切换蓝/绿

问题描述

考虑这种情况:

  1. 代表蓝色集群的 Auto-Scaling Group (ASG) 正在负载均衡器后面运行 Web 应用程序
  2. 一个代表绿色集群的 ASG 部署了新版本的 Web 应用程序,连接到同一个负载平衡器。但是因为这个绿色集群还没有准备好,它会返回 HTTP 503(暂时不可用)。由于 503 返回码,负载平衡器将继续将所有流量路由到蓝色环境,而忽略绿色环境。
  3. 绿色集群将自动将数据迁移到新版本(由应用程序代码本身完成)。
  4. 迁移完成后,绿色集群会告诉蓝色集群返回 503 并开始返回 HTTP 200。
  5. 负载均衡器现在应该开始将流量路由到绿色集群。

是否可以将 AWS 设置为在同一个负载均衡器后面有两个 ASG(代表蓝色和绿色),以便在 ASG 上运行的应用程序可以使用 HTTP 代码来控制哪个集群(蓝色或绿色)正在接收流量,但没有 ASG 杀人机器?

我知道 CodeDeploy 可以在这里提供帮助,但我正在寻找一种与供应商无关的解决方案,该解决方案适用于 AWS、Azure 和任何传统(本地)负载平衡器。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)