인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

Kafka & Spark 활용한 Realtime Datalake

초보자를 위한 Kafka & Spark 실시간 파이프라인 입문 강의. 핵심 개념부터 아키텍처까지 마스터하기 위한 올인원 강의입니다.

초급자를 위해 준비한
[Kafka, Apache Spark] 강의입니다.

이런 걸 배울 수 있어요

  • Github과 Actions, AWS Code Deploy로 CI/CD 구현

  • Kafka Broker, Confluent Producer & Consumer

  • Prometheus & Grafana를 이용한 Kafka Dashboard 모니터링

  • Catalog 관리를 위한 Spark & Hive Metastore

  • Spark Streaming을 이용한 실전 프로젝트 구현

  • Kafka & Spark, Zookeeper & Yarn의 가용성 테스트

실시간 데이터 파이프라인, 왜 배워야 할까?


실시간 데이터 파이프라인 구성을 통해 신속한 분석과 의사결정을 지원하는 것은 선택이 아닌 필수입니다.

  • 실시간 개인화 마케팅 & 추천

  • 실시간 트렌드 분석

  • 실시간 보안 위협 감지 및 대응



특히 AI가 기본이 된 요즘에는 AI를 활용한 실시간 추천, 감지, 번역 등 무궁무진한 사례가 존재하며 이런 아키텍처 구현을 위해 점점 더 실시간 데이터 파이프라인이 요구되고 있습니다.


그래서 준비했습니다.

가장 인기있는 Streaming 처리 조합 중 하나인 Kafka + Spark 기반의 실시간 파이프라인

Kafka & Spark 은 기본부터 차근차근히, 파이프라인 구현을 넘어 아키텍처 관점에서의 설계 방법까지 준비했습니다.

이 강의의 특징

📌 로컬 머신 위 단일 구성은 No! 대세는 클라우드입니다. AWS Cloud를 활용합니다.

📌 CI/CD는 기본이죠? github Actions와 AWS Code Deploy를 통해 CI/CD를 구성합니다.

📌 기본부터 천천히, 하지만 실습과 과제를 통해 강의 내용이 내재화가 될 수 있도록 도와드립니다.

📌 서버 클러스터 구성부터 실시간 파이프라인 구성 및 가용성 테스트까지 All in One 구성

👍 이런 분들께 추천해요

실시간 데이터 파이프라인을 배우고 싶어요.
데이터 파이프라인에 관심은 있지만 실시간 처리는 경험해보지 못한 분

DataLake 를 알고싶어요.
Cloud 위에 구축되는 DataLake가 어떻게 구현되는지 배우고 싶으신 분

아키텍트로 성장하고 싶어요.
인프라 설계부터 코드레벨까지 대용량 처리가 가능하면서 견고한 아키텍처 구현이 궁금하신 분

수강 후에는

  • Kafka Broker 서비스에 대한 기본 원리 이해, 가용성 보장을 이해하고 이를 기반으로 Broker 서비스를 다룰 수 있게 됩니다.

  • Kafka Producer/Consumer 의 기본 원리와 고급 옵션까지 이해하고 대용량 환경에서 성능과 정합성간 Trade-off 이해를 통해 견고한 Application을 작성할 수 있게 됩니다.

  • Spark 이 성능을 발휘할 수 있는 조건에 대해 이해하고 성능을 최적화할 수 있는 기법을 기반으로 Application을 작성할 수 있게 됩니다.

  • AWS S3, Glue, Athena 등 여러 서비스와 Spark 서비스와의 연계를 통해 파이프라인의 다양성을 이해할 수 있습니다.

그래서, 어떤 내용을 다루나요?


  1. 이제 대세는 클라우드입니다. EC2 서버를 이용해 실전과 같이 클러스터를 구성해봅니다.

  2. Kafka & Spark은 기본부터 천천히 배웁니다.

  3. AWS의 S3, Glue, Athena 서비스를 통해 Datalake on AWS의 기본 개념을 배웁니다.



파이프라인은 수집부터 활용까지 구분해 볼 수 있습니다.

각각의 단계마다 어떤 도구를 어떻게 사용하는지, 어떻게 연계 되는지를 명확히 알아야 합니다.

따라서 Kafka 와 Spark을 단순히 배우는데 그치지 않습니다.

최종적으로 실제 파이프라인을 구축해보고

그 과정에서 CI/CD, 가용성 테스트, 문제 해결과 성능향상 등의 방법을 배웁니다.

커리큘럼

  1. 데이터레이크 개념


  • Lambda

  • Kappa Architecture

  • 파이프라인 설계

  1. Kafka 기본


  • Broker

  • Kafka Producer

  • Kafka Consumer

  1. 모니터링

  • UI For Apache Kafka

  • Prometheus

  • Grafana

  1. Apache Spark 기본

  • Spark Cluster

  • Spark SQL

  • Spark Streaming

  1. 성능향상 Tip

  • 성능향상 Checklist

  • Trouble Shooting

  • Spark Monitoring

  1. 가용성 테스트

  • Zookeeper Cluster

  • Kafka Broker

  • Spark Cluster


