Azure 防火墙预缩放

Azure 防火墙支持内置自动缩放,以基于 CPU 利用率、吞吐量和连接卷动态调整容量。 对于任务关键型工作负荷或可预测的流量高峰,可以配置更大的控制以确保一致的性能。

预缩放 允许主动设置最小和最大容量单位。 此配置在定义的范围内自动缩放时提供可预测的性能。

主要优势

通过预缩放,可以:

  • 针对高流量事件或已知流量高峰的预预配容量
  • 通过设置基线容量来保持一致的性能
  • 通过“观察容量”指标观察实时容量

预缩放的工作原理

可以在 autoscaleConfiguration 设置中配置两个属性:

资产 Description 允许的范围
minCapacity 始终预配的最小容量单位数 2 到 50
maxCapacity 防火墙可缩放到的最大容量单位数 2 到 50

如果 minCapacity 和 maxCapacity 设置为相同的值,则防火墙以固定容量运行,且不进行自动缩放。

重要

最小值和最大容量值必须相等,或者其差异必须大于 1。 例如,如果 minCapacity 为 5,maxCapacity 必须至少为 7。

配置选项

可以使用 Azure 门户、Azure PowerShell、ARM 模板或 Bicep 配置预缩放。

门户示例

若要在 Azure 门户中配置预缩放,请执行以下作:

  1. 访问 Azure 防火墙资源。
  2. “设置”下,选择“ 缩放”选项
  3. 选择 “预缩放”。
  4. 设置所需的最小和最大容量值。

显示 Azure 门户中的 Azure 防火墙预缩放最小和最大容量设置的屏幕截图。

PowerShell 示例

New-AzFirewall `
  -Name "MyFirewall" `
  -ResourceGroupName "MyResourceGroup" `
  -Location "chinaeast" `
  -VirtualNetwork (Get-AzVirtualNetwork -Name "MyVNet" -ResourceGroupName "MyResourceGroup") `
  -PublicIpAddress (Get-AzPublicIpAddress -Name "MyFW-PublicIP" -ResourceGroupName "MyResourceGroup") `
  -MinCapacity 4 `
  -MaxCapacity 10

Bicep 示例

有关参考,下面是使用 Bicep 模板的示例配置,可在其中查看新的 autoscaleConfiguration 属性: Azure 防火墙 Bicep 模板

选择容量值

若要确定最佳 minCapacity 和 maxCapacity 值,

  • 设置合理的最小值以避免不必要的扩展:从可以舒适应对典型高峰流量的最小容量开始,以便在正常情况下缩放事件很少发生。
  • 留出余地,将最大容量设置为高于预期峰值,以处理意外激增。 Azure 防火墙自动扩展将容量增加到您设定的最大容量值。
  • 监视观察的容量指标 ,了解缩放的频率,并根据需要调整最小值和最大值。 如果缩放频繁发生,请考虑提高 minCapacity。
  • 配置观察容量度量的警报,以便在缩放事件发生时收到通知,从而评估是否需要调整。

监测

预缩放引入了新的可观测性:

指标 Description
观察到的容量 显示当前预配的容量单位数,并跟踪随时间推移的缩放活动。 最多可能需要 30 分钟才能显示更新。
Alerts 可以使用 Observed Capacity 指标为自动缩放事件配置警报。

处理性能问题

如果遇到数据包丢弃或连接问题:

  • 查看观察的容量 以评估容量趋势。
  • 请考虑增加最小容量 以提供更多的容量支持,或者频繁向上缩放。
  • 使用关键遥测指标 (例如延迟探测、吞吐量和观察容量)来优化缩放策略。

局限性

使用预缩放时,请记住以下注意事项:

  • 无区域级别容量保证:如果区域缺少容量,缩放可能会失败或延迟。
  • 固定容量禁用自动缩放:如果 minCapacity 等于 maxCapacity,则禁用自动缩放。
  • 保留以前的设置:如果防火墙已设置自动缩放配置值,而您在不指定自动缩放配置属性的情况下(例如通过 Bicep、ARM 模板或其他模板)部署或更新资源,防火墙将继续使用现有的自动缩放配置值。 此行为有助于防止意外覆盖或丢失您的缩放设定。
  • 资源更改时配置重置:删除、重新创建或迁移防火墙可能会将容量值重置为默认值。
  • 活动缩放或维护事件:如果防火墙处于中级或升级期间,预缩放更改可能会失败。 完成后重试。

已知问题

修改预缩放配置时存在已知问题:

尝试将最大容量值(maxCapacity)减少到低于其以前配置的值的数字时,作可能会失败。

示例:

Scenario Description 结果
示例 1 你当前的缩放范围为 min=2,max=20,并尝试将其预缩放为 min=2,max=4。 ❌ 发生错误
示例 2 默认缩放为 min=2,max=20,并且尝试将预缩放为 min=2,max=24。 ✅ 运行正常
示例 3 在以前的预缩放(min=2,max=24)之后,尝试再次将预缩放为 min=2,max=20。 ❌ 发生错误

缓解步骤:

如果出现此问题:

  1. 在 Azure 门户中重置为默认缩放,或使用 API 或 ARM 将 autoscaleConfiguration 属性设置为 null。
  2. 重新应用预缩放配置,确保 maxCapacity 大于或等于以前的最大值(例如 maxCapacity >= 20)。

后续步骤