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.
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.
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.
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.
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).
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.
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.
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.
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.
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.
PoczatkujacyPresigned 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.
PoczatkujacyMultipart 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.
ZaawansowanyS3 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.
ZaawansowanyEvent 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).
PoczatkujacyTransfer 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.
ZaawansowanyScreenshoty z AWS Console
Wkrotce pojawia sie tu zrzuty ekranu pokazujace jak korzystac z Amazon S3 bezposrednio w konsoli AWS.
Do czego sluzy Amazon S3?
Hosting statycznych stron
Uruchom stronę HTML/CSS/JS bezpośrednio z S3 - bez serwera.
Backup i archiwizacja
Przechowuj kopie zapasowe baz danych, logów i plików konfiguracyjnych.
Data lake
Centralne repozytorium danych do analityki i machine learning.
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.
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.
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?
Czesto uzywane razem z Amazon S3
Czytaj więcej o Amazon S3
Chcesz poznac Amazon S3 w praktyce?
Darmowy kurs "AWS od podstaw" pokazuje jak uzywac Amazon S3 krok po kroku. Teoria + praktyka od zera.