카프카 커넥트 : 유연하고 확장 가능한 실시간 데이터 파이프라인 구축
Description
유연하고 확장 가능하며 신뢰할 수 있는 실시간 데이터 파이프라인 구축,
현대적인 데이터 인프라를 위한 필수요소, 카프카 커넥트(Kafka Connect)!
아파치 카프카 스트리밍 플랫폼의 핵심 도구, 카프카 커넥트를 활용해 강력한 데이터 파이프라인을 구축한다!
데이터 엔지니어, 개발자, SRE를 위한 실용적인 가이드로, 다양한 데이터 소스와 싱크 연결, 기존 데이터의 손쉬운 활용, 클러스터 간 데이터 미러링 구현, 이벤트 스트리밍 최적화 등을 통해 카프카의 강력한 기능을 빠르게 도입해보자!

| 이 책에서 다루는 내용 |
ㆍ 핵심 카프카 커넥트 구성요소를 결합해 회복 탄력성이 있고 효율적인 데이터 파이프라인 설계
ㆍ 기존 커넥터를 활용한 데이터베이스 변경사항 캡처, 데이터 레이크 구축, 카프카 클러스터 미러링
ㆍ 상용 환경에서의 카프카 커넥트 클러스터 배포, 구성, 운영
ㆍ 로그와 지표를 사용한 카프카 커넥트 클러스터의 지속적인 모니터링
ㆍ 쿠버네티스에서의 카프카 커넥트 클러스터 실행
ㆍ 자체 커넥터와 플러그인 작성

저자

미카엘메종,케이트스탠리

저자:미카엘메종(MickaelMaison)
아파치카프카프로젝트관리위원회(PMC)의커미터이자의장이다.
2015년부터아파치카프카와카프카의생태계전반에기여해왔다.현재는레드햇의카프카팀에서수석소프트웨어엔지니어로근무하며,10년이상의소프트웨어개발경력을보유하고있다.
이전에는고객을위해수백개의카프카클러스터를운영하는IBM의이벤트스트림즈팀에서근무했다.

저자:케이트스탠리(KateStanley)
소프트웨어엔지니어이자기술연사이며자바챔피언이다.
쿠버네티스에서아파치카프카를운영하고,엔터프라이즈카프카애플리케이션을개발하며,카프카커넥트용커넥터를작성한경험이있다.현재는레드햇의카프카팀에서수석소프트웨어엔지니어로일하며,오픈소스카프카오퍼레이터인스트림지를비롯해카프카생태계의여러프로젝트에기여하고있다.

역자:고승범
현재SK텔레콤에서데이터엔지니어업무를담당하고있으며,이전에는카카오에서전사공용카프카와래빗MQ를운영했다.『카프카,데이터플랫폼의최강자』(책만,2018),『실전카프카개발부터운영까지』(책만,2021)를집필하고,카프카한국사용자모임(facebook.com/groups/kafka.kru)을창설하여기술공유와세미나를리딩해왔다.국내최초이자유일한‘컨플루언트공인아파치카프카강사(ConfluentCertifiedTrainerforApacheKafka)’와‘컨플루언트공인아파치카프카관리자(ConfluentCertifiedAdministratorforApacheKafka)’자격을보유하고있다.

역자:이상헌
삼성전자에서데이터레이크서비스개발및운영업무를맡고있다.실시간CDC(ChangeDataCapture)데이터파이프라인개발을비롯하여카프카기반서비스에관심이많다.현재카프카한국사용자모임운영진으로활동하고있다.

역자:황한희
스타트업에서데이터엔지니어로재직중이며,카프카커넥터중심의데이터파이프라인설계및운영을담당하고있다.이과정에서직접개발한커스텀카프카커넥터를사내에배포하여활용하고있으며,데이터분야종사자들과의교류를좋아한다.카프카한국사용자모임에서운영진으로활동하고있다.

목차

1부l카프카커넥트란

1장카프카커넥트입문
카프카커넥트기능
__플러그형아키텍처
__확장성과신뢰성
__선언적파이프라인정의
__카프카커넥트도아파치카프카의일부
사용사례
__데이터베이스변경사항캡처
__카프카클러스터미러링
__데이터레이크구축
__로그집계
__레거시시스템현대화
카프카커넥트의대안
정리

