【发布时间】:2020-12-27 03:27:14
【问题描述】:
我目前的设置如下所示:
www.example.com -CNAME-> alb.us-east-1.example.com
www.example.com -CNAME-> alb.us-west-1.example.com
...
这些记录中的每一个都使用基于延迟的路由和健康检查。到目前为止,这已成功将流量发送到“附近且健康”的实例(好),但是当我想抢先耗尽一个实例时该怎么办? (在这种情况下,“实例”可能是不位于任何 LB 之后的 EC2 实例,或者是某个条带的 LB,或者是非 AWS IP,或者完全是其他东西。它具有流量必须的地址被阻止尝试到达。)
(编辑: by "drain" 我指的是导致 Route53 退出,在其响应中包含给定记录,这样流量就不会尝试联系它指向的 ALB 实例(或其他任何实例)在。请注意,任何涉及 ALB 配置的东西都不起作用,因为它是我想要阻止流量连接到的 ALB(等等)。)
据我所知,Route53 并未明确提供该功能,这似乎是一个奇怪的遗漏。
支持此用例的最佳实践有哪些?
编辑:为了记录,我在谷歌上搜索了一堆,没有发现任何东西比我已经在使用的有用。也许我只是使用了错误的术语或其他什么?
目前我想出的最佳解决方案是创建一个“健康检查”,该“健康检查”经过精心构造,始终失败,并将其换成真正的健康检查。但这似乎真的很草率,因为它欺骗了系统给我想要的东西,而不是真正成为我想要的东西。
我看过的另一个不起作用的解决方案是将要排出的记录从基于延迟的时间修改为加权(使用weight=0),但似乎 Route53 不允许混合延迟和加权对于相同的记录集。
【问题讨论】:
-
preemptively drain one instance是什么意思 -
Route53 只是一个 DNS 服务,没有连接耗尽之类的东西。您必须使用 ELB 来实现此类功能
-
@ArunK 查看编辑。
-
@karjan:基于 DNS 的流量管理,包括引流,在我看到的每个多区域设置中都是常见的做法。基于 ELB 的排水管适用于区域内和 ELB 后面的事物,但不适用于自身的 ELB。
-
您的解决方案看起来并没有那么草率,因为从技术上讲,“耗尽实例/端点”不应该是健康的。
标签: amazon-web-services amazon-route53