Sieć na krawędzi, czyli jak AWS przyspiesza internet

Do tej pory wszystko, o czym mówiliśmy, działo się „wewnątrz" regionu AWS: VPC, subnety, routing. Ale Twoi użytkownicy są rozproszeni po całym świecie. Ktoś w Tokio łączy się z serwerem we Frankfurcie i czeka... i czeka. Fizyka jest bezlitosna: światło w kablu podmorskim też potrzebuje czasu.

AWS ma na to rozwiązanie: Edge Locations. To ponad 400 punktów obecności (PoP) rozsianych po całym świecie, blisko użytkowników końcowych. Trzy kluczowe usługi korzystają z tej infrastruktury: CloudFront, Route 53 i Global Accelerator.

Amazon CloudFront - CDN od AWS

CloudFront to Content Delivery Network (CDN), czyli sieć dystrybucji treści. Cachuje kopie Twoich plików (strony, obrazki, filmy, API responses) w Edge Locations na całym świecie. Gdy użytkownik w Tokio wchodzi na Twoją stronę, dostaje treść z najbliższego Edge Location, a nie z Frankfurtu.

Jak działa CloudFront?

  1. Konfigurujesz Distribution i wskazujesz Origin (skąd CloudFront pobiera oryginalne treści)
  2. Origin może być: S3 bucket, ALB, EC2, HTTP server, MediaStore
  3. Użytkownik wysyła request do CloudFront (przez domenę *.cloudfront.net lub Twoją własną)
  4. Edge Location sprawdza, czy ma treść w cache
  5. Jeśli tak (cache hit) - serwuje natychmiast. Jeśli nie (cache miss) - pobiera z origina, cachuje i serwuje
💡 CloudFront + S3 = klasyk
Najczęstszy wzorzec: S3 bucket jako origin + CloudFront distribution. Twoja statyczna strona (HTML, CSS, JS, obrazki) jest cachowana globalnie. Użytkownicy ładują ją błyskawicznie niezależnie od lokalizacji. Bonus: możesz skonfigurować Origin Access Control (OAC), żeby S3 bucket był prywatny, a jedynym sposobem dostępu był CloudFront.

