amazon-web-services - 我想逐渐从 Heroku 迁移到 AWS。如何在 Route 53 中设置“加权路由策略”?
问题描述
这个问题几乎整个周末都在伤害我的大脑。我希望有人会来释放我:-)
我想以渐进的方式将 web 应用程序从 Heroku 移动到 AWS。因此,即我们开始将 10% 的请求路由到 AWS,并及时增加这个数字——当我们的金丝雀测试通过并且一切顺利时。供参考; 该数据库已经移至 AWS,Heroku 也可以通过网络负载均衡器访问该数据库。
该设置还应该能够提供维护页面(从带有云端的 s3 存储桶运行)——在某些极少数情况下——两者的健康检查都失败了。我为此添加了一个额外的别名记录,权重为 0,因为当所有检查都失败时,即使权重设置为 nil,route53 也会始终尝试给出结果。
我们需要的应用程序负载均衡器将所有流量路由到正确的 ECS 容器,还为我们安排了一些重定向(apex 到 www,http 到 https)。
有了所有这些要求,我想出了下图。
在实施过程中,我遇到了一个我没有解决的问题。
我无法创建特定的 A 记录(权重为 100 的记录),因为它试图将记录集引用为来自另一种类型 (CNAME) 的别名。这在 53 号公路内是不允许的。
问题是它必须是 A 记录,因为当您想利用“加权路由策略”时,所有 dns 记录都应该来自同一类型。
权重为 90 和 10 的记录也应该是 CNAME(也需要来自同一类型),因为我的 Heroku 端点不能使用 A 记录。
任何人都知道如何解决这个问题?我们也许知道更好的方法来做到这一点?
解决方案
推荐阅读
- python - TypeError: storage must be a werkzeug.FileStorage in Flask Upload
- rust - Rust:用于 Fn 成员签名的结构泛型类型参数需要命名生命周期
- typescript - TypeORM:无法读取未定义的属性“id”
- jquery - 仅当在确认框中单击“确定”时才更改日期选择器文本框值
- php - 如何使用 php 创建菜单树?
- python - 我正在获取一段代码的输出,但没有附加,因为不应该出现
- python - Conda 错误:无法链接不存在的源
- node.js - 将 Typescript 装饰器与 Parse SDK JS 一起使用
- node.js - 在对话流中使用 webhook 创建实体而不使用对话流 UI
- javascript - Slick Slider - 用点更改文本颜色