Amazon DVA-C02: 스토리지, Amazon S3, CloudFront 및 파일 시스템 (EFS, FSx) — 학습 가이드

다음의 일부입니다: AWS Developer Associate DVA-C02 — 학습 가이드. 검증된 답안으로 연습하기: Amazon 시험 허브, 또는 다음에서 시간 제한 모의고사 풀기: ExamRoll.io.

Amazon S3 기본, 보안 제어 및 개발자 패턴

Amazon S3는 표준적인 내구성 있는 객체 스토어입니다. 개발자는 PutObject/GetObject/HeadObject 및 대용량 페이로드를 위한 멀티파트 업로드(CreateMultipartUpload, UploadPart, CompleteMultipartUpload)를 중심으로 API를 설계해야 하며, 임시 클라이언트 업로드를 위해 boto3의 generate_presigned_url(‘get_object’) 또는 generate_presigned_post와 같은 SDK 헬퍼를 사용해야 합니다. 서버 측 암호화(SSE-S3, x-amz-server-side-encryption을 사용한 PutObject를 통한 SSE-KMS 또는 PutBucketEncryption으로 버킷 기본 암호화 강제)를 사용하여 객체를 보호하고, 버킷 정책에서 aws:SecureTransport를 강제하여 TLS를 요구하며, S3 퍼블릭 액세스 차단 및 명시적인 버킷 정책 거부(deny)로 의도치 않은 퍼블릭 액세스를 차단해야 합니다. 일반적인 함정으로는 IAM 명시적 거부가 역할 권한보다 우선 적용되는 것, 미리 서명된 URL(presigned URL)이 서명자의 권한을 상속하지만 여전히 버킷 정책 및 VPC 엔드포인트 정책의 적용을 받는 것, 그리고 브라우저에서 직접 업로드할 때 발생하는 CORS 설정 오류(PutBucketCors로 구성) 등이 있습니다. 수명 주기 규칙(PutBucketLifecycleConfiguration)을 사용하여 Intelligent-Tiering, GLACIER로 전환하거나 현재 버전이 아닌 객체(noncurrent version)를 만료시키고, 현재 버전이 아닌 객체 규칙에 의존하기 전에 버전 관리(PutBucketVersioning)를 활성화해야 합니다. 감사 및 복구를 위해 S3 서버 액세스 로그 또는 S3 Access Points를 활성화하고, 불변 보존을 위해 보존 모드와 함께 Object Lock을 사용하십시오. 새로운 키에 대한 덮어쓰기 PUT의 최종적 일관성을 고려하여 아키텍처를 설계해야 합니다(새 객체의 PUT에 대해서는 쓰기 후 읽기 일관성이 보장되지만, 기존 키에 대한 업데이트는 일부 엣지 시나리오에서 최종적 일관성을 보일 수 있습니다).

고급 S3: Object Lambda, 미리 서명된 흐름, 정책 및 수명 주기 뉘앙스

S3 Object Lambda를 사용하면 Lambda 함수를 S3 Object Lambda Access Point에 연결하여 GetObject 응답을 변환할 수 있습니다. Lambda는 GetObjectContext를 수신하고, 변환된 바이트를 반환하기 위해 (S3 Object Lambda/Control API를 통해) WriteGetObjectResponse를 호출해야 합니다. 일반적인 패턴으로는 객체를 복제하지 않고 실시간으로 이미지를 리사이징하거나, 민감 정보를 수정하거나, 형식을 변환하는 것 등이 있습니다. 브라우저 업로드의 경우, 남용을 방지하기 위해 제한된 정책(content-length-range, 키 접두사)과 함께 미리 서명된 POST(SDK의 generate_presigned_post)를 생성하십시오. 버킷 정책과 VPC 게이트웨이/인터페이스 엔드포인트 정책은 액세스를 제한하는 강력한 도구입니다. 명시적 허용(allow)과 리소스 조건(aws:SourceVpce, aws:Referer는 신중하게 사용)을 선호하고, 와일드카드 주체(principal) 사용은 피하십시오. 수명 주기 관련 주의사항으로는 버전 관리되는 버킷의 전환(noncurrentVersionTransitions 및 noncurrentVersionExpiration을 명시적으로 구성)과 스토리지 누수를 방지하기 위한 abort-incomplete-multipart-upload 설정이 있습니다. 전송 중 암호화를 강제할 때는 x-amz-server-side-encryption을 요구하거나, PutBucketPolicy를 사용하여 tls가 없는 요청을 거부하십시오. 불변성 규정 준수를 위해서는 객체를 업로드하기 전에 Object Lock을 활성화해야 합니다. 프로그래밍 방식의 강제가 필요할 경우, S3 이벤트(SNS, EventBridge)를 Lambda와 결합하여 태그를 적용하거나 업로드 후 유효성 검사를 수행하십시오.