Cache Behaviors: możesz definiować różne zachowania cache dla różnych ścieżek URL. Np. /api/* może mieć krótki TTL (bo dane się zmieniają), a /static/* długi TTL.

Cache Invalidation: musisz wymusić odświeżenie cache? Tworzysz invalidation request (np. /images/* ) i CloudFront czyści cache we wszystkich Edge Locations. Uwaga: pierwsze 1000 invalidation paths miesięcznie jest bezpłatne.

CloudFront Functions i Lambda@Edge: możesz uruchomić kod na Edge Locations! CloudFront Functions (lekkie, JavaScript) do manipulacji headerami, redirectów, uwierzytelniania. Lambda@Edge (bardziej zaawansowane) do generowania dynamicznych odpowiedzi, A/B testów, personalizacji.

Geo Restriction: możesz ograniczyć dostęp do treści na podstawie lokalizacji geograficznej użytkownika (allowlist/blocklist krajów).

Amazon Route 53 - DNS w AWS

Route 53 to zarządzana usługa DNS (Domain Name System) od AWS. DNS to „książka telefoniczna internetu" - zamienia nazwy domen (np. cloudmaniak.pl) na adresy IP (np. 52.84.123.45), żeby przeglądarka wiedziała, z którym serwerem się połączyć.

Nazwa „Route 53" pochodzi od portu 53, na którym działa protokół DNS.

Kluczowe funkcje Route 53:

  • Domain Registration - możesz kupić domenę bezpośrednio w AWS
  • DNS Hosting - zarządzasz rekordami DNS (A, AAAA, CNAME, MX, TXT...)
  • Health Checks - monitoruje zdrowotność Twoich endpointów
  • Routing Policies - inteligentne kierowanie ruchu

Routing Policies w Route 53:

To, co wyróżnia Route 53 spośród zwykłych usług DNS, to zaawansowane polityki routingu:

⚖️ Routing Policies w Route 53
PolicyOpisPrzypadek użycia
SimpleJeden rekord, jeden lub wiele IP (losowy wybór)Pojedynczy zasób
WeightedRozdziela ruch procentowo między zasobyA/B testy, blue/green deployment
Latency-basedKieruje do regionu z najniższym opóźnieniemGlobalna aplikacja, multi-region
FailoverPrimary → Secondary przy health check failureDisaster recovery
GeolocationNa podstawie lokalizacji użytkownikaLokalizacja treści, compliance
GeoproximityNa podstawie odległości + biasZaawansowane geo-routing
Multi-ValueWiele IP z health checks (prosty LB)Prosty load balancing na DNS
⚠️ EXAM ALERT
Na egzaminie Cloud Practitioner często pytają o Routing Policies. Zapamiętaj: Latency-based = najszybszy czas odpowiedzi, Weighted = dzielenie ruchu procentowo, Failover = automatyczne przełączanie na zapasowy zasób, Geolocation = routing na podstawie lokalizacji użytkownika.
🏢 Scenariusz: Globalna aplikacja e-commerce

Firma „ShopGlobal" ma serwery w eu-central-1 (Frankfurt) i us-east-1 (Virginia). Chce, żeby europejscy klienci trafiali do Frankfurtu, a amerykańscy do Virginii, z automatycznym failover.

Konfiguracja Route 53:

  • Użyj Latency-based routing z Health Checks
  • Rekord A: shop.example.com → ALB Frankfurt (region eu-central-1)
  • Rekord A: shop.example.com → ALB Virginia (region us-east-1)
  • Route 53 automatycznie kieruje użytkownika do regionu z najniższym opóźnieniem
  • Jeśli Health Check wykryje awarię we Frankfurcie, cały ruch automatycznie przechodzi do Virginii

Route 53 ma specjalny typ rekordu: Alias. Jest to rozszerzenie AWS, którego nie znajdziesz w standardowym DNS. Alias record jest jak CNAME, ale z istotnymi różnicami:

  • Może wskazywać na zasoby AWS: CloudFront, ALB, S3 (static website), API Gateway
  • Działa na Zone Apex (np. example.com), czego CNAME nie potrafi
  • Jest bezpłatny (nie nalicza się za zapytania DNS do Alias records wskazujących na zasoby AWS)
  • Automatycznie rozwiązuje się na aktualny IP zasobu AWS

Zawsze preferuj Alias record nad CNAME, gdy wskazujesz na zasoby AWS!

AWS Global Accelerator

Global Accelerator to usługa, która poprawia wydajność i dostępność Twoich aplikacji globalnych. Na pierwszy rzut oka wygląda podobnie do CloudFront, ale działa zupełnie inaczej.

Global Accelerator daje Ci 2 statyczne anycast IP. Ruch od użytkowników wchodzi do sieci AWS przez najbliższe Edge Location i dalej podróżuje wewnętrzną siecią AWS (AWS Global Network) do Twojej aplikacji. Ta wewnętrzna sieć jest szybsza i bardziej stabilna niż publiczny internet.

Kluczowe cechy Global Accelerator:

  • 2 statyczne anycast IP jako „frontdoor" do aplikacji
  • Ruch wchodzi do AWS przez Edge Location i podróżuje wewnętrzną siecią
  • Automatyczny failover między regionami (w ciągu sekund)
  • Health checks na endpointach
  • Działa z ALB, NLB, EC2, Elastic IP
  • Najlepszy dla ruchu TCP/UDP (nie HTTP)
⚖️ CloudFront vs Global Accelerator
CechaCloudFrontGlobal Accelerator
TypCDN (cachowanie treści)Network accelerator (routing)
CachowanieTak, w Edge LocationsNie cachuje, tylko przyspiesza trasę
ProtokołyHTTP/HTTPSTCP/UDP (w tym HTTP)
Statyczne IPNie (dynamiczne IP)Tak, 2 anycast IP
Najlepszy dlaStatyczne treści, strony, APIGaming, VoIP, IoT, real-time
OriginS3, ALB, EC2, HTTPALB, NLB, EC2, Elastic IP
💡 Kiedy co wybrać?
Prosta zasada: jeśli Twoja treść może być cachowana (strony, obrazki, API z niską zmiennością), użyj CloudFront. Jeśli potrzebujesz stałych IP, szybkiego failover lub przyspieszenia ruchu TCP/UDP w czasie rzeczywistym (gaming, VoIP), użyj Global Accelerator. Możesz też użyć obu razem!
🏢 Scenariusz: Platforma gamingowa

Startup „PlayCloud" buduje platformę gamingową z serwerami w 3 regionach. Gracze wymagają niskiego opóźnienia i stabilnego połączenia. Architektura:

  • Global Accelerator z 2 statycznymi IP - gracze łączą się z jednym adresem, ruch automatycznie trafia do najbliższego regionu
  • CloudFront do serwowania statycznych assetów gry (tekstury, patche, UI)
  • Route 53 z latency-based routing jako dodatkowa warstwa DNS

Global Accelerator przejmuje ruch TCP (gameplay), CloudFront serwuje cachowalne zasoby, a Route 53 zarządza domeną. Trzy usługi, trzy różne role.

✅ Edge Networking Checklist
CloudFront = CDN, cachuje treści w Edge Locations, HTTP/HTTPS
Route 53 = DNS, rejestracja domen, routing policies, health checks
Global Accelerator = 2 statyczne IP, routing TCP/UDP przez sieć AWS
Alias record w Route 53 jest bezpłatny i działa na Zone Apex
CloudFront Origin Access Control chroni S3 bucket
Global Accelerator najlepszy dla real-time (gaming, VoIP, IoT)
🧠 Podsumowanie
  • CloudFront to CDN AWS, cachuje treści w 400+ Edge Locations na świecie
  • CloudFront + S3 z Origin Access Control to klasyczny wzorzec hosting statyczny
  • Route 53 to zarządzane DNS z rejestracją domen i inteligentnymi routing policies
  • Routing Policies: Simple, Weighted, Latency-based, Failover, Geolocation, Multi-Value
  • Alias record to specjalny typ Route 53, bezpłatny, działa na Zone Apex
  • Global Accelerator daje 2 statyczne anycast IP i przyspiesza ruch przez sieć AWS
  • CloudFront cachuje (HTTP), Global Accelerator przyspiesza trasę (TCP/UDP)
🧪 Sprawdź się

Firma chce serwować statyczną stronę z S3 globalnie, ale bucket musi być prywatny. Co użyjesz?

A S3 z publiczną polityką bucket + Route 53
B CloudFront distribution z Origin Access Control + prywatny S3 bucket
C Global Accelerator + S3 bucket
CloudFront z Origin Access Control (OAC) pozwala na serwowanie treści z prywatnego S3 bucket. Użytkownicy wchodzą przez CloudFront (które cachuje globalnie), a sam bucket nie jest publicznie dostępny. Global Accelerator nie obsługuje S3 jako origin.

Która routing policy Route 53 kieruje użytkowników do regionu AWS z najniższym opóźnieniem?

A Geolocation
B Weighted
C Latency-based
Latency-based routing kieruje użytkownika do regionu AWS z najniższym opóźnieniem sieciowym. Geolocation kieruje na podstawie lokalizacji geograficznej (kraj/kontynent), Weighted dzieli ruch procentowo. Latency-based jest idealna dla globalnych aplikacji wymagających najszybszego czasu odpowiedzi.

Czym Global Accelerator różni się od CloudFront?

A Global Accelerator nie cachuje treści, tylko przyspiesza trasę sieciową i daje statyczne IP
B Global Accelerator cachuje treści szybciej niż CloudFront
C Global Accelerator działa tylko z S3
CloudFront to CDN, które cachuje treści w Edge Locations. Global Accelerator nie cachuje niczego, ale kieruje ruch TCP/UDP przez wewnętrzną sieć AWS (szybszą od publicznego internetu) i daje 2 statyczne anycast IP. Są to komplementarne usługi, nie zamienniki.