DNS:Azure Web Apps + Traffic Manager的高可用性

时间:2018-01-03 14:18:31

标签: azure dns azure-web-sites azure-traffic-manager

我的客户端有以下设置:

  • DNS是NetworkSolutions。他们对DNS条目的最小TTL是一小时。
  • 托管标准MVC网站的Azure Web App。
  • Azure Traffic Manager设置为优先级。
  • 我们的A记录指向Azure Web App的IP地址。我们针对www和其他各个子域的CNAME指向我们的Traffic Manager端点。然后,我们的Traffic Manager端点指向[siteName] .azurewebsites.net。
  • 我们的裸域只需301重定向到我们的www。

我的目标是在另一个数据中心拥有热备用,如果需要,我可以快速故障转移。使用流量管理器,我可以将流量管理器中的所有子域的TTL设置为较小的值,例如几分钟。如果我需要故障转移,这很快。

我的问题是关于未通过裸域的A记录。在NetworkSolutions,A记录必须是IP地址。我有谷歌和Bing,我相信无论DNS提供商如何,这都是正确的。

有哪些选项可用于快速将A记录故障转移到辅助区域和另一个Web应用程序?截至目前,我唯一的想法是切换到一个新的权威DNS,让我保持A记录的TTL小于一小时,然后完全处理流量管理器。

鉴于我们的目标是快速故障转移到不同地区的Web应用程序,还有其他更优化的替代方案吗?

3 个答案:

答案 0 :(得分:2)

DNS is a poor choice for simulating failover

另一个选项可能是在区域VNets和App Service Environment中使用Set up IP addressing to connect after failover to a secondary site。基本上,A记录仍将域名解析为相同的IP,但IP地址本身在主站点上释放并分配给故障转移域。

答案 1 :(得分:2)

@ Y.B。链接到服务器故障的一个很好的答案,讨论DNS不能真正有效地进行故障转移。即使你确实将TTL设置为5分钟,也会有很多设备不尊重它。

Traffic Manager是一项非常可靠的服务,如here所述。 即使Azure区域出现故障,它也不会受到影响。

您对A记录的策略意味着搜索引擎不会对原始域进行索引。所以这些仍然有用。

但是,DNS不是故障转移解决方案。无法保证更改DNS记录传播所需的时间。

像CloudFlare这样的服务可以帮助您实现负载平衡,因为它们使用任播地址。

答案 2 :(得分:1)

我认为你的' A'记录位于区域顶点(即mydomain.com而不是something.mydomain.com)。如果是这样,你就会遇到两个限制因素:

  • 域名的顶点不能包含CNAME记录(DNS标准禁止)
  • 流量管理器仅适用于CNAME

这些是不兼容的。你被卡住了,需要一个解决方法。

有一些基于DNS的流量管理服务支持带有A记录的流量管理(AWS Route53是一个,还有很多其他)。这些允许区域顶点的流量管理,即mydomain.com。您需要使用该服务托管您的域,并管理您域中的所有DNS记录。

您的选择是:

  1. 使用不同的基于DNS的流量管理服务代替流量管理器,流量管理器支持A记录的流量管理。
  2. 使用非顶点域名,例如something.mydomain.com only
  3. 创建一个简单的HTTP重定向服务,将mydomain.com重定向到something.mydomain.com。在后者上使用Traffic Manager。在多个区域中托管前者,并在mydomain.com上创建指向两者的A记录(从而依赖于A记录之间的客户端故障转移,应该工作)
  4. 使用应用程序级故障转移服务,例如App Gateway。在多个区域托管App Gateway(以获得高可用性),与#3一样,在mydomain.com上创建指向两者的A记录。
  5. 使用非DNS第三方流量管理解决方案,例如CloudFlare。
  6. 您可以在此投票以在流量管理器中添加对顶点域的支持:https://feedback.azure.com/forums/217313-networking/suggestions/5485350-support-apex-naked-domains-more-seamlessly