0Pricing
Cloud & IT Cert Prep · Lezione

Active-active e active-passive in più Region

Instradare simultaneamente il traffico verso più Region con il routing basato sulla latenza di Route 53 oppure eseguire il failover verso una riserva attiva con i controlli di integrità

Active-active e active-passive in più Region è una lezione Cloud & IT Cert Prep gratuita su CoddyKit. Questa è la lezione 3 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Cloud & IT Cert Prep, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Cloud & IT Cert Prep include 4 lezioni in totale.

Perché un'architettura multi-regione?

La modalità Multi-AZ protegge dai guasti di una singola AZ, ma un'intera regione AWS può diventare non disponibile a causa di disastri su larga scala, gravi interruzioni del servizio o requisiti normativi. Le architetture multi-regione affrontano questo rischio eseguendo i carichi di lavoro in due o più regioni geograficamente separate. Esistono due pattern principali: active-passive (una regione gestisce il traffico mentre l'altra resta in standby) e active-active (entrambe le regioni gestiscono il traffico contemporaneamente).

Active-passive: il pattern warm standby

In una configurazione multi-regione active-passive, la regione primaria gestisce tutto il traffico di produzione. La regione secondaria esegue una copia funzionante, ma ridotta, che rimane attiva e pronta all'uso. I dati vengono replicati continuamente dalla regione primaria a quella secondaria. Quando la primaria si guasta, si promuove la secondaria ad attiva utilizzando il failover routing di Route 53. Questo pattern offre costi inferiori rispetto all'active-active, ma presenta un RTO maggiore, dovuto al tempo necessario per promuovere e scalare lo standby.

# Route 53 failover routing configuration
# Primary record: us-east-1 ALB (primary)
# Secondary record: us-west-2 ALB (failover)

aws route53 change-resource-record-sets \
  --hosted-zone-id Z123 \
  --change-batch '{
    "Changes": [{
      "Action": "CREATE",
      "ResourceRecordSet": {
        "Name": "app.example.com",
        "Type": "A",
        "Failover": "PRIMARY",
        "HealthCheckId": "hc-primary"
      }
    }]
  }'

Active-active: traffico in entrambe le regioni

In una configurazione active-active, entrambe le regioni gestiscono contemporaneamente il traffico di produzione. Route 53, con latency-based routing o weighted routing, distribuisce gli utenti verso la regione più vicina o più appropriata. Quando una regione si guasta, gli health check di Route 53 rilevano il problema e instradano tutto il traffico verso la regione integra. L'active-active offre l'RTO migliore, quasi nullo, riduce la latenza per gli utenti distribuiti nel mondo e aumenta il throughput distribuendo il carico tra le regioni.

# Route 53 latency-based routing for active-active
aws route53 change-resource-record-sets \
  --hosted-zone-id Z123 \
  --change-batch '{
    "Changes": [
      {
        "Action": "CREATE",
        "ResourceRecordSet": {
          "Name": "app.example.com",
          "Type": "A",
          "Region": "us-east-1",
          "SetIdentifier": "us-east-1",
          "HealthCheckId": "hc-use1",
          "AliasTarget": {"DNSName": "alb-use1.amazonaws.com"}
        }
      }
    ]
  }'

Replica dei dati tra regioni

La parte più difficile di un'architettura multi-regione consiste nel mantenere coerenti i dati tra le regioni. Strumenti fondamentali: S3 Cross-Region Replication (CRR) replica in modo asincrono gli oggetti S3 in un bucket di un'altra regione. Le DynamoDB Global Tables offrono la replica multi-master e multi-regione con coerenza eventuale. Aurora Global Database replica i dati da una regione primaria a un massimo di cinque regioni secondarie, con un ritardo inferiore a 1 secondo. Ogni meccanismo di replica presenta garanzie di coerenza e caratteristiche di latenza diverse.

# Enable S3 Cross-Region Replication
aws s3api put-bucket-replication \
  --bucket source-bucket-us-east-1 \
  --replication-configuration '{
    "Role": "arn:aws:iam::123:role/replication-role",
    "Rules": [{
      "Status": "Enabled",
      "Destination": {
        "Bucket": "arn:aws:s3:::dest-bucket-us-west-2"
      }
    }]
  }'

DynamoDB Global Tables per l'active-active

