Amazon S3
Storage Cloud Practitioner Solutions Architect Associate

Amazon S3

Amazon Simple Storage Service

Nieograniczone przechowywanie obiektów w chmurze. Od prostego backupu po hosting milionów plików.

Amazon S3 (Simple Storage Service) to serwis do przechowywania dowolnych plików (obiektów) w chmurze AWS. Możesz wrzucić tam dosłownie wszystko - zdjęcia, filmy, backupy, logi, dane aplikacji - bez limitu pojemności.

S3 jest jednym z najpopularniejszych serwisów AWS i fundamentem wielu architektur chmurowych. Zrozumienie S3 to absolutna podstawa.

Czy wiesz, ze...

Amazon S3 przechowuje ponad 350 bilionów obiektów i obsługuje miliony żądań na sekundę. Trwałość danych wynosi 99.999999999% (11 dziewiątek) - statystycznie stracisz 1 obiekt na 10 000 lat przy przechowywaniu 10 milionów obiektów. Netflix, Airbnb i NASA używają S3 jako głównego storage.

Pro Tip

Włącz S3 Intelligent-Tiering dla danych o nieregularnym dostępie - automatycznie przenosi obiekty między klasami storage i oszczędza pieniądze bez żadnej pracy z Twojej strony. Dla bucketów publicznych (np. hosting) zawsze używaj CloudFront przed S3 - to taniej i szybciej.

Uwaga

Najczestsze wpadki z S3: (1) przypadkowe upublicznienie bucketa przez bledna policy lub wylaczenie Block Public Access, (2) usuniecie obiektow bez wlaczonego wersjonowania oznacza trwala utrate danych, (3) przy milionach malych plikow (<1KB) koszty requestow (PUT/GET) moga przekroczyc koszty samego storage. Wlacz S3 Block Public Access na poziomie konta i uzyj Lifecycle Rules do automatycznego czyszczenia.

Amazon S3 to object storage o trwalosci 99.999999999% (11 dziewiatek). Dane sa automatycznie replikowane na minimum 3 urzadzenia w regionie. Oto jak dziala S3 od momentu utworzenia bucketu do zarzadzania cyklem zycia obiektow.

1

Tworzenie bucketu

Bucket to kontener na obiekty. Nazwa musi byc globalnie unikalna w calym AWS (nie tylko w Twoim koncie). Bucket jest przypisany do regionu - dane nie opuszczaja regionu, chyba ze skonfigurujesz Cross-Region Replication. Od kwietnia 2023 AWS domyslnie blokuje publiczny dostep do nowych bucketow (S3 Block Public Access).

2

Konfiguracja uprawnien

S3 ma trzy warstwy kontroli dostepu: Bucket Policy (JSON, na poziomie bucketu), ACL (legacy, AWS rekomenduje wylaczenie), IAM Policies (na poziomie uzytkownika/roli). Od 2023 nowe buckety domyslnie maja ACL disabled i Object Ownership ustawione na BucketOwnerEnforced. Uzywaj Bucket Policy + IAM Policies jako glowny mechanizm.

3

Upload obiektow

Obiekty skladaja sie z klucza (sciezka), danych (do 5 TB) i metadanych. Dla plikow powyzej 100 MB uzywaj multipart upload - dzieli plik na czesci uploadowane rownolegle. AWS CLI automatycznie uzywa multipart dla plikow > 8 MB. Pojedynczy PUT obsluguje max 5 GB. Od grudnia 2020 S3 jest strongly consistent dla wszystkich operacji - read-after-write obejmuje takze overwrite PUT i DELETE.

4

Klasy storage (Storage Classes)

S3 Standard to domyslna klasa (3+ AZ). S3 Intelligent-Tiering automatycznie przenosi dane miedzy warstwami na podstawie dostepu (drobna oplata za monitoring). S3 Glacier Instant Retrieval to archiwum z dostepem w milisekundach. S3 Glacier Deep Archive to najtansza opcja (ok. $1/TB/mc) ale retrieval trwa do 12 godzin. S3 One Zone-IA to tania opcja ale dane sa w 1 AZ.

5

Wersjonowanie (Versioning)

Po wlaczeniu wersjonowania kazdy upload tworzy nowa wersje obiektu. Stare wersje sa zachowane i mozna je przywrocic. Usuniecie obiektu dodaje "delete marker" - obiekt wyglada na usuniety, ale wczesniejsze wersje sa nadal dostepne. Uwaga: kazda wersja zajmuje miejsce i generuje koszty storage. Uzywaj lifecycle rules do czyszczenia starych wersji.

6

Lifecycle Rules - automatyzacja

