我在 Route 53 故障转移的切换区域之间收到“502 bad gateway error”。
如果主数据库关闭,则主数据库和辅助数据库之间的切换需要 2-3 分钟。 同时,当 DR 站点上的主站点出现时,将另外需要 6 到 8 分钟将流量从 DR 重定向到主站点。如何彻底将停机时间从6到8分钟降到0?
最佳答案
您需要检查 ELB 运行状况检查 + Route53 运行状况检查需要多长时间才能确定是否需要故障转移,最后一步是 DNS 记录的 TTL。
例如,假设您有一个托管在 ELB 后面的 Web 应用程序,并且您通过 myapp.mydomain.com 访问它。
ELB健康检查
虽然您应该检查的主要内容是 R53 运行状况检查(见下文),但 ELB 配置也很重要。
看看需要多长时间才能确定失败:
- 健康检查间隔 - 健康检查之间的时间间隔
- 不健康阈值 - 失败的健康检查次数
确保两个区域的 ELB 中的此配置相同。
Route53 健康检查
这是决定故障转移需要多长时间的主要因素。 您可能有 2 个 myapp.mydomain.com 的 CNAME 记录,每个记录都指向 R53 运行状况检查,并且每个运行状况检查都指向其各自区域的 ELB。 检查两项健康检查并确保:
- 请求间隔 - R53 轮询您的 ELB 健康状况的频率。
- 失败阈值 - 端点必须通过或失败才能更改状态的连续运行状况检查次数。
确保健康检查的配置(主要和次要)相同。
一旦状态发生变化,就取决于 DNS 记录 TTL。
Route53 CNAME TTL
通过查看记录 TTL,检查您的 CNAMES 在故障转移后将指向记录多长时间。例如,如果 TTL 为 30,则大约需要Route53 需要 30 秒才能开始指向次要区域。
确保两条 CNAME 记录具有相同的 TTL。
遵循此操作后,您可以确定故障转移需要多长时间,例如: 您的健康检查正在查看端口 80:/可用性,您的健康检查大约需要30 秒后,您的 apache 在主站点上就死掉了。
在 30(示例)秒内,ELB 将确定实例停止服务并停止转发流量。 在相同的 30(示例)秒内,监视相同运行状况检查(端口 80:/)的 R53 运行状况检查也将确定主 ELB 不健康。
这是 R53 决定开始将 DNS 查询指向您的辅助 ELB 的地方。
如果您的 TTL 设置为 30,故障转移应在大约 10 分钟内完成。 1 分钟,+/- 一些传播时间等。
确保不要将运行状况检查设置得太频繁,具体取决于 ELB 背后的实例数量,这可能会导致运行状况端点的 ELB 和 Route53 对您的服务进行大量调用。
关于amazon-web-services - Route 53 故障转移路由需要 6 到 8 分钟的停机时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47882190/