AWS에서 제공하는 스토리지 서비스는 3가지가 있다.
1. Amazon EBS(Elastic Block Storage) - 블록으로 저장
2. Amazon EFS(Elastic File System) - 파일로 저장
3. Amazon S3(Simple Stroage Service) - 오브젝트로 저장
그 중 오브젝트 스토리지 방식인 S3의 클래스 유형에 대해서 살펴보겠다.
Amazon S3(Simple Storage Service)
데이터 파일을 "오브젝트(객체)" 형태로 저장하는 AWS의 스토리지 서비스
* 오브젝트(객체)란? S3에 저장되는 각각의 파일 + 메타 데이터로, 오브젝트는 고유한 식별자 또는 키가 존재한다.
S3에서는 하나의 파일을 오브젝트라고 부른다고 생각하면 되는데, 이러한 오브젝트를 "버킷(Bucket)"이라는 저장 공간(컨테이너)에 저장되는 형식이다.
버킷은 한 계정당 100개 까지 생성할 수 있다.
특정 데이터만 저장하는 버킷을 만들어서 활용하는 게 좋은 듯함! ex. 중요 데이터 저장 버킷, 로그 저장 버킷 등...
리전별로 S3 Bucket을 생성하여 무제한으로 데이터를 저장하고 접근할 수 있는 간편한 스토리지 시스템이다.
버킷의 오브젝트에 빠르게 접근하기 위해서 "태그"와 "폴더(접두사)"를 이용하는 것이 매우 중요중요! 그 외 액세스 로깅도 남길 수 있다.
Amazon S3의 주요 기능 및 장점
1. 확장성
- 데이터를 아무리 많이 써도 스토리지가 자동으로 확장되어 엄청난 양의 데이터를 처리할 수 있음
2. 내구성
- 99.999999999%의 내구성을 보장함. 굉장히 안전하며, 10억 개의 파일을 저장할 경우, 하나도 잃어버리지 않을 확률을 가지고 있음!
3. 높은 가용성
- S3는 인터넷용 스토리지라고 생각하면 편하다. 언제 어디서든 인터넷만 된다면 데이터를 빠르게 액세스할 수 있으며, 버킷을 복제하는 것이 너무 쉬워서 여러 개 복제해둔 뒤, 한 곳에서 문제가 생겼을 때 다른 곳에서 가져올 수 있음
- 복제의 경우, 같은 리전에 복제할 수도 있고 다른 리전에 복제할 수도 있는데, 이를 각각 단일 리전 복제(SRR), 교차 리전 복제(CRR)이라고 함
4. 버전 관리
- 방대한 데이터를 S3에 저장하게 되면 파일 이름이 안 겹칠 수가 없음. 그래서 S3는 버전 관리를 제공
- 같은 파일의 여러 버전을 저장할 수 있음. 이는 결국 실수로 파일을 잘못 수정하거나 삭제해도 예전 버전을 복구할 수 있음
- 버킷을 생성할 때 버전 관리 활성화를 꼭!!!! 해야 함
<버킷 버전 관리 활성화 이유 3가지>
1. 그냥 진짜 버전 관리하기 위함
2. 교차 리전 복제(CRR)
3. WORM(Write-Once-Read-Many) 모델 사용: 이건 자동으로 버전 관리가 활성화됨
* WORM이란? 객체 잠금!!! 고정된 시간 동안 or 무기한으로 S3 객체의 삭제 또는 덮어쓰기를 방지함. 그래서 이거 만질 때는 정말정말 조심해야 함~~~~!!!!!! ㅠㅠ 실수했다가는 끔찍해질 수도 있음~~~~~~~!!!~~!!~!~~!!~ 지우고 싶으면 아이디 삭제해야 함. . .