CloudFront, 캐싱 전략 및 엣지 컴퓨팅 (Lambda@Edge vs CloudFront Functions)

CloudFront는 글로벌 전송을 가속화하고 오리진을 보호합니다. S3 오리진의 경우, 레거시 Origin Access Identity 대신 Sigv4를 사용하는 Origin Access Control(OAC)을 선호하여 오리진 요청에 서명하고 직접적인 S3 퍼블릭 액세스를 거부해야 합니다. 캐시 동작 튜닝은 Cache-Control/Expires, Authorization 헤더 전달, 쿼리 문자열/쿠키 기반 캐시 키를 사용합니다. 캐시 파편화를 줄이기 위해 캐시 키 허용 목록(whitelisting) 또는 캐시 정책(Cache Policy) 및 오리진 요청 정책(Origin Request Policy)을 사용하는 것이 좋습니다. 프라이빗 콘텐츠의 경우 CloudFront 서명된 URL 또는 서명된 쿠키(cloudfront.create_signer 또는 SDK 헬퍼를 통해 생성)를 사용하십시오. 밀리초 미만의 가벼운 조작(뷰어 요청/응답)에는 CloudFront Functions를 사용하고, Node/Python 런타임과 오리진 요청/응답 후크가 필요한 더 무거운 로직에는 Lambda@Edge를 사용하십시오. Lambda@Edge 함수는 us-east-1에서 배포되며 콜드 스타트 문제와 리전 복제 지연이 있음을 기억해야 합니다. 무효화(Invalidation)는 비용과 지연 시간이 발생하므로, 이를 피하기 위해 객체 키 버전 관리(새 파일 이름 배포 또는 쿼리 문자열 버전 추가)를 선호하십시오. 거의 실시간에 가까운 이상 탐지를 위해 실시간 로그와 CloudWatch 지표로 CloudFront를 계측하고, 자동화된 응답을 위해 Lambda를 트리거하십시오. 일반적인 함정으로는 캐시를 무효화시키는 헤더/쿠키의 과도한 전달과 무효화가 즉시 전파될 것이라고 가정하는 것 등이 있습니다.

공유 파일 시스템: EFS와 FSx 결정 기준, 마운트 및 주의사항

Linux 클라이언트 전반에 걸쳐 POSIX 호환 NFSv4.1 파일 시스템을 동시에 마운트해야 할 경우 EFS를 선택하고, SMB/Windows 기능이나 고성능 Lustre가 필요할 때는 FSx 제품군을 선택합니다. EFS는 KMS를 통한 저장 데이터 암호화, TLS 마운트 옵션을 사용한 전송 중 데이터 암호화, 애플리케이션별 UID/GID 매핑을 위한 액세스 포인트를 지원합니다. 마운트는 amazon-efs-utils (mount -t efs -o tls,accesspoint=fsap-0123456789 fs-12345678:/ /mnt)를 사용하거나, 처리량이 높은 워크로드의 경우 NFS 클라이언트를 사용합니다. 처리량/IOPS 패턴에 따라 성능 모드는 generalPurposemaxIO, 처리량 모드는 burstingprovisioned 중에서 선택합니다. FSx for Windows는 Active Directory와 통합되며 NTFS ACL, DFS 네임스페이스, 네이티브 Windows 시맨틱을 갖춘 SMB 공유를 제공합니다. net use \\fs-xxxx\share를 사용하거나 EC2 Windows 클라이언트를 통해 마운트합니다. 일반적인 문제점으로는 AD 조인 복잡성과 DNS 확인 문제가 있습니다. FSx for Lustre는 고성능 컴퓨팅에 이상적이며, 데이터 리포지토리 작업을 통해 S3와 투명하게 연결하여 데이터 세트를 가져오거나 내보낼 수 있습니다. 네트워킹 주의사항: 보안 그룹에서 NFS/SMB 포트를 열고, EFS의 경우 각 AZ에 마운트 대상을 사용하며, IAM 정책으로 NFS 수준 액세스를 제한할 수 없도록 해야 합니다. POSIX 권한과 보안 그룹이 강제 적용 지점입니다. 백업은 자동화된 스냅샷(EFS Backup, FSx 스냅샷)을 선호하며, 정기적으로 복원을 테스트해야 합니다.

