클라우드 컴퓨팅/AWS 이론

Amazon S3의 개념과 데이터 액세스 빈도와 가격에 따른 S3 스토리지 클래스 유형 및 그 외 기능

우잉~ 2024. 9. 18. 11:44

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 객체의 삭제 또는 덮어쓰기를 방지함. 그래서 이거 만질 때는 정말정말 조심해야 함~~~~!!!!!! ㅠㅠ 실수했다가는 끔찍해질 수도 있음~~~~~~~!!!~~!!~!~~!!~ 지우고 싶으면 아이디 삭제해야 함. . .

S3 Bucket 생성 시 WORM 활성화 설정 부분

 

** 객체 잠금 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. 데이터 재생성 가능성

S3 스토리지 클래스 유형

 

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)

- 객체 목록, 메타데이터를 제공하는 보고서를 생성하는 도구.

- 대량의 객체를 관리할 때 유용하게 사용됨. 데이터 감사, 운영 보고, 컴플라이언스 검증, 비용 관리 등에 활용