Dela via


Well-Architected Framework-perspektiv på Azure Load Balancer

Belastningsutjämning är processen att distribuera nätverkstrafik till en grupp av två eller flera bakomliggande servrar. Azure Load Balancer är en intern Azure-tjänst som utför layer 4-belastningsutjämning för alla UDP- och TCP-protokoll. Det säkerställer låg svarstid och hög tillgänglighet, vilket stöder både regionala och globala distributioner.

Den här artikeln förutsätter att du som arkitekt har granskat alternativ för belastningsutjämning i Azure och valt Azure Load Balancer Manager för din arbetsbelastning, som är utformad för att stödja flera regioner. Vägledningen i den här artikeln innehåller arkitektoniska rekommendationer som mappas till principerna för Well-Architected Framework-pelarna.

Viktig

Använda den här guiden

Varje avsnitt har en checklista för design som presenterar arkitekturområden av betydelse och designstrategier som är lokaliserade till teknikomfånget.

Den här artikeln innehåller även rekommendationer om de teknikfunktioner som hjälper till att materialisera dessa strategier. Rekommendationerna representerar inte en fullständig lista över alla konfigurationer som är tillgängliga för Azure Load Balancer och dess beroenden. I stället listar de de viktigaste rekommendationerna som mappats till designperspektiven. Använd rekommendationerna för att skapa ditt konceptbevis eller optimera dina befintliga miljöer.

Grundläggande arkitektur som visar de viktigaste rekommendationerna: Virtual Machines-baslinjearkitekturen.

Teknikomfång

  • Azure Lastbalanserare

Vägledningen fokuserar på SKU:n för Standardbelastningsutjämnaren. SKU:er för Basic Load Balancer och Gateway Load Balancer ligger utanför omfånget för den här artikeln.

diagram som visar en lastbalanserare som dirigerar trafik.

Not

För HTTP-program kan Application Gateway eller Front Door vara ett naturligt val. Dessa tjänster hanterar belastningsutjämning och tillhandahåller även funktioner som Web Application Firewall (WAF) och TLS-avslutning.

Mer information finns i:

Tillförlitlighet

Syftet med grundpelarna för tillförlitlighet är att tillhandahålla fortsatt funktionalitet genom att bygga upp tillräckligt med motståndskraft och möjlighet att snabbt återhämta sig från fel.

Principer för tillförlitlighetsdesign tillhandahålla en övergripande designstrategi som tillämpas för enskilda komponenter, systemflöden och systemet som helhet.

Checklista för design

