Amazon CloudFront
CDN Cloud Practitioner Solutions Architect Associate

Amazon CloudFront

Amazon CloudFront

Globalna sieć dostarczania treści (CDN). Przyspiesz swoją stronę i API, serwując dane z ponad 600 lokalizacji brzegowych na całym świecie.

Amazon CloudFront to globalna sieć dostarczania treści (CDN - Content Delivery Network), która przyspiesza dystrybucję stron internetowych, filmów, API i innych zasobów do użytkowników na całym świecie. CloudFront posiada ponad 600 punktów obecności (edge locations) rozmieszczonych w ponad 100 miastach na 6 kontynentach. Gdy użytkownik żąda treści, CloudFront automatycznie kieruje żądanie do najbliższej lokalizacji brzegowej, minimalizując opóźnienia i zapewniając szybkie ładowanie.

CloudFront doskonale integruje się z innymi serwisami AWS - możesz użyć S3 jako źródła plików statycznych, EC2 lub Application Load Balancer jako backendu dla treści dynamicznych, a Lambda@Edge do przetwarzania żądań na brzegu sieci. Oprócz przyspieszenia, CloudFront oferuje ochronę przed atakami DDoS (integracja z AWS Shield) i pełną obsługę HTTPS z darmowymi certyfikatami SSL/TLS z AWS Certificate Manager.

Czy wiesz, ze...

CloudFront posiada ponad 600 edge locations na całym świecie - to wielokrotnie więcej niż liczba regionów AWS. W Polsce dane serwowane są z edge locations w Warszawie, dzięki czemu polscy użytkownicy otrzymują treści z opóźnieniem poniżej 10 ms.

Pro Tip

Zawsze ustawiaj Cache-Control headers na plikach w S3 - np. max-age=31536000 dla plików z hashem w nazwie (app.a1b2c3.js) i max-age=300 dla index.html. Dzięki temu statyczne zasoby są cachowane latami, a HTML odświeża się co 5 minut. Użyj invalidation tylko w sytuacjach awaryjnych.

Uwaga

