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