AWS Storage - S3 클래스/보안/생명주기

이재영·2025년 4월 25일

S3 (Simple Storage Service) 란?

무제한 확장 가능한 객체 스토리지
파일, 이미지, 로그, 백업 등 모든 형태의 데이터를 객체(Object) 단위로 저장할 수 있다.


📦 S3 스토리지 클래스별 비교

스토리지 클래스가용성최소 저장 기간검색 속도주요 사용 사례시험 포인트
S3 Standard99.99%없음즉시자주 접근하는 데이터기본값
S3 Standard-IA99.9%30일즉시백업, DR검색 비용 있음
S3 One Zone-IA99.5%30일즉시2차 백업, 재생성 가능 데이터단일 AZ, 저비용
S3 Glacier Instant Retrieval99.9%90일밀리초콜드 데이터, 빠른 액세스빠름 + 저렴
S3 Glacier Flexible Retrieval99.99%90일1~12시간장기 보관3가지 티어: Expedited, Standard, Bulk
S3 Glacier Deep Archive99.99%180일12~48시간가장 저렴한 장기 보관2가지 티어: Standard, Bulk
S3 Intelligent-Tiering99.9%일부 티어는 최소 저장 기간 있음자동무작위 액세스 패턴 데이터검색 비용 없음, 자동 전환

⚙️ 적합한 클래스 상황 예시

질문 유형정답 방향
“자주 접근하지 않지만 빠르게 검색하고 싶다”Glacier Instant Retrieval
“아카이빙 + 가장 저렴 + 장기 저장”Glacier Deep Archive
“객체를 얼마나 자주 읽을지 모른다”S3 Intelligent-Tiering
“AZ 장애 시 데이터 복구 어려움”One Zone-IA (단일 AZ)
“자동 티어링 + 검색 비용 없이 관리하고 싶다” / “자주 액세스 하는 객체에 대한 즉각적 가용성”Intelligent-Tiering

🔐 S3 보안 정책

🔸 IAM 정책 (User-based Policy) - 액세스 제어

항목설명
대상IAM 사용자 / IAM 역할
적용 범위전체 AWS 리소스 중 S3 포함
구성Allow / Deny + Action + Resource
특징주체에 권한을 부여하는 정책

🧠 포인트:

  • EC2에서 S3에 접근할 땐 IAM 사용자 X → 역할(EC2 Role) 사용

🔸 S3 버킷 정책 (Bucket Policy) - 액세스 제어

항목설명
대상S3 버킷 단위
적용 방식리소스 기반 (버킷에 부착)
형식JSON 문서 (Principal, Effect, Action, Resource)
기능교차 계정 액세스, 퍼블릭 액세스 허용 등

🧠 포인트:

  • Principal: "*"모든 사용자 허용 = Public (퍼블릭)
  • Deny가 포함되면 다른 정책이 허용해도 무조건 거부
  • 다른 계정에서 접근하려면 버킷 정책에서 교차 계정 허용 설정 필요

🔸 객체 ACL (Access Control List) - 액세스 제어

항목설명
대상개별 객체나 버킷
역할객체 레벨에서 세밀한 권한 제어
특징이전 방식, AWS에서는 버킷 정책 선호
상태비활성화 가능 (ACL 비활성화 옵션 제공)

*🧠 포인트:*

  • S3는 보안 정책으로 ACL보다 버킷 정책과 IAM 정책을 권장
  • ACL은 시험에서 “사용하지 않는 것이 Best Practice”로 나올 수 있음

🔸 S3 Block Public Access - 액세스 제어

항목설명
적용 대상버킷 또는 전체 계정
역할퍼블릭 정책/ACL이 있더라도 강제로 차단
목적실수로 퍼블릭 설정된 버킷을 차단하여 데이터 유출 방지

*🧠 포인트:*

  • 퍼블릭 버킷 정책이 있어도 접근 안 됨 → Block Public Access 때문
  • “S3 객체가 퍼블릭이어야 하는데 접근 불가하다” → 이 설정 확인해야 함
  • 계정 단위로도 설정 가능 (보안 강화)

🔸 Pre-Signed URL - 액세스 제어

항목설명
생성자IAM 권한을 가진 사용자
사용 목적비공개 객체를 제한된 시간 동안 안전하게 접근할 수 있게 함
특징URL에 서명이 포함되어 있어 임시 액세스 가능

*🧠 포인트:*

  • 다운로드 링크나 일회성 액세스 제공 시 사용
  • IAM 권한 없이도 사용할 수 있지만, URL 생성자는 권한이 있어야 함

