amazon-web-services - Route 53 故障转移路由需要 6 到 8 分钟的停机时间

标签 amazon-web-services routes amazon-route53 failover

我在 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/

相关文章:

amazon-web-services - 如何通过 cloudformation 在 lambda 中添加数据库代理?

reactjs - Next.js 路线 : Dynamic vs exact

amazon-web-services - 如何在AWS Lambda处理程序中使用可执行文件?

ruby-on-rails - 我应该在哪里运行预定的后台作业?

amazon-s3 - 监控 AWS 账户支出

Angular 路线在谷歌灯塔中返回 404 错误

Node.js url 路由格式化

amazon-web-services - 通配符子域@AWS route53 的 SSL 证书错误别名为 ELB

amazon-web-services - DNS 托管区域未生效 - AWS Route53

amazon-web-services - 2 个 Cloudfront 发行版之间的加权循环 DNS