실제 문제: 사용 사례 시나리오

시나리오: AcmeAnalytics는 S3 버킷에 호스팅되고 CloudFront 배포를 통해 전 세계적으로 서비스되는 고객용 정적 대시보드를 운영하고 있습니다. 엔지니어링 팀은 비공개 데이터 파일을 제공하고, 일부 객체에 대해 즉석에서 CSV를 JSON으로 변환하며, 새로운 대시보드 빌드가 최소한의 비용으로 캐시를 무효화하도록 해야 합니다.

과제: 안전한 비공개 객체 전송, 스토리지 중복 없이 동적 변환 구현, 캐시 업데이트를 위한 저비용 전략 구현.

권장 접근 방식:

  1. PutBucketEncryption(SSE-KMS) 및 PutBucketPolicy를 사용하여 S3 버킷을 생성하여 비-TLS를 거부하고 CloudFront Origin Access Control(OAC를 생성하여 배포에 연결)에서의 액세스만 허용하도록 설정합니다. PutBucketVersioning을 사용하여 버전 관리를 활성화합니다.
  2. S3 Object Lambda Access Point를 구성합니다. GetObjectContext를 처리하고, S3 GetObject을 통해 원본을 검색하며, 메모리 내에서 CSV를 JSON으로 변환하고, s3control.write_get_object_response를 사용하여 결과를 반환하는 Lambda를 구현합니다.
  3. CloudFront 캐시 동작을 구성합니다. /private/* 경로를 S3 Object Lambda Access Point(원본으로)로 라우팅하고, 필요한 경우 Accept 헤더를 기반으로 캐시하는 캐시 정책을 설정하며, 최소 TTL을 활성화합니다. 대시보드 자산의 경우 버전이 지정된 파일 이름을 사용하여 무효화를 방지합니다.
  4. 드물게 필요한 무효화의 경우, 배포 후 CI에서 cloudfront.create_invalidation(DistributionId=..., InvalidationBatch={...})를 호출합니다. 그 외의 일상적인 변경 사항의 경우, 파일 이름에 콘텐츠 해시를 포함한 자산을 업로드하여 무효화 비용을 우회합니다.

근거: OAC를 통해 S3 액세스를 CloudFront로 제한하고 SSE-KMS를 강제 적용하면 전송 중 및 저장된 데이터의 보안이 확보됩니다. S3 Object Lambda는 객체를 복제하지 않고도 즉석 변환을 제공하며, 객체 버전 관리나 콘텐츠 해시 파일 이름을 사용하면 캐시 효율성을 유지하면서 비용이 많이 드는 무효화를 피할 수 있습니다.


모니터링 · 모든 도메인 · 데이터베이스 및 캐싱 (RDS

이 문제 연습하기 → · 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.

시험 합격하기 →

Amazon 찾아보기 →

Related guides

올인원 액세스

하나의 구독. 모든 시험.

모든 플랜은 무제한 답변 검색, 모의고사, AI 해설, 전체 자료 라이브러리를 20개 이상의 언어로 잠금 해제합니다.

월간
24.87
Just €0.83/day
모든 포함:
  • 무제한 답변 검색
  • 무제한 모의고사
  • AI 기반 해설
  • 전체 자료 라이브러리
  • 20개 이상의 언어
  • 주간 콘텐츠 업데이트
  • 보상 및 추천
  • 우선 지원
무료 체험 시작

신용카드 필요 없음*

최고의 가치
12개월
179.87
Just €0.49/daySave 40%
모든 포함:
  • 무제한 답변 검색
  • 무제한 모의고사
  • AI 기반 해설
  • 전체 자료 라이브러리
  • 20개 이상의 언어
  • 주간 콘텐츠 업데이트
  • 보상 및 추천
  • 우선 지원
무료 체험 시작

신용카드 필요 없음*

✓ 무료 플랜 포함 · ✓ 언제든지 취소 가능 · ✓ 모든 플랜은 전체 제품을 잠금 해제합니다