# Multi-Region AI Gateway Architecture **Last updated:** 2026-02 **Status:** GA **Category:** API Management & AI Gateway --- ## Introduksjon Organisasjoner som bygger AI-drevne tjenester med Azure OpenAI og andre LLM-tjenester trenger en gateway-arkitektur som tåler regionale feil, minimerer latens for geografisk distribuerte brukere, og overholder krav til dataresidency. Azure API Management (APIM) med multi-region deployment gir nettopp denne kapabiliteten, og er den anbefalte tilnærmingen for enterprise AI-workloads. For norsk offentlig sektor er multi-region-design spesielt relevant: mange organisasjoner har krav om at data skal behandles innenfor EØS, men ønsker samtidig redundans og lav latens. APIM Premium-tier støtter multi-region gateways med én kontrollplan, noe som forenkler administrasjon og gir automatisk failover mellom regioner. Denne referansen dekker alle aspekter ved design, deploy og drift av en geografisk distribuert AI-gateway. En vellykket multi-region AI-gateway-arkitektur balanserer tre hensyn: pålitelighet (at tjenesten overlever regionale feil), ytelse (at brukere opplever lav latens uavhengig av lokasjon), og compliance (at data behandles i henhold til regulatoriske krav). API Management løser alle tre gjennom innebygd FQDN-routing, regionale gateways og policy-basert trafikkhåndtering. --- ## Global APIM Distribution ### Multi-Region Deployment Architecture APIM Premium-tier støtter replikering av gateway-komponenten til flere Azure-regioner. Kontrollplanet (management plane) og utviklerportalen forblir i primærregionen, mens gateway-trafikk håndteres lokalt i hver region. | Komponent | Distribusjon | Merknader | |-----------|-------------|-----------| | Management plane | Kun primærregion | API-definisjoner, policyer, brukerhåndtering | | Developer portal | Kun primærregion | Brukerregistrering, API-dokumentasjon | | Gateway | Alle konfigurerte regioner | Håndterer API-trafikk, policy-kjøring | | Policy-konfigurasjon | Synkronisert (< 10 sek) | Automatisk propagering til alle regioner | ### Deployment via Azure Portal ``` 1. Naviger til APIM-instansen → Locations 2. Klikk "+ Add" → Velg region (f.eks. North Europe) 3. Konfigurer antall scale units 4. Aktiver availability zones (anbefalt) 5. Konfigurer VNet/subnet hvis nettverksintegrert 6. Klikk "Add" → gjenta for flere regioner 7. Klikk "Save" for å starte deployment ``` ### Bicep-template for Multi-Region APIM ```bicep resource apim 'Microsoft.ApiManagement/service@2023-09-01-preview' = { name: 'ai-gateway-apim' location: 'westeurope' sku: { name: 'Premium' capacity: 2 } properties: { publisherEmail: 'admin@example.com' publisherName: 'AI Gateway' additionalLocations: [ { location: 'northeurope' sku: { name: 'Premium' capacity: 1 } zones: ['1', '2', '3'] } { location: 'swedencentral' sku: { name: 'Premium' capacity: 1 } zones: ['1', '2', '3'] } ] } } ``` ### Regional DNS-mønster Hver region får et eget DNS-endepunkt: | Region | URL-mønster | |--------|------------| | Primary (West Europe) | `https://ai-gateway-apim.azure-api.net` | | West Europe (regional) | `https://ai-gateway-apim-westeurope-01.regional.azure-api.net` | | North Europe (regional) | `https://ai-gateway-apim-northeurope-01.regional.azure-api.net` | | Sweden Central (regional) | `https://ai-gateway-apim-swedencentral-01.regional.azure-api.net` | --- ## Region-Aware Routing ### Innebygd Latency-basert Routing APIM tilbyr automatisk FQDN-basert routing som sender trafikk til gatewayen med lavest latens. Dette er standard oppførsel for multi-region deployments og krever ingen ekstra konfigurasjon. ``` Klient → DNS-oppslag (ai-gateway-apim.azure-api.net) → Latency-basert resolving → Nærmeste gateway → Lokal policy-kjøring → Backend-kall ``` ### Routing til Regionale Backend-tjenester For å utnytte geografisk distribusjon fullt ut, bør Azure OpenAI-instanser deployes i samme regioner som APIM-gateways. Bruk `context.Deployment.Region` for å rute til lokale backends: ```xml ``` ### Backend Pool med Priority-basert Load Balancing Kombinér regionale backends med priority groups for automatisk failover: ```bicep resource backendPool 'Microsoft.ApiManagement/service/backends@2023-09-01-preview' = { name: 'ai-gateway-apim/aoai-pool-westeurope' properties: { description: 'West Europe pool med failover til North Europe' type: 'Pool' pool: { services: [ { id: '/subscriptions/.../backends/aoai-westeurope' priority: 1 weight: 1 } { id: '/subscriptions/.../backends/aoai-northeurope' priority: 2 weight: 1 } ] } } } ``` ### Egendefinert Routing med Azure Traffic Manager For scenarier der innebygd routing ikke er tilstrekkelig: ``` 1. Opprett Azure Traffic Manager-profil 2. Konfigurer APIM regionale endepunkter som endpoints 3. Bruk Geographic routing for data residency 4. Konfigurer health probe mot /status-0123456789abcdef 5. Pek custom domain mot Traffic Manager ``` | Routing-metode | Bruksområde | |---------------|------------| | Geographic | Data residency-krav (EØS-region) | | Performance | Lavest latens for sluttbrukere | | Priority | DR-scenarier med primær/sekundær | | Weighted | Gradvis migrering mellom regioner | --- ## Latency Optimization ### Strategier for Lav Latens | Strategi | Beskrivelse | Latensreduksjon | |----------|-------------|-----------------| | Co-lokalisering | APIM gateway + Azure OpenAI i samme region | Eliminerer cross-region latens | | Semantic caching | Cacher tidligere LLM-completions | 50-90% for gjentatte prompts | | Private endpoints | Direkte nettverksforbindelse uten offentlig internett | 10-30ms reduksjon | | Connection pooling | Gjenbruk av TCP-forbindelser | 50-100ms per request | | Regional DNS | Innebygd FQDN med latency-based routing | Automatisk optimal ruting | ### Semantic Caching med Azure Managed Redis ```xml ``` ### Måling av Regional Latens Bruk `llm-emit-token-metric` med regiondimensjon for å spore latens per region: ```xml ``` --- ## Data Residency Compliance ### EØS Data Residency-krav For norsk offentlig sektor med krav om databehandling innenfor EØS: | Krav | APIM-implementasjon | |------|---------------------| | Data-at-rest i EØS | Deploy APIM primærregion i West Europe/North Europe | | Data-in-transit i EØS | Private endpoints + VNet-isolasjon | | Ingen cross-geopolitical failover | Separate gateways per geopolitisk grense | | Logging i EØS | Log Analytics workspace i EØS-region | | Nøkkelhåndtering i EØS | Azure Key Vault i EØS-region | ### Viktige Advarsler **Ikke** implementer en enhetlig gateway på tvers av geopolitiske regioner når data residency er påkrevd: ``` RIKTIG: Gateway (West Europe) → Azure OpenAI (West Europe) Gateway (North Europe) → Azure OpenAI (North Europe) Separate FQDN per region FEIL: Gateway (West Europe) → Azure OpenAI (East US) ← Bryter data residency Enhetlig gateway med failover til US-region ← Bryter data residency ``` ### Azure OpenAI Deployment Types og Data Residency | Deployment Type | Data Residency | Egnet for offentlig sektor? | |----------------|---------------|---------------------------| | Standard | Data i angitt region | Ja, med EØS-region | | Provisioned (PTU) | Data i angitt region | Ja, med EØS-region | | Data Zone Standard | Data innenfor Azure data zone | Ja, med European data zone | | Global Standard | Data kan prosesseres i enhver region | Nei, ikke for data residency-krav | ### Policy for Data Residency Enforcement ```xml Data residency violation: Request routed outside EEA ``` --- ## Cross-Region Failover ### Automatisk Failover med Innebygd FQDN Ved standard multi-region deployment håndterer APIM failover automatisk: ``` 1. Gateway i Region A svarer ikke 2. DNS TTL utløper (typisk 5-10 minutter) 3. Trafikk rutes til Region B (lavest latens blant aktive) 4. Klienter MÅ respektere DNS TTL 5. Retry-logikk i klient håndterer overgangsperiode ``` ### Disable/Enable Regional Gateway For planlagt vedlikehold eller DR-testing: ```bash # Deaktiver gateway i North Europe az apim update \ --name ai-gateway-apim \ --resource-group rg-apim \ --set additionalLocations[location="North Europe"].disableGateway=true # Verifiser status az apim show \ --name ai-gateway-apim \ --resource-group rg-apim \ --query "additionalLocations[].{Location:location,Disabled:disableGateway,Url:gatewayRegionalUrl}" \ --output table # Reaktiver etter vedlikehold az apim update \ --name ai-gateway-apim \ --resource-group rg-apim \ --set additionalLocations[location="North Europe"].disableGateway=false ``` ### Active-Active med Active-Passive Azure OpenAI For maksimal pålitelighet, kombinér active-active gateway med active-passive backend: ``` Region A (Active): APIM Gateway → PTU Azure OpenAI (Priority 1) → Standard Azure OpenAI (Priority 2, failover) Region B (Active): APIM Gateway → PTU Azure OpenAI (Priority 1) → Standard Azure OpenAI (Priority 2, failover) Cross-region failover: Region A feil → All trafikk til Region B Region A PTU throttled → Standard deployment i Region A ``` ### Circuit Breaker for Backend Failover ```bicep resource backend 'Microsoft.ApiManagement/service/backends@2023-09-01-preview' = { name: 'ai-gateway-apim/aoai-westeurope' properties: { url: 'https://aoai-westeurope.openai.azure.com' protocol: 'http' circuitBreaker: { rules: [ { failureCondition: { count: 3 errorReasons: ['Server errors'] interval: 'PT1M' statusCodeRanges: [ { min: 429, max: 429 } { min: 500, max: 599 } ] } name: 'aoai-breaker' tripDuration: 'PT30S' acceptRetryAfter: true } ] } } } ``` ### Kapasitetsplanlegging for Failover Ved failover må gjenværende regioner absorbere all trafikk: | Scenario | Region A Kapasitet | Region B Kapasitet | Nødvendig overprovisionering | |----------|-------------------|-------------------|-----------------------------| | 2 regioner, active-active | 100% normal load | 100% normal load | Hver region: 2x normal | | 2 regioner, active-passive | 100% normal load | 0% (standby) | Passiv region: 1x normal | | 3 regioner, active-active | 33% normal load | 33% normal load | Hver region: 1.5x normal | Bruk [Azure OpenAI Capacity Calculator](https://oai.azure.com/portal/calculator) for PTU-kapasitetsplanlegging. --- ## Nettverksarkitektur ### Internal VNet Mode — Multi-Region For scenarier med intern VNet-modus (typisk for offentlig sektor): ``` Klient → Azure Front Door (WAF) → Private Endpoint → APIM Gateway (Region A) → APIM Gateway (Region B) → Egenhåndtert routing (Load Balancer/Traffic Manager) ``` **Viktig:** I internal VNet-modus håndterer APIM IKKE automatisk routing mellom regionale gateways. Organisasjonen må selv implementere routing via Azure Front Door, Traffic Manager, eller en annen load balancer. ### VNet Krav per Region Hver region krever eget VNet med nødvendige NSG-regler: | Port | Retning | Formål | |------|---------|--------| | 3443 | Inbound | Management traffic | | 443 | Inbound | Client traffic (HTTPS) | | 1433 | Outbound | Azure SQL (primærregion) — påkrevd fra alle regioner | | 443 | Outbound | Azure Storage, Azure Monitor, Key Vault | --- ## Referanser - [Deploy an Azure API Management instance to multiple Azure regions](https://learn.microsoft.com/en-us/azure/api-management/api-management-howto-deploy-multi-region) — Offisiell guide for multi-region deployment - [Use a gateway in front of multiple Azure OpenAI deployments or instances](https://learn.microsoft.com/en-us/azure/architecture/ai-ml/guide/azure-openai-gateway-multi-backend) — Arkitekturmønstre for AI gateway - [AI gateway in Azure API Management](https://learn.microsoft.com/en-us/azure/api-management/genai-gateway-capabilities) — Oversikt over AI gateway-kapabiliteter - [Access Azure OpenAI through a gateway](https://learn.microsoft.com/en-us/azure/architecture/ai-ml/guide/azure-openai-gateway-guide) — Well-Architected Framework-veiledning - [Azure OpenAI deployment types](https://learn.microsoft.com/en-us/azure/ai-foundry/foundry-models/concepts/deployment-types) — Deployment types og data residency --- ## For Cosmo - **Bruk denne referansen** når kunder trenger en AI-gateway som dekker flere Azure-regioner, eller når data residency og failover er sentrale krav. - For norsk offentlig sektor: Anbefal alltid EØS-regioner (West Europe, North Europe, Sweden Central) og advar eksplisitt mot Global Standard deployments som kan prosessere data utenfor EØS. - Husk at rate-limiting policyer (rate-limit, llm-token-limit) teller separat per regional gateway — dette betyr at en 1000 TPM-grense gjelder per region, ikke totalt. - Start enkelt med to EØS-regioner (West Europe + North Europe) og vurder tredje region (Sweden Central) kun ved behov for høyere tilgjengelighet. - Kombiner alltid multi-region gateway med circuit breaker og backend pools for å sikre automatisk failover uten manuell intervensjon.