La lliçó anterior va acabar amb dos extrems solts, un cap endins i un altre cap enfora. Cap endins: les oficines de Barcelona i Palma continuen fora de la xarxa d'Azure, el sistema de facturació heretat viu en un servidor del soterrani de Barcelona, i la Marta Ríos no pot administrar la plataforma des de casa sense exposar alguna cosa a internet. Cap enfora: un client que compra un bitllet des de Sud-amèrica creua l'Atlàntic a cada petició contra West Europe, i ho nota.

Tots dos problemes són de connectivitat, però de signe oposat. El primer es resol amb connectivitat híbrida: túnels xifrats o circuits dedicats que uneixen la xarxa local amb la xarxa virtual d'Azure, de manera que 10.100.0.0/16 i 10.20.0.0/16 es comportin com una sola xarxa. El segon es resol amb lliurament global: serveis que posen el contingut i la terminació de les connexions a prop del client, estigui on estigui.

Aquesta lliçó tanca el mòdul 2 amb totes dues coses i amb un avís que apareix a totes les factures d'Azure i que gairebé ningú no anticipa: el cost de la sortida de dades.

Avís de cost important: aquesta és la lliçó més cara del mòdul. Una porta d'enllaç de VPN es factura per hora des que es crea, encara que no hi hagi ni un túnel connectat, i triga entre 20 i 45 minuts a desplegar-se. ExpressRoute implica un contracte amb un operador i no es prova en un laboratori. Front Door i CDN tenen cost per dades servides. Desplega només el que faràs servir i esborra-ho el mateix dia.

Contingut

  1. L'escenari híbrid de Contoso Airlines
  2. VPN de punt a lloc: administrar des de casa
  3. VPN de lloc a lloc: connectar Barcelona i Palma
  4. Desplegament de la porta d'enllaç amb Azure CLI
  5. ExpressRoute: quan justifica el seu preu
  6. Azure Virtual WAN, a nivell conceptual
  7. Lliurament global: el client que compra des de Sud-amèrica
  8. Azure Front Door, Azure CDN i Traffic Manager comparats
  9. DNS públic amb Azure DNS
  10. El cost de la sortida de dades
  11. Arquitectura final del mòdul i neteja
  12. Errors Comuns i Consells
  13. Exercicis
  14. Conclusió

  1. L'escenari híbrid de Contoso Airlines

El que queda en local després de la migració, i per què:

Sistema On viu Per què continua allà Què necessita d'Azure
Facturació heretada Servidor a Barcelona Integrat amb el sistema comptable i amb un lector de targetes homologat Llegir les vendes de db-reservas cada nit
Llocs de treball del personal de terra Barcelona i Palma Són llocs de treball físics Accedir al tauler d'operacions i al recurs compartit d'Azure Files
Directori local Barcelona Sincronització d'identitats pendent (mòdul 4) Autenticació dels empleats
Administració de la Marta Ríos Portàtil, des de casa o de viatge És una persona, no un sistema Arribar a snet-gestion i a Bastion sense obrir ports

Recorda el pla d'adreçament fixat a la lliçó anterior, perquè la connectivitat híbrida és on aquest pla demostra el seu valor: Barcelona és 10.100.0.0/16, Palma 10.101.0.0/16, el concentrador d'Azure 10.10.0.0/16 i producció 10.20.0.0/16. Res no s'encavalca, així que tot es pot encaminar.

Les tres opcions de connectivitat, comparades d'un cop d'ull:

Opció Per on viatja Amplada de banda Latència Cost Temps de posada en marxa
VPN de punt a lloc Internet, xifrat El del client Variable Molt baix Minuts
VPN de lloc a lloc Internet, xifrat (IPsec) Fins a ~1–10 Gbps segons SKU Variable, depèn d'internet Baix Hores
ExpressRoute Circuit privat de l'operador 50 Mbps – 100 Gbps Predictible, amb SLA Alt Setmanes o mesos

  1. VPN de punt a lloc: administrar des de casa

Una VPN de punt a lloc (P2S) connecta un equip individual a la xarxa virtual. La Marta Ríos instal·la un client al seu portàtil, s'autentica i el portàtil rep una adreça d'un rang dedicat, amb accés als recursos privats de la xarxa.

Els seus components:

Component Què és
Porta d'enllaç de VPN El recurs d'Azure que acaba els túnels; viu a GatewaySubnet
Grup d'adreces del client Rang del qual s'assignen IP als portàtils; no es pot encavalcar amb res
Autenticació Certificats, Microsoft Entra ID o RADIUS
Protocol OpenVPN (recomanat, multiplataforma), IKEv2 o SSTP

Contoso reserva 172.16.30.0/24 per als clients de P2S: un rang que no col·lisiona ni amb Azure (10.x) ni amb les oficines.

GRUP_XARXA="rg-contoso-red-pro"
GATEWAY="vgw-contoso-pro"

# Configurar el punt a lloc sobre una porta d'enllac ja existent,
# amb autenticacio de Microsoft Entra ID i protocol OpenVPN.
az network vnet-gateway update \
  --resource-group "${GRUP_XARXA}" \
  --name "${GATEWAY}" \
  --address-prefixes 172.16.30.0/24 \
  --client-protocol OpenVPN \
  --vpn-auth-type AAD \
  --aad-tenant "https://login.microsoftonline.com/<id-inquili>" \
  --aad-audience "<id-aplicacio-client-vpn-azure>" \
  --aad-issuer "https://sts.windows.net/<id-inquili>/" \
  --output none

# Descarregar el perfil de configuracio per al client.
az network vnet-gateway vpn-client generate \
  --resource-group "${GRUP_XARXA}" \
  --name "${GATEWAY}" \
  --authentication-method EAPTLS \
  --output tsv