Lifecycle rules automatycznie przenoza obiekty miedzy klasami storage lub usuwaja je po okreslonym czasie. Przyklad: po 30 dniach przenieoz do S3 IA, po 90 dniach do Glacier, po 365 dniach usun. Mozesz tez konfigurowac reguly dla noncurrent versions (starych wersji) oddzielnie. Lifecycle rules dzialaja na poziomie prefixu lub tagu.

S3 wyglada prosto, ale w produkcji wymaga wielu przemyslanych decyzji. Oto sprawdzone praktyki z rzeczywistych wdrozen.

Nazewnictwo bucketow - mysl dlugoterminowo

Nazwy bucketow sa globalne i niezmienne - nie mozesz zmienic nazwy po utworzeniu. Uzywaj konwencji: {firma}-{env}-{cel}-{region}, np. cloudmaniak-prod-assets-eu-central-1. Unikaj kropek w nazwach - uniemozliwiaja uzycie HTTPS z virtual-hosted-style URL i komplikuja integracje z CloudFront. Nazwa bucketu pojawia sie w URL, wiec nie umieszczaj w niej wrrazliwych informacji.

Poczatkujacy

Presigned URLs - bezpieczne udostepnianie

Presigned URL pozwala udostepnic prywatny obiekt na okreslony czas (domyslnie 1 godzina, max 7 dni z IAM user credentials, max 12 godzin z IAM role). Mozesz tez generowac presigned URLs do uploadu - uzytkownik uploaduje bezposrednio do S3 bez przechodzenia przez Twoj serwer. Idealny wzorzec: frontend pobiera presigned URL z backendu, potem uploaduje plik prosto do S3.

Poczatkujacy

Multipart Upload - duze pliki bez stresu

Dla plikow > 100 MB multipart upload jest obowiazkowy. Dzieli plik na czesci (min 5 MB, max 10,000 czesci) uploadowane rownolegle. Jezeli upload sie przerwie, wznawiasz tylko nieudane czesci. WAZNE: niedokonczone multipart uploady generuja koszty storage! Skonfiguruj lifecycle rule: AbortIncompleteMultipartUpload po 7 dniach, inaczej placisz za fragmenty, ktorych nie widzisz.

Zaawansowany

S3 Select i Glacier Select - query bez pobierania

S3 Select pozwala wykonac zapytanie SQL na obiekcie CSV/JSON/Parquet i pobrac tylko pasujace wiersze. Zamiast pobierac 1 GB pliku CSV, pobierasz 10 KB wynikow. Oszczedzasz na transferze i czasie. Uwaga: od lipca 2024 S3 Select i Glacier Select nie sa dostepne dla nowych klientow AWS. W nowych projektach uzyj Amazon Athena lub S3 Object Lambda, ktory transformuje dane w locie przy GET request.

Zaawansowany

Event Notifications - reaktywna architektura

S3 moze wysylac eventy (PUT, DELETE, COPY) do Lambda, SQS lub SNS. Typowe wzorce: upload obrazu triggeruje Lambda do generowania miniaturek; upload CSV triggeruje Lambda do parsowania i zapisu do DynamoDB. Od 2021 mozesz tez uzywac Amazon EventBridge jako celu - daje filtrowanie, routing i wiecej celow (Step Functions, API Gateway).

Poczatkujacy

Transfer Acceleration - szybszy upload z daleka

S3 Transfer Acceleration uzywa edge locations CloudFront do przyspieszenia uploadow z odleglych lokalizacji. Dane trafiaja na najblizszy edge i sa przesylane do bucketu po zoptymalizowanej sieci AWS. Przyspiesza upload o 50-500% dla transferow miedzykontyntentalnych. Koszt: $0.04/GB (w obu kierunkach). Uzyj speed comparison tool od AWS zeby sprawdzic czy sie oplaca dla Twojej lokalizacji.

Zaawansowany

Screenshoty z AWS Console

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

Do czego sluzy Amazon S3?

01

Hosting statycznych stron

Uruchom stronę HTML/CSS/JS bezpośrednio z S3 - bez serwera.

02

Backup i archiwizacja

Przechowuj kopie zapasowe baz danych, logów i plików konfiguracyjnych.

03

Data lake

Centralne repozytorium danych do analityki i machine learning.

04

Dystrybucja plików

Udostępniaj pliki użytkownikom na całym świecie (w połączeniu z CloudFront).

Co musisz wiedziec?

Bucket

Kontener na obiekty (pliki). Nazwa musi być globalnie unikalna. Bucket istnieje w konkretnym regionie.

Obiekt

Plik przechowywany w S3. Składa się z klucza (ścieżki), danych i metadanych. Max rozmiar: 5 TB.

Klasa storage

Poziom dostępności i ceny. S3 Standard (szybki), S3 IA (tańszy, rzadki dostęp), S3 Glacier (archiwum).