Starta din designstrategi baserat på checklistan för designgranskning för tillförlitlighet. Fastställ relevansen för Azure Load Balancer för dina affärsbehov med tanke på de nivåer och funktioner som erbjuds för virtuella datorer. Utöka strategin till att omfatta fler metoder efter behov.

  • Förstå vilken inverkan garantier med stöd av Microsoft har. På samma sätt som andra komponenter i arkitekturen bör serviceavtal (SLA) vägas in i arbetsbelastningens tillförlitlighetsmål. Det finns dock vissa varningar.

    En minut betraktas som otillgänglig om alla felfria backend-servrar saknar anslutning genom den lastbalanserade slutpunkten under hela den minuten. Om en eller flera begäranden misslyckas men en efterföljande begäran lyckas inom samma minut räknas inte den minuten som stilleståndstid.

    Stilleståndstid inkluderar inte heller minuter som orsakas av SNAT-portöverbelastning. Se till att din arbetsbelastning är konfigurerad för att hantera det förväntade antalet anslutningar och öppna portar i enlighet med detta.

  • Stöd zonredundans i din arbetsbelastningsarkitektur. Standard Load Balancer är den rekommenderade SKU:n. Den har tillförlitlighetsfunktioner, till exempel stöd för tillgänglighetszoner, möjlighet att distribuera trafik över flera regioner och hanterar fler instanser i serverdelspoolen. Den här funktionen hjälper till att motstå fel på zon- eller regionnivå, eller enskild VM-instansnivå. Tänk dock på begränsningarna, till exempel maximal storlek på serverdelspoolen.

    Anteckning

    För Load Balancer hanterar du antalet virtuella datorer som lastbalanseras, men inte antalet instanser av själva lastbalanseraren. En lastbalanserare kan konfigureras så att den är zonredundant. Eller så kan den fästas på en zon om arbetsbelastningen behöver samverka med virtuella datorer i en enda zon. Ip-konfigurationen för klientdelen (zonindelad eller flera zoner) avgör redundansen för belastningsutjämning.

  • Stöd för regional redundans i din arbetsbelastningsarkitektur. Azure Load Balancer kan konfigureras som en global lastbalanserare. I den här konfigurationen har Load Balancer en statisk offentlig IP-adress för anycast som sänds i flera regioner. När klienter begär den här IP-adressen dirigeras deras begäranden till den närmaste serverinstansen. Load Balancer ansluter till regionala lastbalanserare för att distribuera trafiken effektivt.

  • Utvärdera ändringar i nätverksstacken för att stödja tillförlitlig skalning. Överväg att skala ut backend-poolen med hjälp av autoskalnings-regler. Var medveten om potentiell SNAT-portöverbelastning för utgående trafik. Du kan åtgärda detta genom att använda NAT Gateway för enklare konfiguration, även om den saknar redundans i tillgänglighetszonen. Du kan också använda Azure Load Balancer för extra zonredundans. För mer information, se Utgående anslutningar.

  • Minimera potentiella fel. Analysera felläge och identifiera åtgärder.

    Misslyckande Förmildrande omständighet
    Trafiken dirigeras till ohälsosamma programinstanser. Övervaka hälsotillståndet för belastningsinstanser. Implementera HTTP-hälsoavsökningar som omfattar kontroller av arbetsbelastningsberoenden.
    Trafiken dirigeras till en region som drabbas av avbrott. Distribuera ytterligare instanser i en annan region och introducera en global lastbalanserare för att omdirigera trafik till den nya regionen.
    Arbetsbelastningens användarbas har utvidgats för att stödja användare i en ny region, och de ser höga svarstider. Programmet börjar uppleva ett stort antal timeouter och fel. Distribuera ytterligare instanser i en ny region och lägg till dem i tjänstkonfigurationen. Som global lastbalanserare dirigerar Azure Load Balancer trafiken närmare användarna.
  • Dirigera trafik till friska instanser. Du kan använda HTTP eller TCP för hälsoavsökningar. Överväg att skapa en HTTP-slutpunkt för hälsokontroller, även för icke-HTTP-appar, ger bättre statussvar. Detta är särskilt användbart för att kontrollera beroenden och databaser. Utan HTTP-avsökningar förlitar sig lastbalanseraren på TCP-anslutningar, vilket kanske inte alltid återspeglar den virtuella datorns hälsotillstånd korrekt.

    Hälsoavsökningen kan konfigureras för tjänsten. Mer information finns i Designvägledning för hälsoavsökningar.

Rekommendationer

Rekommendation Fördel
Välj Standard Load Balancer som tjänst-SKU.
Mer information finns i SKU-jämförelse.
Den rekommenderade SKU:n stöder tillförlitlighetsfunktioner som tillgänglighetszoner och belastningsutjämning i flera regioner.
Konfigurera regler för att mappa frontendens IP-adress till backend-servrarnas IP-adresser för att aktivera belastningsutjämning.

Serverdelsadresspoolen bör ha minst två serverdelsslutpunkter för belastningsutjämning för redundans.
Regler är kärnan i belastningsutjämningsalgoritmen. Utan den här konfigurationen är distributionslägena inaktiverade.
Konfigurera hälsoprober.

– Ange avsökningsintervallet och tröskelvärdena. Tänk på kompromissen mellan hur snabbt du kan identifiera fel och antalet begäranden till slutpunkten.
– Utvärdera om du vill skicka trafik till instanserna när alla instanser rapporteras som ohälsosamma. Den här konfigurationen kan vara användbar för att implementera en graciös nedbrytningsupplevelse. Mer information finns i AllProbedUp.
Endast felfria serverdelspoolinstanser får nya anslutningar. Detta bidrar till att upprätthålla hög tillgänglighet och tillförlitlighet genom att automatiskt omdirigera trafik bort från bristfälliga instanser.
Konfigurera IP-adressen så att den är zonredundant, oavsett om det är en privat eller offentlig IP-adress. IP-adressen avgör zonredundansen för Azure Load Balancer-balanseraren. Zonredundans gör att arbetsbelastningen kan motstå zonfel. När en zon misslyckas kan tjänsterna redundansväxla till en av de återstående zonerna.

