데이터 전처리: 데이터 소스 및 저장소 – 오브젝트 스토리지(S3)
ㅁ 데이터 소스 및 저장소
ㅇ 정의:
– 오브젝트 스토리지(S3)는 데이터를 파일 단위가 아닌 객체 단위로 저장하는 클라우드 기반 스토리지 서비스로, 각 객체는 데이터, 메타데이터, 고유 식별자로 구성됨. AWS S3가 대표적이며, 대규모 비정형 데이터 저장에 적합.
ㅇ 특징:
– 확장성이 뛰어나 페타바이트 이상의 데이터 저장 가능
– 데이터 무결성과 내구성을 위해 여러 리전/가용 영역에 복제 저장
– HTTP 기반 API로 접근 가능하며, 정적 웹 호스팅, 백업, 로그 저장 등에 활용
– 폴더 구조가 아닌 버킷(bucket)과 키(key) 기반의 평면 네임스페이스 구조
ㅇ 적합한 경우:
– 이미지, 동영상, 로그, 백업 파일 등 비정형 데이터 저장
– 대규모 데이터 분석을 위한 원본 데이터 저장소
– 정적 웹 사이트 호스팅, 데이터 공유 플랫폼
ㅇ 시험 함정:
– S3는 블록 스토리지가 아니라는 점에서 EBS, EFS와 혼동하기 쉬움 (S3는 객체 단위 접근)
– S3는 파일 시스템이 아니므로 POSIX 호환 파일 잠금/디렉토리 구조를 지원하지 않음
– 데이터 전송 속도는 네트워크 환경에 따라 제한됨
ㅇ 시험 대비 “패턴 보기” 예시:
– (O) S3는 객체 단위로 데이터를 저장하며, 각 객체는 고유 키를 가진다.
– (O) S3는 비정형 데이터 저장에 적합하다.
– (X) S3는 블록 단위로 데이터를 저장하고 POSIX 파일 시스템을 지원한다.
– (X) S3는 로컬 디스크처럼 마운트하여 읽기/쓰기가 가능하다.
ㅁ 추가 학습 내용
S3 스토리지 클래스와 특성
– Standard: 높은 내구성(99.999999999%), 짧은 지연 시간, 자주 접근하는 데이터에 적합, 비용 상대적으로 높음
– Standard-IA: 높은 내구성, 낮은 비용, 자주 접근하지 않는 데이터에 적합, 접근 시 요금 부과
– Glacier: 장기 보관용, 매우 낮은 비용, 복구 시간 길음(분~시간), 높은 내구성
S3 기능
– 버전 관리(Versioning): 객체 변경 이력 보관, 삭제 복구 가능
– 수명 주기(Lifecycle) 정책: 객체를 다른 스토리지 클래스로 자동 이전 또는 삭제
– 서버 측 암호화
– SSE-S3: AWS 관리 키 사용
– SSE-KMS: KMS 관리 키 사용, 키 관리 및 접근 제어 가능
– 이벤트 알림(S3 Event Notification): 객체 생성/삭제 시 SNS, SQS, Lambda 등으로 알림 전송 가능
– Lambda 연계: 이벤트 기반 서버리스 처리 가능
성능 최적화 기능
– 멀티파트 업로드: 대용량 파일을 여러 부분으로 나눠 병렬 업로드
– 전송 가속(S3 Transfer Acceleration): 엣지 로케이션을 통한 업로드/다운로드 속도 향상
– 프리사인 URL(Presigned URL): 제한된 시간 동안만 유효한 접근 URL 생성
S3와 다른 스토리지 서비스 비교
– S3: 객체 스토리지, 인터넷 기반 접근, 무제한 확장성, 다양한 스토리지 클래스 제공
– EBS: 블록 스토리지, EC2 인스턴스에 연결, 낮은 지연 시간, 단일 AZ 기반, 비용은 프로비저닝 용량 기반
– EFS: 파일 스토리지, NFS 프로토콜 지원, 다중 AZ 접근 가능, 자동 확장, 비용은 사용량 기반