Dela via


Schemalägga automatisk skalning för Application Gateway v2

Översikt

För dem som upplever förutsägbara dagliga trafikmönster och som har en tillförlitlig uppskattning av den kapacitet som krävs för Application Gateway kan alternativet att förplanera den minsta kapaciteten för att bättre anpassa sig till trafikkraven vara av intresse.

Även om automatisk skalning ofta används är det viktigt att observera att Application Gateway för närvarande inte stöder förplanerade kapacitetsjusteringar internt.

Målet är att använda Azure Automation för att skapa ett schema för körning av runbooks som justerar den minsta automatiska skalningskapaciteten för Application Gateway för att uppfylla trafikkraven under tider med hög belastning jämfört med icke-hög belastning.

Konfigurera schemalagd autoskalning

Så här implementerar du schemalagd autoskalning:

  1. Skapa en Azure Automation-kontoresurs i samma klientorganisation som Application Gateway.
  2. Observera den systemtilldelade hanterade identiteten för Azure Automation-kontot.
  3. Skapa PowerShell-runbooks för att öka och minska min kapacitet för automatisk skalning för Application Gateway-resursen.
  4. Skapa de scheman under vilka runbooks måste implementeras.
  5. Associera runbooks med deras respektive scheman.
  6. Associera den systemtilldelade hanterade identiteten som anges i steg 2 med VNET-resursen Application Gateway och Application Gateway.

Konfigurera automatisering

Anta att kravet är att öka minantalet till 4 under kontorstid och minska minantalet till 2 under icke-kontorstid.

Två runbooks skapas:

  • IncreaseMin – Anger minsta antal autoskalningskonfigurationer till 4
  • DecreaseMin – anger minsta antal autoskalningskonfigurationer till 2

Använd följande PowerShell-runbook för att justera kapaciteten:

# Get the context of the managed identity 
$context = (Connect-AzAccount -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 

Skapa sedan följande två scheman:

  • WeekdayMorning – Kör IncreaseMin-runbooken från mån-fre kl. 05:00 PST
  • WeekdayEvening – Kör DecreaseMin-runbooken från mån-fre kl. 21:00 PST

Vanliga frågor och svar

  • Vad är serviceavtalet för jobbkörningar i tid?

    Azure Automation har ett serviceavtal på 99,9 % för att jobben ska startas i tid.

  • Vad händer om jobb avbryts under körningen?

    • Om jobbet redan skickar begäran till AppGW innan den avbryts går begäran igenom.
    • Om jobbet avbryts innan begäran skickas till Application Gateway är det ett av scenarierna som beskrivs i nästa avsnitt.
  • Vad händer om jobbuppgifter inte inträffar?

    Frånvarande jobb Påverkan
    IncreaseMin Återgår till inbyggd autoskalning. Nästa körning av DecreaseMin bör vara no-op eftersom antalet inte behöver justeras.
    DecreaseMin Ytterligare kostnad för kunden för den (oavsiktliga) kapacitet som har etablerats för dessa timmar. Nästa körning av IncreaseMin bör vara no-op eftersom antalet inte behöver justeras.
  • Kan autoskalningskonfigurationerna ändras flera gånger per dag?

    Frekventa justeringar av autoskalningskonfigurationer rekommenderas inte. För optimal balans bör du överväga att schemalägga uppdateringar två gånger dagligen för att sammanfalla med användningsmönstret för hög och icke-topp.

Kommentar

Skicka e-post till agschedule-autoscale@microsoft.com om du har frågor eller behöver hjälp med att konfigurera hanterad och schemalagd autoskalning för dina distributioner. Om du stöter på ett problem när du konfigurerar runbook läser du Felsöka Runbook-problem. Du kan konfigurera runbook-relaterade aviseringar genom att följa Övervakning av Azure Automation-runbooks med måttaviseringar.

Nästa steg