Säkerhet

Syftet med säkerhetspelare är att tillhandahålla konfidentialitet, integritet och tillgänglighet garantier för arbetsbelastningen.

Designprinciperna för Security tillhandahåller en övergripande designstrategi för att uppnå dessa mål genom att tillämpa tillvägagångssätt i den tekniska designen av Azure Load Balancer.

Checklista för design

Starta din designstrategi baserat på checklistan för designgranskning för säkerhet och identifiera säkerhetsrisker och kontroller för att förbättra säkerhetsställningen. Utöka strategin till att omfatta fler metoder efter behov.

  • Granska säkerhetsbaslinjer. För att förbättra säkerhetsläget för ditt program som är lastbalanserat av Azure Load Balancer, granska säkerhetsbaslinjen för Azure Load Balancer.

  • Skydda backend-servrarna. Distribuera resurser i ett virtuellt nätverk utan direkt internetexponering. Fronta det virtuella nätverket med en lastbalanserare. Vi föredrar att lastbalanseraren har brandväggsfunktioner. För HTTP-program används Azure Application Gateway eller Front Door ofta. För icke-HTTP-program bör du överväga Azure Load Balancer med en privat IP-adress (intern lastbalanserare) och dirigera trafik via Azure Firewall för ökad säkerhet. Mer information finns i Integrera Azure Firewall med Azure Standard Load Balancer: Intern lastbalanserare.

    Azure Load Balancer kan också användas som omvänd proxy. I det här fallet har lastbalanseraren en offentlig IP-adress med källnätverksadressöversättning (SNAT) som exponerar resurser samtidigt som deras IP-adresser maskeras.

    Not

    Om du vill filtrera trafik till bakre servrar använder du nätverkssäkerhetsgrupper (NSG:er) på de undernät som innehåller främre delen och bakre delen, inte på lastbalanseraren. Käll- och målportarna och adressintervallen som tillämpas vid tillämpning av NSG kommer från ursprungsdatorerna och måldatorerna, inte lastbalanseraren.

  • Design för privat anslutning. Azure Load Balancer fungerar med Private Link-tjänsten. Om du har programresurser spridda över virtuella nätverk kan du ansluta resurser i olika virtuella nätverk genom att antingen peer-koppla de virtuella nätverken eller använda Private Link framför den interna lastbalanseraren. Alternativet Private Link ger säker åtkomst utan att behöva en offentlig IP-adress och begränsar åtkomsten från icke-peerkopplade nätverk.

    Privata länkar kan auktoriseras med hjälp av rollbaserad åtkomstkontroll för att begränsa åtkomsten till endast de identiteter som behöver den.

  • Skydda mot hot på nätverksgränsen. För design som använder Azure Load Balancer som startpunkt implementerar du trafikkontroll på slutpunktsnivå. Eftersom det inte finns några inbyggda säkerhetsfunktioner som en brandvägg för webbaserade program (WAF) krävs ytterligare åtgärder för att skydda HTTP-program. för mer information, se Integrera Azure Firewall med Azure Standard Load Balancer: Offentlig lastbalanserare.

    Skydda lastbalanserarens slutpunkter från DDoS-attacker.

  • Kryptera nätverkstrafik. Azure Load Balancer fungerar på Layer 4 och har fullt stöd för belastningsutjämning av TCP- och UDP-trafik. Azure Load Balancer stöder inte SSL/TLS-avslutning. För HTTPS-belastningsutjämning på programlagret använder du Azure Application Gateway.

Rekommendationer

Rekommendation Fördel
Konfigurera FrontEnd IP-adressen till en privat IP-adress i ett VNet. Den här metoden är en säkerhetsåtgärd som säkerställer att klientdelens IP-adress och virtuella nätverk förblir isolerade från direkt internetexponering. Därför skyddas den interna lastbalanseraren från att acceptera inkommande trafik från Internet, vilket minskar potentiella attackvektorer.
Skydda offentlig lastbalanserare med DDoS-skydd. Med DDoS Protection-planen kan du använda dess avancerade skydds- och identifieringsfunktioner som övervakar slutpunkten för hot och tecken på missbruk.