Invalidacja cache w CloudFront kosztuje $0 za pierwsze 1000 sciezek/miesiac, potem $0.005 za sciezke. Bledna konfiguracja TTL moze serwowac stale dane przez godziny lub dni. Wildcard invalidation (/*) jest wygodna, ale invaliduje CALY cache i moze przejsciowo zwiekszyc obciazenie origin. Pamietaj o Cache-Control headerach na origin, bo CloudFront je respektuje.

CloudFront to globalna siec CDN z ponad 600 lokalizacjami brzegowymi (edge locations). Cachuje tresc blisko uzytkownikow, redukujac latency i odciazajac serwer zrodlowy. Oto jak skonfigurowac i zoptymalizowac dystrybucje CloudFront.

1

Tworzenie dystrybucji i konfiguracja origin

Origin to zrodlo tresci - S3 bucket, ALB, API Gateway, EC2 lub dowolny serwer HTTP. Dla S3 uzyj Origin Access Control (OAC) - CloudFront uwierzytelnia sie do bucketa bez upubliczniania go. Dla ALB ustaw custom header, ktory ALB weryfikuje - zapobiega to omijaniu CloudFront. Mozesz miec wiele originow w jednej dystrybucji i kierowac ruch na podstawie sciezki URL.

2

Zachowania (Behaviors) - reguly routingu

Behaviors okreslaja jak CloudFront obsluguje rozne sciezki. Domyslne behavior (*) obsluguje caly ruch. Dodatkowe behaviors (np. /api/*, /images/*) moga kierowac do roznych originow, miec inne ustawienia cache, wymagac HTTPS lub uzywac innej polityki cachowania. Kolejnosc behaviors ma znaczenie - CloudFront dopasowuje od najdluzszego wzorca.

3

Polityki cachowania (Cache Policies)

Cache Policy definiuje klucz cache - na podstawie czego CloudFront rozroznia unikalne obiekty. Domyslnie klucz to URL path. Mozesz dodac do klucza: query strings (np. ?size=large), headers (np. Accept-Language), cookies. Im mniej elementow w kluczu cache, tym wyzszy cache hit ratio. AWS dostarcza managed policies: CachingOptimized (dla statycznych assetow), CachingDisabled (pass-through do origin).

4

Cachowanie i TTL

CloudFront cachuje obiekty na edge locations wedlug headerow Cache-Control/Expires z origina. Mozesz nadpisac TTL w Cache Policy: minimum, maximum i default TTL. Typowa konfiguracja: obrazy i CSS/JS z hash w nazwie - TTL 365 dni, HTML - TTL 60 sekund lub no-cache, API - brak cachowania. Metryka CloudWatch CacheHitRate pokazuje skutecznosc cachowania - cel to powyzej 90%.

5

Invalidacja cache

Invalidation wymusza odswiezenie obiektow na wszystkich edge locations. Mozesz invalidowac konkretne sciezki (/index.html) lub wzorce (/images/*). Pierwsze 1000 invalidacji miesiecznie jest darmowe. Lepsza strategia niz invalidacja: cache busting przez hash w nazwie pliku (np. style.a3f2b1.css) - nowa nazwa = nowy obiekt w cache, zero invalidacji.

6

SSL/TLS i custom domeny

CloudFront obsluguje HTTPS zarowno na edge (viewer protocol) jak i do origina (origin protocol). Mozesz uzyc darmowego certyfikatu ACM (musi byc w regionie us-east-1). Dodaj alternatywne nazwy domen (CNAMEs) i skonfiguruj DNS (Route 53 Alias lub CNAME). Wybierz TLS policy - TLSv1.2_2021 to minimum dla bezpieczenstwa. SNI (Server Name Indication) jest darmowy i obsluguje wszystkie nowoczesne przegladarki.

CloudFront moze dramatycznie przyspieszyc aplikacje i zredukowac koszty transferu - ale wymaga swiadomej konfiguracji cachowania. Oto wskazowki z doswiadczenia produkcyjnego.

Optymalizuj Cache Hit Ratio - klucz do wydajnosci

Niski CacheHitRate oznacza, ze CloudFront czesto odpytuje origin - tracisz korzysci CDN. Sposoby na poprawe: minimalizuj elementy w cache key (nie przekazuj niepotrzebnych query strings i cookies), ustaw dlugi TTL z cache bustingiem w nazwach plikow, wlacz Origin Shield (dodatkowa warstwa cache miedzy edge a origin). Monitoruj CacheHitRate w CloudWatch - cel to 90%+.

Poczatkujacy

Lambda@Edge i CloudFront Functions

CloudFront Functions (lekkie, JavaScript, sub-milisekundowe) idealnie do: manipulacji URL, dodawania security headers, prostych redirectow. Lambda@Edge (pelna Lambda, wiecej jezykow, do 30 sekund) do: autoryzacji, dynamicznego origin selectingu, manipulacji body. CloudFront Functions sa 6x tansze i 10x szybsze - uzywaj ich gdy wystarczaja. Lambda@Edge tylko gdy potrzebujesz dostepu do body lub origin request/response.

Zaawansowany

OAC dla S3 - nigdy nie upubliczniaj bucketa

Origin Access Control (OAC) zastepuje przestarzale Origin Access Identity (OAI). OAC pozwala CloudFront uzyskac dostep do prywatnego S3 bucketa - uzytkownik moze pobierac pliki tylko przez CloudFront, nigdy bezposrednio z S3. OAC wspiera SSE-KMS (szyfrowanie kluczami KMS), czego OAI nie potrafil. Konfiguracja: dodaj OAC do origin, zaktualizuj S3 bucket policy o zezwolenie dla CloudFront.

Poczatkujacy

Price Classes - kontroluj koszty CDN

CloudFront ma rozne ceny w roznych regionach - Ameryka Polnocna i Europa sa najtansze, Azja i Australia najdrozsze. Price Class 100 (Ameryka + Europa) to najtansza opcja - idealna jesli Twoi uzytkownicy sa glownie w Europie i USA. Price Class 200 dodaje Azje. Price Class All uzywa wszystkich edge locations. Dla polskiego startupu Price Class 100 to optymalny wybor.

Poczatkujacy

Real-Time Logs do Kinesis Data Streams

Standard CloudFront Logs trafiaja do S3 z opoznieniem do kilkudziesieciu minut. Real-Time Logs wysylaja dane do Kinesis Data Streams w ciagu sekund - mozesz analizowac ruch na zywo. Uzyj tego do: wykrywania anomalii, monitorowania cache hit ratio per URL, debugowania bledow. Mozesz filtrowac logi (np. tylko status 5xx) aby zredukowac koszty Kinesis.

Zaawansowany

Custom Error Pages - graceful degradation

Skonfiguruj custom error responses: gdy origin zwraca 503, CloudFront moze serwowac strone /maintenance.html z S3 z kodem 503 i TTL 10 sekund. Dla bledow 404 serwuj /404.html. Ustaw Error Caching Minimum TTL na krotki czas (np. 10 sekund) zeby szybko wrocic do normalnosci po naprawie origina. Cachowany blad to lepsza odpowiedz niz timeout.

Poczatkujacy

Screenshoty z AWS Console

Wkrotce pojawia sie tu zrzuty ekranu pokazujace jak korzystac z Amazon CloudFront bezposrednio w konsoli AWS.

Do czego sluzy Amazon CloudFront?

01

Przyspieszenie stron internetowych

Serwowanie statycznych zasobów (obrazy, CSS, JS) z edge locations zamiast z jednego serwera. Użytkownicy z Japonii, Brazylii czy Niemiec ładują stronę równie szybko.

02

Streaming wideo

Dystrybucja treści wideo (VOD i live streaming) do milionów widzów jednocześnie z automatycznym skalowaniem i adaptacyjnym bitrate.

03

Ochrona API i aplikacji

CloudFront jako warstwa przed Twoim backendem - cachowanie odpowiedzi API, ochrona DDoS z AWS Shield i filtrowanie ruchu z AWS WAF.

04

Hosting statycznych stron z S3

Podpięcie domeny z HTTPS do bucketa S3. CloudFront dodaje SSL, cachowanie i globalną dystrybucję do hostingu statycznego.

Co musisz wiedziec?

Edge Location

Punkt obecności (data center) CloudFront rozmieszczony na świecie. Tutaj cachowane są kopie Twoich treści. Ponad 600 lokalizacji globalnie.

Distribution

Konfiguracja CloudFront definiująca skąd pobierać treść (origin), jak cachować, jaką domenę użyć i ustawienia SSL. Każda dystrybucja otrzymuje URL dxxxxxx.cloudfront.net.

Origin

Źródło oryginalnych treści - bucket S3, serwer EC2, ALB lub dowolny serwer HTTP. CloudFront pobiera treść z originu i cachuje na edge locations.

TTL (Time to Live)

Czas przechowywania obiektu w cache edge location. Po upływie TTL CloudFront ponownie pobiera treść z originu. Domyślnie 24 godziny.

Lambda@Edge

Funkcje Lambda uruchamiane na edge locations. Pozwalają modyfikować żądania i odpowiedzi na brzegu sieci - np. przekierowania, A/B testy, autoryzacja.

Architektura: Globalna dystrybucja tresci z CloudFront

Architektura CDN z wieloma originami, ochrona WAF i przetwarzaniem na edge. Ten wzorzec obsluguje zarowno statyczne assety z S3, jak i dynamiczne API z ALB, chroniąc cala infrastrukture za jednym punktem wejscia.

Uzytkownik Ruch z przegladarki kierowany do najblizszej edge location
Filtrowanie
AWS WAF
AWS WAF Filtrowanie ruchu - blokowanie SQL injection, XSS, rate limiting, geo-blocking
HTTPS
Amazon CloudFront
Amazon CloudFront CDN z 450+ edge locations, cachowanie, SSL termination, routing do originow
Edge processing
Lambda@Edge
Lambda@Edge Przetwarzanie na edge - autoryzacja, A/B testing, manipulacja URL/headers
/static/*
S3 Origin
S3 Origin Statyczne assety (HTML, CSS, JS, obrazy) z prywatnego bucketa przez OAC
/api/*
ALB Origin
ALB Origin Dynamiczne API - ruch /api/* kierowany do Application Load Balancera
WAF przed CloudFront chroni cala infrastrukture - ruch nie dociera do originow jesli zostanie zablokowany.
Osobne behaviors dla /static/* (dlugi cache, S3) i /api/* (brak cache, ALB) optymalizuja wydajnosc i koszty.
Origin Shield (dodatkowa warstwa cache) redukuje obciazenie origina przy globalnym ruchu.

Porownanie CloudFront vs bezposredni ALB/S3

Cecha CloudFront + origin Bezposrednio ALB/S3
Latency Niski (450+ edge locations) Zalezny od regionu usera
Koszt transferu $0.085/GB (tanszy niz ALB) $0.09/GB (ALB) lub $0.09/GB (S3)
SSL/TLS Darmowy cert ACM, HTTP/3 ACM na ALB, brak HTTP/3 na S3
Cache Wbudowany, konfigurowalny TTL Brak (kazdy request do origin)
Ochrona DDoS AWS Shield Standard gratis Brak domyslnej ochrony
Konfiguracja Srednia (behaviors, origins) Prosta (bezposredni dostep)

Ile kosztuje Amazon CloudFront?

Transfer danych

Płacisz za GB danych przesłanych z edge locations do użytkowników. Ceny zależą od regionu docelowego.

Europa: $0.085/GB (pierwsze 10 TB/mies.)

Żądania HTTP/HTTPS

Opłata za liczbę żądań. Żądania HTTPS są nieco droższe od HTTP.

HTTP: $0.0075/10 000 żądań, HTTPS: $0.01/10 000

Lambda@Edge

Dodatkowy koszt za wywołania i czas trwania funkcji Lambda na edge locations.

$0.60/mln żądań + $0.00005001/128 MB-s

Free Tier

1 TB transferu danych wychodzących i 10 mln żądań HTTP/HTTPS miesięcznie - za darmo, bezterminowo (always free).

Wystarczy na małą-średnią stronę WWW

Przyklady AWS CLI

Utwórz dystrybucję dla S3

Tworzy dystrybucję CloudFront z bucketem S3 jako originem

aws cloudfront create-distribution \
 --origin-domain-name moj-bucket.s3.amazonaws.com \
 --default-root-object index.html

Inwalidacja cache

Wymusza odświeżenie plików w cache na wszystkich edge locations

aws cloudfront create-invalidation \
 --distribution-id E1A2B3C4D5E6F7 \
 --paths "/*"

Lista dystrybucji

Wyświetla wszystkie dystrybucje CloudFront na koncie

aws cloudfront list-distributions \
 --query 'DistributionList.Items[].{Id:Id,Domain:DomainName,Status:Status,Origins:Origins.Items[0].DomainName}' \
 --output table

Quiz: Amazon CloudFront

Sprawdz czy dobrze rozumiesz podstawy. Kliknij odpowiedz — feedback pojawi sie od razu.

Twoj wynik: 0 / 3

1. Czym jest Edge Location w kontekście CloudFront?

2. Co należy zrobić, aby natychmiast usunąć stary plik z cache CloudFront?

3. Czy Free Tier CloudFront jest ograniczony czasowo?

Chcesz poznac Amazon CloudFront w praktyce?

Darmowy kurs "AWS od podstaw" pokazuje jak uzywac Amazon CloudFront krok po kroku. Teoria + praktyka od zera.

Zacznij darmowy kurs Wszystkie serwisy