초보자를 위한 Kafka & 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를 활용한 실시간 추천, 감지, 번역 등 무궁무진한 사례가 존재하며 이런 아키텍처 구현을 위해 점점 더 실시간 데이터 파이프라인이 요구되고 있습니다.
그래서 준비했습니다.
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 서비스와의 연계를 통해 파이프라인의 다양성을 이해할 수 있습니다.
이제 대세는 클라우드입니다. EC2 서버를 이용해 실전과 같이 클러스터를 구성해봅니다.
Kafka & Spark은 기본부터 천천히 배웁니다.
AWS의 S3, Glue, Athena 서비스를 통해 Datalake on AWS의 기본 개념을 배웁니다.
파이프라인은 수집부터 활용까지 구분해 볼 수 있습니다.
각각의 단계마다 어떤 도구를 어떻게 사용하는지, 어떻게 연계 되는지를 명확히 알아야 합니다.
따라서 Kafka 와 Spark을 단순히 배우는데 그치지 않습니다.
최종적으로 실제 파이프라인을 구축해보고
그 과정에서 CI/CD, 가용성 테스트, 문제 해결과 성능향상 등의 방법을 배웁니다.
데이터레이크 개념
Lambda
Kappa Architecture
파이프라인 설계
Kafka 기본
Broker
Kafka Producer
Kafka Consumer
모니터링
UI For Apache Kafka
Prometheus
Grafana
Apache Spark 기본
Spark Cluster
Spark SQL
Spark Streaming
성능향상 Tip
성능향상 Checklist
Trouble Shooting
Spark Monitoring
가용성 테스트
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하여 셋업 과정을 쉽게 진행하게 됩니다.
Python Kafka Library 는 여러 종류가 있으나 그 중 가장 성능이 좋은 Confluent Kafka Library를 사용합니다. Confluent Kafka 는 Java 못지않게 높은 성능을 보장하는 도구로써 Python 을 통해 Producer/Consumer를 작성하는 방법을 배웁니다.
Spark Application을 작성할 때 가장 성능이 좋은 언어는 Scala 입니다. 그러나 Spark 을 위해 별도로 Scala 언어를 배우기에는 분명 부담이 있습니다. Python 언어만큼 대중적이지 않고 딥러닝/AI 관련 라이브러리도 상대적으로 적다는 단점이 있습니다. 그래서 현업에서는 Python을 이용해 Spark 프로그램을 개발하는 경우가 많습니다. 특히 딥러닝/AI 연동을 고려한다면 Python 언어로 작성하는 것은 훌륭한 대안이 될 수 있습니다.
실습은 AWS Cloud 에서 진행되며 실습 비용이 별도로 발생합니다.
실습 비용은 대부분 EC2(컴퓨팅 서비스)에서 발생하므로 실습&과제 후 꼭 서버 인스턴스를 중지해주셔야 합니다. 그러나 그 외 비용(서버 인스턴스에 연결되어 있는 볼륨(EBS)과 EIP)의 경우 서버 인스터스를 중지하더라도 비용이 발생합니다. 따라서 완강을 빨리 하실수록 AWS 실습 비용은 감소합니다.
따라서 똑같이 40시간을 사용해도 한 달이 아닌 두 달 동안 사용하신다면 3만원이 추가되어 총 7만원 정도의 AWS 요금이 발생하게 됩니다. 따라서 가급적 완강을 빨리 하시기를 추천드립니다.
Java 기반의 Producer/Consumer 개발
Kafka Connect (Season2 예정)
Schema Registry (Season2 예정)
Kafka Streams
KSQL
머신러닝 및 딥러닝
Open Table Format (ex. iceberg) (Season2 예정)
Scala 기반의 Application (pyspark으로만 작성합니다)
여러 도구와 연계하는 작업이 많은 강의의 특성상 궁금한 내용 또는 예상치 못한 오류가 생기는 경우 Q&A 게시판만으로 의사소통이 어려울 수 있습니다.
(경험상 질문 등록되면 제가 답변을 달고 재확인 되기까지 3~4 일 정도 소요되는 것으로 보입니다)
이런 의사소통의 불편함을 줄이고 수강하신 분들에게 끝까지 고품질 서비스를 제공해드리기 위해 디스코드 채널을 운영하고자 합니다.
강의에 대한 내용이어도 좋고, 아니어도 좋습니다. 사소한 얘기를 나누어도 좋습니다.
원활한 커뮤니케이션을 위한 곳이니 편하게 입장해 주세요
[OS] 대부분의 실습은 AWS에서 진행합니다. 따라서 Window/MacOS 상관없이 수강 가능합니다.
[성능] 높은 CPU/Memory 스펙을 요구하지 않습니다. 일반적으로 사용하는 노트북/데스크탑이면 충분히 수강 가능합니다.
[기타] 인터넷이 되는 환경이면 얼마든지 수강 가능합니다. 그리고 AWS Cloud 비용 결제 가능한 신용카드가 필요합니다.
강의 1-2 에서 제공하고 있습니다.
필수 사전 지식 사항
파이썬 기본 지식
기본적인 자료구조와 if/for/while 등 기본적인 문법. 그리고 함수를 작성할 수 있을 정도의 실력
리눅스 기본 명령어
대부분의 Infra 작업은 Ansible 자동화 도구를 통해 진행됩니다. 그러나 리눅스의 기본 명령어는 알고 있어야 수강 가능합니다. (vi 편집기, cd/mv/rm 등의 기본 명령어)
SQL
기본 sql 지식 (SELECT, WHERE, JOIN, GROUP BY, ORDER BY 등) 알고 있으면 따라오시기에 훨씬 수월합니다.
(어려운 SQL은 없습니다)
권고 사전 지식 사항
도커 컨테이너
컨테이너를 이용해 모니터링 도구를 셋업합니다. 컨테이너의 원리를 알고 있으면 도움이 됩니다.
git
CI/CD 를 위해 git 을 활용해 직접 코드 배포까지 진행합니다. 사용법은 모두 차근차근 설명드리지만 알고 있으면 더욱 좋습니다.
파이썬 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분)
해당 강의에서 제공:
강의 소개
15:46
데이터레이크 개념
14:46
데이터레이크 구성요소
13:26
git설치하기
05:55
파이썬&파이참 설치
11:58
github레파지토리 생성&연결
08:32
AWS User 생성하기
12:06
AWS NAT Instance 만들기
12:41
AWS EIP 부여하기
02:39
AWS NAT 연결하기
14:44
Ansible 설치
11:10
github Action 설정
27:01
github Action 실행
17:33
번외) Billing 보기
03:37
Kafka 개념
07:33
Confluent Kafka 설치하기
19:52
Zookeeper 설치하기
16:13
Kafka 시작하기
16:58
Kafka 아키텍처
17:21
Broker 옵션
14:01
Topic 옵션
23:19
Simple Producer 구현하기
22:03
Simple Producer 이해하기
12:42
공공자전거 파이프라인 설계
11:42
민감정보 관리하기
16:27
API 호출하기
08:36
Bicycle Producer 만들기
14:04
Producer 메커니즘과 성능
14:30
Consumer 배포환경 구성
18:09
Consumer 프로그램 구현
19:01
Sync vs Async Commit
16:55
Consumer Group
14:56
Coordinator & Leader
12:08
Partition Assignment
14:26
Consumer 기타 옵션들
19:14
Spark 서버 생성
25:51
Spark 설치하기
08:35
Application 배포환경 구축
13:16
spark apps 배포하기
06:56
Spark Program 구조
18:31
Spark Cluster 이해하기
13:09
Hadoop Yarn 알아보기
14:58
Hadoop Yarn 설치하기
22:54
Spark on Yarn
11:41
Spark 함수 이해하기
24:22
transform vs action
12:16
DataFrame Cache
30:26
DataFrame 파티션
19:36
Partition과 Executor
13:58
Driver와 Executor
13:00
Job & Stage & Task
21:31
Spark Plan
22:13
DataFrame join
15:07
DataFrame join 유의사항
09:54
View 활용하기
11:13
DataFrame vs SQL
14:45
Spark Catalog
15:39
Hive metastore
13:08
Hive metastore 연결
21:42
Write to S3
15:59
번외) 컬럼기반 테이블
08:17
Spark Streaming 시작하기
10:56
Kafka Source
15:54
Offset Checkpoint
14:58
Kafka Source Options
17:19
foreachBatch
15:18
Json 구조 처리하기
24:43
Sink to S3
23:09
DataFrame 전달하기 (1/2)
10:10
DataFrame 전달하기 (2/2)
08:37
DataFrame Checkpoint
16:34
실시간 따릉이 집계하기
21:41
AWS glue & athena
14:34
Dashboard 만들기
17:52
Spark 성능 Checklist
17:57
Spark UDF
15:39
Spark Join 전략
06:30
Spark AQE
24:58
Spark 문제해결
24:14
Kafka Sink
09:57
Kafka Sink 프로그램 작성
08:49
Streaming Trigger
08:59
Streaming Window
17:03
Streaming watermark
17:39
가용성 테스트 시작하기
05:57
Zookeeper 가용성 테스트
19:07
Spark Driver 가용성 테스트
18:25
Yarn 가용성 테스트
11:07
마무리하며
15:37