L'autenticació amb Microsoft Entra ID és l'opció preferible davant dels certificats: s'integra amb l'autenticació multifactor que vas configurar a la lliçó 01-03, permet revocar l'accés d'una persona desactivant-ne el compte i no obliga a distribuir ni renovar certificats un per un.

Amb la P2S connectada, la Marta arriba a snet-gestion i a Bastion sense cap IP pública exposada, que és exactament la promesa que vam deixar pendent a la lliçó anterior.

  1. VPN de lloc a lloc: connectar Barcelona i Palma

Una VPN de lloc a lloc (S2S) connecta una xarxa sencera amb la xarxa virtual mitjançant un túnel IPsec/IKE entre el dispositiu VPN de l'oficina i la porta d'enllaç d'Azure. No s'instal·la res als equips: tots els llocs de treball de l'oficina arriben a Azure de manera transparent.

graph LR
    subgraph BCN["Oficina Barcelona · 10.100.0.0/16"]
        FW1["Dispositiu VPN<br/>IP publica 198.51.100.10"]
        FAC["Facturacio heretada"]
    end
    subgraph PMI["Oficina Palma · 10.101.0.0/16"]
        FW2["Dispositiu VPN<br/>IP publica 198.51.100.42"]
    end
    FW1 -->|"tunel IPsec"| GW["vgw-contoso-pro<br/>GatewaySubnet 10.10.255.0/27"]
    FW2 -->|"tunel IPsec"| GW
    MAR["Marta Rios<br/>portatil · P2S 172.16.30.x"] -->|"OpenVPN"| GW
    GW --> HUB["vnet-contoso-hub-pro<br/>10.10.0.0/16"]
    HUB -->|peering amb transit<br/>de porta d'enllac| PRO["vnet-contoso-pro<br/>10.20.0.0/16"]

Els quatre components que cal crear, i en aquest ordre:

Component Recurs d'Azure Què representa
Subxarxa de porta d'enllaç GatewaySubnet (/27 o més gran) L'espai on viu la porta d'enllaç
IP pública ip-vgw-contoso-pro, Standard estàtica L'extrem d'Azure al qual apunta l'oficina
Porta d'enllaç de xarxa virtual vgw-contoso-pro El terminador de túnels del costat d'Azure
Porta d'enllaç de xarxa local lng-oficina-barcelona La representació a Azure de la xarxa de l'oficina: la seva IP pública i els seus rangs

El quart és el que més confon pel seu nom: una local network gateway no és un aparell, sinó un objecte d'Azure que descriu l'altre extrem. Si l'oficina canvia d'IP pública o hi afegeix una subxarxa, cal actualitzar aquest objecte.

SKU de la porta d'enllaç

SKU Amplada de banda agregada Túnels S2S Connexions P2S Redundància de zona Ús
Basic 100 Mbps 10 128 No Heretada, evitar
VpnGw1 650 Mbps 30 250 No Producció petita
VpnGw2 1 Gbps 30 500 No Producció mitjana
VpnGw1AZ – VpnGw5AZ 650 Mbps – 10 Gbps 30 500–10.000 Sí Producció amb requisit de zones

Contoso tria VpnGw1AZ: el trànsit entre les oficines i Azure és modest (sincronitzacions nocturnes i accés a un tauler), però la política de l'empresa exigeix redundància de zona als components crítics, i la porta d'enllaç és un punt únic de fallada per a les dues oficines.

  1. Desplegament de la porta d'enllaç amb Azure CLI

#!/usr/bin/env bash
set -euo pipefail

GRUP_XARXA="rg-contoso-red-pro"
REGIO="westeurope"
VNET_HUB="vnet-contoso-hub-pro"
GATEWAY="vgw-contoso-pro"
IP_GW="ip-vgw-contoso-pro"

ETIQUETES=(entorno=produccion proyecto=contoso-reservas centro-coste=CC-1042
           [email protected] criticidad=alta)

# 1. GatewaySubnet al concentrador (nom obligatori i literal).
az network vnet subnet create \
  --resource-group "${GRUP_XARXA}" --vnet-name "${VNET_HUB}" \
  --name GatewaySubnet --address-prefixes 10.10.255.0/27 --output none

# 2. IP publica estandard amb redundancia de zona.
az network public-ip create \
  --resource-group "${GRUP_XARXA}" --name "${IP_GW}" \
  --sku Standard --allocation-method Static --zone 1 2 3 \
  --tags "${ETIQUETES[@]}" --output none

# 3. Porta d'enllac de xarxa virtual. ATENCIO: triga entre 20 i 45 minuts
#    i comenca a facturar per hora des de la seva creacio.
az network vnet-gateway create \
  --resource-group "${GRUP_XARXA}" --name "${GATEWAY}" \
  --location "${REGIO}" \
  --vnet "${VNET_HUB}" \
  --public-ip-addresses "${IP_GW}" \
  --gateway-type Vpn --vpn-type RouteBased \
  --sku VpnGw1AZ \
  --tags "${ETIQUETES[@]}" \
  --no-wait

# 4. Representacio de la xarxa de Barcelona (IP i rangs de l'altre extrem).
az network local-gateway create \
  --resource-group "${GRUP_XARXA}" --name lng-oficina-barcelona \
  --gateway-ip-address 198.51.100.10 \
  --local-address-prefixes 10.100.0.0/16 \
  --tags "${ETIQUETES[@]}" --output none

# 5. El mateix per a Palma.
az network local-gateway create \
  --resource-group "${GRUP_XARXA}" --name lng-oficina-palma \
  --gateway-ip-address 198.51.100.42 \
  --local-address-prefixes 10.101.0.0/16 \
  --tags "${ETIQUETES[@]}" --output none

