这个问题几乎困扰了整个周末的我。我希望有人来释放我:-)
我想将Web应用程序从Heroku逐步迁移到AWS。因此,即我们开始将10%的请求路由到AWS,并及时增加该数目-当我们的金丝雀测试通过且一切运行顺利时。仅供参考;数据库已经移至AWS,Heroku也可以通过网络负载平衡器进行访问。
在某些极少数情况下,这两种设置的运行状况检查都失败了,那么安装程序还应该能够提供维护页面(从具有Cloudfront的s3存储桶运行)。我为此添加了一个额外的别名记录,权重为0,因为即使所有权重设置为nil,route53都会在所有检查均失败时始终尝试给出结果。
我们需要的应用程序负载均衡器将所有流量路由到正确的ECS容器,还为我们安排了一些重定向(将顶点重定向到www,将http重定向到https)。
满足所有这些要求后,我想到了下图。
在实施过程中,我遇到了一个无法解决的问题。
我无法创建特定的A记录(权重为100的记录),因为它试图将记录集引用为别名,该记录集来自另一种类型(CNAME)。这是Route 53所不允许的。
问题在于它必须是A记录,因为当您要利用“加权路由策略”时,所有dns记录都应来自同一类型。
权重分别为90和10的记录也应该是CNAME的记录(也必须来自同一类型),因为我不能将A记录用于Heroku端点。
有人知道如何解决这个问题吗?我们也许知道更好的方法吗?