Bucket Policy

Reguły JSON określające kto ma dostęp do bucketa. Np. publiczny odczyt lub dostęp tylko z konkretnego IP.

Versioning

Wersjonowanie obiektów. Każda zmiana pliku tworzy nową wersję. Możesz przywrócić starszą.

Architektura: Statyczna strona z procesowaniem mediow na S3

Architektura laczaca hosting statyczny na S3 z automatycznym przetwarzaniem plikow przez Lambda. Ten wzorzec jest tani, skalowalny i serverless - idealny dla stron z duzym ruchem i dynamicznym przetwarzaniem mediow.

Uzytkownik Przegladarka lub aplikacja mobilna
HTTPS
CloudFront
CloudFront CDN z 400+ edge locations, cache statycznych assetow, SSL
Origin Request
S3 (Origin Bucket)
S3 (Origin Bucket) Statyczne pliki HTML/CSS/JS + media, OAC blokuje bezposredni dostep
S3 Event: PUT
Lambda (Trigger)
Lambda (Trigger) Przetwarzanie uploadowanych mediow: resize, konwersja formatow, ekstrakcja metadanych
PutItem
DynamoDB
DynamoDB Metadane plikow: rozmiar, format, status przetwarzania, URL miniaturki
CloudFront Origin Access Control (OAC) zastapil OAI - uzywaj OAC dla nowych dystrybucji. Bucket Policy pozwala na dostep tylko z CloudFront, blokujac bezposredni dostep do S3.
Dla globalnnej dostepnosci rozwaaz S3 Cross-Region Replication do drugiego regionu z osobna dystrybucja CloudFront i Route 53 latency-based routing.
S3 Event Notifications moga byc zastapione przez EventBridge - daje wiecej mozliwosci filtrowania i routingu do wielu celow jednoczesnie.

Porównanie klas storage S3

Klasa Koszt/GB/mies. Dostępność Czas odczytu Najlepszy dla
S3 Standard ~$0.023 99.99% Milisekundy Często używane dane
S3 Intelligent-Tiering ~$0.023 (auto) 99.9% Milisekundy Nieregularny dostęp
S3 Standard-IA ~$0.0125 99.9% Milisekundy Rzadki dostęp, szybki odczyt
S3 One Zone-IA ~$0.01 99.5% Milisekundy Dane odtwarzalne, 1 AZ
S3 Glacier Instant ~$0.004 99.9% Milisekundy Archiwum z szybkim dostępem
S3 Glacier Flexible ~$0.0036 99.99% 1-12 godzin Archiwum, backup
S3 Glacier Deep Archive ~$0.00099 99.99% 12-48 godzin Długoterminowe archiwum

Ile kosztuje Amazon S3?

S3 Standard

Najczęściej używana klasa. Płacisz za przechowywanie (GB/mies.) + żądania (PUT, GET) + transfer wychodzący.

~$0.023/GB/mies. + $0.005/1000 PUT + $0.0004/1000 GET

Transfer danych

Wgrywanie do S3 jest DARMOWE. Pobieranie kosztuje od $0.09/GB (pierwszy 10 TB/mies.). Transfer do CloudFront: darmowy.

100 GB pobrań/mies. ≈ $9.00

S3 Glacier Deep Archive

Najtańsze przechowywanie na AWS. Idealny do backupów, które rzadko odczytujesz.

~$0.00099/GB/mies. ≈ $1/TB/mies.

Free Tier

5 GB storage S3 Standard + 20 000 GET + 2 000 PUT miesięcznie przez 12 miesięcy.

Wystarczy na małą stronę statyczną

Przyklady AWS CLI

Utwórz bucket

Tworzy nowy bucket S3 w regionie eu-central-1

aws s3 mb s3://moj-bucket-cloudmaniak --region eu-central-1

Wrzuć plik

Kopiuje plik lokalny do S3

aws s3 cp ./backup.zip s3://moj-bucket-cloudmaniak/backups/

Listuj obiekty

Wyświetla zawartość bucketa

aws s3 ls s3://moj-bucket-cloudmaniak/ --human-readable

Synchronizuj folder

Synchronizuje lokalny folder z S3 (tylko zmienione pliki)

aws s3 sync ./my-website s3://moj-bucket-cloudmaniak/ --delete

Quiz: Amazon S3

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

Twoj wynik: 0 / 4

1. Jaki jest maksymalny rozmiar pojedynczego obiektu w S3?

2. Która klasa storage jest najtańsza do archiwizacji?

3. Czy nazwa bucketa S3 musi być globalnie unikalna?

4. Ile wynosi trwałość danych (durability) w S3 Standard?

Chcesz poznac Amazon S3 w praktyce?

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

Zacznij darmowy kurs Wszystkie serwisy