我有一个托管在独立 EC2 实例上的 ASP.NET MVC 应用程序。我的 Route53 托管区域记录了 EC2 实例的弹性 IP。
我没有弹性负载均衡器,也没有要求。
是否可以在最短或没有停机时间的情况下将我的网站的新版本部署到 AWS,而无需建立和支付弹性负载均衡器?
我有一个托管在独立 EC2 实例上的 ASP.NET MVC 应用程序。我的 Route53 托管区域记录了 EC2 实例的弹性 IP。
我没有弹性负载均衡器,也没有要求。
是否可以在最短或没有停机时间的情况下将我的网站的新版本部署到 AWS,而无需建立和支付弹性负载均衡器?
执行切换到新应用程序部署(EC2 实例)的最简单方法可以像这样工作:
这种方法肯定会在重新分配 EIP 地址期间引入一些最小的停机时间。这不是实时操作。
您还可以执行经典的 DNS 切换(一种蓝/绿部署)以从旧应用程序部署切换到新应用程序部署。您可以在指定的 Route53 DNS 区域中有两个加权资源记录,例如 CNAME,资源记录指向您的旧部署和新部署。在处理 DNS 查询时,Route53 将使用基于这些权重计算的概率选择一个答案。要执行切换,“旧”记录的权重最初为 100,“新”记录的权重为 0。最后,您只需简单地交换这些权重即可。这种方法的唯一缺点是传播 DNS 更改可能需要一些时间,因此您无法控制用户何时感知它。这是因为许多客户端只是不遵守 DNS TTL 值,并且会缓存 DNS 数天,即使记录具有 TTL,例如 60 秒。
顺便说一句,关于“AWS 上的蓝/绿部署”有一个很好的介绍。