Amazon DVA-C02: Pamięć masowa, Amazon S3, CloudFront i systemy plików (EFS, FSx) — Przewodnik do nauki

Część AWS Developer Associate DVA-C02 — Przewodnik do nauki. Ćwicz ze zweryfikowanymi odpowiedziami w centrum egzaminów Amazon, albo rozwiąż testy na czas na ExamRoll.io.

Podstawy Amazon S3, mechanizmy bezpieczeństwa i wzorce deweloperskie

Amazon S3 to kanoniczny, trwały magazyn obiektów. Deweloperzy powinni projektować API w oparciu o operacje PutObject/GetObject/HeadObject oraz wieloczęściowe przesyłanie (multipart uploads: CreateMultipartUpload, UploadPart, CompleteMultipartUpload) dla dużych ładunków (payloads), a także używać pomocniczych funkcji SDK, takich jak generate_presigned_url('get_object') lub generate_presigned_post w boto3, do tymczasowego przesyłania plików przez klienta. Zabezpieczaj obiekty za pomocą szyfrowania po stronie serwera (SSE-S3, SSE-KMS poprzez PutObject z x-amz-server-side-encryption lub wymuszając domyślne szyfrowanie w buckecie za pomocą PutBucketEncryption), wymagaj TLS poprzez egzekwowanie aws:SecureTransport w politykach bucketu i blokuj przypadkowy dostęp publiczny za pomocą S3 Block Public Access oraz jawnych odmów (deny) w polityce bucketu. Częste pułapki to jawne odmowy (explicit deny) w IAM mające pierwszeństwo przed uprawnieniami roli, presigned URLs dziedziczące uprawnienia osoby podpisującej, ale wciąż podlegające politykom bucketu i politykom punktów końcowych VPC, oraz błędne konfiguracje CORS podczas przesyłania plików bezpośrednio z przeglądarki (skonfiguruj za pomocą PutBucketCors). Używaj reguł cyklu życia (PutBucketLifecycleConfiguration) do przenoszenia obiektów do Intelligent-Tiering, GLACIER lub wygaszania nieaktualnych wersji, a także włącz wersjonowanie (PutBucketVersioning) zanim zaczniesz polegać na regułach dla nieaktualnych wersji. Do celów audytu i odzyskiwania danych włącz logi dostępu serwera S3 lub użyj S3 Access Points, a także używaj Object Lock z trybem retencji (retention mode) w celu zapewnienia niezmienności danych. Projektuj architekturę z uwzględnieniem ostatecznej spójności (eventual consistency) dla operacji PUT nadpisujących nowe klucze (spójność typu read-after-write jest gwarantowana dla operacji PUT na nowych obiektach, ale aktualizacje istniejących kluczy mogą wykazywać ostateczną spójność w skrajnych przypadkach).

Zaawansowane S3: Object Lambda, przepływy z presigned URLs, polityki i niuanse cyklu życia

S3 Object Lambda pozwala transformować odpowiedzi GetObject poprzez dołączenie funkcji Lambda do punktu dostępowego S3 Object Lambda Access Point; funkcja Lambda otrzymuje GetObjectContext i musi wywołać WriteGetObjectResponse (przez API S3 Object Lambda/Control), aby zwrócić przetworzone bajty. Typowe wzorce to zmiana rozmiaru obrazów w locie, redakcja danych lub konwersja formatu bez duplikowania obiektów. Do przesyłania plików z przeglądarki generuj presigned POSTs (generate_presigned_post w SDK) z ograniczoną polityką (content-length-range, prefiks klucza), aby uniknąć nadużyć. Polityki bucketów oraz polityki punktów końcowych VPC Gateway/Interface są potężnym narzędziem do ograniczania dostępu: preferuj jawne zezwolenia (explicit allow) z warunkami na zasobach (aws:SourceVpce, ostrożnie z aws:Referer) i unikaj otwartych principalów z wildcardem. Pułapki związane z cyklem życia obejmują przejścia dla bucketów z włączonym wersjonowaniem — konfiguruj jawnie noncurrentVersionTransitions i noncurrentVersionExpiration — oraz abort-incomplete-multipart-upload, aby uniknąć wycieków przestrzeni dyskowej. Wymuszając szyfrowanie w tranzycie, wymagaj x-amz-server-side-encryption lub użyj PutBucketPolicy, aby odrzucać żądania bez TLS. Aby zapewnić niezmienność danych w celach zgodności (compliance), włącz Object Lock przed przesłaniem obiektów. Gdy wymagane jest programistyczne egzekwowanie reguł, połącz zdarzenia S3 (SNS, EventBridge) z funkcjami Lambda, aby stosować tagi lub przeprowadzać walidację po przesłaniu pliku.

