AWS

데이터 파이프라인 흐름

썬2 2022. 8. 21. 17:41

데이터 파이프라인 이란?

한 데이터 처리 단계의 출력이 다음 단계의 입력으로 이어지는 형태로 연결된 구조로 데이터를 제공

 

데이터 파이프라인 설계도

https://towardsdatascience.com/scalable-efficient-big-data-analytics-machine-learning-pipeline-architecture-on-cloud-4d59efc092b5

 

Architecture for High-Throughput Low-Latency Big Data Pipeline on Cloud

Scalable and efficient data pipelines are as important for the success of analytics and ML as reliable supply lines are for winning a war.

towardsdatascience.com

0. 데이터 생성

1. 수집

  • Amazon Kinesis Streams: 큐 서비스와 같다. stream(강물)처럼 앞단부터 차곡차곡 쌓는 형태의 데이터. stream 데이터의 특정 부분을 잡기 위해 그물을 던진다. (그물의 크기를 window라고 함) 일정 시간과 용량이 되면 데이터는 소멸하게 된다.
    저장이 잘 안될 경우 느려지는 현상이 발생한다. DBMS가 느려져도, 이 큐에서 모든 데이터를 일단 받기에 사용자가 앱을 navigation할 때에도 작동이 잘 된다.
  • Amazon Kinesis Firehose: 큐에 있는 데이터를 S3에 쉽게 저장하도록 지원. (코딩 없이) (redshift, elasticsearch 등 데이터를 실시간 넣는 것도 있다.)
  • Amazon API Gate way: 앱이나 외부에서 발생하는 이벤트를 aws 서버와 연결해주는 프록시 서버.
  • Lambda function: 이벤트에서 발생한 여러 서비스를 핸들링하기 위해 사용. Kinesis Streams에 있는 데이터를 S3/rdbms에 저장

2. 수집 + 전처리

  • AWS Glue: 데이터 파이프라인이 많으면 운영하기 어렵다. 데이터 카탈로그에 있는 메타 정보. 어느 위치/포맷/정보 변경 등을 가진다.
  • Amazon S3: 저장

3. 전처리 및 저장

  • Amazon EMR: AWS 안에 있는 하둡 관련 에코 어플리케이션을 가진 알리형 서비스. 하둡 구성을 실행하는데 예전에 몇 시간 걸렸던 것을 최대 10분 등으로 처리.

4. 전처리 및 분석 및 시각화

  • Amazon Thena: ed-work하게 데이터를 분석 할 수 있는 환경 제공.

5. 분석 및 시각화

  • Apache Zeppeline
  • Tableaur
  • Superset

 

데이터 lambda 설계도

람다 아키텍처란?:

실시간 분석을 지원하는 빅데이터 아키텍처.

대량의 데이터를 실시간으로 분석하기 어려우니, batch로 미리 만든 데이터와 실시간 데이터를 혼합해서 사용하는 방식.

https://gyrfalcon.tistory.com/entry/람다-아키텍처-Lambda-Architecture

 

람다 아키텍처 (Lambda Architecture)

람다 아키텍처란? 실시간 분석을 지원하는 빅데이터 아키텍쳐 대량의 데이터를 실시간으로 분석하기 어려우니 batch로 미리 만든 데이터와 실시간 데이터를 혼합해서 사용하는 방식이다. <람다

gyrfalcon.tistory.com

 

1. Raw Data Store

  • Amazon API Gateway
  • Amazon Kinesis Streams
  • Amazon Kinesis Firehose
  • Amazon Pinpoint: CRM 서비스. 특정 앱/웹에서 발생하는 이벤트를 실시간/데이터 기반으로 마케팅할 수 있는 툴킷. API Gateway에서 발생하는 비용이 부담될 경우에도 사용.

2.1 Batch-Processing Engine

  • Spark: AWS EMR을 통해 배포.
  • AWS DMS: DB를 가져올 때 서비스의 부하를 적게 해서 가져온다.

2.2 Real-Time Processing Engine

  • Spark streaming: EMR 안에 있지만 항상 켜야하는 단점.
  • Amazon Kinesis Analytics

3. Serving Data Store

  • Amazon ES: Elastic Search Service. 보통 Real time에 가장 많이 사용. 데이터양이 지속적으로 많아지면 약간 부적합하다. 왜냐하면 storage와 computing하는데 시간이 늘어나고 비용적으로 더 많이 발생하기 때문. 그래서 보통 신규 서비스의 태깅, 가입, 페이징에 대한 분석을 빠르게 활용하기 위해 사용. (데이터의 유지는 2주~한달 정도 보고 운영하는데 적당)
  • Amazon DynamoDB
  • Amazon RDS: Mysql같은 DBMS 서비스.

3.1 Serving Data Store를 바탕으로 Amazon SageMaker를 이용해서 data discovery, predictive modeling 만들기.

3.2 분석

  • presto: EMR 안에 있음. 쉽게 시각화하며 요청한 사람에게 보여줄 수 있다.
  • Amazon Redshift: column 베이스의 분석 툴.

4. Visualization

  • Apache Zeppline
  • Tableaur

 

'AWS' 카테고리의 다른 글

AWS TechCamp: Web Application with Serverless  (1) 2024.03.26
SageMaker  (0) 2021.07.30
AWS API Gateway와 Lambda  (0) 2021.07.30
앱 서버 연결 방법  (0) 2021.07.30
스터디 1주차  (0) 2021.07.21