AWS S3(Simple Storage Service)는 확장성, 보안, 성능을 제공하는 객체 스토리지 서비스입니다.
웹사이트, 백업, 로그 저장, 빅데이터 처리, AI 모델 학습 데이터 저장 등 다양한 용도로 활용됩니다.
| 스토리지 클래스 | 설명 | 비용 |
|---|---|---|
| S3 Standard | 기본 스토리지, 자주 액세스하는 데이터용 | 💰💰💰 |
| S3 Intelligent-Tiering | 자동으로 액세스 패턴 분석 후 최적화 | 💰💰 |
| S3 Standard-IA (Infrequent Access) | 가끔 액세스하는 데이터 (저장 비용↓, 요청 비용↑) | 💰 |
| S3 One Zone-IA | 단일 가용 영역에서만 저장 | 💰 |
| S3 Glacier | 장기 보관용 (몇 분~몇 시간 내 복원 가능) | 💲 |
| S3 Glacier Deep Archive | 최소 180일 이상 보관 데이터 (저장 비용 가장 저렴) | 💲 |
my-app-storage-bucket)images/profile.jpg)my-folder/image.jpg 형태로 저장하면 키 값이 됨.https://{버킷명}.s3.{리전}.amazonaws.com/{파일경로}
예시:
https://my-app-bucket.s3.ap-northeast-2.amazonaws.com/images/logo.png
ap-northeast-2 → 서울)S3에 업로드한 파일을 다운로드하는 방법:
aws s3 cp s3://my-app-bucket/images/logo.png .import boto3
s3 = boto3.client('s3')
s3.download_file('my-app-bucket', 'images/logo.png', 'logo.png')기본적으로 S3는 보안을 위해 퍼블릭 액세스가 차단됨
퍼블릭으로 공개하려면:
1. 버킷 정책(Bucket Policy) 설정
2. ACL (Access Control List) 설정
3. CloudFront 배포 (CDN 활용 가능)
예제: 특정 파일을 누구나 접근 가능하도록 설정
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::my-app-bucket/images/logo.png"
}
]
}
| 스토리지 유형 | 설명 | 사용 사례 |
|---|---|---|
| S3 | 객체 스토리지, 무제한 저장 가능 | 정적 파일, 백업, 로그 저장 |
| EBS | 블록 스토리지, 특정 EC2 인스턴스에 연결됨 | 데이터베이스, OS 저장소 |
| EFS | 네트워크 파일 스토리지, 여러 인스턴스에서 공유 가능 | 공유 파일 시스템 |
✅ S3: 정적 파일, 이미지, 동영상, 백업 등에 적합
✅ EBS: EC2에 OS, 데이터베이스 저장
✅ EFS: 여러 EC2 인스턴스가 파일을 공유할 때 사용
✔ 정적 웹사이트 호스팅 (HTML, CSS, JS 파일 저장)
✔ 백업 및 데이터 아카이빙 (Glacier 활용)
✔ 데이터 레이크 (Data Lake) (빅데이터 분석을 위한 데이터 저장소)
✔ CDN 연계 (CloudFront)로 빠른 데이터 제공
✔ 로그 저장 및 분석 (AWS Athena와 연동 가능)
✔ AI/ML 모델 학습 데이터 저장