AWS S3 정리

DevRocket·2025년 10월 15일

AWS SAA

목록 보기
3/6
post-thumbnail

AWS S3

정의 : S3는 AWS에서 제공하는 객체 스토리지 서비스로,
데이터를 파일 단위(Object 단위)로 저장하고 인터넷을 통해 접근할 수 있다.
EC2가 ‘가상 서버’라면, S3는 ‘무한히 확장 가능한 클라우드 저장소’라고 이해할 수 있다.


S3의 핵심 목적

목적설명
확장성 (Scalability)데이터 용량에 제한이 없으며 자동으로 확장 가능
내구성 (Durability)여러 AZ에 복제 저장하기 때문에 데이터 유실이 0에 수렴
가용성 (Availability)다중 AZ 분산 저장으로 장애 발생 시에도 데이터 접근 가능
보안성 (Security)IAM 정책, 버킷 정책, 암호화(KMS) 등으로 접근 제어
비용 효율성 (Cost Optimization)사용한 스토리지와 요청량만큼만 과금 (Pay-as-you-go)

⚙️ S3 주요 구성요소

구성요소설명예시
Bucket데이터를 저장하는 컨테이너my-project-data
ObjectS3에 저장되는 실제 데이터 (파일 단위)image.png, log.txt
Key버킷 내에서 Object를 구분하는 고유 식별자images/profile/user1.png
Region데이터가 저장되는 물리적 위치ap-northeast-2 (서울), us-east-1
Storage Class접근 빈도에 따라 비용과 성능이 다른 저장 유형Standard, IA, Glacier
Versioning동일한 파일의 변경 이력을 관리version ID별로 복원 가능
Lifecycle Policy자동으로 스토리지 클래스 전환 또는 삭제30일 후 Glacier로 이동
Encryption저장 데이터 암호화 기능SSE-S3, SSE-KMS
Object Lock특정 기간 동안 객체 삭제 방지규제 준수용 백업
Access Point대규모 데이터셋에 대한 접근 제어 단순화분석팀 전용 접근 경로 생성

S3와 IAM의 관계

  • S3 리소스 접근은 IAM 정책 또는 버킷 정책으로 제어됨
  • EC2나 Lambda가 S3에 접근할 때는 IAM Role을 부여
    Access Key 없이 안전하게 API 호출 가능

📌 예시:
EC2 → IAM Role 부여 → S3 버킷 접근 (s3:GetObject, s3:PutObject)


🧊 S3 저장 클래스 비교

클래스특징사용 예시
Standard자주 접근하는 데이터, 높은 내구성/가용성웹 애플리케이션, 정적 콘텐츠
Standard-IA (Infrequent Access)가끔 접근하지만 빠른 접근이 필요한 데이터백업, 로그
One Zone-IA단일 AZ에 저장, 비용 저렴재생성 가능한 데이터
Glacier Instant Retrieval즉시 복원 가능한 아카이브용자주 조회되는 백업
Glacier Flexible Retrieval수 분~수 시간 내 복원 가능장기 보관 데이터
Glacier Deep Archive가장 저렴, 12시간 내 복원규제/기록용 보관
Intelligent-Tiering접근 패턴에 따라 자동으로 클래스 이동접근 패턴이 불확실한 데이터

💰 S3 비용 구조

S3 비용 = 저장 용량 + 전송량

항목설명
스토리지 사용량저장된 데이터 용량(GB 단위)
요청(Request)GET, PUT, LIST 등의 API 호출 횟수
데이터 전송AWS 밖으로 나가는 아웃바운드 트래픽
Lifecycle Transition스토리지 클래스 간 이동 시 발생하는 비용
복제 비용Cross-Region Replication 사용 시 추가 과금

비용 절감 팁

  • 자주 접근하지 않는 데이터는 Glacier/IA로 이동
  • S3 Intelligent-Tiering으로 자동 전환
  • CloudFront를 이용해 트래픽 절감

🗂️ S3 버전 관리 & 백업

기능설명
Versioning파일 변경 시 이전 버전 자동 보존
Replication다른 리전에 자동 복제 (CRR, SRR)
Object Lock데이터 삭제 및 변경 방지
AWS Backup중앙 집중식 백업 관리 서비스

🔏 S3 보안 관리

주제설명
IAM Policy사용자별 접근 권한 정의
Bucket Policy버킷 전체에 대한 접근 제어 설정
ACL (Access Control List)객체 수준 접근 제어 (현재는 권장 X)
EncryptionSSE-S3, SSE-KMS, Client-side Encryption 지원
Public Access Block외부 공개 방지를 위한 기본 설정
MFA Delete삭제 시 다중 인증 요구

⚙️ S3 관리 포인트

주제핵심 내용
Lifecycle Rule일정 기간 후 자동 삭제 또는 Glacier 이동
CloudWatch Metrics요청 수, 오류율, 데이터 전송량 모니터링
S3 Event Notification객체 업로드/삭제 시 Lambda, SNS, SQS 트리거
Transfer Acceleration글로벌 엣지 네트워크를 통한 업로드 가속
Static Website Hosting정적 웹사이트를 S3 버킷으로 호스팅 가능
Cross-Region Replication다른 리전으로 자동 백업 복제
Access Analyzer잘못된 공개 권한 탐지 기능

S3 활용 예시

시나리오설명
정적 웹사이트 호스팅HTML/CSS/JS 파일을 S3에 저장 후 URL로 제공
백업 및 로그 저장CloudTrail, ALB, EC2 로그를 장기 보관
데이터 분석 파이프라인Athena, Glue, Redshift와 연계해 데이터 레이크 구성
CI/CD 아티팩트 저장빌드 결과물, 배포 파일 저장소로 활용

🧾 정리

S3는 AWS의 대표적인 객체 스토리지 서비스로, 높은 내구성과 확장성을 제공하며 다양한 스토리지 클래스와 연계 서비스(CloudFront, Glacier, Lambda 등)를 통해 데이터 백업, 분석, 웹 호스팅 등 다양한 용도로 활용 가능하다.

실제 시스템 설계에서는 접근 패턴, 암호화 정책, Lifecycle 관리, 비용 구조
함께 고려해야 효율적이고 안전한 스토리지 구성이 가능하다.

1개의 댓글

comment-user-thumbnail
2025년 10월 21일

Glacier : AWS S3 아카이브(장기보관) 스토리지 클래스

오래된 데이터를 저렴하게 보관하지만, 성능은 다소 아쉬움

답글 달기