# 6. Connexions IPsec (la clau compartida ha de venir de Key Vault, mai de l'script).
az network vpn-connection create \
  --resource-group "${GRUP_XARXA}" --name con-barcelona-pro \
  --vnet-gateway1 "${GATEWAY}" --local-gateway2 lng-oficina-barcelona \
  --shared-key "${CLAU_BARCELONA}" --output none

az network vpn-connection create \
  --resource-group "${GRUP_XARXA}" --name con-palma-pro \
  --vnet-gateway1 "${GATEWAY}" --local-gateway2 lng-oficina-palma \
  --shared-key "${CLAU_PALMA}" --output none

Notes sobre aquest script, perquè cadascuna correspon a un error real que es comet sovint:

  • --vpn-type RouteBased: és el tipus modern, obligatori per a P2S, per a diversos túnels i per a la majoria d'escenaris. PolicyBased només es fa servir amb dispositius antics que no admeten cap altra cosa i té límits severs.
  • --no-wait: el desplegament triga fins a 45 minuts. Sense aquesta opció, el teu terminal es queda bloquejat.
  • La clau compartida (--shared-key) és un secret de debò: ha de sortir d'Azure Key Vault (lliçó 04-03), mai d'una variable escrita al repositori.
  • Les IP 198.51.100.x són d'un rang reservat per a documentació (RFC 5737): en el desplegament real s'hi posen les IP públiques dels tallafocs de les oficines.
  • El dispositiu de l'oficina també s'ha de configurar, amb els paràmetres equivalents. Azure genera plantilles de configuració per als fabricants més comuns.

Verificació de l'estat dels túnels:

az network vpn-connection show \
  --resource-group rg-contoso-red-pro --name con-barcelona-pro \
  --query "{Connexio:name, Estat:connectionStatus, EntradaBytes:ingressBytesTransferred, SortidaBytes:egressBytesTransferred}" \
  --output table

L'estat ha de ser Connected. Si apareix Connecting de manera indefinida, el 90 % de les vegades és un desajust de paràmetres IPsec entre els dos extrems o una clau compartida diferent.

I recorda el detall econòmic de la lliçó anterior: gràcies a --allow-gateway-transit al concentrador i --use-remote-gateways als radis, aquesta única porta d'enllaç dona connectivitat a vnet-contoso-pro i a vnet-contoso-dev. Aquest és l'estalvi que justifica el patró hub-and-spoke.

  1. ExpressRoute: quan justifica el seu preu

ExpressRoute és una connexió privada entre la teva xarxa i Azure a través d'un operador de telecomunicacions. El trànsit no passa per internet en cap moment.

Aspecte VPN de lloc a lloc ExpressRoute
Camí Internet públic, xifrat IPsec Circuit privat de l'operador
Amplada de banda Fins a ~10 Gbps (SKU altes), compartit amb internet 50 Mbps a 100 Gbps dedicats
Latència Variable: depèn de l'estat d'internet Predictible i estable
SLA de disponibilitat 99,9 % (99,95 % amb actiu-actiu) 99,95 %, amb SLA d'extrem a extrem de l'operador
Xifratge IPsec obligatori No xifrat per defecte (circuit privat); s'hi pot afegir
Cost Desenes d'euros al mes més sortida de dades Centenars o milers al mes, més l'enllaç de l'operador
Posada en marxa Hores Setmanes o mesos
Accés a serveis PaaS per IP privada Requereix Private Link Aparellament de Microsoft o Private Link

Models d'aparellament

Aparellament A què dona accés Ús típic
Privat (Azure private peering) Recursos amb IP privada de les teves xarxes virtuals El principal: VM, bases de dades i punts de connexió privats
De Microsoft (Microsoft peering) Serveis públics de Microsoft (Microsoft 365, PaaS amb punt de connexió públic) Grans desplegaments de Microsoft 365 i accés a PaaS sense internet

I dos models de connexió: ExpressRoute Direct (et connectes directament a la xarxa de Microsoft amb ports de 10 o 100 Gbps, per a volums enormes) i l'habitual a través d'un proveïdor de connectivitat.

El necessita Contoso?

La Marta Ríos ho avalua i decideix que no, encara no:

Criteri Situació de Contoso Veredicte
Volum de dades Sincronització nocturna de vendes: uns pocs GB La VPN va sobrada
Sensibilitat a la latència Processos per lots nocturns, no interactius No és crítica
Requisit normatiu de no travessar internet No n'hi ha: IPsec satisfà l'auditoria No obliga
Cost Uns quants milers d'euros a l'any, més l'enllaç No es justifica

ExpressRoute es justifica quan es compleix algun d'aquests: moure terabytes amb regularitat, migrar bases de dades grans, escriptoris virtuals per a centenars d'empleats, sistemes interactius que no toleren variabilitat de latència, o un requisit de compliment que prohibeixi explícitament travessar internet. Contoso ho reavaluarà si migra el sistema de facturació complet. Un patró habitual, per cert, és tenir ExpressRoute com a principal i una VPN de lloc a lloc com a reserva, que és barat i cobreix el tall del circuit.

  1. Azure Virtual WAN, a nivell conceptual

Quan el nombre d'oficines i de xarxes virtuals creix, muntar i mantenir a mà les portes d'enllaç, els aparellaments i les taules de rutes es converteix en una feina a temps complet. Azure Virtual WAN és el servei gestionat que automatitza aquesta feina.

