안녕하세요! 오늘은 클라우드 스토리지의 대명사, AWS S3에 대해 자세히 알아보겠습니다.
AWS S3가 뭔가요? 🤔
마치 무제한 용량의 클라우드 창고를 상상해보세요!
- 파일을 안전하게 보관하고
- 언제 어디서나 접근할 수 있으며
- 원하는 만큼만 비용을 지불하는 온라인 스토리지 서비스입니다
S3의 핵심 개념 🎯
1. 버킷(Bucket)
- S3의 최상위 디렉토리
- 전 세계에서 유일한 이름을 가져야 함
- 예:
my-awesome-bucket-2024
2. 객체(Object)
- 실제 저장되는 파일
- 최대 5TB까지 저장 가능
- 메타데이터와 태그 부여 가능
3. 스토리지 클래스
1. Standard - 자주 접근하는 데이터
2. Infrequent Access (IA) - 덜 자주 접근하는 데이터
3. Glacier - 거의 접근하지 않는 아카이브 데이터
4. Intelligent-Tiering - AI가 알아서 최적화
주요 기능 💫
1. 버저닝(Versioning)
// 객체의 이전 버전을 모두 보존
bucket.enableVersioning();
2. 수명주기 관리
{
"Rules": [{
"ID": "TransferToGlacier",
"Status": "Enabled",
"Transition": {
"Days": 90,
"StorageClass": "GLACIER"
}
}]
}
3. 암호화
// 서버 사이드 암호화 설정
putObjectRequest.withSSEAlgorithm(SSEAlgorithm.AES256);
실제 사용 예시 📱
1. 파일 업로드
AmazonS3 s3Client = AmazonS3ClientBuilder.standard()
.withRegion(Regions.AP_NORTHEAST_2)
.build();
// 파일 업로드
s3Client.putObject(
"my-bucket",
"folder/image.jpg",
new File("/path/to/local/image.jpg")
);
2. 파일 다운로드
S3Object object = s3Client.getObject(
"my-bucket",
"folder/image.jpg"
);
InputStream inputStream = object.getObjectContent();
주요 활용 사례 🌟
정적 웹사이트 호스팅
- HTML, CSS, JavaScript 파일 호스팅
- CDN과 연동하여 전세계 배포
백업 및 아카이브
- 중요 데이터 백업
- 오래된 로그 보관
미디어 스토리지
- 이미지, 비디오 저장
- 스트리밍 서비스 구축
비용 관리 💰
스토리지 비용
- 실제 사용한 용량만큼 과금
- 스토리지 클래스별 다른 요금
데이터 전송 비용
- AWS 밖으로 나가는 트래픽만 과금
- 리전간 전송은 별도 요금
보안 설정 🔒
버킷 정책
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": "*", "Action": "s3:GetObject", "Resource": "arn:aws:s3:::my-bucket/*" } ] }
IAM 역할
암호화 설정
액세스 포인트
성능 최적화 팁 💡
멀티파트 업로드
- 큰 파일은 나눠서 업로드
- 실패 시 부분만 재시도 가능
적절한 파일 구조
- 폴더 깊이는 얕게
- 파일명은 고르게 분산
참고 자료 📚
- AWS 공식 문서: https://docs.aws.amazon.com/s3/
- AWS S3 요금: https://aws.amazon.com/s3/pricing/
- AWS S3 Best Practices: https://docs.aws.amazon.com/AmazonS3/latest/userguide/best-practices.html
728x90
'600===Dev AWS > S3' 카테고리의 다른 글
S3 Pricing Policy (0) | 2024.06.11 |
---|---|
Amazon Simple Storage Service (S3) Introduced (0) | 2024.05.29 |