Kostnadsoptimering

Kostnadsoptimering fokuserar på identifiera utgiftsmönster, prioritera investeringar inom kritiska områden och optimera i andra för att uppfylla organisationens budget samtidigt som affärskraven uppfylls.

Designprinciperna för kostnadsoptimering tillhandahåller en övergripande designstrategi för att uppnå dessa mål och göra kompromisser vid behov i den tekniska designen som rör Azure Load Balancer och dess miljö.

Checklista för design

Börja med din designstrategi baserad på checklistan för designgranskning för kostnadsoptimering för investeringar och finkalibrera designen så att arbetsbelastningen är i linje med den budget som allokerats för den. Din design bör använda rätt Azure-funktioner, övervaka investeringar och hitta möjligheter att optimera över tid.

  • Ta med kostnader för belastningsutjämning i din kostnadsmodell. Tänk på de primära faktorerna: mängden data som bearbetas av Azure Load Balancer och antalet regler för belastningsutjämning (både inkommande och utgående) på plats. För mer exakt kostnadsuppskattning använder du trafikloggar för att mäta dina trafikbehov, både inkommande och utgående.

  • Ange kontroller för utgifter. Logga och analysera kostnader från Azure Load Balancer (ALB). Använd Azure Cost Management och fakturering för att skapa budgetar och konfigurera aviseringar för att hantera kostnaderna effektivt. Tänk på att kostnader kan ackumuleras baserat på mängden data som loggas och lagringstiden, vilket påverkar både bandbredd och lagringskostnader.

  • Ta bort oanvända resurser. Identifiera och eliminera oanvända instanser av lastbalanserare. Analysera loggar för att utvärdera användningen. Ta bort instanser av lastbalanserare som inte är associerade med virtuella serverdelsdatorer. Utvärdera även underutnytttagna resurser genom att undersöka trafikloggar.

  • Optimera flödeskostnader. Använd effektiva protokoll och datakomprimering för att minska belastningen på trafikflödet och ackumulera kostnader.

    Du kan optimera kostnaderna genom att minska antalet regler. I stället för att ha regler som använder enskilda IP-adresser och portar för varje slutpunkt definierar du en regel för ett portintervall i klientdelen som ansluter till en serverdelspool.

    Det finns också optimeringsmöjligheter i backend-processerna. Till exempel har flera databasfrågor som fångas upp av en lastbalanserare lagt till kostnad per fråga. Överväg i stället att implementera en lagrad procedur för att konsolidera sekvensen.

  • Utvärdera kostnaden för åtgärder. Överväg inte bara resurskostnader utan även driftskostnader som underhåll, skalning och efterlevnad. Att hantera regler för lastbalanserare är en viktig faktor, och att minska antalet regler kan optimera både ekonomiska kostnader och hanteringskostnader.

Rekommendationer

Rekommendation Fördel
Beräkna kostnader med hjälp av Priskalkylator för Azure. Det hjälper dig att omvandla förväntad trafikanvändning till kostnadsuppskattningar, vilket gör det enklare att planera och budgetera.
Utvärdera antalet regler och minska dem om möjligt.

Utforska användningsfall där du kan använda ett antal portar som sammanfattas med en regel i stället för att definiera regler för enskilda IP-adresser.
Till exempel, inkommande NAT-regler v2 gör det möjligt att mappa IP-adresser och portar till en back-endpool i stället för till enskilda virtuella datorer.
Att konsolidera regler optimerar inte bara kostnaderna utan förenklar även driften.

När du skalar upp eller ned lägger du till eller tar bort IP-adresser från serverdelspoolen utan att behöva ändra några regler. Reglerna förblir oförändrade.

Operational Excellence

Operational Excellence fokuserar främst på procedurer för utvecklingsmetoder, observerbarhet och versionshantering.

Designprinciperna för Operational Excellence tillhandahåller en övergripande designstrategi för att uppnå dessa mål för driftskraven för arbetsbelastningen.

Checklista för design