** 객체 잠금 2가지 방법
1. 규정 준수 모드(Compliance Mode)
- 규정 준수 모드는 버킷을 생성할 때 고급 설정에서 활성화할 수 있음!!! 루트를 포함한 모든 사용자가 삭제할 수 없도록 함
2. 거버넌스 모드(Governance Mode)
- 객체를 업로드할 때 보존 기간(Retention period)을 설정할 수 있는데, 이 기간 동안 객체가 잠금 상태로 유지됨
- 하지만 이건 예외처리가 가능함!!!! 's3:BypassGovernanceRetention' 권한을 가진 사용자는 필요에 따라 객체를 삭제할 수 있음
5. 보안
- 데이터 저장 시/전송 시 암호화, 접근 제어 정책 설정이 가능함
- 누구나 접근할 수 없도록 S3 Bucket Policy를 이용하여 권한을 부여함
- 예전에는 ACL을 사용하여 S3에 접근할 수 있도록 권한을 부여했지만, 현재는 IAM 계정을 생성하여 권한을 설정하는 방법을 유도하고 있음
6. 수명 주기 관리
- 데이터를 자동으로 이동, 삭제할 수 있는 정책을 설정하여 여러 리전에 백업할 수 있음 = S3 Lifecycle(수명 주기 정책)
(예: 30일 후에는 데이터를 더 저렴한 S3 Glacier로 이동 등)
7. 데이터 복제 및 백업
- SRR, CRR 등을 자동으로 할 수도 있음!
- 데이터 한 곳에 오랫동안 저장할 경우, 보안 위험이 생길 수 있으므로 다른 버킷이나 여러 리전에 백업할 수 있음
8. 다양한 스토리지 클래스
- 이번 포스팅의 핵심 내용으로 S3는 다양한 스토리지 클래스를 가지고 있음
- 특히 액세스 빈도에 따른 옵션으로 살펴볼 수 있으며, 각 옵션에 따라 비용이 천차만별임~!
스토리지 클래스 선택 시 고려해야 할 사항은 다음과 같다.
1. 액세스 빈도
2. 액세스 시간 요구 사항
3. 비용 구조
4. 내구성과 가용성
5. 데이터 재생성 가능성

