aws

[AWS]데이터 유입, 변환, 분석

하리하링웹 2024. 8. 1. 17:30

AWS Lake Formation

조직이 커지면 데이터가 파편화되어 저장되기때문에 분석 업무가 어려워진다 이를 해결하는 방법이 바로 데이터 레이크이다.

데이터 레이크는 다양한 구조의 데이터를 수집 및 저장하는 중앙화 데이터베이스이다. 데이터 레이크에 데이터 저장 시 데이터 구조화, 정렬, 복제 등의 작업을 할 필요가 없으며, 데이터 레이크에 있는 그대로 검색, 분석, 시각화, 상관 관계 분석 작업 수행이 가능하다.

AWS Lake Formation은 AWS 또는 온프레미스 어디에 있는 데이터여도 수집, 분석할 수 있는 데이터 레이크 서비스이며 또 다른 서비스인 AWS Glue를 이용해 Extract, Transform, Load 작업 즉 데이터 추출, 변환, 로딩 작업을 수행한다. AWS Glue는 Apache Spark 빅데이터 프레임워크 기반 서비스이며, ETL 작업은 물론, 대규모 데이터세트에 대한 쿼리 작업에도 활용된다.

데이터 유입

데이터 유입은 다양한 데이터 소스로부터 데이터 레이크로 데이터를 전송, 수집하는 절차이다. S3, RDS, ELB 등 다양한 위치에서 데이터를 import 할 수 있다.

AWS Lake Formation, Glue는 데이터 작업 처리를 위해 라벨링 작업을 자동으로 처리해준다.

데이터 변환

변환 작업에는 데이터 포맷, 중복 데이터, 변질 데이터 제거 등 데이터 클리닝 업무가 포함된다. 다양한 원천에서의 데이터가 저장되기떄문에 다양한 문제가 발생할 수 있기 떄문이다.

AWS Lake Formation은 AWS Glue와 통합해 사용할 수 있으며 포맷이 상이한 데이터 포맷을 일치시킬 수 있다.

또 다른 문제는 중복성이다, AWS Lake Formation은 머신러닝 기반 FindMatches라는 변환기를 제공해 중복 데이터 제공을 위한 별도의 키 사용 없이 다수의 데이터 베이스에 존재하는 중복 데이터를 제거할 수 있다.

데이터 분석

데이터 분석 작업에는 데이터에 포함된 통찰 정보를 파악하기 위한 데이터 조회, 시각화, 통계적 분석 업무가 포함되며, 데이터 레이크에서 데이터 분석은 데이터 조회 시점에 데이터에 일정한 스키마, 구조를 적용하는 일을 의미한다.

AWS 주요 데이터 분석 서비스로는 Athena, QuickSight, RedShift, Spectrum, Amazon EMR, AWS Glue등이 있으며 AWS Glue는 Apache Spark 프레임워크 기반이므로 대량의 데이터세트에서 신속하게 특정 텍스트를 찾아낸다.

AWS Transfer Family

aws transfer family는 아래 세 가지 프로토콜로 S3 또는 EFS로 데이터를 전송한다

  • FTP
  • SFTP
  • FTPS(File Transfer Protocol over SSL)

aws transfer family 서비스를 사용하면 FileZilla, OpenSSH, WinSCP 등 FTP 도구를 사용해 온프레미스에서 AWS로 데이터 전송이 가능하다.

Kinesis

Amazon Kinesis는 스트리밍 데이터의 수집, 처리, 저장, 전송을 위한 서비스 모음이며 초당 수 기가바이트 수준의 스트리밍 데이터를 처리할 수 있다. 스트리밍 데이터 타입에 따라 아래의 서비스를 제공한다.

  • Kinesis Video Streams
  • Kinesis Data Streams
  • Kinesis Data Firehose

Kinesis Video Streams

kinesis video streams는 다양한 스트리밍 비디오 데이터를 거의 무한대로 처리, 분류할 수 있는 실시간 비디오 처리 서비스이며 아래 목적으로 자주 활용된다.

  • 이미지 인식 등 컴퓨터 비전 애플리케이션
  • 스트리밍 비디오 애플리케이션
  • 양방향 비디오 회의 애플리케이션