Starta din designstrategi baserad på Operational Excellence-checklistan för designgranskning för att definiera processer för observerbarhet, testning och utrullning relaterade till Azure Load Balancer.

  • Använd infrastruktur som kod (IaC). Distribuera och konfigurera Azure Load Balancer tillsammans med andra nätverkskomponenter som virtuella nätverk, nätverkspeering, privata slutpunkter och nätverkssäkerhetsgrupper (NSG). Bekanta dig med Microsoft.Network-lastbalanserare.

  • Använd distribution i flera lager för hubb- och ekerarkitekturer. Distribuera hubben först eftersom den ändras mindre ofta än den belastning som distribueras i spoke-nätverket. Distribuera lastbalanseraren med arbetsbördan. Om du återanvänder en enskild lastbalanserare över flera arbetsbelastningar bör du överväga att placera den i hubben.

  • Implementera ett omfattande system för nätverksövervakning. Inkludera diagnostiska funktioner som flerdimensionella mått för insikter och aviseringar i realtid, resursloggar baserade på hälsohändelseschemat och Azure Monitor Insight-instrumentpanelen för omfattande övervakning av lastbalanserare.

Rekommendationer

Rekommendation Fördel
Använd flerdimensionella mått.

Om du vill minimera bullriga aviseringar konfigurerar du dem med aggregeringstypen inställd på Average, med hjälp av ett datafönster på fem minuter och ett tröskelvärde på 95%. Mer information finns i Konfigurera aviseringar för flerdimensionella mått. Granska exemplen för inkommande och utgående tillgänglighet.
Omfattande realtidsinsikter och aviseringskonfiguration ger dig möjlighet att identifiera och svara på problem snabbt.
Samla in resursloggar. Poster för lastbalanseraren beror på hälsohändelseschema. Loggar innehåller detaljerade poster över händelser som hjälper dig att snabbt identifiera och lösa problem
Använd den inbyggda Azure Monitor Insight-instrumentpanelen för Load Balancer. Med visualisering kan du göra välinformerade designval och snabbt identifiera, diagnostisera och åtgärda eventuella problem.
När du under underhållsåtgärderna behöver ta bort en serverdelsinstans från rotationen utan att störa befintliga anslutningar anger du administratörstillståndet till Ned för att säkerställa att inga nya anslutningar vidarebefordras till serverdelsinstansen, medan befintliga anslutningar avslutas korrekt. Administratörstillstånd hjälper till att minska den omkostnader och komplexitet som krävs för att ta bort en virtuell dator från belastningsutjämningsrotationen för vanligt underhåll eller korrigering. Annars, för att ta bort en serverdelsinstans från rotationen, kan en nätverkssäkerhetsgrupp (NSG) tillämpas för att blockera trafik från Azure Load Balancers hälsoavsökning eller klienternas IP-adresser och portar, vilket är mer komplext.

Prestandaeffektivitet

Prestandaeffektivitet handlar om upprätthålla användarupplevelsen även när belastningen ökar genom att hantera kapaciteten. Strategin omfattar skalning av resurser, identifiering och optimering av potentiella flaskhalsar och optimering för högsta prestanda.

Designprinciperna för prestandaeffektivitet tillhandahåller en designstrategi på hög nivå för att uppnå dessa kapacitetsmål för den förväntade användningen.

Checklista för design

