Buckety, obiekty i Regiony
Utworzą buckety S3, prześlą obiekty, poznają zasady nazewnictwa kluczy i zobaczą, jak S3 replikuje dane w obrębie Regionu.
Buckety, obiekty i Regiony to bezpłatna lekcja AWS Solutions Architect 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 AWS Solutions Architect, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs AWS Solutions Architect zawiera 4 lekcji w sumie.
Czym jest Amazon S3?
Amazon Simple Storage Service (S3) to usługa magazynu obiektowego AWS przeznaczona do przechowywania i pobierania dowolnej ilości danych z dowolnego miejsca w Internecie. S3 zapewnia 11 dziewiątek trwałości (99,999999999%), przechowując nadmiarowo obiekty na wielu urządzeniach w wielu strefach dostępności w wybranym Regionie. Usługa jest skalowalna bez ograniczeń, nie ma limitu pojemności i obsługuje obiekty o rozmiarze od 0 bajtów do 5 TB. S3 stanowi podstawę niezliczonych architektur AWS — służy do hostowania statycznych witryn internetowych, tworzenia jezior danych, przechowywania repozytoriów kopii zapasowych i wielu innych zastosowań.
Buckety S3: kontener najwyższego poziomu
Bucket S3 to nazwany kontener obiektów o unikalnej w skali globalnej nazwie. Buckety są tworzone w konkretnym Regionie AWS, ale ich nazwy muszą być unikalne na całym świecie, wśród wszystkich kont AWS (ponieważ nazwa staje się częścią adresu URL). Nazwy bucketów muszą mieć od 3 do 63 znaków, być zapisane małymi literami, zaczynać się od litery lub cyfry oraz nie zawierać podkreśleń ani wielkich liter. Dobra praktyka: należy uwzględnić identyfikator konta lub losowy sufiks, aby uniknąć kolizji nazw z innymi kontami.
# Create an S3 bucket in a specific region
aws s3api create-bucket \
--bucket my-company-data-20240101 \
--region us-west-2 \
--create-bucket-configuration LocationConstraint=us-west-2Obiekty i klucze S3
Obiekt w S3 składa się z danych (zawartości pliku), klucza (unikalnej nazwy obiektu w buckecie), metadanych (systemowych i zdefiniowanych przez użytkownika par klucz-wartość) oraz opcjonalnego identyfikatora wersji (jeśli włączono przechowywanie wersji). Klucz to pełny ciąg znaków przypominający ścieżkę, np. photos/2024/summer/beach.jpg. S3 ma płaską strukturę — nie ma rzeczywistych katalogów, a jedynie prefiksy kluczy wyglądające jak katalogi. Maksymalny rozmiar obiektu wynosi 5 TB; w przypadku obiektów większych niż 100 MB należy użyć funkcji Multipart Upload, aby uzyskać lepszą wydajność i niezawodność.
# Upload an object
aws s3 cp ./report.pdf s3://my-company-data-20240101/reports/2024/report.pdf
# List objects with a specific prefix
aws s3 ls s3://my-company-data-20240101/reports/2024/Formaty adresów URL S3
Obiekty S3 można udostępniać za pomocą dwóch formatów adresów URL. Path-style: https://s3.<region>.amazonaws.com/<bucket>/<key> (wycofywany w przypadku nowych bucketów). Virtual-hosted-style: https://<bucket>.s3.<region>.amazonaws.com/<key> (obecny standard). Nazwa bucketa staje się subdomeną, dlatego nazwy bucketów muszą być zgodne z wymaganiami DNS. W przypadku wstępnie podpisanych adresów URL i dystrybucji CloudFront zawsze zobaczą Państwo format virtual-hosted. Zrozumienie struktury adresów URL ułatwia prawidłową konfigurację zasad bucketu i CORS.
# Generate a pre-signed URL valid for 1 hour (3600 seconds)
aws s3 presign s3://my-company-data-20240101/reports/2024/report.pdf \
--expires-in 3600Model spójności danych S3
Od grudnia 2020 r. Amazon S3 zapewnia silną spójność odczytu po zapisie dla wszystkich operacji — PUT nowych obiektów, nadpisywania i DELETE — automatycznie we wszystkich Regionach i bez dodatkowych opłat. Oznacza to, że gdy tylko zapis zakończy się powodzeniem, każdy kolejny odczyt zwróci najnowszą wersję obiektu. Jest to znaczące ulepszenie względem wcześniejszego modelu spójności ostatecznej i upraszcza projektowanie aplikacji, eliminując potrzebę opóźnień odczytu po zapisie oraz logiki ponawiania prób.
S3 i Regiony: rezydencja danych
Podczas tworzenia bucketa S3 należy określić Region, a dane pozostają w tym Regionie, chyba że jawnie skonfigurują Państwo replikację. AWS replikuje dane w obrębie tego Regionu w wielu strefach dostępności w celu zapewnienia trwałości, ale nie przenosi ich automatycznie do innych Regionów. Taka regionalna rezydencja danych ma znaczenie dla zgodności z przepisami: jeśli regulacje wymagają przechowywania danych w UE, należy utworzyć bucket w eu-west-1 lub innym Regionie UE, a dane nie opuszczą tego obszaru.
# Find the region of an existing bucket
aws s3api get-bucket-location \
--bucket my-company-data-20240101Multipart Upload dla dużych obiektów
Funkcja Multipart Upload jest wymagana w przypadku obiektów większych niż 5 GB i zalecana dla obiektów większych niż 100 MB. Dzieli obiekt na części (minimum 5 MB na część, maksymalnie 10 000 części), przesyła każdą część niezależnie (równolegle), a następnie łączy je w obiekt końcowy. Jeśli dowolna część zakończy się niepowodzeniem, ponawiane jest przesyłanie tylko tej części. AWS CLI i SDK automatycznie obsługują przesyłanie wieloczęściowe podczas używania polecenia aws s3 cp dla dużych plików — nie muszą Państwo implementować tej funkcji ręcznie.
# The CLI uses multipart automatically for large files
aws s3 cp large-file-50GB.tar.gz s3://my-bucket/ \
--storage-class STANDARD
# Or use s3api to control multipart manually
aws s3api create-multipart-upload \
--bucket my-bucket \
--key large-file-50GB.tar.gzMetadane obiektów S3
Każdy obiekt S3 ma metadane systemowe ustawiane przez AWS (Content-Type, Content-Length, ETag, Last-Modified) oraz opcjonalne metadane zdefiniowane przez użytkownika (niestandardowe pary klucz-wartość z prefiksem x-amz-meta-). Metadane są przechowywane razem z obiektem i zwracane w nagłówkach odpowiedzi HTTP podczas pobierania obiektu. Content-Type ma szczególne znaczenie podczas udostępniania treści w Internecie — jeśli prześlą Państwo plik HTML bez ustawienia Content-Type: text/html, przeglądarki mogą zaproponować jego pobranie zamiast go wyświetlić.
# Upload with explicit Content-Type metadata
aws s3 cp index.html s3://my-website-bucket/ \
--content-type 'text/html' \
--metadata 'author=alice,env=production'S3 do hostowania statycznych witryn internetowych
Amazon S3 może pełnić funkcję hostingu statycznej witryny internetowej — udostępniać bezpośrednio z bucketa pliki HTML, CSS, JavaScript, obrazy i inne pliki. Należy włączyć hosting statycznej witryny w ustawieniach bucketa oraz określić dokument indeksu (index.html) i opcjonalny dokument błędu (404.html). Adres URL punktu końcowego witryny ma format: http://<bucket>.s3-website.<region>.amazonaws.com. Aby zapewnić obsługę HTTPS i niestandardowej domeny, należy umieścić dystrybucję CloudFront przed bucketem S3 statycznej witryny.
# Enable static website hosting
aws s3api put-bucket-website \
--bucket my-website-bucket \
--website-configuration '{"IndexDocument":{"Suffix":"index.html"},"ErrorDocument":{"Key":"404.html"}}'S3 Transfer Acceleration
Funkcja S3 Transfer Acceleration przyspiesza przesyłanie obiektów na duże odległości, kierując dane przez najbliższą lokalizację brzegową CloudFront, a następnie przez prywatną sieć szkieletową AWS do Regionu bucketa S3. Zamiast przesyłać dane bezpośrednio do punktu końcowego S3, klient przesyła je do przyspieszonego punktu końcowego, takiego jak my-bucket.s3-accelerate.amazonaws.com. Transfer Acceleration wiąże się z niewielką opłatą za każdy GB, ale może znacznie zwiększyć szybkość przesyłania dla użytkowników znajdujących się daleko geograficznie od Regionu bucketa.
# Enable Transfer Acceleration on a bucket
aws s3api put-bucket-accelerate-configuration \
--bucket my-company-data-20240101 \
--accelerate-configuration Status=EnabledTagowanie obiektów S3
Tagi obiektów to pary klucz-wartość przypisywane obiektom S3 w celu ich kategoryzowania i zarządzania nimi. Tagi służą do: reguł cyklu życia (przenoszenia lub wygaszania obiektów z określonymi tagami), kontroli dostępu (warunków w IAM i zasadach bucketu opartych na wartościach tagów), alokacji kosztów (Cost Explorer śledzi wydatki na S3 według tagów) oraz inwentaryzacji i analityki. Każdy obiekt może mieć maksymalnie 10 tagów. Tagi można dodawać podczas przesyłania obiektu lub aktualizować po jego utworzeniu, bez modyfikowania samych danych obiektu.
# Add tags to an existing object
aws s3api put-object-tagging \
--bucket my-company-data-20240101 \
--key reports/2024/report.pdf \
--tagging '{"TagSet":[{"Key":"env","Value":"production"},{"Key":"owner","Value":"finance"}]}'Szybkie sprawdzenie
Sprawdź swoją znajomość zagadnień AWS Solutions Architect (SAA-C03) omawianych w tej lekcji.
Podsumowanie lekcji
W tej lekcji nauczyli się Państwo, że: buckety S3 to kontenery o unikalnych w skali globalnej nazwach, powiązane z konkretnym Regionem, obiekty są przechowywane w płaskiej strukturze kluczy oraz obsługują metadane i tagi, a S3 zapewnia silną spójność odczytu po zapisie i 11 dziewiątek trwałości dzięki nadmiarowości w wielu strefach dostępności. W następnej części omówimy kontrolę dostępu do S3 za pomocą zasad bucketu i list ACL.
Ucz się AWS Solutions Architect dzięki korepetycjom AI — za darmo
Pisz i uruchamiaj kod w przeglądarce, otrzymuj natychmiastową pomoc od korepetytora AI dostępnego 24/7 i kontynuuj naukę w sieci lub w aplikacji.
- Kursy
- 30
- Lekcje
- 120
Często zadawane pytania
Czy lekcja „Buckety, obiekty i Regiony” jest bezpłatna?
Tak — pełny tekst „Buckety, obiekty i Regiony” 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 AWS Solutions Architect, przejdź na CoddyKit PRO. Kurs AWS Solutions Architect zawiera 4 lekcji w sumie.
Co nauczysz się w „Buckety, obiekty i Regiony”?
Utworzą buckety S3, prześlą obiekty, poznają zasady nazewnictwa kluczy i zobaczą, jak S3 replikuje dane w obrębie Regionu. Ćwiczysz AWS Solutions Architect 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ąć AWS Solutions Architect?
Nie wymagamy żadnego doświadczenia. AWS Solutions Architect 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 „Buckety, obiekty i Regiony”?
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 AWS Solutions Architect?
Tak. Każda lekcja AWS Solutions Architect 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
- Buckety, obiekty i Regiony
- Kontrola dostępu S3: zasady bucketów i ACL
- Wersjonowanie, MFA Delete i replikacja
- Klasy pamięci masowej i zasady cyklu życia