kinesis video streams는 프로듀서-컨슈머 모델을 사용하며, kinesis 스트림으로 데이터를 유입시키는 데이터 소스를 프로듀서라 한다. 개발 비디오 스트림의 저장 시간은 기본 24시간, 최대 7일이다.

데이터를 읽어들이는 애플리케이션을 컨슈머라 하며, 비디오 재생, 처리를 위해 kinesis로부터 데이터를 인출한다.

kinesis video streams은 비디오 재생을 위해 HLS, DASH 규격을 지원한다.

Kinesis Data Streams

Kinesis Data Streams는 프로듀서가 생성한 데이터의 수집, 처리, 저장을 위한 스트리밍 데이터 파이프라인 서비스이다. MapReduce와 같은 빅데이터 분석 애플리케이션이 컨슈머가 될 수 있다. Kinesis Data Streams가 처리하는 데이터 타입은 아래와 같다.

  • 애플리케이션 로그
  • 주식 거래 데이터
  • 소셜 미디어 피드
  • 금융 거래 데이터
  • 위치 추적 데이터

Kinesis Data Streams의 작동 방식은 Kinesis Video Streams와 비슷하다. 프로듀서가 데이터를 전달하면 데이터는 타입, 소스에따라 데이터 레코드에 기록된다.

Kinesis Data Streams의 데이터는 데이터 레코드에 파티션 키 및 시퀀스 번호와 함께 저장한다. 따라서 시간 순서가 아닌 데이터 고유 순서에 따라 저장되고 처리할 수 있다.

다수의 컨슈머 객체가 하나의 스트림을 동시에 읽는것도 가능하며, 이를 팬아웃 이라 부른다.

최대 스트림 처리 용량은 샤드 값에 따라 달라지며 설정 가능하다. 각 샤드는 데이터 레코드의 시퀀스를 구분하게 해주고, 나름의 고정 용량을 가진다. 샤드 값을 증가시키면 처리 용량을 높일 수 있다.

Kinesis Data Firehose

Kinesis Data Firehose는 스트리밍 데이터를 수집하고, 목적지로 전송하기 전 해당 데이터를 변환한다. 변환 작업에는 데이터 정련, 다른 포맷으로의 변환 등이 포함된다.

Kinesis Data Firehose의 원본 데이터는 변환 작업 실패에 대비해 S3에 전송 가능하며, 전송 데이터 버퍼 수준도 설정 가능하다.

Kinesis Data Firehose와 Kinesis Data Streams 비교

Kinesis Data Firehose는 Kinesis Data Streams와 유사한 부분이 많이 있다.

Kinesis Data Streams는 개방형 프로듀서-컨슈머 모델을 사용하며 하나의 데이터 스트림을 다수의 컨슈머가 구독할 수 있는 일대다 모델을 사용한다.

Kinesis Data Firehose은 개방형 프로듀서-컨슈머 모델이 아니며 Kinesis Data Firehose 생성 시 하나 이상의 데이터 목적지를 지정해야 한다.

Kinesis Data Firehose는 다른 AWS 서비스 및 서드파티 애플리케이션과 긴밀하게 통합할 수 있다. 또한 Redshift, S3, Splunk등 서비스에 스트리밍 데이터를 전송하는데 적합한 반면 Kinesis Data Sterams는 커스텀 애플리케이션에 스트리밍 데이터를 전송하는데 적합하다.

서비스 데이터 변환 최대 보유기간 데이터 관리 모델

Simple Queue Service X 14일 프로듀서-컨슈머
Kinesis Video Streams X 7일 프로듀서-컨슈머
Kinesis Data Streams X 7일 프로듀서-컨슈머
Kinesis Data Firehose O 24시간 소스-데스티네이션

정리

Kinesis 서비스는 오디오, 비디오 등 실시간 바이너리 데이터의 수집, 처리, 저장을 위한 서비스이다.

'aws' 카테고리의 다른 글

[AWS]데이터 유입, 변환, 분석  (0) 2024.08.04
[AWS] DNS와 CDN: Route 53과 CloudFront  (0) 2024.08.04
[AWS]DNS와 CDN: Route 53과 CloudFront  (0) 2024.07.30
[AWS] 모니터링  (0) 2024.07.28
[AWS] IAM  (0) 2024.07.20