$ yh.log
[AWS 자격증] Amazon S3 정리

[AWS 자격증] Amazon S3 정리

AWSS3자격증

작성자 : 오예환 | 작성일 : 2026-01-09 | 수정일 : 2026-01-09

Amazon S3 정리

1. Amazon S3 개요

S3란?

  • AWS의 핵심 구성 요소 중 하나
  • "무한 확장" 스토리지로 홍보됨z
  • 많은 웹사이트와 AWS 서비스의 백본으로 사용

주요 사용 사례

분류사용 사례
저장/백업백업, 재해 복구, 아카이브
호스팅애플리케이션 호스팅, 미디어 호스팅, 정적 웹사이트
데이터 분석데이터 레이크, 빅데이터 분석
기타하이브리드 클라우드 스토리지, 소프트웨어 배포

💡 실제 사례

  • Nasdaq: 7년치 데이터를 S3 Glacier에 저장
  • Sysco: 데이터 분석으로 비즈니스 인사이트 획득

2. S3 버킷 (Buckets)

버킷이란?

  • 객체(파일)를 저장하는 컨테이너 (디렉토리 개념)
  • 전역적으로 고유한 이름 필요 (모든 리전, 모든 계정 통틀어)
  • 리전 레벨에서 정의됨

⚠️ S3는 글로벌 서비스처럼 보이지만, 버킷은 특정 리전에 생성됨

버킷 이름 규칙

규칙설명
대문자❌ 불가
언더스코어 (_)❌ 불가
길이3~63자
IP 형식❌ 불가
시작 문자소문자 또는 숫자
접두사 xn--❌ 불가
접미사 -s3alias❌ 불가

3. S3 객체 (Objects)

객체 키 (Key)

s3://my-bucket/my_folder1/another_folder/my_file.txt

           └── 버킷명          └── prefix ────┴── object name
  • 키 = 전체 경로 (FULL path)
  • S3에는 실제 "디렉토리" 개념이 없음
  • 슬래시(/)를 포함한 긴 키 이름일 뿐 (UI가 폴더처럼 보여줄 뿐)

객체 구성 요소

구성 요소설명
Value파일 본문 내용
Max Size5TB (5000GB)
Metadata텍스트 키/값 쌍 (시스템 또는 사용자 메타데이터)
Tags유니코드 키/값 쌍 (최대 10개) - 보안/수명주기에 유용
Version ID버전 관리 활성화 시

⚠️ 5GB 초과 업로드 시 반드시 Multi-part Upload 사용


4. S3 보안

접근 제어 방식

방식유형설명
User-BasedIAM Policies특정 IAM 사용자에게 허용할 API 호출 정의
Resource-BasedBucket Policies버킷 전체 규칙, Cross-Account 허용 가능
Object ACL객체 단위 세밀한 제어 (비활성화 가능)
Bucket ACL버킷 단위 (잘 안 씀, 비활성화 가능)

S3 객체 접근 조건

IAM 권한이 허용 OR 리소스 정책이 허용
        AND
    명시적 DENY 없음

Bucket Policy 구조 (JSON)

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": "*",
      "Action": "s3:GetObject",
      "Resource": "arn:aws:s3:::bucket-name/*"
    }
  ]
}
요소설명
Resource버킷과 객체 지정
EffectAllow / Deny
Action허용/거부할 API
Principal정책 적용 대상 (계정/사용자)

Bucket Policy 사용 사례

  • 버킷 퍼블릭 액세스 허용
  • 업로드 시 암호화 강제
  • Cross-Account 접근 허용

접근 시나리오별 설정

시나리오설정 방법
퍼블릭 접근Bucket Policy (Public Access 허용)
IAM 사용자 접근IAM Policy
EC2 인스턴스 접근IAM Role (권장)
다른 AWS 계정 접근Bucket Policy (Cross-Account)

Block Public Access 설정

  • 회사 데이터 유출 방지 목적
  • 버킷이 절대 퍼블릭이 되면 안 되는 경우 활성화 유지
  • 계정 레벨에서도 설정 가능

5. 정적 웹사이트 호스팅

개요

  • S3로 정적 웹사이트를 호스팅하고 인터넷에서 접근 가능
  • CloudFront와 함께 많이 사용됨

웹사이트 URL 형식

http://bucket-name.s3-website-aws-region.amazonaws.com
또는
http://bucket-name.s3-website.aws-region.amazonaws.com

예시 (us-west-2 리전, demo-bucket):

http://demo-bucket.s3-website-us-west-2.amazonaws.com
http://demo-bucket.s3-website.us-west-2.amazonaws.com

⚠️ 403 Forbidden 에러 발생 시 → Bucket Policy에서 퍼블릭 읽기 허용 확인!


6. 버전 관리 (Versioning)

개요

  • 버킷 레벨에서 활성화
  • 같은 키로 덮어쓰기 시 버전 증가: 1, 2, 3...

