计划应用程序网关 v2 的自动缩放

概述

对于那些经历可预测的日常流量模式并且对应用程序网关所需容量有可靠估计的人,可以选择预先计划最小容量,以便更好地满足流量需求。

尽管自动缩放很常用,但值得注意的是,应用程序网关目前不提供对预先计划容量调整的本机支持。

目标是使用 Azure 自动化创建运行 runbook 的日程安排,以调整应用程序网关的最小自动缩放容量,从而在高峰时段和非高峰时段都满足流量需求。

设置计划的自动缩放

若要实施计划的自动缩放,需要:

  1. 在与应用程序网关相同的租户中创建 Azure 自动化帐户资源。
  2. 记下 Azure 自动化帐户系统分配的托管标识。
  3. 创建 PowerShell runbook,以增加和减少应用程序网关资源的最小自动缩放容量。
  4. 创建需要在其中实施 runbook 的日程安排。
  5. 将 runbook 与其各自的日程安排相关联。
  6. 将步骤 2 中记录的系统分配的托管标识与应用程序网关和应用程序网关 VNET 资源相关联。

配置自动化

假设要求将工作时间的最小计数增加到 4,并将非工作时间的最小计数减少到 2。

创建了两个 runbook:

  • IncreaseMin - 将自动缩放配置的最小计数设置为 4
  • DecreaseMin - 将自动缩放配置的最小计数设置为 2

使用以下 PowerShell runbook 调整容量:

# Get the context of the managed identity 
$context = (Connect-AzAccount -Environment AzureChinaCloud -Identity).Context 
# Import the Az module 
Import-Module Az 
# Adjust the min count of your Application Gateway 
$gw = Get-AzApplicationGateway -Name “<AppGwName>” -ResourceGroupName “<ResourceGroupName>”
$gw = Set-AzApplicationGatewayAutoscaleConfiguration -ApplicationGateway $gw -MinCapacity <NumberOfRequiredInstances>
$gw = Set-AzApplicationGateway -ApplicationGateway $gw 

接下来,创建以下两个计划:

  • WeekdayMorning - 在周一至周五凌晨 5:00(太平洋标准时间)运行 IncreaseMin runbook
  • WeekdayEvening - 在周一至周五晚上 9:00(太平洋标准时间)运行 DecreaseMin runbook

常见问题解答

  • 用于及时执行作业的 SLA 是什么?

    对于及时启动作业,Azure 自动化的 SLA 为 99.9%。

  • 如果作业在执行期间中断,会发生什么情况?

    • 如果作业在中断之前已将请求发送到 AppGW,则该请求将成功。
    • 如果作业在将请求发送到应用程序网关之前中断,则将是下一部分所述的情形之一。
  • 如果作业任务未发生,会发生什么情况?

    作业不存在 影响
    IncreaseMin 回退到本机自动缩放。 DecreaseMin 的下一次运行应该不执行任何操作,因为不需要调整计数。
    DecreaseMin 为这些时间配置的(非预期)容量会给客户带来额外费用。 IncreaseMin 的下一次运行应该不执行任何操作,因为不需要调整计数。
  • 每天是否可更改多次自动缩放配置?

    不建议频繁调整自动缩放配置。 为了获得最佳平衡,请考虑每天安排两次更新,以与高峰和非高峰使用模式相吻合。

注意

如有任何疑问,或者在为部署设置托管和计划自动缩放方面需要帮助,请发送电子邮件至 agschedule-autoscale@microsoft.com。 如果在设置 Runbook 时遇到一些问题,请参阅 Runbook 问题疑难解答。 可以按照使用指标警报监视 Azure 自动化 Runbook 操作来设置 runbook 相关的警报。

后续步骤