Starta din designstrategi baserat på checklistan för designgranskning av prestandaeffektivitet för att definiera en baslinje utifrån nyckelprestandaindikatorer för Azure Load Balancer.

  • Fastställa nätverkets prestandamål. Lastbalanseraren har ingen gräns för den trafik som den kan stödja. När du definierar prestandamål och kapacitetsplanering är det dock viktigt att testa nätverksprestanda.

    Stresstestning är en vanlig metod för att förstå arbetsbelastningens bandbreddskrav. Inkludera lastbalanseraren i dessa tester. Om en enda VM-skalningsuppsättning med flera virtuella datorer inte räcker kan du lägga till en annan skalningsuppsättning med samma lastbalanserare. Om de virtuella datorerna inte tar emot begäranden tillräckligt snabbt kan du behöva justera nätverkskomponenterna, till exempel lägga till fler lastbalanserare. Överväg också att göra designändringar och optimera arbetsbelastningen i stället för att ändra själva lastbalanseraren.

  • Förstå gränserna när du utformar din skalningsstrategi. För att uppfylla prestandakraven kan du skala din arbetsbelastning genom att lägga till eller ta bort virtuella datorer från serverdelspoolen. En enskild serverdelspool i en Standard Load Balancer kan hantera upp till 5 000 virtuella datorer.

    Load Balancer tillämpar inga dataflödesgränser. Dataflödesgränser för virtuella datorer och virtuella nätverk gäller dock fortfarande. Mer information finns i Nätverksbandbredd för virtuella datorer.

  • Hantera begäranden snabbare. Standard Load Balancer har en nivå som dirigerar trafik till serverdelsslutpunkter baserat på deras geografiska närhet till användaren.

    Load Balancer stöder även belastningsdistribution baserat på sessionspersistence. När det är aktiverat dirigeras begäranden från samma klient till backendsystemet, som är ihållande under tidigare sessioner.

  • Samla in data för att analysera prestanda. Azure Load Balancer erbjuder flerdimensionella mått som hjälper dig att analysera tjänstens prestanda. Du kan konfigurera aviseringar för att identifiera prestandaändringar och visualisera status med hjälp av verktyg som Azure Monitor Insight-instrumentpanelen. Se dessutom till att hälsostatusen för standarden publiceras via Resource Health och hålla dig uppdaterad om prestandaproblem och avbrott.

  • Optimera nätverkstrafik. Undvik att bearbeta samma data flera gånger i separata steg. Utför i stället alla nödvändiga beräkningar i batch och lagra sedan data. Den här metoden minskar svarstiden och minimerar nätverkstrafiken, vilket förbättrar den övergripande prestandan.

Rekommendationer

Rekommendation Fördel
Välj den globala nivån i Standard Load Balancernär användarna är globala. Den här nivåns geo-närhetsdistributionsläge förbättrar prestandan genom att hantera användarbegäranden från slutpunkter i närmaste region.
Utvärdera om du ska aktivera sessionbeständighet när begäranden från samma användare ska dirigeras till samma backend-server.

Ur ett tillförlitlighetsperspektiv rekommenderar vi inte den här metoden. Om du använder det här alternativet bör programmet återställas korrekt utan att störa användarsessioner.

Det finns också en kompromiss när det gäller belastningsutjämning eftersom det begränsar flexibiliteten att distribuera trafik över flera serverdelar jämnt.
Optimera prestanda och upprätthålla kontinuitet för användarsessioner, särskilt när program förlitar sig på att underhålla tillståndsinformation lokalt.
Under skalningen skickar du en avsökningssignal tills programmet är helt initierat och redo att hantera förfrågningar. Under inskalningen skickar du däremot testsignalen för nya anslutningar på slutpunkten som håller på att skalas tillbaka. Väntande begäranden om befintliga anslutningar fortsätter att bearbetas. Hälsokontroller kan hjälpa till att skala verksamheter. Under utskalningen kan du se till att programmet är redo att hantera den inkommande belastningen. Innan en inskalningsåtgärd kan antalet instanser minskas på ett korrekt sätt utan att störa pågående åtgärder.

Azure-principer

Azure tillhandahåller en omfattande uppsättning inbyggda principer som rör Azure Load Balancer och dess beroenden. Några av föregående rekommendationer kan granskas via Azure-principer. Du kan till exempel kontrollera om:

  • Lastbalanserare (förutom Basic SKU) har stabilitetsfunktioner från offentliga IP-adresser som används i deras frontend.
  • Resursloggar är aktiverade för att spåra aktiviteter och händelser, som äger rum på dina resurser och ger dig insyn och insikter om eventuella ändringar som sker.

För en övergripande styrning, granska de inbyggda definitionerna .

Azure Advisor-rekommendationer

Azure Advisor är en anpassad molnkonsult som hjälper dig att följa metodtipsen för att optimera dina Azure-distributioner. Advisor-rekommendationerna är anpassade till Well-Architected Framework-pelare.

Mer information finns i rekommendationerna i Azure Advisor.

Betrakta dessa artiklar som ytterligare resurser som beskriver de rekommendationer som markeras i den här artikeln.