이런 내용을 배웁니다.

파이프라인 설계

실시간 데이터 파이프라인 구성을 위해 선택 가능한 도구들의 조합.

그리고 실습을 위해 선택하는 Kafka & Spark의 데이터 흐름을 이해하고 구현해봅니다.

CI/CD: Github Actions + Code Deploy

CI/CD 는 기본중의 기본.

로컬 git → Github Repository 연동 후 자동 배포가 될 수 있도록 Actions + Code Deploy 조합을 활용합니다.

Kafka Web UI

UI For Apache Kafka 를 통해 Kafka를 쉽게 관리하는 방법을 배웁니다.

Prometheus + Grafana

모니터링 파이프라인 대세.

Prometheus + Grafana 조합을 통해 Kafka 를 모니터링하고 더 나아가 Spark Streaming 의 LAG 모니터링 방안을 배웁니다.

Kafka Source + Spark Streaming

Kafka + Spark Streaming 조합을 통해 실제 파이프라인을 구현해보고 이를 바탕으로 Dashboard를 시각화합니다.

AWS Athena

AWS Athena 서비스는 서버리스 쿼리 서비스입니다. 이 서비스를 활용해 Spark Streaming의 처리 결과를 직접 확인해봅니다.

Python Dashboard

구현한 실시간 데이터 파이프라인을 이용해 Dashboard로 시각화하고 파이프라인의 흐름을 이해합니다.

가용성 테스트

최대한 실제와 같은 아키텍처 구현을 통해 견고한 아키텍처를 구현해보고 가용성 테스트 진행합니다. Kafka, Spark, Yarn Cluster 의 가용성을 이해하고 확인합니다.

Ansible을 이용한 Infra 셋업 자동화

이 모든 것을 다 만들기에 해야할 것이 많지 않냐구요?

맞습니다. 매우 많습니다.

설치할 라이브러리도 많고 이것저것 설정해줘야 할게 아주 많습니다. 뭐 하나 잘 안맞으면 오류가 나죠 🤬

하지만 여러분들은 실시간 파이프라인 구현이라는 중요한 내용에만 주목해주시면 됩니다.

Infra 구성과 각종 셋업은 미리 준비된 Ansible Script를 통해 자동화가 진행됩니다.

Ansible Script는 아래 github 주소에서 미리 볼 수 있습니다.

https://github.com/hjkim-sun/datalake-ansible-playbook-season1


여러분들은 위 github repository 내용을 clone하여 셋업 과정을 쉽게 진행하게 됩니다.

🚨실습 전 참고해 주세요!

Kafka Client(Producer/Consumer)는 Python 으로 작성합니다.


Python Kafka Library 는 여러 종류가 있으나 그 중 가장 성능이 좋은 Confluent Kafka Library를 사용합니다. Confluent Kafka 는 Java 못지않게 높은 성능을 보장하는 도구로써 Python 을 통해 Producer/Consumer를 작성하는 방법을 배웁니다.


Spark 언어 또한 Python으로 작성합니다.


Spark Application을 작성할 때 가장 성능이 좋은 언어는 Scala 입니다. 그러나 Spark 을 위해 별도로 Scala 언어를 배우기에는 분명 부담이 있습니다. Python 언어만큼 대중적이지 않고 딥러닝/AI 관련 라이브러리도 상대적으로 적다는 단점이 있습니다. 그래서 현업에서는 Python을 이용해 Spark 프로그램을 개발하는 경우가 많습니다. 특히 딥러닝/AI 연동을 고려한다면 Python 언어로 작성하는 것은 훌륭한 대안이 될 수 있습니다.

🚨AWS 예상 실습 비용

실습은 AWS Cloud 에서 진행되며 실습 비용이 별도로 발생합니다.


한 달 동안 약 40시간 사용했을 때 약 4만원 정도 AWS 비용 발생합니다. (환율 1,430 기준)

실습 비용은 대부분 EC2(컴퓨팅 서비스)에서 발생하므로 실습&과제 후 꼭 서버 인스턴스를 중지해주셔야 합니다. 그러나 그 외 비용(서버 인스턴스에 연결되어 있는 볼륨(EBS)과 EIP)의 경우 서버 인스터스를 중지하더라도 비용이 발생합니다. 따라서 완강을 빨리 하실수록 AWS 실습 비용은 감소합니다.


서버를 모두 중지해놔도 서버 볼륨 비용으로 인해 한 달 약 3만원 정도 발생합니다.