Aspecte Hub-and-spoke construït a mà Azure Virtual WAN
Concentrador Una VNet que crees i gestiones tu Concentrador virtual gestionat per Azure
Connexions d'oficina Una a una, amb portes d'enllaç i objectes locals Automatitzades, amb integració de dispositius SD-WAN
Encaminament entre radis Requereix appliance o rutes manuals Trànsit integrat entre radis
Diverses regions Aparellament global i rutes a mà Concentradors en diverses regions, interconnectats sols
Quan compensa Poques xarxes i poques oficines Moltes oficines, diverses regions, VPN + ExpressRoute + P2S alhora

Per a Contoso, amb dues oficines i tres xarxes virtuals, el hub-and-spoke manual de la lliçó 02-05 és més simple i més barat. Virtual WAN entraria en joc si l'aerolínia creixés fins a vint delegacions o si operés en diverses regions. N'hi ha prou que sàpigues que existeix i quin problema resol.

  1. Lliurament global: el client que compra des de Sud-amèrica

Canviem de direcció. Una passatgera a Buenos Aires entra a www.contosoairlines.example per comprar un vol. Tot és a West Europe. Vegem què li costa això.

La latència d'anada i tornada entre Buenos Aires i Amsterdam ronda els 220 ms. Una càrrega de pàgina típica encadena diverses operacions en sèrie:

Operació Viatges d'anada i tornada Temps aproximat
Resolució DNS 1 220 ms (o menys amb memòria cau)
Establiment TCP 1 220 ms
Negociació TLS 1–2 220–440 ms
Primera petició HTTP 1 220 ms
Recursos estàtics (imatges, CSS, JS) Diversos, en paral·lel 220 ms mínim cada tanda

Resultat: més d'un segon abans de veure res, sense comptar el temps de procés del servidor. I en un embut de venda de bitllets, cada segon d'espera es tradueix en abandonaments.

El que arregla el lliurament global, i és més del que la gent suposa:

  1. Terminació TLS a la vora: la salutació TCP i TLS es fa contra un punt de presència proper (São Paulo, per exemple, a uns 30 ms), no contra West Europe. Només la petició ja establerta viatja a Europa, per connexions persistents ja obertes i optimitzades dins de la xarxa de Microsoft.
  2. Memòria cau de contingut estàtic: imatges, fulls d'estil i scripts se serveixen des del punt de presència, sense creuar l'Atlàntic.
  3. Encaminament òptim: el trànsit entra a la xarxa troncal de Microsoft al punt més proper i hi viatja, no per l'internet públic.
  4. Commutació per error: si l'origen d'una regió no respon, el servei global envia el trànsit a un altre.

  1. Azure Front Door, Azure CDN i Traffic Manager comparats

Aspecte Azure Front Door Azure CDN Traffic Manager
Capa 7 (HTTP/S) 7 (HTTP/S) DNS
Què fa amb el trànsit El termina i el reenvia des de la vora Serveix i posa a la memòria cau contingut estàtic Només respon a la consulta DNS amb una destinació
Terminació TLS a la vora Sí Sí No (no veu el trànsit)
Memòria cau Sí Sí, és la seva especialitat No
Encaminament per ruta o capçalera Sí Limitat No
WAF Sí (lliçó 04-04) Segons nivell No
Commutació per error Ràpida, per sondes pròpies — Per sondes, però limitada pel TTL del DNS
Protocols Només HTTP/S Només HTTP/S Qualsevol
Velocitat de commutació Segons — Minuts (depèn de la memòria cau DNS del client)

Criteris d'elecció, en forma de decisió:

  • Lloc o API web accessible des de diverses regions del món, que vols accelerar i protegir → Azure Front Door. És la resposta per defecte avui, perquè inclou el que abans es feia amb CDN més Traffic Manager.
  • Només distribució de fitxers estàtics molt voluminosos (vídeo, descàrregues, imatges) → Azure CDN, si el seu model de preus surt millor per a aquest perfil.
  • Servei que no parla HTTP (el protocol del motor heretat, un servidor de correu, una base de dades) o commutació entre regions sense tocar l'aplicació → Traffic Manager, perquè treballa a nivell de DNS i és agnòstic del protocol.

Advertència sobre Traffic Manager que evita disgustos: com que només respon consultes DNS, la commutació per error triga el que trigui a caducar el registre a la memòria cau dels clients i dels resolutors intermedis. Amb un TTL de 60 segons, la commutació real pot durar diversos minuts. No és el mecanisme per a una commutació en segons.

Front Door per a Contoso Reserves

#!/usr/bin/env bash
set -euo pipefail

GRUP="rg-contoso-reservas-pro"
PERFIL="fd-contoso-global"
PUNT="contoso-reservas"

ETIQUETES=(entorno=produccion proyecto=contoso-reservas centro-coste=CC-1042
           [email protected] criticidad=alta)

# 1. Perfil de Front Door Standard (Premium hi afegeix WAF gestionat i Private Link a l'origen).
az afd profile create \
  --resource-group "${GRUP}" --profile-name "${PERFIL}" \
  --sku Standard_AzureFrontDoor --tags "${ETIQUETES[@]}" --output none

# 2. Punt de connexio: el nom global pel qual entra el transit.
az afd endpoint create \
  --resource-group "${GRUP}" --profile-name "${PERFIL}" \
  --endpoint-name "${PUNT}" --enabled-state Enabled --output none

# 3. Grup d'origens amb la seva sonda d'estat i equilibri de carrega.
az afd origin-group create \
  --resource-group "${GRUP}" --profile-name "${PERFIL}" \
  --origin-group-name og-reservas \
  --probe-request-type GET --probe-protocol Https \
  --probe-path "/salud" --probe-interval-in-seconds 30 \
  --sample-size 4 --successful-samples-required 3 \
  --additional-latency-in-milliseconds 50 --output none

