[AWS SAA] S3 총정리

시훈·2025년 4월 10일

AWS SAA

목록 보기
18/43

Amazon S3(Simple Storage Service)는 AWS에서 가장 기본적이면서도 핵심적인 객체 스토리지 서비스이다. 이 글에서는 S3의 구조, 기능, 보안, 스토리지 클래스까지 정리하고, 단골 출제 내용인만큼, AWS SAA 시험을 대비하는 주요 포인트도 정리해본다.


🔹 1. S3란?

  • 무한 확장 가능한 객체 스토리지 서비스
  • 다양한 산업의 백업, 복원, 정적 웹사이트 호스팅, 빅데이터 분석 등에서 사용
  • 데이터는 버킷(Bucket) 에 저장되며, 각 데이터는 객체(Object) 로 불림

📁 2. S3 구조: Buckets & Objects

📦 Buckets

  • 상위 디렉토리처럼 동작하며, 리전 단위로 생성
  • 버킷 이름은 전 세계적으로 유일해야 함
  • 버킷 네이밍 규칙:
    • 대문자 ❌
    • 밑줄(_) ❌
    • 3~63자 길이
    • 숫자 또는 소문자로 시작
    • IP 형태 ❌

📄 Objects

  • 각 객체는 Key(전체 경로) 를 가지며, 접두사 + 파일명 형식
  • 예: s3://my-bucket/images/2024/profile.png
  • 최대 크기: 5TB
  • 5GB 초과 시 멀티파트 업로드 필수
  • 객체는 다음 정보를 가질 수 있음:
    • Value (파일 데이터)
    • Metadata (시스템/사용자 지정 키-값 쌍)
    • Tags (최대 10개)
    • Version ID (버전 관리가 켜진 경우)

🔄 3. Versioning (버전 관리)

  • 버킷 단위로 설정, 기본은 비활성화 상태
  • 동일한 키에 덮어쓰면 새로운 버전이 생성됨
  • 의도치 않은 삭제 방지, 이전 버전 복원 가능
  • 삭제 시: 삭제 마커 생성 → 마커 제거로 복구 가능
  • 비활성화 전 객체는 null 버전 ID 보유

♻️ 4. 수명주기 정책 (Lifecycle Policy)

  • 객체의 수명 주기를 자동화하여 비용 최적화
  • 예: 일정 기간 후 S3 Standard → S3 IA → Glacier 이동

✅ 구성 요소

  • Transition: 일정 시간 후 다른 스토리지 클래스로 이동
  • Expiration: 일정 기간 후 객체 자동 삭제
  • NoncurrentVersionExpiration: 이전 버전 자동 삭제
  • AbortIncompleteMultipartUpload: 미완성 멀티파트 업로드 자동 정리

💡 사용 예시

  • 업로드 후 30일 → IA, 60일 → Glacier, 365일 → 삭제
  • 백업 정책, 로그 정리에 매우 유용

🔐 5. 암호화 옵션

서버 측 암호화 (SSE)

  • SSE-S3: AWS 관리 키, AES-256 사용

  • SSE-KMS: AWS KMS 키 사용 + 감사 로그

  • SSE-C: 고객 제공 키로 암호화 (HTTPS 필수, 키 저장 안 함)

클라이언트 측 암호화

  • 사용자가 직접 암호화 및 복호화 처리

전송 중 암호화

  • HTTPS 사용 권장, SSL/TLS 기반
  • SSE-C의 경우 HTTPS 필수

🔒 6. 보안 구성 요소

사용자 기반

  • IAM 정책을 통해 S3 API 권한 설정

리소스 기반

  • 버킷 정책 (JSON)

    • Resource / Action / Effect / Principal
    • 예: 공개 접근 허용, 교차 계정 공유, 강제 암호화
  • ACL (Access Control List)

    • 객체 / 버킷 단위의 세부 권한
    • 일반적으로 비활성화 권장

🔥 퍼블릭 액세스 차단

  • ACL 기반 / 버킷 정책 기반 모두 차단 가능
  • 교차 계정 및 퍼블릭 접근 방지 목적

🛡️ 7. 감사 및 네트워크 보안

  • CloudTrail: S3 API 호출 기록

  • Access Logs: 액세스 기록을 다른 S3 버킷에 저장

  • VPC Endpoint: 인터넷 없이 프라이빗 네트워크에서 S3 접근

  • MFA 삭제: 다중 인증을 통해 삭제 제한

  • Pre-Signed URL: 유효기간 있는 일회용 객체 접근 링크


🌐 8. 정적 웹사이트 호스팅

  • 버킷을 웹 호스팅 용도로 사용
  • URL 형식: http://<bucket>.s3-website-<region>.amazonaws.com
  • 403 오류 시: 퍼블릭 읽기 권한과 버킷 정책 확인 필수

🔀 9. 복제 (Replication)

  • CRR (Cross-Region Replication): 서로 다른 리전 간 복제
  • SRR (Same-Region Replication): 동일 리전 내 복제
  • 조건:
    • 양쪽 모두 버전 관리 ON
    • IAM 권한 필수 (읽기, 쓰기)
    • 복제는 비동기 방식
  • S3 Batch Replication: 기존 객체 복제 시 사용
  • 삭제 마커 복제는 선택적 설정
  • 복제 체이닝 불가 (A -> B -> C 불가)

📦 10. 스토리지 클래스

✅ S3 Standard

  • 일반적 사용 (99.99% 가용성, 짧은 지연시간)

📉 S3 Standard-IA (Infrequent Access)

  • 자주 접근하지 않는 데이터 (99.9%)
  • 백업, DR에 적합, 검색 요금 발생

🧩 S3 One Zone-IA

  • 단일 AZ 저장 (가용성 99.5%)
  • 재생성 가능 데이터 백업용

🧊 Glacier 계열 (아카이빙)

  • Glacier Instant Retrieval: 밀리초급 접근, 90일 최소 보관
  • Glacier Flexible Retrieval:
    • Expedited (15분), Standard (35시간), Bulk (5~12시간)
  • Glacier Deep Archive:
    • Standard (12시간), Bulk (48시간), 최소 180일 보관

🤖 Intelligent-Tiering

  • 사용 패턴에 따라 자동 티어 전환
  • 자동 티어:
    • Frequent, Infrequent (30일 미접근), Archive (90일), Deep Archive (180일)
  • 검색 비용 없음, 관리 편리

🔍 11. CORS 설정

  • Cross-Origin Resource Sharing
  • 클라이언트가 다른 출처의 S3 버킷에 요청할 경우 CORS 헤더 필수
  • 허용 예시:
    • 특정 도메인만 (Access-Control-Allow-Origin)
    • 모든 도메인 허용()

📖 12. 일관성 모델 (Consistency)

2020년 12월부터 Amazon S3는 강력한 일관성 모델을 보장합니다.

  • PUT / DELETE 직후에도 최신 데이터 조회 가능
  • 목록 요청 시 변경 즉시 반영
  • 성능 저하나 추가 비용 없이 제공

🎯 SAA 시험 대비 포인트

  • 버킷 네이밍 규칙, 키 구조 정확히 숙지
  • SSE-S3 vs SSE-KMS vs SSE-C 비교 🔐
  • Pre-Signed URL, MFA Delete 활용 시점
  • S3 복제 조건 (CRR, SRR + 권한, 버전 관리)
  • 다양한 스토리지 클래스 특징 및 최소 보관 기간 💡
  • CORS와 정적 웹사이트 호스팅 구성 방식
  • 강력한 일관성 모델의 적용 시점과 특징
profile
Backend Developer / Cloud Engineer

0개의 댓글