Amazon S3 Simple Storage Service
- AWS S3 는 최고 수준의 확장성, 데이터 가용성, 보안 및 성능을 제공하는 객체 스토리지 서비스
- 데이터 레이크, 클라우드 네이티브 애플리케이션 및 모바일 앱에서 접근/사용 가능
- 데이터 레이크 구축
- 중요 데이터 백업 및 복원
- 최저 비용 데이터 아카이브
- 클라우드 네이티브 애플리케이션 실행
- 데이터는
버킷
이라는 리소스에 객체로 저장 - 한 객체의 크기는 최대
5TB
까지 저장 가능 S3 Versioning
기능을 사용하여 저장된 객체의 모든 버전을 보존/검색/복원- 장애 재해 복구 대응을 위해 다른 AWS 리전의 S3 복제 기능 제공
- S3 객체 잠금 기능으로
WORM(Write-Once-Read-Many)
정책 적용 - AWS 다른 서비스를 이용하여 S3 리소스를 모니터링 및 제어 처리
- 기본적으로 사용자가 직접 생성한 S3 리소스에 대한 접근 권한만 가지지만,
IAM
등 AWS 서비스를 활용하여 권한 관리 가능
WORM (Write-Once-Read-Many) 정책
- 데이터가 한번 저장되고, 정의한 보존 기간동안 객체 버전 삭제를 차단하여 데이터를 보호하는 보존 정책
S3 데이터 처리 및 조회
데이터 처리
S3 객체 Lambda
S3 객체 Lamdba
를 사용하여 S3 데이터 요청하면, 애플리케이션으로 반환될 때 데이터 수정 및 처리S3 객체 Lamdba
는 AWS Lambda 함수를 사용하여 표준 S3 GET, HEAD, LIST 요청의 출력 처리 방식
데이터 조회
S3 Select
- S3 에는
S3 Select
라는 데이터 쿼리하는 자체 기능 내장 S3 Select
쿼리 성능은 최대400%
상승, 쿼리 비용80%
절감 효과 제공- 쿼리 조회 대상은 전체 객체 대신 객체 데이터의 하위 집합을 검색하는 방식
Amazon Athena
Amazon Athena
는 데이터를 추출하여 별도 서비스에 로드할 필요 없이 S3 의 데이터를 쿼리 기능 제공
Amazon Redshift Spectrum
Amazon Redshift Spectrum
는Athena
와 동일하게 S3 데이터를 직접 쿼리 실행하는 방식이며, 복잡한 쿼리나 더 큰 데이터 집합 조회에 더 적합한 방식
S3 성능
- S3 는 병렬 요청을 지원하여 컴퓨팅 클러스터의 몇 배만큼 S3 성능 확장 가능
- 성능은 접두사에 따라 확장되고, 필요한 처리량을 실현하기 위한 접두사를 병렬로 추가 가능 (접두사 수 제한 X)
- S3 의 성능은 데이터 추가에
초당 최소 3,500 개의 요청
지원하며, 데이터 검색에초당 최소 5,500 개의 요청
지원
S3 일관성
- S3 는 성능이나 가용성 변경없이, 강력한 쓰기 후 읽기 일관성 제공
- 이러한 강력한 일관성은 애플리케이션의 변경 필요성을 없애고, 온프레미스 분석 워크로드의 마이그레이션 단순화, 추가 인프라의 필요성에 대한 비용 절감 효과 제공
- S3 는 모든 요청에 대한 강력한 일관성을 제공하기 때문에, 새로운 객체 쓰기 또는 기존 객체 변경 후, 후속 읽기 요청은 즉시 객체의 최신 버전의 데이터 반환 처리 가능
Etc.
파티셔닝
파티셔닝
은 데이터의 특정 속성 기반으로S3
의 디렉토리(또는 접두사) 기준으로 데이터를 구성하는 작업- 데이터의 특정 속성을
파티션 키
라고 하며, 파티션 키는 날짜 또는 기타 시간 단위로 설정 - 파티션 키는 둘 이상의 키로 묶을 수 있으며, 날짜 + 제품 카테고리 등을 활용하여 파티셔닝 가능
버킷팅
버킷팅
은 데이터 세트의 레코드를버킷
이라는 카테고리로 구성하는 방법- 데이터 버킷팅에서 속성 값이 동일한 레코드는 동일한 버킷으로 이동
- 레코드는 각 버킷이 대략 같은 양의 데이터를 보유하도록 균등하게 분산