2장아파치카프카란
분산이벤트스트리밍플랫폼
__오픈소스
__분산시스템
__이벤트스트리밍
__플랫폼
카프카주요개념
__발행-구독
__브로커와레코드
__토픽과파티션
__리플리케이션
__보관주기와컴팩션
__크래프트와주키퍼
카프카와상호작용하기
__프로듀서
__컨슈머
__카프카스트림즈
카프카시작하기
__카프카실행
__레코드주고받기
__카프카스트림즈애플리케이션실행
정리

2부l카프카커넥트로데이터파이프라인구축하기

3장카프카커넥트데이터파이프라인의구성요소
카프카커넥트런타임
__카프카커넥트실행하기
__카프카커넥트RESTAPI
__플러그인설치하기
__배포모드
소스커넥터와싱크커넥터
__커넥터와태스크
__커넥터구성하기
__커넥터실행하기
컨버터
__데이터형식과스키마
__컨버터구성하기
__컨버터사용하기
트랜스포메이션과프레디케이트
__트랜스포메이션사용사례
__프레디케이트
__트랜스포메이션과프레디케이트구성하기
__트랜스포메이션과프레디케이트사용하기
정리

4장효과적인데이터파이프라인설계하기
커넥터선택하기
__파이프라인방향
__라이선싱과지원
__커넥터의기능
데이터모델정의하기
__데이터변환
__시스템간데이터매핑하기
데이터포매팅
__데이터포맷
__스키마
카프카커넥트내부살펴보기
__내부토픽
__그룹멤버십
__리밸런스프로토콜
카프카커넥트에서장애상황다루기
__워커장애
__커넥터/태스크장애
__카프카/외부시스템장애
__데드레터큐
처리시맨틱이해하기
__싱크커넥터
__소스커넥터
정리

5장커넥터인액션
컨플루언트S3싱크커넥터
__커넥터구성하기
__정확히한번시맨틱
__커넥터실행하기
컨플루언트JDBC소스커넥터
__커넥터구성하기
__커넥터실행하기
데비지움MySQL소스커넥터
__커넥터구성하기
__이벤트형식
__커넥터실행하기
정리

6장미러메이커로클러스터미러링하기
미러링이란
__미러링사용사례살펴보기
__미러링실전활용
미러메이커소개
__공통개념
__배포모드
미러메이커커넥터
__MirrorSourceConnector
__MirrorCheckpointConnector
__MirrorHeartbeatConnector
미러메이커실행하기
__재해복구예제
__지역간복제예제
정리

3부l상용환경에서카프카커넥트실행하기

7장카프카커넥트클러스터배포및운영
카프카커넥트환경준비
__카프카커넥트환경구축
__플러그인설치
__네트워킹및권한
워커플러그인
__구성공급자
__REST확장기능
__커넥터클라이언트구성오버라이드정책
규모산정및처리능력계획하기
__카프카커넥트리소스활용이해하기
__적절한워커와태스크수선정하기
카프카커넥트클러스터운영하기
__워커추가하기
__워커제거하기
__워커업그레이드및유지보수하기
__장애상태인태스크와커넥터재시작하기
__커넥터오프셋재설정하기
RESTAPI를사용해카프카커넥트관리하기
__커넥터생성및삭제하기
__커넥터와태스크구성
__커넥터수명주기제어하기
__커넥터오프셋나열하기
__이슈디버깅
정리

8장카프카커넥트구성하기
런타임구성하기
__상용환경을위한구성
__파인튜닝구성
커넥터구성하기
__토픽구성
__클라이언트오버라이드
__정확히한번을위한구성
__오류처리를위한구성
보안을위한카프카커넥트클러스터구성하기
__카프카에대한연결에보안설정하기
__권한구성하기
__RESTAPI보안구성하기
정리

9장카프카커넥트모니터링하기
로그모니터링
__로깅구성
__시작로그이해하기
__로그분석하기
지표모니터링하기
__지표리포터
__지표분석하기
__지표탐색
주요지표
__카프카커넥트런타임지표들
__그밖의시스템지표
정리

10장쿠버네티스에서카프카커넥트관리하기
쿠버네티스소개
__가상화기술
__쿠버네티스기본
쿠버네티스에서카프카커넥트실행하기
__컨테이너이미지
__워커배포
__네트워킹과모니터링
__구성
쿠버네티스오퍼레이터를사용해카프카커넥트배포하기
__쿠버네티스오퍼레이터소개
__카프카커넥트용쿠버네티스오퍼레이터
스트림지
__쿠버네티스환경구성하기
__오퍼레이터시작하기
__카프카커넥트CRD알아보기
__카프카커넥트클러스터와커넥터배포하기
__미러메이커CRD
정리

