Dystrybucje CloudFront i źródła
Utworzą dystrybucję CloudFront, skonfigurują źródła S3 i niestandardowe źródła HTTP oraz poznają Origin Access Control na potrzeby bezpieczeństwa S3.
Dystrybucje CloudFront i źródła to bezpłatna lekcja Cloud & IT Cert Prep na CoddyKit. To lekcja 1 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Cloud & IT Cert Prep, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Cloud & IT Cert Prep zawiera 4 lekcji w sumie.
Czym jest Amazon CloudFront?
Amazon CloudFront to globalna sieć dostarczania treści (CDN) AWS, która buforuje i dostarcza treści z lokalizacji brzegowych rozmieszczonych w ponad 400 miastach i 90 krajach. Gdy użytkownik żąda treści, CloudFront dostarcza ją z najbliższej lokalizacji brzegowej, znacznie zmniejszając opóźnienie w porównaniu z pobieraniem jej z serwera źródłowego.
CloudFront służy nie tylko do obsługi plików statycznych — przyspiesza również treści dynamiczne, interfejsy API i strumieniowanie wideo. Integruje się z innymi usługami AWS, takimi jak S3, ALB, Lambda@Edge, WAF i Shield, dzięki czemu stanowi standardową warstwę dystrybucji we współczesnych architekturach AWS.
Dystrybucje CloudFront
Dystrybucja CloudFront to podstawowa jednostka konfiguracji. Definiuje ona: co najmniej jedno źródło (miejsce przechowywania treści), zachowania pamięci podręcznej (sposób buforowania różnych ścieżek URL), ustawienia zabezpieczeń oraz poziomy cenowe. Dostęp do treści uzyskuje się za pośrednictwem nazwy domenowej dystrybucji (np. d1234abcdef.cloudfront.net) lub domeny niestandardowej (np. cdn.example.com) z użyciem rekordu CNAME albo ALIAS.
Po utworzeniu dystrybucje potrzebują 10–15 minut na globalne wdrożenie we wszystkich lokalizacjach brzegowych. Zmiany w istniejącej dystrybucji również potrzebują kilku minut na propagację. Historycznie istniały dwa typy dystrybucji, ale obecnie wszystkie dystrybucje korzystają ze zunifikowanego interfejsu konfiguracji.
# Create a CloudFront distribution backed by S3
aws cloudfront create-distribution \
--distribution-config '{
"Origins": {
"Quantity": 1,
"Items": [{
"Id": "S3Origin",
"DomainName": "my-bucket.s3.amazonaws.com",
"S3OriginConfig": {"OriginAccessIdentity": ""}
}]
},
"DefaultCacheBehavior": {
"TargetOriginId": "S3Origin",
"ViewerProtocolPolicy": "redirect-to-https",
"CachePolicyId": "658327ea-f89d-4fab-a63d-7e88639e58f6"
},
"Enabled": true,
"Comment": "My S3 distribution",
"CallerReference": "2026-06-20-unique"
}'S3 jako źródło CloudFront
Użycie zasobnika S3 jako źródła CloudFront jest jednym z najczęstszych wzorców. CloudFront pobiera obiekty z S3, buforuje je w lokalizacjach brzegowych, a kolejne żądania obsługuje z pamięci podręcznej bez ponownego odwoływania się do S3. Zmniejsza to koszty żądań S3, poprawia opóźnienia dla użytkowników z całego świata i odciąża przepustowość S3.
Do obsługi witryny opartej na S3 nie trzeba upubliczniać zasobnika. Zamiast tego należy użyć Origin Access Control (OAC) — nowoczesnego następcy Origin Access Identity (OAI). OAC przyznaje uprawnienia do odczytu z zasobnika wyłącznie dystrybucji CloudFront, dzięki czemu S3 pozostaje prywatne, a CloudFront publicznie udostępnia treści.
# S3 bucket policy granting OAC access to CloudFront
{
'Version': '2012-10-17',
'Statement': [{
'Effect': 'Allow',
'Principal': {
'Service': 'cloudfront.amazonaws.com'
},
'Action': 's3:GetObject',
'Resource': 'arn:aws:s3:::my-bucket/*',
'Condition': {
'StringEquals': {
'AWS:SourceArn': 'arn:aws:cloudfront::123456789:distribution/EDFDVBD6EXAMPLE'
}
}
}]
}Niestandardowe źródła HTTP/HTTPS
CloudFront obsługuje również niestandardowe źródła: dowolny serwer HTTP lub HTTPS dostępny w internecie, w tym instancje EC2, Application Load Balancers, punkty końcowe API Gateway i serwery lokalne. Niestandardowe źródła umożliwiają buforowanie i przyspieszanie aplikacji dynamicznych oraz interfejsów API, a nie tylko plików statycznych.
W przypadku użycia ALB jako niestandardowego źródła należy skonfigurować ALB tak, aby w grupie zabezpieczeń akceptował połączenia wyłącznie z zakresów adresów IP CloudFront. Wymusza to kierowanie całego ruchu zewnętrznego przez CloudFront, umożliwiając stosowanie reguł WAF i kończenie połączeń TLS na brzegu, przy jednoczesnym zachowaniu ALB wewnątrz AWS.
Origin Access Control (OAC) a OAI
Origin Access Identity (OAI) był pierwotnie stosowany do ograniczania dostępu zasobnika S3 wyłącznie do CloudFront. Jest to specjalna tożsamość użytkownika CloudFront przyznana w zasadach zasobnika S3. OAI nadal działa, ale jest uznawany za rozwiązanie starszego typu.
Origin Access Control (OAC) to nowoczesny następca OAI. OAC obsługuje wszystkie typy zasobników S3 (w tym S3 w regionach AWS China oraz zasobniki zaszyfrowane za pomocą SSE-KMS), używa podmiotów usługowych IAM zapewniających bardziej szczegółową kontrolę i automatycznie podpisuje żądania do S3 za pomocą SigV4. W przypadku nowych dystrybucji należy zawsze używać OAC zamiast OAI.
Zasady protokołu użytkownika
Zasady protokołu użytkownika określają sposób obsługi przez CloudFront połączeń między użytkownikami (klientami) a lokalizacją brzegową:
- HTTP i HTTPS: zezwalanie na oba protokoły; niezalecane w przypadku wrażliwych treści
- Przekierowanie HTTP do HTTPS: przezroczyste przekierowywanie żądań HTTP do HTTPS; najczęściej używane ustawienie
- Tylko HTTPS: całkowite odrzucanie połączeń HTTP; należy używać w celu rygorystycznego wymuszania TLS
Niezależnie od tego zasady protokołu źródła określają sposób komunikacji CloudFront ze źródłem: tylko HTTP, tylko HTTPS lub zgodnie z protokołem użytkownika. W przypadku źródeł S3 z OAC CloudFront zawsze używa protokołu HTTPS.
Niestandardowe domeny i certyfikaty SSL/TLS
Aby udostępniać treści pod adresem cdn.example.com zamiast domeny CloudFront, należy skonfigurować Alternate Domain Name (CNAME) w dystrybucji i dołączyć certyfikat SSL/TLS z usługi AWS Certificate Manager (ACM). Certyfikat ACM musi znajdować się w Regionie us-east-1 (niezależnie od tego, skąd dystrybucja obsługuje ruch), ponieważ CloudFront jest usługą globalną zarządzaną z regionu us-east-1.
Należy utworzyć rekord Route 53 typu ALIAS wskazujący nazwę domenową dystrybucji CloudFront. CloudFront automatycznie udostępnia certyfikat dla pasujących żądań SNI.
# Request a certificate in us-east-1 for CloudFront
aws acm request-certificate \
--domain-name cdn.example.com \
--validation-method DNS \
--region us-east-1Klasy cenowe
CloudFront's Price Class określa, które lokalizacje brzegowe są używane do obsługi dystrybucji. Wyższe klasy cenowe obejmują droższe lokalizacje brzegowe (zwykle w regionach, w których przepustowość kosztuje więcej):
- Price Class 100: tylko Ameryka Północna i Europa (najniższy koszt)
- Price Class 200: Ameryka Północna, Europa, Azja, Bliski Wschód i Afryka
- Price Class All: wszystkie lokalizacje brzegowe na świecie (najlepsza wydajność, najwyższy koszt)
Price Class 100 należy stosować w przypadku narzędzi wewnętrznych lub odbiorców ograniczonych do Ameryki Północnej i Europy. Price Class All należy stosować w przypadku aplikacji konsumenckich o rzeczywiście globalnym zasięgu.
Grupy źródeł i przełączanie awaryjne
Grupy źródeł umożliwiają przełączanie awaryjne źródła w CloudFront. W grupie definiuje się główne i pomocnicze źródło. Jeśli główne źródło zwróci określony kod błędu HTTP (np. 500, 502, 503, 504), CloudFront automatycznie ponowi żądanie wobec pomocniczego źródła.
Przełączanie awaryjne źródła jest przydatne w ramach odtwarzania po awarii: należy utrzymywać główny bucket S3 w us-east-1 oraz replikowaną kopię zapasową w us-west-2 jako źródło pomocnicze. Podczas awarii S3 CloudFront w sposób przejrzysty przełączy ruch awaryjnie, bez konieczności zmiany DNS. Ten wzorzec uzupełnia replikację międzyregionową S3.
Dzienniki dostępu CloudFront
CloudFront może dostarczać dzienniki dostępu do bucketa S3, rejestrując szczegóły każdego żądania odbiorcy: znacznik czasu, lokalizację brzegową, kod statusu, przesłane bajty, trafienie lub chybienie pamięci podręcznej, agenta użytkownika i inne informacje. Dzienniki są dostarczane partiami co kilka minut.
Dzienniki dostępu służą do analizowania wzorców ruchu, identyfikowania popularnych treści, audytowania pól istotnych dla bezpieczeństwa (adres IP, referrer, agent użytkownika) oraz mierzenia współczynników trafień pamięci podręcznej. Pole x-edge-result-type informuje, czy na brzegu żądanie zakończyło się wynikiem Hit, Miss czy RefreshHit.
# Enable access logging on a distribution
aws cloudfront update-distribution \
--id EDFDVBD6EXAMPLE \
--distribution-config '{
...existing config...
"Logging": {
"Enabled": true,
"Bucket": "my-logs-bucket.s3.amazonaws.com",
"Prefix": "cloudfront-logs/",
"IncludeCookies": false
}
}' \
--if-match ETVPDKIKX0DERLokalizacje brzegowe a regionalne pamięci podręczne brzegowe
CloudFront ma dwie warstwy infrastruktury pamięci podręcznej:
- Edge locations: setki punktów PoP na całym świecie, położonych blisko użytkowników końcowych; dostarczają treści z pamięci podręcznej przy minimalnych opóźnieniach
- Regional Edge Caches (RECs): 13 większych i trwalszych pamięci podręcznych między lokalizacjami brzegowymi a źródłami; obsługują treści, które nie są wystarczająco popularne, aby pozostać w małych pamięciach podręcznych lokalizacji brzegowych
Gdy żądania nie ma w pamięci podręcznej lokalizacji brzegowej, CloudFront sprawdza REC, zanim skieruje je bezpośrednio do źródła. RECs działają w sposób przejrzysty — nie konfiguruje się ich bezpośrednio — ale znacznie poprawiają współczynniki trafień dla rzadziej żądanych treści i zmniejszają obciążenie źródła.
Szybkie sprawdzenie
Sprawdź swoją znajomość zagadnień AWS Solutions Architect (SAA-C03) omówionych w tej lekcji.
Podsumowanie lekcji
W tej lekcji poznali Państwo następujące zagadnienia: dystrybucje CloudFront buforują treści w lokalizacjach brzegowych na całym świecie, OAC utrzymuje buckety S3 jako prywatne, jednocześnie umożliwiając dostęp CloudFront, a niestandardowe źródła obsługują ALB, API Gateway i dowolny serwer HTTP. Certyfikaty ACM dla CloudFront muszą być aprowizowane w us-east-1. Następnie omówimy zachowania pamięci podręcznej i ustawienia TTL.
Często zadawane pytania
Czy lekcja „Dystrybucje CloudFront i źródła” jest bezpłatna?
Tak — pełny tekst „Dystrybucje CloudFront i źródła” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Cloud & IT Cert Prep, przejdź na CoddyKit PRO. Kurs Cloud & IT Cert Prep zawiera 4 lekcji w sumie.
Co nauczysz się w „Dystrybucje CloudFront i źródła”?
Utworzą dystrybucję CloudFront, skonfigurują źródła S3 i niestandardowe źródła HTTP oraz poznają Origin Access Control na potrzeby bezpieczeństwa S3. Ćwiczysz Cloud & IT Cert Prep z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Cloud & IT Cert Prep?
Nie wymagamy żadnego doświadczenia. Cloud & IT Cert Prep w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 1 z 4.
Ile czasu zajmuje lekcja „Dystrybucje CloudFront i źródła”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Cloud & IT Cert Prep?
Tak. Każda lekcja Cloud & IT Cert Prep zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Dystrybucje CloudFront i źródła
- Zachowania pamięci podręcznej i ustawienia TTL
- Podpisane adresy URL, podpisane pliki cookie i ograniczenia geograficzne
- CloudFront z WAF i Lambda@Edge