Le DynamoDB Global Tables consentono una vera replica active-active, multi-regione e multi-master. L'applicazione può scrivere in DynamoDB da qualsiasi regione e le modifiche vengono replicate in genere entro 1 secondo in tutte le altre regioni. La risoluzione dei conflitti utilizza il criterio last-writer-wins basato sui timestamp. Questo rende le Global Tables ideali per applicazioni distribuite a livello globale, come classifiche di gioco, profili utente e archivi di sessione, in cui sono fondamentali letture e scritture locali a bassa latenza.

# Create DynamoDB Global Table
aws dynamodb create-global-table \
  --global-table-name UserProfiles \
  --replication-group \
    RegionName=us-east-1 \
    RegionName=eu-west-1 \
    RegionName=ap-southeast-1

# Applications in each region write to local DynamoDB
# Replication is automatic and bi-directional

Aurora Global Database

Aurora Global Database si estende su più regioni AWS: una singola regione primaria gestisce le scritture e fino a cinque regioni secondarie gestiscono le letture, con un ritardo di replica inferiore a 1 secondo. Per il DR, è possibile promuovere una regione secondaria a primaria in meno di 1 minuto, rendendo questa soluzione adatta a un'architettura active-passive con un RTO aggressivo. Le regioni secondarie possono inoltre gestire traffico di lettura a bassa latenza, creando un pattern ibrido active-active per le letture e active-passive per le scritture.

# Create Aurora Global Database
aws rds create-global-cluster \
  --global-cluster-identifier my-global-db \
  --engine aurora-postgresql \
  --engine-version 14.5

# Add secondary region
aws rds create-db-cluster \
  --db-cluster-identifier secondary-cluster \
  --global-cluster-identifier my-global-db \
  --engine aurora-postgresql \
  --region eu-west-1

Health check di Route 53 per il failover

Il failover multi-regione si basa sugli health check di Route 53 per rilevare i guasti regionali. Gli health check possono monitorare un endpoint (HTTP/HTTPS/TCP), un allarme CloudWatch oppure essere calculated a partire da altri health check. Route 53 interroga continuamente gli endpoint da più posizioni in tutto il mondo. Quando un controllo ha esito negativo, Route 53 smette automaticamente di restituire i record della regione interessata e reindirizza il traffico verso le regioni integre entro il periodo del TTL DNS.

# Create Route 53 health check
aws route53 create-health-check \
  --caller-reference unique-ref-001 \
  --health-check-config '{
    "Type": "HTTPS",
    "FullyQualifiedDomainName": "app.us-east-1.example.com",
    "Port": 443,
    "ResourcePath": "/health",
    "RequestInterval": 30,
    "FailureThreshold": 3
  }'

Global Accelerator per l'active-active

AWS Global Accelerator fornisce due indirizzi IP statici Anycast che instradano il traffico attraverso la rete globale AWS verso l'endpoint ottimale. A differenza del failover DNS di Route 53, che dipende dal TTL, Global Accelerator rileva i guasti degli endpoint entro 1-3 secondi e reindirizza immediatamente il traffico, molto più rapidamente della propagazione DNS. Utilizzi Global Accelerator quando sono necessari un failover inferiore al secondo, IP coerenti per la whitelist oppure quando l'instradamento basato sul TTL DNS è troppo lento rispetto all'RTO richiesto.

# Create Global Accelerator
aws globalaccelerator create-accelerator \
  --name my-accelerator \
  --ip-address-type IPV4

# Add endpoints in multiple regions
aws globalaccelerator create-endpoint-group \
  --listener-arn arn:aws:globalaccelerator::123:accelerator/xxx/listener/yyy \
  --endpoint-group-region us-east-1 \
  --endpoint-configurations EndpointId=alb-us-east-1-arn,Weight=100

Risoluzione dei conflitti nell'active-active

Le architetture multi-regione active-active devono affrontare una difficoltà fondamentale: i conflitti di scrittura. Se due regioni aggiornano contemporaneamente lo stesso record, quale aggiornamento deve prevalere? DynamoDB Global Tables utilizza il criterio last-writer-wins. Le strategie di risoluzione dei conflitti a livello applicativo includono: event sourcing (log append-only con merge CRDT), versioning (rifiuto delle scritture con numeri di versione obsoleti) oppure scritture partizionate (ogni regione è proprietaria di uno shard di dati e scrive solo nel proprio shard). Progetti il modello dei dati in modo da ridurre al minimo i conflitti di scrittura tra regioni.

