Infrastructura globală: regiuni, AZ și edge

Subiect din roadmap-ul AWS Cloud Engineer · parte din „Introducere în cloud și AWS”

În arhitectura cloud modernă, distribuirea resurselor nu este doar o chestiune de organizare, ci o strategie critică pentru reziliență și performanță. Regiunile, Zonele de disponibilitate (AZ) și Edge Locations formează coloana vertebrală a infrastructurii globale AWS, permițând dezvoltatorilor să construiască aplicații care supraviețuiesc întreruperilor locale și oferă latențe minime utilizatorilor finali. Înțelegerea acestor concepte este esențială pentru orice inginer care dorește să proiecteze sisteme scalabile și fault-tolerant, transformând teoria abstractă a cloud-ului în decizii concrete de arhitectură.

Concepte cheie

  • Regiuni AWS: Sunt locații geografice fizice izolate care conțin mai multe zone de disponibilitate; alegerea regiunii depinde de cerințele de conformitate datelor și de proximitatea față de baza ta de utilizatori.
  • Zone de Disponibilitate (AZ): Sunt una sau mai multe centre de date discrete din interiorul unei regiuni, conectate prin legături cu latență foarte mică și redundanță ridicată, esențiale pentru toleranța la defecte.
  • Edge Locations: Sunt puncte de prezență distribuite global, folosite de servicii precum CloudFront, care cache-uiesc conținut static și dinamic pentru a reduce latența la nivel local, departe de regiunea principală.
  • Latency vs. Cost: Există un compromis constant între plasarea resurselor aproape de utilizator (reducând latency-ul) și costurile de transfer de date sau replicare între regiuni.
  • Data Residency: Multe industrii au reguli stricte privind unde pot fi stocate datele personale; aceasta dictează adesea alegerea regiunii, indiferent de factorii tehnici.
  • Servicii Global vs. Regional: Unele servicii (ex: IAM, Route 53) sunt globale, altele (ex: EC2, RDS) sunt regionale; arhitectura trebuie să țină cont de această distincție pentru coerență.
  • Failover Automat: Capacitatea sistemului de a muta traficul către o altă AZ sau regiune în cazul unei defecțiuni majore, garantând continuitatea afacerii.

Exemplu practic

Să presupunem că construiești o aplicație web care trebuie să fie disponibilă chiar dacă un data center se defectează.

# Exemplu simplificat Terraform pentru distribuție multi-AZ
resource "aws_lb" "app_lb" {
  internal           = false
  load_balancer_type = "application"
  security_groups    = [aws_security_group.lb_sg.id]
  subnets            = [aws_subnet.public_a.id, aws_subnet.public_b.id] # Distribuit în 2 AZ
}

resource "aws_autoscaling_group" "app_asg" {
  desired_capacity = 2
  max_size         = 4
  min_size         = 1
  vpc_zone_identifier = [aws_subnet.private_a.id, aws_subnet.private_b.id] # Instanțele în 2 AZ
  target_group_arns = [aws_lb_target_group.app_tg.arn]
}

Aici, Load Balancer-ul distribuie traficul echilibrat între două subrețele din AZ diferite. Dacă AZ-ul A cade, ASG-ul poate lansa instanțe noi în AZ-ul B, iar LB-ul va opri trimiterea traficului către instanțele inexistente, menținând aplicația online.

Greșeli frecvente

  1. Ignorarea dependențelor de regiune: Crearea unor resurse critice (ex: VPC) într-o singură regiune fără plan de backup, riscând pierderea totală a serviciului în caz de dezastru regional.
  2. Costuri neașteptate de transfer de date: Replicarea bazelor de date sau a backup-urilor între regiuni generează costuri semnificative pe care le uităm să estimăm inițial.
  3. Subestimarea latenței Edge: Folosirea unor resurse centrale pentru conținut static accesibil global, ceea ce duce la experiențe lente pentru utilizatorii îndepărtați geografic.
  4. Configurări incorecte de DNS: Utilizarea Route 53 fără configurarea corectă a health checks-urilor, ceea ce împiedică failover-ul automat spre o regiune secundară.

Întrebări de interviu

De ce ai alege o arhitectură Multi-AZ față de una Single-AZ? O arhitectură Multi-AZ asigură toleranță la defecte la nivel de data center. Dacă o AZ devine indisponibilă, traficul este redirecționat automat către cealaltă AZ, minimizând timpul de inactivitate (downtime), spre deosebire de Single-AZ care suferă o întrerupere completă.

Care este diferența principală dintre o Regiune și un Edge Location? Regiunile găzduiesc resurse active de calcul și stocare (EC2, RDS) și sunt folosite pentru logica de business. Edge Locations sunt puncte de cache distribuite global, folosite exclusiv pentru a servi conținut (static/dinamic) cu latență extrem de redusă, fără a executa logică complexă.

Exercițiu

Sarcina: Analiza de Cost și Latență Ai o aplicație cu utilizatori în România și SUA. Scrie pe hârtie sau într-un document o arhitectură propusă pentru:

  1. Găzduirea bazei de date (care regiune? de ce?).
  2. Servirea imaginilor și CSS/JS (cum folosești Edge?).
  3. Planul de disaster recovery (ce se întâmplă dacă regiunea Europei cade?).

Limită de timp: 45 minute. Scopul este să justifici fiecare alegere bazându-te pe latență, cost și reziliență, nu doar pe preferințe tehnice.

Resurse gratuite

Alte subiecte din „Introducere în cloud și AWS”