대규모 조직인 기업에서 데이터는 클라우드와 온프레미스 환경 모두에서 파편화되고 분산화 되는 경우가 많다. 이러한 파편화를 막는 좋은 방법이 데이터 레이크 이다.
데이터 레이크는 다양한 데이터 원천에서 유입된 방대한 양의 구조화 및 비구조화 데이터를 수집 및 저장하는 중앙화 데이터베이스라고 할 수 있으며
데이터 웨어하우스와 달리 데이터읙 ㅜ조화 정렬 복제 등의 작업을 하지 않고 저장할 수 있다.
또한 데이터 레이크에 있는 그대로 검색, 분석, 시각화, 상관 관게 분석 등의 작업을 수행할 수 있다는 장점이 있다.
데이터 유입 작업은 다양한 데이터 원처으로부터 우리의 데이터 레이크로 데이터를 전송 및 수집하는 절차이며, AWS Glue, AWS Lake Froamtion등의 서비스를 이용해 S3, RDB, AWS CloudFront 등의 다양한 위치에서 데이터를 임포트 할 수 있다.
특히 JDBC 커넥터를 지원하는 모든 온프레미스 데이터베이스로부터 데이터를 임포트 할 수 있다.
데이터에 라벨을 붙이면 데이터의 민감도, 사용 맥락 등에 따라 분류하거나 이용 목적에 따라 별도로 저장할 수 있다.
데이터 변환 작업에는 데이터 포맷 설정, 데이터 결합과 중복된 데이터와 변질된 데이터, 부적합한 데이터 등의 제거 업무와 같은 데이터 클리닝 작업이 포함된다.
본격적인 분석 작업에 앞서 데이터 포맷 변환 등 사전 작업을 미리 수행하는 것은 필수다.
또한 AWS Lake Formation이 제공하는 머신러닝 기반의 변환기를 통해서 중복 데이터를 제거할 수 도 있다.
데이터 레이크에서 데이터 분석은 데이터 조회 시점에 데이터에 일정한 스키마 또는 구조를 적용하는 일을 의미한다. 주요 데이터 분석 서비스는 Athena, QuickSight등이 있다.
AWS Transfer Family는 다음 세가지 프로토콜 기반의 전송 방식을 이용해 S3 또는 EFS로 데이터를 전송한다.
AWS Transfer Family를 이용하면 널리 사용되는 FTP 도구를 이용해 온프레미스에서 AWS로 데이터를 전송할 수 있따.
FTP연결을 위한 신분확인 옵션으로 로컬 기반의 신분 인증 또는 Active Directory등 서드 파티에서 제공하는 신분 인증 방식을 사용할 수 있다.
스트리밍 데이터의 수집, 처리, 저장, 전송을 위한 서비스 모음이며 수천개의 소스로부터 초당 수 기가바이트 수준으로 유입되는 데이터 등 다양한 스트리밍 데이터를 처리할 수 있다.
스트리밍 데이터 타입에 따라 아래와 같은 서비스를 제공한다.
웹캠, 보안용 카메라, 스마트폰 카메라 등 다양한 스트리밍 비디오 데이터를 거의 무한대로 처리 및 분류할 수 있는 실시간 비디오 처리서비스이다.
활용 케이스
프로듀서-컨슈머 모델을 사용하며, kinesis 스트림으로 데이터를 유입시키는 데이터 소스를 프로듀서라 부른다.
kinesis는 타임스탬프를 이용해 비디오 스트림을 분류하며, 개별 비디오 스트림의 저장 시간은 기본 24시간 최대 저장기간은 7일이다.
스트림 데이터를 읽어드리는 애플리케이션을 컨슈머라고 하며 비디오 재생등 처리를 위해 kinesis로부터 데이터를 인출한다. 컨슈머는 EC2인스턴스에서 실행되는 비디오 애플리케이션 등이 될 수 있다.
kinesis Data Streams 는 프로듀서가 생성한 데이터의 수집 처리 저장을 위한 스트리밍 데이터 파이프라인 서비스이다.
하나의 데이터 스트림을 다수의 컨슈머가 구독할 수 있는 일대다 모델을 사용한다.
SQS는 하나의 컨슈머가 경량의 메시지를 처리 및 삭제할 떄까지 임시로 큐에 보관하는 서비스라고 할 수 있다. 반면 Kinesis Data Streams는 다수의 컨슈머를 위해 대규모 데이터 스트림을 장기간 보관 및 인출하기 위한 서비스라 할 수 있다.
kinesis data firehorse는 스트리밍 데이터를 수집하고, 목적지로 전송하기 전 해당 데이터를 변환한다. 데이터 변환 작업에는 데이터 정렬, 다른 포맷으로의 변환 등이 포함된다.
데이터 변환시에는 Lambda함수를 이용하며, 커스텀 변환 작업의 유연성을 제공한다.
다른 관리형 AWS서비스 및 서드파티 애플리케이션과 긴밀하게 통합할 수 있다. 또한 RedShift, S3, Splunk등 서비스에 스트리밍 데이터를 전송하는데 적합하다.