따라서 똑같이 40시간을 사용해도 한 달이 아닌 두 달 동안 사용하신다면 3만원이 추가되어 총 7만원 정도의 AWS 요금이 발생하게 됩니다. 따라서 가급적 완강을 빨리 하시기를 추천드립니다.

아래 내용은 배우지 않습니다.


  1. Java 기반의 Producer/Consumer 개발

  2. Kafka Connect (Season2 예정)

  3. Schema Registry (Season2 예정)

  4. Kafka Streams

  5. KSQL



  1. 머신러닝 및 딥러닝

  2. Open Table Format (ex. iceberg) (Season2 예정)

  3. Scala 기반의 Application (pyspark으로만 작성합니다)

커뮤니케이션

여러 도구와 연계하는 작업이 많은 강의의 특성상 궁금한 내용 또는 예상치 못한 오류가 생기는 경우 Q&A 게시판만으로 의사소통이 어려울 수 있습니다.

(경험상 질문 등록되면 제가 답변을 달고 재확인 되기까지 3~4 일 정도 소요되는 것으로 보입니다)


이런 의사소통의 불편함을 줄이고 수강하신 분들에게 끝까지 고품질 서비스를 제공해드리기 위해 디스코드 채널을 운영하고자 합니다.

https://discord.gg/MURJAFZ8


강의에 대한 내용이어도 좋고, 아니어도 좋습니다. 사소한 얘기를 나누어도 좋습니다.

원활한 커뮤니케이션을 위한 곳이니 편하게 입장해 주세요

수강 전 참고 사항

실습 환경

  • [OS] 대부분의 실습은 AWS에서 진행합니다. 따라서 Window/MacOS 상관없이 수강 가능합니다.

  • [성능] 높은 CPU/Memory 스펙을 요구하지 않습니다. 일반적으로 사용하는 노트북/데스크탑이면 충분히 수강 가능합니다.

  • [기타] 인터넷이 되는 환경이면 얼마든지 수강 가능합니다. 그리고 AWS Cloud 비용 결제 가능한 신용카드가 필요합니다.

학습 자료

  • 강의 1-2 에서 제공하고 있습니다.


필수 사전 지식 사항

  1. 파이썬 기본 지식


    기본적인 자료구조와 if/for/while 등 기본적인 문법. 그리고 함수를 작성할 수 있을 정도의 실력

  2. 리눅스 기본 명령어


    대부분의 Infra 작업은 Ansible 자동화 도구를 통해 진행됩니다. 그러나 리눅스의 기본 명령어는 알고 있어야 수강 가능합니다. (vi 편집기, cd/mv/rm 등의 기본 명령어)

  3. SQL


    기본 sql 지식 (SELECT, WHERE, JOIN, GROUP BY, ORDER BY 등) 알고 있으면 따라오시기에 훨씬 수월합니다.
    (어려운 SQL은 없습니다)

권고 사전 지식 사항

  1. 도커 컨테이너
    컨테이너를 이용해 모니터링 도구를 셋업합니다. 컨테이너의 원리를 알고 있으면 도움이 됩니다.

  2. git
    CI/CD 를 위해 git 을 활용해 직접 코드 배포까지 진행합니다. 사용법은 모두 차근차근 설명드리지만 알고 있으면 더욱 좋습니다.

  3. 파이썬 Class 이해
    실습으로 진행되는 대부분의 파이썬 프로그램들은 Class 구조를 통해 구조화가 진행됩니다. 따라서 Class 및 객체지향에 대한 이해가 있으면 실습하기에 수월합니다
    (몰라도 상관없어요. 다 설명합니다)

이런 분들께
추천드려요!

학습 대상은
누구일까요?

  • Kafka & Spark을 배우고 싶은 분

  • 실시간 파이프라인 구현을 배우고 싶은 분

  • 데이터 엔지니어로써 여러 지식과 Skill 개발이 필요하신 분

선수 지식,
필요할까요?

  • 파이썬에 대한 기본 개념

  • SQL에 대한 기본 지식 (Filter, GroupBy, OrderBy 수준)

  • Linux 기초적인 커맨드를 다룰 수 있는 수준

안녕하세요
김현진입니다.

856

수강생

33

수강평

130

답변

4.9

강의 평점

2

강의

안녕하세요.

정보관리기술사를 취득한 이후 지금까지 얻은 지식을 많은 사람들에게 공유하고,

특히 데이터 엔지니어를 희망하고 공부하고 싶은 분 들에게 도움이 되고자 컨텐츠를 제작하고 있습니다.

반갑습니다 ^^

Contact: hjkim_sun@naver.com

더보기

커리큘럼

전체

113개 ∙ (28시간 23분)

해당 강의에서 제공:

수업자료
강의 게시일: 
마지막 업데이트일: 

수강평

아직 충분한 평가를 받지 못한 강의입니다.
모두에게 도움이 되는 수강평의 주인공이 되어주세요!