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
- L'escenari híbrid de Contoso Airlines
- VPN de punt a lloc: administrar des de casa
- VPN de lloc a lloc: connectar Barcelona i Palma
- Desplegament de la porta d'enllaç amb Azure CLI
- ExpressRoute: quan justifica el seu preu
- Azure Virtual WAN, a nivell conceptual
- Lliurament global: el client que compra des de Sud-amèrica
- Azure Front Door, Azure CDN i Traffic Manager comparats
- DNS públic amb Azure DNS
- El cost de la sortida de dades
- Arquitectura final del mòdul i neteja
- Errors Comuns i Consells
- Exercicis
- Conclusió
- 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 |
- 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 tsvL'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.
- 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.
- 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 noneNotes 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.PolicyBasednomé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.xsó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 tableL'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.
- 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.
- 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.
- 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:
- 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.
- 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.
- 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.
- Commutació per error: si l'origen d'una regió no respon, el servei global envia el trànsit a un altre.
- 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.
- 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 noneEl 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.
- 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:
- 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.
- Sincronització nocturna amb la facturació de Barcelona a través de la VPN: surt d'Azure, es factura.
- Replicació GZRS del compte de targetes cap a North Europe: la replicació geogràfica té el seu propi cost de transferència.
- 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.
- 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 tableEsborrar 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/24a Contoso). - Fer servir
PolicyBasedquan calRouteBased. 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-waiti 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:
- La Marta Ríos administra les VM des d'un hotel durant un congrés.
- Els 30 llocs de treball de l'oficina de Palma accedeixen cada dia al tauler d'operacions i al recurs compartit d'Azure Files.
- 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.
- 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.
- Quin servei de lliurament global triaries i per què davant dels altres dos?
- Quins continguts posaries a la memòria cau i quins no? Justifica el risc d'equivocar-te.
- Escriu la configuració de la sonda d'estat del grup d'orígens i explica cada paràmetre.
- 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.
- Enumera almenys quatre fonts de sortida de dades a l'arquitectura actual de Contoso.
- Per a cadascuna, proposa una mesura concreta de reducció.
- 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:
-
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.
-
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.
- 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- 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 EnabledFront 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 |
- 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-webasnet-appo 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
- Què és Azure?
- Models de servei, regions i zones de disponibilitat
- Crear i configurar el teu compte d'Azure
- Recorregut pel portal d'Azure
- Azure Resource Manager: subscripcions, grups de recursos i etiquetes
- Azure CLI, PowerShell i Cloud Shell
Mòdul 2: Serveis principals d'Azure
- Màquines virtuals d'Azure
- Escalat i alta disponibilitat del còmput
- Azure App Service
- Azure Storage: blobs, fitxers, cues i taules
- Xarxes a Azure: xarxes virtuals, subxarxes i NSG
- Connectivitat híbrida i lliurament global
Mòdul 3: Bases de dades d'Azure
- Triar el servei de dades adequat
- Azure SQL Database
- Azure Cosmos DB
- Azure Database for MySQL
- Azure Database for PostgreSQL
- Analítica de dades: Data Lake, Data Factory i Synapse
Mòdul 4: Seguretat a Azure
- Microsoft Entra ID i gestió d'identitats
- RBAC i identitats administrades
- Azure Key Vault
- Protecció DDoS i tallafoc d'aplicacions web
- Microsoft Defender for Cloud
- Governança i compliment amb Azure Policy
Mòdul 5: Azure DevOps
- Introducció a Azure DevOps
- Azure Repos
- Azure Pipelines: integració contínua
- Desplegament continu amb entorns i aprovacions
- Azure Artifacts
- Infraestructura com a codi amb Bicep
Mòdul 6: Serveis avançats d'Azure
- Contenidors a Azure: Container Registry i Container Apps
- Azure Kubernetes Service (AKS)
- Azure Functions
- Azure Logic Apps
- Missatgeria i esdeveniments: Service Bus, Event Grid i Event Hubs
- Serveis d'IA d'Azure
Mòdul 7: Monitoratge i gestió
- Azure Monitor: mètriques, alertes i taulers
- Log Analytics i consultes KQL
- Application Insights
- Azure Automation i runbooks
- Còpies de seguretat i recuperació davant desastres
Mòdul 8: Gestió i optimització de costos
- Calculadora de preus i estimació de costos
- Azure Cost Management: anàlisi, pressupostos i alertes
- Reserves, plans d'estalvi i Azure Hybrid Benefit
- Azure Advisor
- Estratègies d'optimització i cultura FinOps