# 4. Origen principal: l'aplicacio de West Europe.
az afd origin create \
  --resource-group "${GRUP}" --profile-name "${PERFIL}" \
  --origin-group-name og-reservas --origin-name origen-westeurope \
  --host-name app-contoso-reservas-pro.azurewebsites.net \
  --origin-host-header app-contoso-reservas-pro.azurewebsites.net \
  --http-port 80 --https-port 443 --priority 1 --weight 1000 \
  --enabled-state Enabled --output none

# 5. Ruta amb memoria cau de contingut estatic i redireccio a HTTPS.
az afd route create \
  --resource-group "${GRUP}" --profile-name "${PERFIL}" \
  --endpoint-name "${PUNT}" --route-name ruta-principal \
  --origin-group og-reservas --supported-protocols Http Https \
  --patterns-to-match "/*" --forwarding-protocol HttpsOnly \
  --https-redirect Enabled --link-to-default-domain Enabled \
  --enable-caching true --query-string-caching-behavior IgnoreQueryString \
  --output none

echo "Front Door publicat a: https://$(az afd endpoint show -g "${GRUP}" --profile-name "${PERFIL}" --endpoint-name "${PUNT}" --query hostName -o tsv)"

Les opcions que mereixen explicació:

Opció Efecte
--probe-path "/salud" Reutilitza el punt de salut que vas crear a App Service (lliçó 02-03)
--sample-size i --successful-samples-required Quantes sondes s'avaluen i quantes han d'anar bé per considerar sa l'origen
--additional-latency-in-milliseconds 50 Marge de latència dins del qual diversos orígens es consideren igual de propers
--priority 1 Prioritat de l'origen: un segon origen amb prioritat 2 seria el de reserva
--https-redirect Enabled Qualsevol petició HTTP es redirigeix a HTTPS a la vora
--query-string-caching-behavior Si la cadena de consulta forma part de la clau de memòria cau. Compte: IgnoreQueryString és perillós en pàgines de resultats de cerca de vols