CloudFront, strategie cachowania i przetwarzanie na krawędzi (Lambda@Edge vs CloudFront Functions)

CloudFront przyspiesza globalne dostarczanie treści i chroni serwery źródłowe (origins). Dla źródeł S3 preferuj Origin Access Control (OAC) z Sigv4 zamiast przestarzałego Origin Access Identity, aby podpisywać żądania do źródła i blokować bezpośredni publiczny dostęp do S3. Dostrajanie zachowania pamięci podręcznej (cache behavior) wykorzystuje Cache-Control/Expires, przekazywanie nagłówka Authorization oraz klucze cache oparte na query stringach/ciasteczkach; preferuj whitelisting kluczy cache lub użycie Cache Policy & Origin Request Policy, aby zmniejszyć fragmentację pamięci podręcznej. Dla treści prywatnych używaj podpisanych adresów URL (signed URLs) lub podpisanych ciasteczek (signed cookies) CloudFront (tworzonych za pomocą cloudfront.create_signer lub pomocniczych funkcji SDK). Używaj CloudFront Functions do lekkich, submilisekundowych manipulacji (na etapie viewer request/response), a Lambda@Edge do cięższej logiki wymagającej środowisk uruchomieniowych Node/Python i operacji na etapie origin-request lub origin-response; pamiętaj, że funkcje Lambda@Edge są wdrażane z regionu us-east-1, co wiąże się z możliwością zimnego startu (cold start) i opóźnieniami w replikacji regionalnej. Unieważnianie (invalidation) wiąże się z kosztami i opóźnieniami — preferuj wersjonowanie kluczy obiektów (wdrażaj nowe nazwy plików lub dodawaj wersję w query stringu), aby unikać unieważnień. Instrumentuj CloudFront za pomocą logów w czasie rzeczywistym i metryk CloudWatch w celu wykrywania anomalii niemal w czasie rzeczywistym, oraz wyzwalaj funkcje Lambda do automatycznych odpowiedzi. Częste pułapki to przekazywanie zbyt wielu nagłówków/ciasteczek, które „psują” cache, oraz zakładanie natychmiastowej propagacji unieważnień.

Współdzielone systemy plików: kryteria wyboru EFS i FSx, montowanie i pułapki

Wybierz EFS dla zgodnych z POSIX, współbieżnie montowanych systemów plików NFSv4.1 na klientach Linux; wybierz warianty FSx, gdy potrzebujesz funkcji SMB/Windows lub wysokowydajnego Lustre. EFS obsługuje szyfrowanie w spoczynku (at rest) za pomocą KMS, szyfrowanie w tranzycie (in transit) przy użyciu opcji montowania TLS oraz punkty dostępu (access points) do mapowania UID/GID per aplikacja. Montuj za pomocą amazon-efs-utils (

undefined

) lub klienta NFS dla obciążeń o wysokiej przepustowości. Wybierz tryb wydajności generalPurpose vs maxIO oraz tryb przepustowości bursting vs provisioned w oparciu o wzorce przepustowości/IOPS. FSx for Windows integruje się z Active Directory i udostępnia zasoby SMB z listami ACL NTFS, przestrzeniami nazw DFS i natywną semantyką Windows — montuj za pomocą

undefined

lub przez klientów EC2 Windows; częste pułapki to złożoność dołączania do AD i rozwiązywanie nazw DNS. FSx for Lustre jest idealny dla obliczeń o wysokiej wydajności (HPC) i może transparentnie łączyć się z S3 za pomocą zadań repozytorium danych (data repository tasks) do importu/eksportu zestawów danych. Pułapki sieciowe: otwórz porty NFS/SMB w grupach bezpieczeństwa (security groups), używaj celów montowania (mount targets) w każdej strefie dostępności (AZ) dla EFS i upewnij się, że polityki IAM nie są używane do ograniczania dostępu na poziomie NFS — punkty egzekwowania to uprawnienia POSIX i grupy bezpieczeństwa. Do tworzenia kopii zapasowych preferuj zautomatyzowane migawki (EFS Backup, migawki FSx) i regularnie testuj odtwarzanie.