장점

  • 의도치 않은 삭제 방지 (버전 복원 가능)
  • 이전 버전으로 쉽게 롤백

주의사항

  • 버전 관리 활성화 전 파일의 버전 = null
  • 버전 관리 일시 중지해도 이전 버전은 삭제되지 않음

7. 복제 (Replication)

유형

유형설명사용 사례
CRR (Cross-Region)다른 리전으로 복제규정 준수, 지연시간 단축, 계정 간 복제
SRR (Same-Region)같은 리전 내 복제로그 집계, 프로덕션↔테스트 실시간 복제

필수 조건

  • 원본/대상 버킷 모두 버전 관리 활성화
  • S3에 적절한 IAM 권한 부여
  • 복제는 비동기로 수행

주의사항

항목설명
기존 객체복제 활성화 후 새 객체만 복제됨
기존 객체 복제S3 Batch Replication 사용
DELETE 작업Delete Marker 복제는 선택사항
Version ID 삭제복제 안 됨 (악의적 삭제 방지)
체이닝❌ 불가 (버킷1→버킷2→버킷3 시 버킷1→버킷3 복제 안 됨)

8. S3 스토리지 클래스

내구성 vs 가용성

구분설명
내구성 (Durability)99.999999999% (11 9's) - 모든 클래스 동일
가용성 (Availability)스토리지 클래스마다 다름

💡 1천만 개 객체 저장 시 평균 1만 년에 1개 손실

스토리지 클래스 종류

8.1 S3 Standard (범용)

항목
가용성99.99%
용도자주 접근하는 데이터
특징저지연, 높은 처리량, 2개 시설 동시 장애 견딤
사용 사례빅데이터 분석, 모바일/게임 앱, 콘텐츠 배포

8.2 S3 Standard-IA (Infrequent Access)

항목
가용성99.9%
용도자주 접근 안 하지만 빠른 접근 필요 시
비용S3 Standard보다 저렴
사용 사례재해 복구, 백업

8.3 S3 One Zone-IA

항목
가용성99.5%
특징단일 AZ (AZ 파괴 시 데이터 손실)
사용 사례보조 백업, 재생성 가능한 데이터

8.4 S3 Glacier 클래스

클래스검색 시간최소 저장 기간용도
Glacier Instant Retrieval밀리초90일분기 1회 접근 데이터
Glacier Flexible Retrieval1 ~ 5분 / 3 ~ 5시간 / 5 ~ 12시간90일아카이브
Glacier Deep Archive12시간 / 48시간180일장기 보관

Glacier Flexible Retrieval 검색 옵션:

  • Expedited: 1~5분
  • Standard: 3~5시간
  • Bulk: 5~12시간 (무료)

Glacier Deep Archive 검색 옵션:

  • Standard: 12시간
  • Bulk: 48시간

8.5 S3 Intelligent-Tiering

항목설명
특징사용 패턴에 따라 자동으로 티어 이동
비용월간 모니터링 + 자동 티어링 비용
검색 비용없음

티어 구성:

티어조건자동/선택
Frequent Access기본 티어자동
Infrequent Access30일 미접근자동
Archive Instant Access90일 미접근자동
Archive Access90~700일+ 설정선택
Deep Archive Access180~700일+ 설정선택

9. 스토리지 클래스 비교표

클래스가용성AZ 수최소 저장 기간검색 비용
Standard99.99%≥3없음없음
Intelligent-Tiering99.9%≥3없음없음
Standard-IA99.9%≥330일GB당
One Zone-IA99.5%130일GB당
Glacier Instant99.9%≥390일GB당
Glacier Flexible99.99%≥390일GB당
Glacier Deep Archive99.99%≥3180일GB당

10. 스토리지 클래스 가격 비교 (us-east-1 기준)

클래스저장 비용 (GB/월)특징
Standard$0.023가장 높음
Intelligent-Tiering$0.0025~$0.023자동 최적화
Standard-IA$0.0125Standard의 약 절반
One Zone-IA$0.01단일 AZ
Glacier Instant$0.004빠른 검색
Glacier Flexible$0.0036유연한 검색 옵션
Glacier Deep Archive$0.00099가장 저렴

스토리지 클래스 선택 가이드

자주 접근? ─────────────────────────────────────┐

    ├─ Yes S3 Standard

    └─ No ─┬─ 빠른 접근 필요? ─┬─ Yes ──────────┤

                   └─ No Glacier

           └─ 접근 패턴 예측 불가? Intelligent-Tiering

핵심 포인트 요약

  1. 버킷명은 전역 고유 - 모든 리전, 모든 계정 통틀어 유일해야 함
  2. 5GB 초과 → Multi-part Upload 필수
  3. EC2에서 S3 접근 → IAM Role 사용 (Access Key 대신)
  4. 버전 관리 - 삭제 방지, 롤백에 필수
  5. 복제는 버전 관리 필수 - CRR/SRR 모두
  6. 비용 최적화 - Lifecycle 정책으로 스토리지 클래스 자동 전환