⚡ 1. AWS S3란?
Amazon S3(Simple Storage Service) 는 AWS에서 제공하는 확장 가능한 객체 스토리지 서비스입니다.
AWS S3를 사용하면 이미지, 동영상, 로그 파일, 백업 데이터, 정적 웹사이트 파일 등을 저장할 수 있습니다.
📌 AWS S3의 주요 특징
• 확장성 → 데이터를 제한 없이 저장 가능 (이론적으로 무제한)
• 내구성 & 가용성 → 99.999999999% (11 9’s) 내구성 제공
• 보안성 → IAM, 버킷 정책, 암호화 지원
• 다양한 스토리지 클래스 지원 → 비용 최적화 가능
• 정적 웹 호스팅 가능 → HTML, CSS, JS 등을 업로드하여 웹사이트 운영 가능
• 서버리스 아키텍처와 통합 → Lambda, CloudFront, API Gateway와 연동
📌 즉, AWS S3는 데이터를 저장하고 백업할 수 있는 안정적인 클라우드 스토리지 서비스!
⚡ 2. AWS S3 기본 개념
✅ 1) S3 버킷(Bucket)
• S3에서 데이터를 저장하는 기본 단위 (폴더 개념)
• 고유한 이름을 가져야 함 (ex: my-bucket-123)
• 버킷마다 권한 및 보안 설정 가능
✅ 예제
s3://my-bucket/images/photo.jpg
s3://my-bucket/logs/server.log
✅ 2) S3 객체(Object)
• S3에 저장되는 실제 데이터(파일)
• 객체(Object) = 데이터 + 메타데이터 + 버전 정보
• 키(Key): S3에서 객체를 식별하는 고유한 경로
✅ 예제
버킷: my-bucket
객체 키: images/photo.jpg
S3 URI: s3://my-bucket/images/photo.jpg
📌 즉, S3에서는 파일(객체)을 업로드하면 특정 경로(Key)로 저장됨!
✅ 3) S3 스토리지 클래스(Storage Class)
AWS S3는 비용 최적화를 위해 다양한 스토리지 클래스를 제공합니다.
스토리지 클래스 | 특징 | 비용 |
S3 Standard | 자주 액세스하는 데이터 (기본) | 💰💰💰 |
S3 Standard-IA | 자주 사용하지 않지만 빠르게 필요할 수 있는 데이터 | 💰💰 |
S3 One Zone-IA | 한 지역(Zone)에만 저장, 비용 절감 | 💰 |
S3 Glacier | 장기 보관(백업, 로그 보관용) | 💲 |
S3 Glacier Deep Archive | 최저 비용, 장기 보관 (6~12시간 검색 시간) | 💲💲 |
📌 즉, 자주 사용하면 Standard, 백업 용도라면 Glacier를 사용하면 비용 절감 가능!
⚡ 3. AWS S3 기본 사용법 (CLI & 콘솔)
✅ 1) S3 버킷 생성
aws s3 mb s3://my-bucket
📌 버킷 이름은 전 세계적으로 유일해야 하며, -(하이픈), 영문, 숫자만 사용 가능
✅ 2) 파일 업로드
aws s3 cp myfile.txt s3://my-bucket/
📌 로컬 파일 myfile.txt를 S3 버킷에 업로드
✅ 3) 파일 다운로드
aws s3 cp s3://my-bucket/myfile.txt .
📌 S3에서 myfile.txt를 로컬로 다운로드
✅ 4) 버킷 내 파일 목록 조회
aws s3 ls s3://my-bucket/
📌 현재 버킷 내에 저장된 파일(객체) 목록 확인
✅ 5) 파일 삭제
aws s3 rm s3://my-bucket/myfile.txt
📌 myfile.txt 파일을 S3에서 삭제
✅ 6) 버킷 삭제 (비어 있어야 함)
aws s3 rb s3://my-bucket --force
📌 버킷 내 모든 파일을 삭제하고 버킷 제거 (--force 옵션 필수)
⚡ 4. AWS S3 보안 및 권한 관리
✅ 1) S3 IAM 정책 설정
AWS S3는 IAM 정책을 통해 접근 제어를 합니다.
✅ 모든 사용자 읽기 허용 (비추천)
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::my-bucket/*"
}
]
}
📌 공개 버킷을 만들면 누구나 파일을 다운로드할 수 있으므로 주의해야 함!
✅ 특정 사용자만 읽기 가능
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::123456789012:user/my-user"
},
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::my-bucket/*"
}
]
}
📌 특정 사용자(my-user)만 S3 객체를 읽을 수 있도록 제한
✅ 2) S3 버킷 암호화
AWS S3는 데이터를 안전하게 보호하기 위해 암호화(Encryption) 기능을 제공합니다.
aws s3 cp myfile.txt s3://my-bucket/ --sse AES256
📌 AES-256 암호화를 적용하여 파일 업로드
⚡ 5. AWS S3 활용 사례
✅ 1) 정적 웹사이트 호스팅
AWS S3는 HTML, CSS, JavaScript를 업로드하여 정적 웹사이트를 호스팅할 수 있습니다.
aws s3 website s3://my-bucket/ --index-document index.html
📌 정적 웹사이트 설정 후 http://my-bucket.s3-website-us-east-1.amazonaws.com에서 접속 가능!
✅ 2) 백업 및 로그 저장
• 애플리케이션 로그 저장 → S3에 저장 후 Athena로 분석 가능
• DB 스냅샷 백업 → MySQL, PostgreSQL 백업을 S3에 저장
✅ 3) 데이터 레이크 구축
AWS S3는 데이터 레이크(Data Lake) 저장소로 활용될 수 있습니다.
• AWS Glue, Athena와 연동하여 데이터 분석 가능
• AI/ML 모델 학습을 위한 대량 데이터 저장소로 사용
⚡ 6. AWS S3의 장점과 단점
✅ AWS S3의 장점
✔ 무제한 확장성 → 파일 크기와 개수에 제한 없음
✔ 고가용성(99.99%) 및 내구성(11 9’s)
✔ 비용 최적화 가능 (Glacier, Deep Archive)
✔ 정적 웹사이트 호스팅 및 서버리스 아키텍처와 통합 가능
❌ AWS S3의 단점
✖ 트랜잭션 비용 발생 (GET, PUT 요청에도 비용 청구됨)
✖ 파일 크기가 클 경우 업로드 속도 이슈 발생
✖ 실제 OS 파일시스템처럼 사용하기 어려움 (NFS, SMB 미지원)
⚡ 7. 결론
✅ AWS S3는 확장 가능한 클라우드 스토리지 서비스로, 데이터 저장, 백업, 정적 웹사이트 호스팅 등에 활용 가능
✅ 고가용성 및 내구성을 제공하며, 비용을 절감할 수 있는 다양한 스토리지 클래스를 지원
✅ CLI, SDK, 웹 콘솔을 통해 파일 업로드, 다운로드, 삭제, 접근 제어 가능
✅ IAM, 버킷 정책, 암호화를 통해 보안 강화 가능
🚀 AWS S3는 클라우드 스토리지의 표준이며, 다양한 AWS 서비스와 연동하여 강력한 기능을 제공할 수 있다
출처 : ChatGPT
'Infra > Cloud' 카테고리의 다른 글
AWS Lambda (0) | 2025.04.12 |
---|---|
ECR (0) | 2025.04.11 |