Azure Front Door 产生大量带宽

Azure Front Door generates a large amount of bandwidth

上个月,我注意到由于传出带宽,我的 Azure 账单大幅增加。我使用了 1800GB 的传出数据,而前几个时期为 ~200GB。经过一些研究,我发现这是由我上个月启用的 Azure Front Door 服务引起的,我不知道与该服务相关的额外间接成本。

我将在下面提供我对 "issue" 的分析,希望能防止其他人犯我所犯的错误。

Azure Front Door 允许根据池中应用程序的运行状况在 Web 应用程序组(所谓的 "pools")之间进行快速故障转移。典型的故障转移场景是在不同区域之间。如果一个区域出现问题,您将故障转移到另一个区域。

Front Door 确定应用程序健康状况的机制是发送 HTTP 请求,其中 200 OK 结果被认为是健康的。

当您在后端启用 Azure Front Door 时,它会开始检查您的后端应用程序的运行状况,并且您可能会开始付款,所以我进行了一些分析,这些是我的发现:

[范围4小时,粒度1分钟]

  1. 08:05 启动了 webapp。

  2. 08:30 使用默认设置启用 Front Door 服务(间隔=30 秒,样本大小=4,所需成功样本=2)。请注意请求数量立即从每分钟 0 增加到 ~140。

  3. 09:03 将运行状况探测间隔从 30 秒减少到 15 秒。请注意请求的立即增长。

  4. 09:40 将运行状况探测端点的主体大小从 30KB 增加到 119KB,翻了两番。请注意带宽的立即增长。

  5. 09:55 将运行状况探测端点的正文大小减小到 0KB。请注意带宽立即下降。

  6. 10:08 将运行状况探测间隔从 15 秒增加到 90 秒。请注意请求立即下降。

似乎带宽是在 Front Door 服务带宽之上作为应用服务(或使用的任何端点服务)的传出带宽收费的。我认为这是因为 Azure Front Door 是一项全球服务,因此不受区域限制。这些 "hidden" 费用未在定价页面上提及

Azure Function App 的这个默认登陆页面是 126KB:

外卖

  1. 默认情况下,Azure Front Door 似乎每分钟访问您的终结点 140 次,每分钟生成 20MB 的流量(主体为 30KB)。即 27GB,或每天 1.90 欧元(EU/US 个地区)。

  2. 不要使用默认函数应用登录页面作为您的运行状况探测端点(或任何大型主页)。我不确定最佳做法,但我认为实际进行一些健康检查的自定义端点和 returns 空主体将是最好的。

  3. 明智地选择你的时间间隔。双倍间隔 = 双倍带宽成本。