Problem praktyczny: Scenariusz użycia

Scenariusz: Firma AcmeAnalytics utrzymuje publiczny, statyczny pulpit nawigacyjny hostowany w buckecie S3 i serwowany globalnie przez dystrybucję CloudFront. Zespół inżynierów musi serwować prywatne pliki danych, wykonywać konwersję CSV na JSON w locie dla niektórych obiektów i zapewnić, że nowe buildy pulpitu unieważniają pamięć podręczną przy minimalnych kosztach.

Wyzwanie: Zaimplementuj bezpieczne dostarczanie prywatnych obiektów, dynamiczną transformację bez duplikowania danych oraz niskokosztową strategię aktualizacji pamięci podręcznej.

Zalecane podejście:

  1. Utwórz bucket S3 z PutBucketEncryption (SSE-KMS) i PutBucketPolicy, aby odrzucać połączenia inne niż TLS i zezwalać na dostęp tylko z CloudFront Origin Access Control (utwórz OAC i dołącz do dystrybucji); użyj PutBucketVersioning, aby włączyć wersjonowanie.
  2. Skonfiguruj S3 Object Lambda Access Point; zaimplementuj funkcję Lambda, która obsługuje GetObjectContext, pobiera oryginał za pomocą S3 GetObject, transformuje CSV do JSON w pamięci i zwraca wynik za pomocą

undefined

. 3. Skonfiguruj zachowania pamięci podręcznej (cache behaviors) CloudFront: kieruj ruch /private/* do S3 Object Lambda Access Point (jako origin), ustaw Cache Policy, która buforuje w oparciu o nagłówek Accept (jeśli to konieczne), i włącz minimalne wartości TTL; dla zasobów pulpitu używaj wersjonowanych nazw plików, aby unikać unieważnień. 4. W przypadku rzadkich, koniecznych unieważnień, wywołaj

undefined

z CI po wdrożeniu; w przeciwnym razie, przy rutynowych zmianach, przesyłaj zasoby z hashem zawartości w nazwie pliku, aby ominąć koszty unieważnienia.

Uzasadnienie: Ograniczenie dostępu do S3 tylko dla CloudFront za pomocą OAC i wymuszenie SSE-KMS zabezpiecza dane w tranzycie i w spoczynku. S3 Object Lambda zapewnia transformację w locie bez duplikowania obiektów, a używanie wersjonowania obiektów lub nazw plików z hashem zawartości pozwala unikać kosztownych unieważnień, zachowując jednocześnie wydajność pamięci podręcznej.


Monitorowanie · Wszystkie domeny · Bazy danych i buforowanie (RDS

Przećwicz te pytania → · Testy na czas na ExamRoll.io →

Pass the whole exam — not just this question

You found this answer. Get every verified question and explanation in one place, and save hours of prep. Free to start.

Zdaj egzamin →

Przeglądaj Amazon →

Related guides

Dostęp all-in-one

Jedna subskrypcja. Każdy egzamin.

Każdy plan odblokowuje nieograniczone wyszukiwanie odpowiedzi, testy praktyczne, wyjaśnienia AI i pełną bibliotekę zasobów — w ponad 20 językach.

Miesięczny
24.87
Just €0.83/day
Wszystko w cenie:
  • Nieograniczone wyszukiwanie odpowiedzi
  • Nieograniczone testy praktyczne
  • Wyjaśnienia wspomagane AI
  • Pełna biblioteka zasobów
  • Ponad 20 języków
  • Cotygodniowe aktualizacje treści
  • Nagrody i polecenia
  • Priorytetowe wsparcie
Rozpocznij bezpłatny okres próbny

Karta kredytowa nie jest wymagana*

Najlepsza wartość
12 miesięcy
179.87
Just €0.49/daySave 40%
Wszystko w cenie:
  • Nieograniczone wyszukiwanie odpowiedzi
  • Nieograniczone testy praktyczne
  • Wyjaśnienia wspomagane AI
  • Pełna biblioteka zasobów
  • Ponad 20 języków
  • Cotygodniowe aktualizacje treści
  • Nagrody i polecenia
  • Priorytetowe wsparcie
Rozpocznij bezpłatny okres próbny

Karta kredytowa nie jest wymagana*

✓ Plan darmowy w zestawie · ✓ Anuluj w dowolnym momencie · ✓ Wszystkie plany odblokowują pełny produkt