🔸 SSE (Server-Side Encryption) - 암호화

암호화 방식설명특징
SSE-S3S3 관리 키 사용기본 옵션, 간편함
SSE-KMSKMS 키 사용키 제어, 감사 로그 가능
SSE-C고객 제공 키 사용키를 직접 제공, 보안 관리 복잡

*🧠 포인트:*

  • KMS 키 정책이 잘못되면 AccessDenied 오류 발생
  • 감사 로그가 필요한 경우 → SSE-KMS 선택

📊 S3 보안 관련 구성 우선순위

명시적 거부(Deny) > 명시적 허용(Allow) > 기본 거부(Implicit Deny)

  • 기본 거부(Implicit Deny)” = 아무 권한이 없으면, 기본적으로 AWS는 접근을 거부함
  • 권한은 누적되지 않음!

🔸 성능 최적화 및 수명주기

✅ 성능 최적화

기본 성능 한도접두사(Prefix)당🚀 3,500 PUT/COPY/DELETE/POST🚀 5,500 GET/HEAD 요청/초
접두사(prefix)객체 키의 앞부분 (예: folder1/sub1/file.jpg → 접두사는 folder1/sub1/)
성능 확장 방법접두사 수를 늘리면 수평 확장 가능 (접두사별로 처리량 할당됨)
멀티파트 업로드 사용 조건권장: 100MB 이상필수: 5GB 이상
멀티파트 업로드 장점병렬 업로드 → 전송 속도 향상부분 실패 복구 가능
S3 Transfer Acceleration엣지 로케이션을 활용한 글로벌 업로드 최적화멀티파트 업로드와 호환
Transfer Acceleration 활용 예미국 → 서울 리전 S3로 대용량 파일 업로드 시 사용
바이트 범위 요청 (Range Fetches)병렬 다운로드 최적화, 파일 일부만 빠르게 가져올 수 있음
Range Fetches 사용 예대용량 로그 파일의 헤더 정보만 빠르게 조회 (ex: 처음 50바이트)
최적의 업로드 전략멀티파트 + Transfer Acceleration 조합
최적의 다운로드 전략바이트 범위 요청 + 병렬 처리
대용량 객체 최대 크기최대 5TB (단, 반드시 멀티파트 업로드 사용)

✅ 수명주기 (Lifecycle) 정책

  • S3 객체의 스토리지 클래스 전환 or 자동 삭제를 일정 기간 경과 후 자동 수행하는 기능

    🔸 주요기능

    🎯 Transition (전환)객체를 일정 기간 후 더 저렴한 스토리지 클래스로 전환
    🗑 Expiration (만료/삭제)객체를 일정 기간 후 자동으로 삭제

    🔸 지원되는 전환 대상 스토리지 클래스

    대상 스토리지 클래스조건
    Standard-IA최소 30일 보관 권장
    One Zone-IA단일 AZ, 비용 저렴, 최소 30일 권장
    Glacier Flexible Retrieval최소 90일
    Glacier Deep Archive최소 180일

    🔸 적용 방식

    적용 기준설명
    Prefix 기반logs/, images/ 등 경로 지정 가능
    태그(Tag) 기반{"type": "archive"} 같은 특정 태그 객체에만

    📝 요약

    자동 스토리지 전환비용 최적화 목적
    자동 삭제장기 데이터 정리
    최소 보관 기간IA: 30일 / Glacier: 90일 / Deep Archive: 180일
    버전 객체 관리이전 버전 삭제 & 삭제 마커 정리 가능
    정리 기능미완성 멀티파트 업로드도 정리 가능
    적용 대상접두사 or 태그 필터링 가능

    ‼️ 주의 ( S3 Storage Class Analysis와 구분 )

    ⏳ 전환 수행 주체S3 수명 주기(Lifecycle Policy)객체를 일정 시간 후에 자동으로 다른 스토리지 클래스로 전환해 줌 (예: 30일 후 IA로 이동)
    🧠 전환 시점 추천 도구S3 Storage Class Analysis어떤 객체가 언제 IA 또는 Glacier로 전환되면 좋을지 분석해 주는 도구 (접근 패턴 기반)

🎯 실생활 예시

• 웹사이트 이미지 호스팅
• 백업/DR 저장소
• 로그 저장 후 Athena 또는 Redshift로 분석
• 정적 웹사이트 호스팅 (index.html 등)


profile
how to define. how to solve.

0개의 댓글