목숨건데이터엔지니어
foot-data-engineering
목숨건데이터엔지니어
전체 방문자
오늘
어제
  • 분류 전체보기 (54)
    • 취업과 기본기 잡기 (11)
      • Python (2)
      • 자료구조 (1)
      • 알고리즘 (1)
      • 운영체제 (2)
      • 네크워크 (1)
      • 데이터베이스 (1)
      • SQL (1)
      • Linux (1)
      • Docker (1)
    • 더 나은 엔지니어가 되기위해 (11)
      • (AWS) api-gateway, kinesis (1)
      • (AWS) MWAA (1)
      • Apache Spark (1)
      • Apache Airflow (1)
      • Apache Kafka (1)
      • Apache Flink (1)
      • Hadoop (1)
      • 알쓸신잡 (4)
    • 데이터와 손잡기 (6)
      • 머신러닝(sklearn) (1)
      • 딥러닝 (3)
      • 오디오 처리 (1)
      • 데이터 시각화 (1)
    • 코딩테스트 잡기 (1)
      • [BOJ] 문제풀이 (0)
      • [프로그래머스] 문제풀이 (0)
      • [HackerRank] SQL (0)
      • 코딩테스트 후기 (1)
    • 토이 프로젝트 (4)
    • 각종 기술 삽질하며 익히기 - onpremise (11)
    • 학습과정 잡동사니 (7)
      • 오답노트 (7)
    • 평소 궁금증 파헤치기 (3)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

  • 아직 한참 부족하고 부끄러운 나의 github 링크

인기 글

태그

  • LIVY
  • 프로세스
  • 네트워크 스위치
  • 파이썬
  • 도커파일
  • Kinesis
  • spark to mysql
  • CTAS
  • Tableau
  • logstash
  • aws builders online series
  • scikit-learn
  • kafka
  • ES
  • django
  • Elk
  • #데이터 수집 절차
  • jupyter
  • flink
  • filebeat
  • spark with elasticsearch
  • MWAA
  • #데이터수집
  • Api-Gateway
  • 쓰레드와 프로세스
  • spark
  • spark on centos7
  • EMR
  • 서비쿼리
  • 멀티 프로그래밍

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
목숨건데이터엔지니어

foot-data-engineering

aws api gateway, kinesis 개념정리
더 나은 엔지니어가 되기위해/(AWS) api-gateway, kinesis

aws api gateway, kinesis 개념정리

2022. 1. 20. 01:47

1.api-gateway

aws의 api-gateway를 한마디로 정의하자면 외부 서비스(앱, 웹 등)에서 aws 내부 서비스를 연결해 주는 다리 이다. 아래 사진을 보면 좀더 명확히 이해가 가능하다.

 

 

api-gateway에 사용하고자하는 http, rest, websocket API를 구축하고 그 안의 설정에서 메서드와 리소스 방식을 원하는 형식에 맞춰 이용할 수 있다. 그 다음 설정은 json으로 받을지 text형식으로 받을지에 대한 부분과 다른 aws 서비스로의 연결을 위한 정책설정 등은 개념정리이므로 생략하고 aws tutorial 유투브 채널을 이용하면 쉽게 사용가능하다.

 

 

이걸 어떻게 활용할 수 있는지는 데이터 엔지니어링에 초점을 맞춰 말하자면 앱, 웹 애플리케이션에서 발생하는 실시간적인 데이터를 처리하기위해 aws kinesis와 연결하고 최종 데이터를 kinesis firehose를 통해 여러 형태의 db에 적재할 수 있다.

 

그렇다면 kinesis를 아직 설명하지 전이지만 kinesis firehose는 무엇이냐? 바로 설명하겠다.

 

2.aws kinesis

역시 한마디로 정의하자면 kinesis는 실시간으로 데이터 스트림을 수집, 처리, 분석해주는 서비스이다.

 

kinesis는 3가지로 이루어져있다. 데이터를 load해오는 Kinesis Data Streams(queue역할), queue에서 데이터를 꺼내서 전송해주는 Kinesis Data Firehose,  데이터 전처리 및 분석을 하게 해주는 Kinesis Data Analytics가 존재한다.

 

그런데 데이터를 어디서 extract해올 수 있냐? 경로는 너무나도 다양하다 rest 방식으로 받아지는 데이터들, s3, redshift 등 대부분의 어플리케이션에서 load가능하며 aws api인 boto3를 활용하면 쉽게 활용 가능하다.

 

data streams 생성시 비용최적화를 위한 데이터 스트림 용량을 설정할 수 있는데 각 서비스에서 운영되는 데이터량을 잘고려해서 설정해주면 된다. 프로비저닝의 샤드 개수를 조절하여 비용 최적화도 가능하다.

 

 

다음 Data Firehose는 설명 그대로 queue에서 데이터를 꺼내 넘겨주는 역할이므로 디테일한 설명은 패스한다.

 

당연하게도 대부분의 데이터는 전처리가 필요하다. Data Analytics가 그역할을 담당해준다. 

 

 

위 사진처럼 애플리케이션을 구성하면 그안에서 Zeplin환경에서 Flink를 사용한 코딩이 가능하고 데이터처리가 용이하다. 컴퓨팅파워는 역시 cost적인측면을 고려해서 설정을 하면된다.

 

마지막으로 아쉬우니 한가지를 더 정리하자면 실제 운영을 한다면 api-gateway나 kinesis에서 발생하는 log들은 CloudWatch를 사용할 수 있는데 이를 활용해 모니터링이 가능하다.

 

 

boto3 : https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/kinesis.html

    목숨건데이터엔지니어
    목숨건데이터엔지니어

    티스토리툴바