1. S3 Standard
- 자주 액세스되는 데이터를 위한 기본 스토리지 클래스
- S3 스탠다드는 저장 비용이 상대적으로 높음. 하지만 데이터 검색 시 추가 요금을 지불하지 않아도 됨!
- 높은 처리량을 보장하며, 실시간 분석 및 처리, 모바일 및 웹 애플리케이션, 동적 컨텐츠 제공, 빈번한 데이터 액세스 필요한 빅데이터 워크로드 등에 사용
=> 높은 성능 및 가용성이 요구되는 데이터에 적합
2. S3 Intelligent-Tiering
- 액세스 패턴이 불규칙, 예측이 어려운 데이터를 위해 사용
- 액세스 빈도에 따라 가장 비용 효율적인 티어로 이동시켜 비용 최적화
- 액세스 모니터링이 가능하며, 소액의 모니터링 요금이 발생
- 액세스 패턴 예측 불가능한 데이터 세트, 비용 최적화 필요한 대규모 데이터 레이크, 지속적인 액세스 모니터링이 필요한 데이터를 저장할 때 사용되는 스토리지 클래스임
=> 자동으로 비용 최적화하면서 성능 유지
3. S3 Standard-IA(Infrequent Access)
- 이름 그대로 덜 액세스 될 때 사용하면 되는데, 접근할 때 빠르게 액세스해야 하는 데이터를 위한 클래스
- S3 Standard에 비해 낮은 저장 비용을 가지고 있으며, 또 다른 점은 데이터 검색 시 GB당 추가 요금이 발생한다는 것
- 장기 백업 및 아카이브, 재해 복구 위한 데이터 저장, 덜 빈번하게 액세스되는 중요 비즈니스 데이터를 저장할 때 사용
=> 저장 비용 절감 및 빠른 액세스 모두 필요한 경우
4. S3 One Zone-IA
- 단일 가용 영역에 데이터를 저장하는 클래스 => 단일 AZ이기 때문에 장애 발생 시 데이터 손실 위험이 존재하며, 가용성은 다른 스토리지 클래스보다 0.4% 낮은 99.5%
- 일시적인 데이터, 테스트 및 개발 환경 데이터, 지역 중복 필요 없는 로그 파일 등에 이용됨
* 지역 중복: 데이터를 동일한 AWS 리전 내의 여러 가용 영역에 복제하여 저장하는 것
=> 지역 중복 필요X, 추가 비용 절감 원하는 경우
5. S3 Glacier Instant Retrieval
- 거의 액세스 X, 하지만 즉각적인 액세스 필요한 아카이브 데이터를 위한 클래스
- 검색 시 추가 비용이 발생!
- 의료 이미지와 같은 즉각적인 액세스 필요한 아카이브, 뉴스 미디어 및 엔터테인먼트 콘텐츠 보관용, 등에 사용
- 빠른 복구 시간을 제공
=> 저장 비용 절감 및 밀리초 단위의 즉각적인 액세스 필요한 경우
6. S3 Glacier Flexible Retrieval(구 S3 Glacier)
- 유연한 검색 옵션을 제공하여 비용과 검색 시간을 조절할 수 있는 클래스
- "검색 요청"을 해야하며, 이후에만 데이터에 액세스가 가능함
- 검색 옵션은 1. 긴급 검색(1~5분 내 데이터 검색 - 추가 비용 발생), 2. 표준 검색(3~5시간 내), 3. 대량 검색(5~12시간 내)이 존재
- 규제 준수를 위한 장기 데이터 보관, 디지털 자산 및 영화 필름 아카이브, 백업 및 재해 복구 데이터(긴급 액세스 필요 시)에 사용됨
=> 유연한 검색 옵션이 필요한 경우
7. S3 Glacier Deep Archive
- 거의 또는 전혀 액세스 되지 않는 데이터를 위한 저렴한 스토리지
- 법적 또는 규제 요구 사항에 따른 장기 데이터 보관(7~10년 이상), 역사적인 기록 데이터, 액세스 필요성이 없는 최종 백업 데이터 등에 사용됨
=> 가장 낮은 저장 비용으로 장기 보관이 필요한 데이터의 경우
Amazon S3의 스토리지 클래스를 잘 알아두면 비용 효율적으로 데이터를 안전하게 보관할 수 있을 것이다!
요약
스토리지 가격 (Per GB per Month) |
검색 비용 (per 1000 request) |
액세스 시간 | 모니터링 비용 (Per 1000 objects) |
|
Standard | $0.023 | GET: $0.0004 POST: $0.005 |
즉시 액세스 | - |
Intelligent-Tiering | $0.0025 - $0.023 | GET: $0.0004 POST: $0.005 |
$0.0025 | |
Standard-IA | $0.0125 | GET: $0.001 POST: $0.01 |
- | |
One Zone-IA | $0.01 | GET: $0.001 POST: $0.01 |
- | |
Glacier Instant Retrieval | $0.004 | GET: $0.001 POST: $0.02 |
- | |
Glacier Flexible Retrieval | $0.0036 | GET: $0.0004 POST: $0.03 Expedited(긴급 검색): $10 Stnadard(표준 검색): $0.05 Bulk(대량): 무료 |
Expedited(긴급 검색): 1~5분 Stnadard(표준 검색): 3~5시간 Bulk(대량): 5~12시간 |
- |
Glacier Deep Archive | $0.00099 | GET: $0.0004 POST: $0.05 Stnadard(표준 검색): $0.1 Bulk(대량): $0.025 |
Stnadard(표준 검색): 3~5시간 Bulk(대량): 5~12시간 |
- |
그 외 S3 서비스 용어 정리
S3 Transfer Acceleration
- 글로벌 엣지 로케이션을 사용하여 인터넷을 통해 S3 버킷으로 데이터를 더 빠르게 전송하고 중앙화하는 것
* 글로벌 엣지 로케이션(Global Edge Locations)이란?
- AWS의 인프라 스트럭처 중 하나로, 전 세계 여러 지역에 분포된 데이터 센터를 뜻함.
- 엣지 로케이션의 경우, 콘텐츠 전송 네트워크(CDN)인 Amazon CloudFront와 같은 서비스에서 사용되며, 아주 빠르고 효율적으로 데이터를 제공할 수 있음.
멀티파트 업로드(Multipart Upload)
- 대용량 파일을 여러 개로 나누어 병렬로 업로드하는 방식으로, 여러 개로 나눈 것을 파트(part)라고 함.
- 쉽게 말하면 여러 파트로 나눠서 업로드 하는 것.
- 파일을 여러 파트로 나누어 동시에 업로드함으로써 전체 업로드 시간이 단축됨
- 멀티파트 업로드는 데이터 스트리밍 및 로그 저장에도 사용될 수 있음. ex. 로그 데이터 및 스트리밍 데이터를 S3에 저장할 때
S3 인벤토리(S3 Inventory)
- 객체 목록, 메타데이터를 제공하는 보고서를 생성하는 도구.
- 대량의 객체를 관리할 때 유용하게 사용됨. 데이터 감사, 운영 보고, 컴플라이언스 검증, 비용 관리 등에 활용
'클라우드 컴퓨팅 > AWS 이론' 카테고리의 다른 글
[AWS-SSA] 11. Media Services (0) | 2024.09.23 |
---|---|
[AWS-SSA] 12. AWS Cost Management (0) | 2024.09.22 |
[AWS-SAA] AWS CloudFront 배포할 때 SSL/TLS 인증서 발급 요구사항 (0) | 2024.09.12 |
[24.07.16] AWS 기본 과정 6 - NFS(Network File System), AWS EFS(Elastic File System) (0) | 2024.07.17 |
[24.07.15] AWS 기본 과정 5 - 로드 밸런서 ELB(Elastic Load Balancer), 리스너(Listener), 리스너 규칙(Rule), 타겟 그룹(Target Group) (0) | 2024.07.15 |