# DynamoDB conditional write to prevent conflicts
aws dynamodb update-item \
  --table-name Orders \
  --key '{"orderId":{"S":"ord-123"}}' \
  --update-expression 'SET #s = :newStatus' \
  --condition-expression '#v = :expectedVersion' \
  --expression-attribute-names '{"#s":"status","#v":"version"}' \
  --expression-attribute-values '{":newStatus":{"S":"shipped"},":expectedVersion":{"N":"1"}}'

Costi e complessità operativa

Le architetture multi-regione aumentano significativamente costi e complessità. Si pagano le risorse in più regioni, i costi di replica dei dati (trasferimento dati tra regioni), i costi degli health check e spesso è necessario duplicare gli strumenti operativi in ogni regione. L'active-passive è più conveniente perché lo standby viene eseguito a capacità ridotta. L'active-active è il più costoso, ma offre la migliore esperienza utente e il miglior RTO. Valuti sempre il costo rispetto al valore aziendale della maggiore resilienza regionale.

# Key costs in multi-region architecture:
# - EC2/RDS in each region: full compute costs
# - Cross-region data transfer: ~$0.02/GB
# - Route 53 health checks: ~$0.50/check/month
# - Global Accelerator: $0.025/hour + data transfer
# - DynamoDB Global Table replication: per-write charges per region
# - Aurora Global Database: storage replicated to all regions

Scelta del pattern multi-regione appropriato

Scelga il pattern multi-regione in base ai requisiti aziendali: se l'RTO è > 1 ora e la priorità è il costo, utilizzi Backup and Restore verso un'altra regione. Se l'RTO è di alcuni minuti, utilizzi active-passive con warm standby. Se l'RTO è < 1 minuto e gli utenti sono distribuiti a livello globale, utilizzi active-active. Consideri i requisiti normativi: alcuni settori impongono che i dati rimangano in regioni specifiche, limitando le opzioni di replica. Documenti esplicitamente i compromessi alla base della decisione architetturale.

# Decision matrix:
# RTO > 1 hour, RPO > 1 hour:  Backup & Restore
# RTO ~minutes, RPO ~minutes:   Active-Passive (Warm Standby)
# RTO < 1 minute, RPO ~0:       Active-Active

# Key services for each:
# Backup & Restore: AWS Backup + S3 CRR
# Active-Passive:   Aurora Global DB + Route 53 failover
# Active-Active:    DynamoDB Global Tables + Global Accelerator

Verifica rapida

Verifichi la propria comprensione dei concetti di AWS Solutions Architect (SAA-C03) trattati in questa lezione.

Riepilogo della lezione

In questa lezione ha appreso che: l'active-passive esegue una regione standby che si attiva in caso di guasto, l'active-active gestisce contemporaneamente il traffico da più regioni e DynamoDB Global Tables e Aurora Global Database sono servizi fondamentali per la replica dei dati multi-regione. Gli health check di Route 53 e Global Accelerator gestiscono le decisioni di instradamento del traffico. Ora esamineremo gli health check, i circuit breaker e la logica di retry.

Domande Frequenti

La lezione «Active-active e active-passive in più Region» è gratuita?

Sì — il testo completo di «Active-active e active-passive in più Region» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Cloud & IT Cert Prep, passa a CoddyKit PRO. Il corso Cloud & IT Cert Prep include 4 lezioni in totale.

Cosa imparerò in «Active-active e active-passive in più Region»?

Instradare simultaneamente il traffico verso più Region con il routing basato sulla latenza di Route 53 oppure eseguire il failover verso una riserva attiva con i controlli di integrità Eserciti Cloud & IT Cert Prep con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Cloud & IT Cert Prep?

Non è richiesta alcuna esperienza precedente. Cloud & IT Cert Prep su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 3 di 4.

Quanto tempo richiede la lezione «Active-active e active-passive in più Region»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Cloud & IT Cert Prep?

Sì. Ogni lezione Cloud & IT Cert Prep include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Alta disponibilità e tolleranza ai guasti: definizioni e compromessi
  2. Pattern Multi-AZ per servizi stateful
  3. Active-active e active-passive in più Region
  4. Controlli di integrità, circuit breaker e logica di retry
← Torna a Cloud & IT Cert Prep