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?
- Konfigurujesz Distribution i wskazujesz Origin (skąd CloudFront pobiera oryginalne treści)
- Origin może być: S3 bucket, ALB, EC2, HTTP server, MediaStore
- Użytkownik wysyła request do CloudFront (przez domenę *.cloudfront.net lub Twoją własną)
- Edge Location sprawdza, czy ma treść w cache
- Jeśli tak (cache hit) - serwuje natychmiast. Jeśli nie (cache miss) - pobiera z origina, cachuje i serwuje
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:
| Policy | Opis | Przypadek użycia |
|---|---|---|
| Simple | Jeden rekord, jeden lub wiele IP (losowy wybór) | Pojedynczy zasób |
| Weighted | Rozdziela ruch procentowo między zasoby | A/B testy, blue/green deployment |
| Latency-based | Kieruje do regionu z najniższym opóźnieniem | Globalna aplikacja, multi-region |
| Failover | Primary → Secondary przy health check failure | Disaster recovery |
| Geolocation | Na podstawie lokalizacji użytkownika | Lokalizacja treści, compliance |
| Geoproximity | Na podstawie odległości + bias | Zaawansowane geo-routing |
| Multi-Value | Wiele IP z health checks (prosty LB) | Prosty load balancing na DNS |
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)
| Cecha | CloudFront | Global Accelerator |
|---|---|---|
| Typ | CDN (cachowanie treści) | Network accelerator (routing) |
| Cachowanie | Tak, w Edge Locations | Nie cachuje, tylko przyspiesza trasę |
| Protokoły | HTTP/HTTPS | TCP/UDP (w tym HTTP) |
| Statyczne IP | Nie (dynamiczne IP) | Tak, 2 anycast IP |
| Najlepszy dla | Statyczne treści, strony, API | Gaming, VoIP, IoT, real-time |
| Origin | S3, ALB, EC2, HTTP | ALB, NLB, EC2, Elastic IP |
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.
- 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)
Firma chce serwować statyczną stronę z S3 globalnie, ale bucket musi być prywatny. Co użyjesz?
Która routing policy Route 53 kieruje użytkowników do regionu AWS z najniższym opóźnieniem?
Czym Global Accelerator różni się od CloudFront?