[AWS]GatewayAPI / KinesisStream, Firehose / S3 이론

AWS에서 Spark를 활용한 Pipeline 구축하기


Spark을 활용한 데이터 파이프라인 만들기_2주차_이론

목표

S3를 이해하자
Kinesis를 이해하자
온프레미스와 클라우드상에서 데이터 수집의 차이를 알아보자
AWS 패키지들을 이용한 데이터 수집

큰 흐름

  • 데이터 생성
  • 데이터 수집: Kinesis Streams, Kinesis Firehose, Gateway, Lambda function
  • 데이터 수집 & 전처리: Glue, S3
  • 데이터 전처리: EMR
  • 데이터 분석, 시각화: Zeppelin, Athena, Tableau, Superset

S3

  • 무제한의 저장용량
  • 요청이 많아도 Kinesis Stream의 shard 조정으로 확장 처리 가능
  • 반 정형화 타입인 json으로 저장
  • 버킷 : 모든 객체는 어떤 버킷에 포함된다. 윈도우에서 root 폴더라고 이해하자. 버킷은 웹서버 구성도 가능하고 생각보다 많은 것이 가능함
  • 객체 : S3에 저장되는 기본 개체
    • 개체 = 객체 데이터 + 메타 데이터
  • : 버킷 내에서 객체를 구별하는 식별자로 모든 객체는 정확히 하나의 키를 가진다.

Api Gateway

  • 쉽게 말해서 모바일, 웹 애플리케이션에서 AWS 서비스들에 접근할 수 있는 일관된 Restful Api를 지원한다. AWS 솔루션을 쓰겠다? Api Gateway가 커넥터 역할을 하는듯 하다.

Kinesis(= AWS의 Kafka)

Firehose

  • Serverless
    • 실시간 스트리밍 데이터를 여러 곳에 전달해주는 역할을 한다
    • 실습에서는 이 것을 사용해서 S3에 저장하는 것을 해본다
    • Spark Streaming, Kinesis Streaming (즉 스트리밍 형태)으로 들어오는 데이터를 S3, Redshift, Elasticsearch, Splunk 등에 전송을 위한 관리형 서비스다

가장 이해하기 어려운 부분이었음
우리의 프로젝트와 비교해서 설명하면
spark streaming -> 나름 리얼리얼 데이터를 받아서 처리해주는 부분에 작성한 프로세스를 이 Firehose가 한다고 보면 된다. 아래의 그림을 보면 이해가 될 듯

용어 알기
메타데이터 : 데이터에 대한 데이터. 즉, 데이터에 관한 구조화된 데이터로 다른데이터를 설명해주는 데이터 이다.

** 수업 내용의 일부를 정리한 것으로, 퍼가는 것을 지양해주세요 **