Aquest últim punt mereix un avís seriós: no posis a la memòria cau respostes personalitzades ni resultats de disponibilitat. Si Front Door desa a la memòria cau /vuelos?origen=BCN&destino=EZE ignorant la cadena de consulta, un client pot veure els vols que va buscar un altre. Contoso només posa a la memòria cau /estatico/* (imatges, CSS, JS) i deixa passar sense memòria cau tot el que és dinàmic.

Si més endavant Contoso muntés un segon desplegament a North Europe, n'hi hauria prou d'afegir-lo com a origen amb prioritat 2 i Front Door commutaria sol quan la sonda del principal fallés. Recorda, però, la decisió conscient del mòdul 1: no hi ha actiu-actiu multiregió per cost.

  1. DNS públic amb Azure DNS

Azure DNS allotja les zones DNS públiques dels teus dominis a la infraestructura de Microsoft, amb anycast global i sense servidors per mantenir. No registra dominis (per a això hi ha App Service Domains o el teu registrador habitual), només els allotja.

GRUP_XARXA="rg-contoso-red-pro"
ZONA="contosoairlines.example"

# 1. Crear la zona publica.
az network dns zone create -g "${GRUP_XARXA}" -n "${ZONA}" --output none

# 2. Veure els servidors de noms que cal declarar al registrador.
az network dns zone show -g "${GRUP_XARXA}" -n "${ZONA}" \
  --query nameServers --output tsv

# 3. Registre CNAME de www cap a Front Door.
HOST_FD=$(az afd endpoint show -g rg-contoso-reservas-pro \
  --profile-name fd-contoso-global --endpoint-name contoso-reservas \
  --query hostName -o tsv)

az network dns record-set cname set-record \
  -g "${GRUP_XARXA}" -z "${ZONA}" -n www \
  --cname "${HOST_FD}" --ttl 3600 --output none

# 4. Registre de verificacio de domini que exigeix Front Door.
az network dns record-set txt add-record \
  -g "${GRUP_XARXA}" -z "${ZONA}" -n "_dnsauth.www" \
  --value "<token-de-validacio-de-front-door>" --output none

# 5. Alias al vertex del domini (contosoairlines.example, sense www).
#    El CNAME no esta permes al vertex: es fa servir un registre d'alias d'Azure.
az network dns record-set a create \
  -g "${GRUP_XARXA}" -z "${ZONA}" -n "@" \
  --target-resource "$(az afd endpoint show -g rg-contoso-reservas-pro \
      --profile-name fd-contoso-global --endpoint-name contoso-reservas --query id -o tsv)" \
  --output none

El pas 5 resol un problema clàssic: l'estàndard DNS no permet un CNAME al vèrtex de la zona (el domini sense www). Els registres d'alias d'Azure DNS ho solucionen apuntant directament a un recurs d'Azure, i a més s'actualitzen sols si la IP del recurs canvia.

Sobre el TTL: un valor alt (3600 s) redueix consultes i cost; un de baix (60 s) permet canviar de destinació ràpid. Pràctica habitual: baixar el TTL a 60 segons uns dies abans d'una migració planificada i tornar a pujar-lo després.

  1. El cost de la sortida de dades

Aquí hi ha la sorpresa que s'emporta tothom amb la seva primera factura d'Azure, i per això tanca la part tècnica del mòdul.

La regla general d'Azure:

  • L'entrada de dades (ingress) és gratuïta. Pujar a Azure no costa.
  • La sortida de dades (egress) es factura. Tot el que surt cap a internet, i bona part del que es mou entre regions o entre zones.
Tipus de trànsit Es factura?
D'internet cap a Azure (entrada) No
D'Azure cap a internet (sortida) Sí, per GB, amb els primers 100 GB al mes gratuïts
Entre recursos de la mateixa regió i mateixa VNet No
Entre zones de disponibilitat de la mateixa regió Sí en alguns escenaris
Entre regions (per exemple, West Europe → North Europe) Sí
A través d'un aparellament de xarxes virtuals Sí, en tots dos sentits
A través d'una VPN o d'ExpressRoute Sí (a ExpressRoute depèn del pla)
Servit des de la memòria cau de Front Door o CDN Sí, amb una tarifa diferent i normalment menor per zona geogràfica

On fa mal això en el cas de Contoso:

  1. Targetes d'embarcament descarregades pels passatgers. Cada PDF que surt a internet es factura. Un milió de descàrregues de 300 KB són 300 GB al mes: petit, però real, i creix amb el negoci.
  2. Sincronització nocturna amb la facturació de Barcelona a través de la VPN: surt d'Azure, es factura.
  3. Replicació GZRS del compte de targetes cap a North Europe: la replicació geogràfica té el seu propi cost de transferència.
  4. Trànsit entre radis i concentrador per aparellament: sembla «intern», però es factura per GB en tots dos sentits.

Quatre formes de reduir-lo, totes aplicables des d'ara:

  • Posar a la memòria cau a la vora: cada resposta servida des de la memòria cau de Front Door és una sortida menys des de la regió (i més ràpida).
  • Comprimir: activar la compressió a Front Door i a App Service redueix els bytes servits.
  • No moure dades entre regions sense motiu: processa on són les dades.
  • Vigilar el desglossament de la factura: al mòdul 8 veuràs com Cost Management descompon la despesa per servei i per tipus de mesurador, i com la Nuria Peña, la responsable financera, ho revisa cada mes amb l'equip. La sortida de dades sol estar entre les tres primeres línies i gairebé ningú no l'havia pressupostada.

  1. Arquitectura final del mòdul i neteja

graph TB
    CLI["Clients globals<br/>(Buenos Aires, Madrid, Barcelona...)"] --> DNS["Azure DNS<br/>contosoairlines.example"]
    DNS --> FD["Azure Front Door<br/>fd-contoso-global<br/>TLS a la vora + memoria cau"]
    FD --> WEBAPP["App Service<br/>app-contoso-reservas-pro"]
    WEBAPP --> API["App Service<br/>app-contoso-api-disponibilidad-pro"]
    API --> SQL["db-reservas<br/>(modul 3)"]
    WEBAPP --> BLOB["sttarjetascontosopro<br/>Private Link"]
    subgraph AZ["Azure · West Europe"]
        FD
        WEBAPP
        API
        SQL
        BLOB
        VMS["vm-motor-disponibilidad-01<br/>snet-gestion"]
        GW["vgw-contoso-pro<br/>VpnGw1AZ"]
    end
    OFI["Oficines Barcelona i Palma<br/>10.100.0.0/16 · 10.101.0.0/16"] -->|VPN lloc a lloc| GW
    MARTA["Marta Rios des de casa"] -->|VPN punt a lloc| GW
    GW --> VMS

Neteja, començant pel més car:

GRUP_XARXA="rg-contoso-red-pro"

# 1. Connexions i porta d'enllac: EL PRIMER DE TOT, es el que mes factura per hora.
az network vpn-connection delete -g "${GRUP_XARXA}" -n con-barcelona-pro
az network vpn-connection delete -g "${GRUP_XARXA}" -n con-palma-pro
az network vnet-gateway delete -g "${GRUP_XARXA}" -n vgw-contoso-pro
az network public-ip delete -g "${GRUP_XARXA}" -n ip-vgw-contoso-pro

# 2. Front Door.
az afd profile delete -g rg-contoso-reservas-pro --profile-name fd-contoso-global --yes

# 3. Zona DNS (si era de proves).
az network dns zone delete -g "${GRUP_XARXA}" -n contosoairlines.example --yes

# 4. Comprovacio final de despesa residual a tota la subscripcio.
az network vnet-gateway list --query "[].{Gateway:name, SKU:sku.name, Grup:resourceGroup}" -o table
az network public-ip list --query "[?ipConfiguration==null].{IP:name, Grup:resourceGroup}" -o table
az disk list --query "[?diskState=='Unattached'].{Disc:name, GB:diskSizeGb}" -o table

Esborrar la porta d'enllaç triga diversos minuts. Fes-ho abans d'anar-te'n, no després: una VpnGw1AZ oblidada un mes costa més que tota la resta del laboratori d'aquest mòdul junta.

Errors Comuns i Consells

  • Crear la porta d'enllaç de VPN «per provar» i oblidar-la. Factura per hora des del minut u, estigui o no connectada. És l'error de cost més car de tot el mòdul.
  • Encavalcar el grup d'adreces de la P2S amb la xarxa d'Azure o amb la de l'oficina. El client connecta, però no arriba a res. Reserva un rang exclusiu (172.16.30.0/24 a Contoso).
  • Fer servir PolicyBased quan cal RouteBased. No admet P2S ni diversos túnels i cal refer la porta d'enllaç sencera.
  • Posar malament els rangs a la porta d'enllaç de xarxa local. Si falta una subxarxa de l'oficina, aquella part de la xarxa no arriba a Azure i el símptoma és «funciona a mitges».
  • Escriure la clau compartida de la VPN a l'script. Va a Key Vault (04-03). Un repositori amb una clau IPsec és un incident de seguretat.
  • Suposar que ExpressRoute xifra el trànsit. És un circuit privat, no xifrat per defecte. Si el requisit és xifratge d'extrem a extrem, cal afegir-lo.
  • Esperar de Traffic Manager una commutació en segons. Treballa per DNS: la memòria cau dels clients mana. Per a commutació ràpida, Front Door.
  • Posar a la memòria cau contingut dinàmic o personalitzat a Front Door. Un resultat de cerca de vols a la memòria cau es pot mostrar a un altre client. Posa-hi només el que és estàtic.
  • Oblidar el registre d'alias al vèrtex del domini. No es pot fer servir CNAME a @; els alias d'Azure DNS són la solució.
  • No pressupostar la sortida de dades. És una de les primeres línies de la factura i la que menys gent anticipa. Enllaça-ho amb el pressupost que vas crear a la lliçó 01-03.
  • Consell: desplega la porta d'enllaç amb --no-wait i aprofita els 30-45 minuts per configurar la resta. I posa-li una alerta de pressupost específica.
  • Consell: documenta al repositori la taula de rangs (Azure, oficines, P2S). En una incidència de connectivitat a les tres de la matinada, aquest document val més que qualsevol diagrama bonic.

Exercicis

Exercici 1: triar la connectivitat adequada

Per a cada necessitat de Contoso Airlines, indica quina solució faries servir i justifica-la:

  1. La Marta Ríos administra les VM des d'un hotel durant un congrés.
  2. Els 30 llocs de treball de l'oficina de Palma accedeixen cada dia al tauler d'operacions i al recurs compartit d'Azure Files.
  3. Contoso decideix migrar el sistema de facturació complet i moure 8 TB d'històric en un cap de setmana, a més de mantenir després una sincronització contínua de baixa latència.
  4. L'aerolínia obre delegacions a 18 aeroports, cadascuna amb la seva xarxa local, i vol connectar-les totes sense gestionar 18 portes d'enllaç.

Exercici 2: lliurament global

La passatgera de Buenos Aires triga més d'un segon a veure la pàgina de cerca de vols.

  1. Quin servei de lliurament global triaries i per què davant dels altres dos?
  2. Quins continguts posaries a la memòria cau i quins no? Justifica el risc d'equivocar-te.
  3. Escriu la configuració de la sonda d'estat del grup d'orígens i explica cada paràmetre.
  4. Si Contoso hi afegís un desplegament a North Europe, com el configuraries perquè fos de reserva i no actiu-actiu?

Exercici 3: auditar la factura de sortida de dades

La Nuria Peña, la responsable financera, pregunta per què l'apartat de xarxa de la factura ha pujat un 40 % aquest trimestre.

  1. Enumera almenys quatre fonts de sortida de dades a l'arquitectura actual de Contoso.
  2. Per a cadascuna, proposa una mesura concreta de reducció.
  3. Quin trànsit de l'arquitectura és gratuït i convé explicar a la Nuria perquè no el persegueixi?

Solucions

Solució 1:

Cas Solució Justificació
1. La Marta des d'un hotel VPN de punt a lloc amb autenticació d'Entra ID És un equip individual i una ubicació canviant; no hi ha dispositiu VPN per configurar i s'aprofita l'MFA existent
2. Els 30 llocs de treball de Palma VPN de lloc a lloc Connecta la xarxa sencera de manera transparent; a més, l'accés a Azure Files per SMB (port 445) pràcticament exigeix connectivitat privada
3. Migrar 8 TB i sincronització de baixa latència ExpressRoute Volum i latència predictible: moure 8 TB per una VPN sobre internet és lent i inestable. Es planifica amb setmanes d'antelació i es deixa la VPN com a reserva
4. 18 delegacions Azure Virtual WAN Gestiona centralitzadament les connexions de moltes seus amb trànsit integrat, en lloc de mantenir a mà portes d'enllaç, objectes locals i rutes

Solució 2:

  1. Azure Front Door. Davant d'Azure CDN, perquè no només cal posar a la memòria cau estàtics: també interessa acabar TLS a la vora i accelerar el contingut dinàmic per la xarxa troncal de Microsoft, a més de poder afegir WAF (04-04). Davant de Traffic Manager, perquè aquest només respon consultes DNS i no toca el trànsit: no reduiria en res la latència d'establiment de connexió, que és el gruix del problema.

  2. Cacheable i no cacheable:

Contingut Memòria cau? Motiu
/estatico/* (CSS, JS, imatges, logotips) Sí, amb TTL llarg Idèntic per a tothom i canvia poc
/vuelos?origen=…&destino=… No Depèn de la disponibilitat en temps real: posar-ho a la memòria cau vendria places inexistents
/mi-reserva/* No Contingut personal; una errada de memòria cau mostraria les dades d'un passatger a un altre
Targeta d'embarcament en PDF No Se serveix amb SAS temporal (lliçó 02-04); posar-la a la memòria cau anul·laria la protecció

El risc d'equivocar-se és doble i greu: mostrar dades personals d'un passatger a un altre (incident de privacitat i RGPD) i vendre places que ja no existeixen.

  1. Sonda d'estat:
az afd origin-group create \
  --resource-group rg-contoso-reservas-pro --profile-name fd-contoso-global \
  --origin-group-name og-reservas \
  --probe-request-type GET \        # metode de la sonda: GET, no HEAD, per exercitar l'aplicacio
  --probe-protocol Https \          # es comprova pel mateix canal que fa servir el client
  --probe-path "/salud" \           # punt de salut creat a la llico 02-03
  --probe-interval-in-seconds 30 \  # frequencia: equilibri entre reaccio i carrega
  --sample-size 4 \                 # s'avaluen les 4 ultimes mostres
  --successful-samples-required 3 \ # amb 3 de bones de 4, l'origen es considera sa
  --additional-latency-in-milliseconds 50
  1. Afegint el segon origen al mateix grup amb prioritat 2:
az afd origin create -g rg-contoso-reservas-pro --profile-name fd-contoso-global \
  --origin-group-name og-reservas --origin-name origen-northeurope \
  --host-name app-contoso-reservas-nor.azurewebsites.net \
  --priority 2 --weight 1000 --enabled-state Enabled

Front Door envia tot el trànsit a la prioritat 1 mentre estigui sana i només commuta a la 2 quan les sondes fallen. Amb la mateixa prioritat a totes dues, es repartiria el trànsit (actiu-actiu), que és precisament el que Contoso va descartar per cost al mòdul 1.

Solució 3:

1 i 2. Fonts de sortida i mesures:

Font de sortida Mesura de reducció
Descàrrega de targetes d'embarcament en PDF pels passatgers Comprimir el PDF; servir per Front Door (tarifa per zona i menor); evitar reenviaments duplicats per correu
Sincronització nocturna amb la facturació de Barcelona per VPN Enviar només deltes en lloc del bolcat complet; comprimir la transferència
Replicació GZRS de sttarjetascontosopro a North Europe Revisar si tots els contenidors necessiten redundància geogràfica; les dades regenerables poden anar en un compte ZRS a part
Trànsit entre concentrador i radis per aparellament Col·locar al mateix radi els components que més parlen entre ells
Respostes de la web i de l'API a clients d'internet Activar compressió i memòria cau a Front Door; reduir la mida de les respostes JSON
  1. Trànsit gratuït, que convé explicar per no perseguir fantasmes: tota l'entrada de dades cap a Azure (pujades de targetes, peticions entrants, la càrrega inicial de la migració), i el trànsit dins de la mateixa regió i la mateixa xarxa virtual, com el que va de snet-web a snet-app o de l'aplicació a la seva base de dades. És a dir: processar dades on són no costa transferència; moure-les fora, sí.

Conclusió

Amb aquesta lliçó tanques el mòdul 2 i la plataforma de Contoso Airlines ja és dempeus. Has resolt l'escenari híbrid: VPN de punt a lloc amb autenticació de Microsoft Entra ID perquè la Marta Ríos administri des de qualsevol lloc sense exposar ni un sol port, i VPN de lloc a lloc per a Barcelona i Palma, amb els seus quatre components —GatewaySubnet, IP pública, porta d'enllaç de xarxa virtual i porta d'enllaç de xarxa local—, l'elecció de SKU VpnGw1AZ amb redundància de zona i l'aprofitament d'una única porta d'enllaç per a tots els radis del hub-and-spoke. Saps què aporta ExpressRoute davant de la VPN —amplada de banda, latència predictible, SLA i no travessar internet—, els seus models d'aparellament, i per què Contoso decideix no contractar-lo encara. Coneixes Azure Virtual WAN i el problema que resol quan les seus es multipliquen. I en l'altra direcció has muntat el lliurament global: entens d'on surten els més de mil mil·lisegons que pateix una passatgera a Buenos Aires, has comparat Front Door, CDN i Traffic Manager amb criteris d'elecció clars, has publicat Contoso Reserves darrere de Front Door amb sonda d'estat, redirecció a HTTPS i memòria cau només del que és estàtic, has allotjat el domini a Azure DNS amb el seu registre d'alias al vèrtex, i saps anticipar el cost de la sortida de dades que apareixerà a la factura del mòdul 8.

Recapitulant el mòdul sencer: vas començar desplegant màquines virtuals per al motor de disponibilitat heretat, amb els seus discos, les seves mides i la diferència entre aturada i desassignada. Després vas donar escalat i alta disponibilitat al còmput amb conjunts d'escalat, regles automàtiques i programades, zones de disponibilitat i un Load Balancer amb sondes d'estat. Vas publicar Contoso Reserves i l'API de Disponibilitat a App Service, amb plans, ranures de desplegament i intercanvi amb escalfament per publicar sense tallar la venda. Vas desar les targetes d'embarcament a Azure Storage, resolent la redundància pendent —LRS en desenvolupament, GZRS en producció— i automatitzant-ne el cicle de vida cap a Cool i Archive. Vas construir la xarxa virtual amb les seves subxarxes, NSG, zones DNS privades i punts de connexió privats que van treure la base de dades i l'emmagatzematge d'internet. I avui has unit aquesta xarxa amb les oficines i amb el món.

Tens còmput, emmagatzematge i xarxa. Falta el que dona sentit a tot: les dades. La base de dades db-reservas va apareixent a cada lliçó com una peça que existeix però que encara no has dissenyat ni desplegat, i les decisions que queden per prendre no són menors: una base relacional o un magatzem de documents? Azure SQL Database, MySQL, PostgreSQL o Cosmos DB? Quant costa cada opció, com s'escala i com es recupera si algú esborra una taula un divendres a la tarda?

Al mòdul 3, Bases de dades d'Azure, comencem justament per aquí: pel criteri per triar el servei de dades adequat —relacional davant de NoSQL, gestionat davant d'instal·lat en una VM, cost davant de rendiment— i després desplegarem de debò la base de dades de reserves de Contoso Airlines a Azure SQL Database, amb el seu nivell de servei, la seva còpia de seguretat, la seva restauració a un moment donat i la seva connexió privada a la xarxa que acabes de construir. Ens hi veiem.

Curs d'Azure

Mòdul 1: Introducció a Azure

Mòdul 2: Serveis principals d'Azure

Mòdul 3: Bases de dades d'Azure

Mòdul 4: Seguretat a Azure

Mòdul 5: Azure DevOps

Mòdul 6: Serveis avançats d'Azure

Mòdul 7: Monitoratge i gestió

Mòdul 8: Gestió i optimització de costos

Mòdul 9: Estudis de cas i millors pràctiques

© Copyright 2026. Tots els drets reservats