4부l커스텀커넥터와플러그인구축하기

11장소스커넥터와싱크커넥터구축하기
공통개념과API
__커스텀커넥터구축하기
__ConnectorAPI
__구성
__TaskAPI
__카프카커넥트레코드
__ConnectorContextAPI
소스커넥터구현하기
__SourceTaskAPI
__소스레코드
__SourceConnectorContext와SourceTaskContextAPI
__정확히한번시맨틱지원
싱크커넥터구현하기
__SinkTaskAPI
__싱크레코드
__SinkConnectorContext와SinkTaskContextAPI
정리

12장커넥터와워커플러그인으로카프카커넥트확장하기
커넥터플러그인구현하기
__TransformationAPI
__PredicateAPI
__ConverterAPI와HeaderConverterAPI
워커플러그인구현하기
__ConfigProviderAPI
__ConnectorClientConfigOverridePolicyAPI
__ConnectRestExtensionAPI
정리

출판사 서평

|이책의독자대상|

카프카커넥트환경과상호작용하는데이터엔지니어,사이트신뢰성엔지니어,개발자

|이책의구성|

1부는카프카와카프카커넥트전반에대한소개내용을다루며,주로카프카커넥트를처음접하거나막시작하는엔지니어를대상으로한다.
2부는카프카커넥트를사용해데이터파이프라인을구축하는방법을설명하며,특히데이터엔지니어와관련이있다.3장과4장에서는핵심카프카커넥트구성요소를논의하고,이들을결합해견고하고효율적인데이터파이프라인을설계하는방법을설명한다.2부의나머지장에서는가장인기있는커넥터들을자세히살펴본다.5장에서는커뮤니티에서제공하는세가지커넥터인컨플루언트S3(ConfluentS3)싱크,컨플루언트JDBC(ConfluentJDBC)소스,데비지움(Debezium)MySQL소스를다룬다.6장에서는카프카의미러링도구인미러메이커(MirrorMaker)가어떻게작동하는지자세히설명한다.여기에는소스,체크포인트,하트비트커넥터의기능과구성에대한내용이포함된다.

3부는카프카커넥트운영측면에초점을맞추며,사이트신뢰성엔지니어를대상으로한다.7장에서는상용환경에서카프카커넥트클러스터를배포하고운영하는방법을보여준다.8장에서는카프카커넥트가제공하는모든구성설정을다루고,이를조정하는방법과시점을결정하는데도움이되는배경과맥락을제공한다.9장은로그와지표를사용해카프카커넥트클러스터를지속적으로모니터링하는방법을설명한다.마지막으로10장에서는쿠버네티스(Kubernetes)에서카프카커넥트클러스터를실행하기위해필요한핵심고려사항을논의한다.여기에는쿠버네티스에대한전반적인소개와이러한유형의인프라에카프카커넥트를배포하는데사용할수있는옵션에대한설명이포함된다.

4부는카프카커넥트를위한커스텀커넥터와플러그인을구현하는방법을설명하며,API에대해자세히다루므로,자신의사용사례에맞게카프카커넥트를커스터마이즈하려는개발자를대상으로한다.

저자의말

