高可用性设置可防止云提供商发生重大中断

高可用性设置可防止云提供商发生重大中断

我有一个相当常见的内容交付设置:DNS A 记录指向网关服务器,该服务器将预期的请求通过 NAT 发送到 Web 服务器,Web 服务器从 DB 服务器提取信息。所有这些都托管在云提供商上,Web 服务器和 DB 服务器位于私有网络中,无法从互联网直接访问。现在,云提供商发生了重大中断,导致应用程序瘫痪。

我有哪些方法可以让整个事情变得多余?首先想到的是将相同的设置克隆到另一个云提供商,同步数据库并将备用 IP 放入 DNS A 记录中,但这似乎只适用于 MX 记录。第二个想法是监控第 1 层设置的可用性,并在发生故障时触发 DNS 记录更改,但传播可能需要时间,DNS 缓存会导致问题。

是否有可能构建一个不存在单点故障的架构?在这样的设置中,实现高可用性的最佳实践是什么?

答案1

您的预算是多少?您基本上有以下选择。

  1. 获取一个任播 IP。任播 IP 可以路由到最近的可用前端。您只需要一个 A 记录,任何故障转移都很快。缺点:这很昂贵且配置复杂。

  2. 带过滤链的 DNS。这会根据前端可用性调整 A 记录。如您的问题中所述,存在传播时间,您可以通过记录的 TTL 在一定程度上控制传播时间。但除非您的预算充足,否则这将是最常见的方法。

上述情况有很多变种。例如,您可以拥有多个 A 记录,并禁用与已关闭的前端相对应的记录 - 这仍然会涉及传播延迟,但至少存在客户端使用“良好” A 记录的随机机会。

相关内容