Amazon DVA-C02: Opslag, Amazon S3, CloudFront & Bestandssystemen (EFS, FSx) — Studiegids
Onderdeel van de AWS Developer Associate DVA-C02 — Studiegids. Oefen met geverifieerde antwoorden in het Amazon-examencentrum, of doe getimede oefentests op ExamRoll.io.
Basisprincipes, beveiligingsmaatregelen en ontwikkelpatronen van Amazon S3
Amazon S3 is de standaard voor duurzame object storage. Ontwikkelaars zouden API’s moeten ontwerpen rondom PutObject/GetObject/HeadObject en multipart uploads (CreateMultipartUpload, UploadPart, CompleteMultipartUpload) voor grote payloads, en SDK-helpers zoals boto3’s generate_presigned_url(‘get_object’) of generate_presigned_post gebruiken voor tijdelijke uploads door clients. Beveilig objecten met server-side encryption (SSE-S3, SSE-KMS via PutObject met x-amz-server-side-encryption of door standaard bucket-encryptie af te dwingen met PutBucketEncryption), vereis TLS door aws:SecureTransport af te dwingen in bucket policies, en blokkeer onbedoelde publieke toegang met S3 Block Public Access en expliciete denies in bucket policies. Veelvoorkomende valkuilen zijn IAM expliciete denies die voorrang hebben op role permissions, presigned URL’s die de privileges van de ondertekenaar erven maar nog steeds onderhevig zijn aan bucket policies en VPC endpoint policies, en CORS-misconfiguraties bij het direct uploaden vanuit browsers (configureer met PutBucketCors). Gebruik lifecycle-regels (PutBucketLifecycleConfiguration) voor de transitie naar Intelligent-Tiering, GLACIER, of om niet-huidige versies te laten verlopen, en activeer versioning (PutBucketVersioning) voordat je vertrouwt op regels voor niet-huidige versies. Voor audit en herstel, activeer S3 server access logs of S3 Access Points, en gebruik Object Lock met een retentiemodus voor onveranderlijke retentie. Ontwerp met eventual consistency in gedachten voor overschrijvende PUTs naar nieuwe keys (read-after-write is gegarandeerd voor een PUT van nieuwe objecten, maar updates van bestaande keys kunnen in edge-scenario’s eventual consistency vertonen).
Geavanceerde S3: Object Lambda, presigned flows, policies en lifecycle-nuances
S3 Object Lambda stelt je in staat om GetObject-responses te transformeren door een Lambda-functie te koppelen aan een S3 Object Lambda Access Point; de Lambda ontvangt een GetObjectContext en moet WriteGetObjectResponse aanroepen (via de S3 Object Lambda/Control API) om getransformeerde bytes terug te sturen. Typische patronen zijn on-the-fly afbeeldingen schalen, redigeren of formaatconversie zonder objecten te dupliceren. Voor uploads vanuit de browser, genereer presigned POSTs (generate_presigned_post in SDK’s) met een beperkte policy (content-length-range, key prefix) om misbruik te voorkomen. Bucket policies en VPC Gateway/Interface endpoint policies zijn krachtig voor het beperken van toegang: geef de voorkeur aan expliciete allow met resource-condities (aws:SourceVpce, aws:Referer met voorzichtigheid) en vermijd open wildcard principals. Valkuilen bij lifecycle-regels zijn onder andere transities voor buckets met versioning—configureer noncurrentVersionTransitions en noncurrentVersionExpiration expliciet—en abort-incomplete-multipart-upload om opslaglekken te voorkomen. Bij het afdwingen van encryptie in-transit, vereis x-amz-server-side-encryption of gebruik PutBucketPolicy om verzoeken zonder tls te weigeren. Voor onveranderlijke compliance, activeer Object Lock voordat je objecten uploadt. Wanneer programmatische handhaving vereist is, combineer S3-events (SNS, EventBridge) met Lambda om tags toe te passen of validatie na het uploaden uit te voeren.
CloudFront, cachingstrategieën en edge compute (Lambda@Edge vs CloudFront Functions)
CloudFront versnelt wereldwijde levering en beschermt origins. Voor S3 origins, geef de voorkeur aan Origin Access Control (OAC) met Sigv4 boven de verouderde Origin Access Identity om origin-requests te ondertekenen en directe publieke toegang tot S3 te weigeren. Het afstemmen van cache-gedrag gebeurt met Cache-Control/Expires, het doorsturen van de Authorization-header, en op query-strings/cookies gebaseerde cache keys; geef de voorkeur aan het whitelisten van cache keys of een Cache Policy & Origin Request Policy om cachefragmentatie te verminderen. Voor private content, gebruik CloudFront signed URL’s of signed cookies (aan te maken via cloudfront.create_signer of SDK-helpers). Gebruik CloudFront Functions voor lichtgewicht manipulaties van minder dan een milliseconde (viewer request/response) en Lambda@Edge voor zwaardere logica die Node/Python-runtimes en origin-request of origin-response hooks vereist; onthoud dat Lambda@Edge-functies worden geïmplementeerd vanuit us-east-1 en implicaties hebben voor cold starts en regionale replicatievertraging. Invalidation brengt kosten en latency met zich mee—geef de voorkeur aan versioning van object keys (implementeer nieuwe bestandsnamen of voeg een query-string versie toe) om invalidations te vermijden. Instrumenteer CloudFront met real-time logs en CloudWatch-metrics voor bijna real-time anomaliedetectie, en trigger Lambda voor geautomatiseerde reacties. Veelvoorkomende valkuilen zijn het te veel doorsturen van headers/cookies die de cache ongeldig maken en ervan uitgaan dat invalidation onmiddellijk wordt doorgevoerd.
Gedeelde bestandssystemen: EFS en FSx beslissingscriteria, mounts en valkuilen
Kies EFS voor POSIX-compatibele, gelijktijdig gemounte NFSv4.1-bestandssystemen voor Linux-clients; kies FSx-varianten wanneer u SMB/Windows-functionaliteiten of high-performance Lustre nodig heeft. EFS ondersteunt encryptie ‘at rest’ via KMS, encryptie ‘in transit’ met de TLS-mountoptie, en access points voor per-applicatie UID/GID-mapping. Mount met amazon-efs-utils (
undefined
) of de NFS-client voor workloads met een hoge doorvoersnelheid. Selecteer de performance-modus generalPurpose versus maxIO en de throughput-modus bursting versus provisioned op basis van doorvoer/IOPS-patronen. FSx for Windows integreert met Active Directory en stelt SMB-shares beschikbaar met NTFS ACL’s, DFS-namespaces en native Windows-semantiek—mount met
undefined
of via EC2 Windows-clients; veelvoorkomende valkuilen zijn de complexiteit van het joinen van AD en DNS-resolutie. FSx for Lustre is ideaal voor high-performance compute en kan transparant worden gekoppeld aan S3 via ‘data repository tasks’ om datasets te importeren/exporteren. Netwerk-addertjes onder het gras: open NFS/SMB-poorten in security groups, gebruik mount targets in elke AZ voor EFS, en zorg ervoor dat IAM-policies niet kunnen worden gebruikt om toegang op NFS-niveau te beperken—POSIX-permissies en security groups zijn de handhavingspunten. Geef voor back-ups de voorkeur aan geautomatiseerde snapshots (EFS Backup, FSx snapshots) en test het terugzetten regelmatig.
Praktijkprobleem: Gebruiksscenario
Scenario: AcmeAnalytics heeft een klantgericht statisch dashboard dat wordt gehost in een S3-bucket en wereldwijd wordt geserveerd via een CloudFront-distributie. Het engineeringteam moet private databestanden serveren, voor sommige objecten on-the-fly CSV-naar-JSON-conversies uitvoeren en ervoor zorgen dat nieuwe dashboard-builds caches ongeldig maken tegen minimale kosten.
Uitdaging: Implementeer de veilige levering van private objecten, dynamische transformatie zonder opslag te dupliceren, en een goedkope strategie voor cache-updates.
Aanbevolen aanpak:
- Maak een S3-bucket met
undefined
(SSE-KMS) en een
undefined
om non-TLS te weigeren en toegang alleen toe te staan vanaf de CloudFront Origin Access Control (maak een OAC aan en koppel deze aan de distributie); gebruik
undefined
om versioning in te schakelen. 2. Configureer een S3 Object Lambda Access Point; implementeer een Lambda die de
undefined
afhandelt, het origineel ophaalt via S3
undefined
, CSV naar JSON in-memory transformeert en het resultaat retourneert met
undefined
. 3. Configureer CloudFront cache behaviors: routeer
undefined
naar de S3 Object Lambda Access Point (als een origin), stel een Cache Policy in die, indien nodig, cachet op basis van de Accept-header, en schakel minimale TTL’s in; gebruik voor dashboard-assets bestandsnamen met versienummers om invalidations te vermijden. 4. Roep voor incidentele, noodzakelijke invalidations
undefined
aan vanuit CI na een deploy; upload voor routinewijzigingen assets met een content-hash in de bestandsnaam om invalidation-kosten te omzeilen.
Redenatie: Het beperken van S3-toegang tot CloudFront via OAC en het afdwingen van SSE-KMS beveiligt data ‘in-flight’ en ‘at-rest’. S3 Object Lambda biedt on-the-fly transformatie zonder objecten te dupliceren, en het gebruik van object-versioning of bestandsnamen met content-hash vermijdt dure invalidations terwijl de cache-efficiëntie behouden blijft.
← Monitoring · Alle domeinen · Databases →
Oefen deze vragen → · Getimede oefening op 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.
Slaag voor je examen →