1. 데이터 엔지니어링
Amason S3
- Objects(파일)를 Bucket(폴더)에 저장할 수 있도록 해주는 서비스
- 세계적으로 고유한 이름을 가져야 함
- Objects는 key를 가지며 키는 파일의 전체 경로임
- <my_bucket>/my_file.txt
- <my_bucket>/my_folder1/another_folder/my_file.txt
- 최대 object size는 5TB
- key / value 구조의 object 태그를 추가할 수 있으며 이는 보안, 분류, 수명 주기에 도움이 됨
Amozon S3 for Machine Learning
- 많은 AWS ML 서비스에 사용됨 Ex) SageMaker
- 'Data Lake'를 만들 수 있음
- 크기 제한이 없으며, 별도 provisioning이 필요 없음
- 내구성이 99%, 즉 보안이 철저함
- 저장 계층(S3)과 계산 계층(EC2, Amazon Athena, Amazon Redshift Spectrum, Amazon Rekognition, AWS Glue)의 분리
- 중앙 집중식 아키텍처
- 객체 저장소 → 다양한 파일 형식 지원 Ex) CSV, JSON, Parquet, ORC, Avro, Protobuf
Amazon S3 Data Partitioning
- 범위 쿼리 속도 향상을 위한 패턴 Ex) AWS Athena
- 날짜 기준 Partitioning : s3://bucket/my-data-set/year/month/day/hour/data_00.csv
- 연도, 월, 일, 시간에 따른 데이터셋 쿼리에 유용함
- 제품 ID 기준 Partitioning : s3://bucket/my-data-set/product-id/data_32.csv
- 정의된 제품 ID에 따른 데이터셋 쿼리에 유용함
- 원하는 파티셔닝 전략을 정의할 수 있음
- AWS Glue와 같은 도구를 사용하여 자동 처리 가능
Amazon S3 Storage Classes
| 스토리지 클래스 | 사용 사례 | 가용성(Availability) | 내구성(Durability) |
|---|
| S3 Standard (표준) | 자주 액세스되는 데이터 | 99.99% | 99.999999999% |
| S3 Standard-IA (저빈도 액세스) | 가끔 필요하지만 빠른 액세스가 필요한 데이터 (예: 백업, 재해 복구) | 99.9% | 99.999999999% |
| S3 One Zone-IA | 한 개의 가용 영역(AZ)에만 저장, 재생성 가능한 데이터에 적합 | 99.5% | 99.999999999% |
| S3 Glacier Instant Retrieval | 분기별 한 번 정도 액세스하는 데이터 (밀리초 단위 조회) | 99.9% | 99.999999999% |
| S3 Glacier Flexible Retrieval | Expedited(1~5분), Standard(3~5시간), Bulk(5~12시간) 조회 옵션 제공 | 99.99% | 99.999999999% |
| S3 Glacier Deep Archive | 최소 180일 보관이 필요한 장기 아카이브 | 99.99% | 99.999999999% |
| S3 Intelligent-Tiering | 자동으로 데이터 액세스 패턴을 감지하고 적절한 스토리지 클래스로 이동 | 99.9~99.99% | 99.999999999% |
위 클래스들 간 수동 이동 또는 S3 수명 주기(Lifecycle) 정책을 사용한 자동 이동 가능
Amazon S3 Durability and Availability
- Durability(내구성)
- 객체가 S3 내에서 손실되지 않고 안전하게 보존될 확률
- Ex) S3의 내구성은 99.999999999%로, 이는 1000억개의 객체를 저장했을 때, 연간 1개의 객체가 손실됨을 의미
- 모든 S3 스토리지 클래스에서 동일한 내구성 보장
- Availability(가용성)
- 특정 서비스나 데이터에 접근할 수 있는 확률
- S3 스토리지 클래스에 따라 다르게 제공됨
- S3 Standard는 99.99% 가용성 제공 → 연간 약 53분 간 서비스 접근 불가능
- S3 Standard-IA는 99.9% 가용성 제공 → 연간 약 8.7시간 간 서비스 접근 불가능