카프카커넥트는신뢰할수있고확장가능한데이터파이프라인을구축하는데있어훌륭한도구다.카프카커넥트는인기있는아파치카프카스트리밍플랫폼의일부이며,브로커,클라이언트,카프카스트림즈(KafkaStreams)만큼많은주목을받지못할수도있지만,알아두어야할도구다.카프카커넥트를통해카프카클러스터와데이터를주고받을수있으며,클러스터간에데이터를미러링할수도있다.플러그인방식의설계덕분에단한줄의코드도작성하지않고강력한파이프라인을구축할수있다.
콘퍼런스에서발표를하거나,블로그글을쓰는것이든,그저카프카애호가들에게도움을주는것이든우리두명은모두지식공유에열정이있다.그결과우리는카프카와카프카커넥트에대해전세계의사용자및개발자와많은대화를나누었다.카프카는엄청나게인기있는기술이기때문에책,블로그글,튜토리얼등훌륭한자료들이많이있다.이들중많은자료가카프카커넥트를다루고있지만,다양한사용사례,구성,운영절차를깊이있게다룬자료는부족하다고느꼈다.기본적인지식만알고있어도카프카커넥트를시작할수있지만,그유연성과다양한기능을고려하면작동방식을깊이이해하는것이정말큰차이를만들수있다.
우리는카프카커넥트에관해기초적인내용을넘어서는많은콘퍼런스발표를했지만,40분세션에담을수있는내용에는한계가있다.이책을쓰면서지난몇년간공유했던카프카커넥트에관한모든지식과아울러콘퍼런스세션이나블로그글에담을수없었던모든내용을한데모았다.여기에는카프카커넥트를운영하며겪은우리만의개별적인경험과고객들에게도움을주고조언하며얻은통찰이포함되어있다.또한카프카커넥트의작동방식을철저히설명하기위해모든설정,지표,API를자세히살펴보는시간을가졌다.이과정에서종종커스텀플러그인을작성해서코드경로를테스트하고,코드를꼼꼼히분석하며,다른카프카기여자들과논의하기도했다.
이책은독자의사용사례에맞춰신뢰할수있는데이터파이프라인을구축하고상용환경에서실행하는데필요한모든지식을제공할것이다.

[옮긴이의말]

카프카커넥트는단순한데이터애플리케이션이아니라,엔터프라이즈환경에서데이터파이프라인을효율적으로구축하고확장할수있도록설계된강력한분산시스템입니다.기존의개별적인데이터통합방식이가진복잡성과신뢰성문제를해결하며,실시간스트리밍환경에서안정적인데이터흐름을보장하는핵심기술입니다.
이책을번역하면서카프카커넥트의내부동작원리와다양한운영기법을깊이있게다루고있음을느꼈습니다.특히이책은실무에서자주접하는문제와이를해결하는방안을상세히설명하고있어독자들에게실질적인도움이될것이라확신합니다.
-고승범

데이터레이크를운영하다보면다양한데이터파이프라인을설계하고개발할일이많아집니다.더욱이원천시스템의종류가다양하고실시간데이터가요구될때는특히더카프카커넥트사용을고려하는편이좋습니다.이책은카프카커넥트구성요소들에대한자세한설명과클러스터관리와운영측면에서의팁들을담고있습니다.카프카를사용해봤던대다수의개발자라면큰무리없이카프카커넥트를사용할수있을테지만,이책을완독한독자들은카프카와카프카커넥트에대한역할의차이를명확히구분하게될것입니다.따라서레거시ETL시스템을카프카생태계속에서확장성을고려한실시간ETL시스템으로변경/구축하고싶으신분은꼭읽어보시기를권장하고싶습니다.
-이상헌

스타트업에서데이터엔지니어로일하다보면,종종혼자서전체데이터파이프라인을책임져야할때가많습니다.게다가수행해야할업무가무수히많기에,애플리케이션을처음부터직접개발하는일은큰부담으로다가옵니다.이러한상황에서카프카커넥트를활용하면,데이터파이프라인을좀더빠르고효율적으로구축할수있습니다.그러나처음카프카커넥트를접하면오히려복잡해보일수도있습니다.
이책은운영에필요한핵심요소들을체계적으로설명하여,초심자라해도많은시행착오를줄이고카프카커넥트를안정적으로다룰수있게도와줍니다.물론단순한사용법은여러자료를통해접할수있지만,카프카커넥트의수명주기를깊이이해한다면더욱복잡한문제도해결할수있습니다.오픈소스로제공되는다양한커넥터들이존재하지만,모든상황에완벽히부합하는것은아니기에때로는직접커스텀카프카커넥터구축에대한필요성을느낄때가있습니다.이책은카프카커넥트수명주기이해에대한부담감을덜어주고,커스텀커넥터를개발하고운영하는데필요한실질적인가이드를제공합니다.
저역시새로운요구사항에맞춰커스텀카프카커넥터를구축해야했고,이책을번역하는과정에서얻은지식을바탕으로직접개발과운영을진행할수있었습니다.카프카커넥트가모든상황에적합한은탄환이될수는없지만,데이터엔지니어링에서광범위하게활용될수있다는점에는의심의여지가없습니다.저와같은현업사용자에게이책이문제해결을위한실마리를찾는데든든한길잡이가되기를바랍니다.
-황한희