Top

아파치 카프카 쿡북 [레시피로 살펴보는 기업용 분산 메시징 시스템의 실시간 데이터 처리 활용법]

  • 원서명Apache Kafka 1.0 Cookbook: Over 100 practical recipes on using distributed enterprise messaging to handle real-time data (ISBN 9781787286849)
  • 지은이라울 에스트라다(Raul Estrada)
  • 옮긴이최 준
  • ISBN : 9791161751856
  • 25,000원
  • 2018년 07월 31일 펴냄
  • 페이퍼백 | 304쪽 | 188*235mm
  • 시리즈 : acorn+PACKT, 오픈소스 프로그래밍

책 소개

요약

사람들이 이메일로 메시지를 교환하듯 서로 다른 시스템도 다양한 형태로 데이터를 담은 메시지를 교환한다. 오늘날 정보 기술이 발전하며 더욱 다양한 형태의 메시지가 대량으로 처리되고 있다. 특히 기업은 통합된 메시지 운영이 가능한 메시징 플랫폼인 카프카를 필요로 한다. 카프카는 고가용성에 성능도 우수하며 높은 수준의 보안을 해내어 기업의 요구 사항을 만족시킨다. 이 책은 독자가 쉽게 따라할 수 있는 레시피를 제공해서, 직접 아파치 카프카를 구성해보고 최적의 방법으로 활용하도록 돕는다.

이 책에서 다루는 내용

█ 최적화된 성능을 얻기 위한 아파치 카프카 1.0의 설치 및 설정
█ 카프카 프로듀서와 컨슈머 제작 및 구성
█ 미러링 기술을 활용해 카프카 클러스터를 효과적으로 운영
█ 컨플루언트 플랫폼과 카프카 스트림을 다루고 고가용성을 지원하는 카프카 제작
█ 갱글리아와 그래파이트 같은 도구로 카프카 모니터링
█ 일래스틱서치, 로그스태시, 아파치 하둡, 아파치 스파크 등의 도구와 카프카 통합

이 책의 대상 독자

소프트웨어 개발자, 데이터 설계와 실용적인 카프카 레시피를 찾는 데이터 엔지니어를 위한 책이다. 전반부에서는 프로그래밍을 다루는데, 아파치 카프카에 대한 사전 지식이 없는 독자들을 위한 소개다. 후반부로 갈수록 난이도가 높아진다. 후반부에서는 기존의 아파치 카프카 시스템을 향상시키거나, 현재 설치된 카프카의 구성을 보다 잘 관리하고자 하는 독자들을 위한 고급 주제를 다룬다.

이 책의 구성

1장, ‘카프카 구성하기’에서는 아파치 카프카를 시작하기 위한 기초 레시피를 설명한다. 카프카를 설치, 설정하고 실행하는 방법을 논의한다. 카프카 브로커(broker)의 기본 운영 방법도 논의한다.
2장, ‘카프카 클러스터’에서는 세 가지 유형의 클러스터 제작 방법을 다룬다. 세 가지 유형은 ‘단일 노드-단일 브로커 클러스터’, ‘단일 노드-다중 브로커 클러스터’, ‘다중 노드-다중 브로커 클러스터’다.
3장, ‘메시지 검사’에서는 엔터프라이즈 서비스 버스(ESB, Enterprise Service Bus)와 관련된 데이터 유효성의 검증 작업을 다룬다. 입력 메시지 스트림에서 일부 이벤트를 필터링하는 데이터 검증 프로그래밍을 알아본다.
4장, ‘메시지 정보 확장’에서는 ESB와 관련한 다음 작업으로 메시지 기능을 확장에 관한 내용을 다룬다. 메시지 기능 확장이란 개별 메시지를 확보하고, 메시지에서 추가 정보를 얻고, 메시지를 메시지 스트림에 포함시키는 것을 의미한다.
5장, ‘컨플루언트 플랫폼’에서는 컨플루언트 플랫폼을 사용해 카프카 시스템을 운영하고 모니터하는 방법을 보여준다. 스키마 레지스트리, 카프카 REST 프록시, 카프카 커넥트 사용 방법도 설명한다.
6장, ‘카프카 스트림’에서는 메시지 그룹 정보와 카프카 스트림을 사용하는 메시지 모음이나 구성 같은 추가 정보를 얻는 방법을 설명한다.
7장, ‘카프카 관리’에서는 카프카 클러스터를 디버깅, 테스트, 운영하는 시스템 관리자의 삶을 편리하게 하도록 카프카 저자가 개발한 명령줄 도구에 대해 이야기한다.
8장, ‘카프카 운영’에서는 카프카 클러스터에서 수행할 수 있는 다양한 운영 방법을 설명한다. 여기에서 다루는 도구는 일상적으로 쓰이지 않지만, 데브옵스(DevOps) 팀이 카프카 클러스터를 관리하는 데 도움을 준다.
9장, ‘모니터링과 보안’에서는 다양한 통계적 자료를 어떻게 표시하는지, 그리고 어떻게 그라파이트(Graphite)나 갱글리아(Ganglia) 같은 도구를 사용해 모니터할 수 있는지 이야기한다. 또한 보안에 대한 내용을 다루며 SSL 인증, SASL/커버러스 인증, SASL/plain 인증을 구현하는 방법을 알아본다.
10장, ‘써드파티 도구와의 통합’에서는 기타 실시간 데이터 처리 도구를 살펴보고 이 도구를 사용한 데이터 처리 파이프라인을 아파치 카프카로 만드는 방법을 이야기한다. 하둡, 플룸, 고블린, 일래스틱, 스파크, 스톰, 솔라(Solr), 아카, 카산드라, 미소스, 빔 등의 도구를 다룬다.

저자/역자 소개

지은이의 말

2011년 이래로 카프카(Kafka)는 크게 성장해왔다. 포춘(Fortune)지 선정 500대 기업 중 3분의 1 이상이 아파치 카프카를 사용한다. 여기에는 10대 여행사와 10대 은행 중 7개, 10대 보험사 중 8개, 10대 통신사 중 9개 기업이 포함된다. 링크드인(LinkedIn), 우버(Uber), 트위터(Twitter), 스포티파이(Spotify), 페이팔(Paypal), 넷플릭스(Netflix) 등이 아파치 카프카를 사용해 각각 하루에 1조 개에 육박하는 메시지를 처리한다.
요즘에는 실시간 데이터 스트리밍과 데이터 수집, 또는 실시간 데이터 분석을 위해 아파치 카프카를 사용한다. 다른 한편에서는 시스템을 더욱 견고하게 만들기 위해 마이크로서비스 아키텍처를 구성하는 데 카프카를 사용한다. 또한 이벤트 생성과 처리를 관리하기 위한 복합 이벤트 처리(CEP, Complex Event Processing)와 사물인터넷 자동화 시스템에 사용하기도 한다.
오늘날 스트리밍 분야에서는 전쟁이 벌어지고 있다. 카프카 스트림, 스파크 스트리밍, Akka 스트리밍, 아파치 플링크, 아파치 스톰, 아파치 빔, 아마존 키네시스 등 몇몇의 경쟁자들이 치열한 경쟁 상태에 있다. 여러 평가 요소가 있겠지만 주로 최고의 성능으로 승자가 결정된다.
아파치 카프카를 선택하는 이유로 상당수가 사용하기 쉽다는 점을 든다. 카프카는 배우기도 쉽고 구현하는 방법도 어렵지 않다. 유지보수도 간단하며, 대부분의 경쟁자들과는 달리 기술을 익히는 데 장애물이 되는 변화도 완만하다.
이 책은 실용적이다. 아파치 카프카의 이론적인 구조를 설명하는 데 머무르지 않고 실습에 도움을 주는 데 중점을 두고 있다. 이 책은 요리책(cookbook)이다. 아파치 카프카로 스트리밍 아키텍처를 구현하면서 만나는 일상적인 문제의 해결책을 실용적인 레시피 형태로 다룬다. 전반부에서는 프로그래밍에 대한 내용을, 후반부에서는 아파치 카프카의 관리에 대한 내용을 다룬다.

지은이 소개

라울 에스트라다(Raul Estrada)

1996년부터 프로그래머로 활동했고 2001년부터는 자바 개발자로 활동했다. 스칼라(Scala), 엘릭서(Elixir), 클로저(Clojure), 하스켈(Haskell)과 같은 함수형 언어와 컴퓨터 사이언스와 관련된 모든 주제를 좋아한다. 14년이 넘는 고가용성 및 기업용 소프트웨어 경력을 갖고 2003년부터 아키텍처를 설계하고 구현해왔다. 특히 시스템 통합에 전문성을 갖추고 금융권 프로젝트에 주로 참여했다. BEA 시스템과 오라클에 대한 기업용 솔루션 아키텍터지만 모바일 프로그래밍과 게임 개발 역시 즐긴다. 자신을 아키텍터, 엔지니어 또는 개발자보다는 프로그래머라고 여긴다. 공개 소프트웨어를 응원하며, 새로운 기술과 프레임워크, 언어, 방법론 실험을 즐긴다.

옮긴이의 말

먼저 기업용 메시징 시스템 분야에서 겪은 경험이 풍부한 독자에게는 카프카를 포함한 다양하고 새로운 기술에 두려움을 갖지 말라는 메시지를 전하고 싶다. 이 책에 등장하는 메시지와 스트림을 처리하기 위해 사용하는 수많은 기술과 용어는 전혀 새로운 것이 아니다. 기존 용어가 조금씩 사라지고, 변화에 맞춰 기존 기술이 새 이름으로 대체된 것이다. 카프카는 약 15년 전부터 있던 메시징 시스템 개념에 여전히 충실하다.
새로운 도전이라는 긴 여정을 앞두고 있는 독자에게는 책의 어느 한 부분에 얽매이지 말라고 전하고 싶다. 분명 기업용 메시징 시스템은 어려운 주제다. 저자가 더욱 자세히 설명할 수도 있었겠지만, 광범위한 지식을 더 쉽고 자세하게 다루기는 어려웠을 것이다. 예를 들어 객체나 오브젝트를 말하면 다양한 속성을 가진 물건을 떠올리는 사람도 있을 것이고, 프로그램을 처음 배운 이는 클래스를 떠올릴 수도 있고, 숙련된 개발자 중에는 직접 만든 라이브러리를 머리에 그릴 수도 있다. 이렇게 사람들은 용어를 각자 다른 형태로 받아들인다. 처음부터 어떤 용어가 실제로 의미하는 모습으로 완벽하게 소화되기는 어렵지만, 여러 번 실습하고 그 결과를 전체적으로 보면 추상적인 단어도 결국 설명조차 필요 없는 개념이 된다.

옮긴이 소개

최준

기계공학을 전공했던 학창시절, 당시 누구에게나 매력덩어리였던 컴퓨터로 기계 장비의 데이터를 처리하고 제어하기 위한 과정을 통해서 정보기술 분야에 뛰어들었다. 졸업 후 한동안 대기업 전산실에서 근무하다가, 답답한 공간을 벗어나 새로운 도전을 꿈꾸며 외국어가 익숙해질 수밖에 없는 회사에 입사해서 엔지니어 경력을 쌓기 시작했다. 2001년부터 약 10년간 한국마이크로소프트와 마이크로소프트 싱가폴 지사에 근무하면서 아시아 지역 200여 개의 대기업에서 기술 지원을 수행했다. 현장에서 다양한 기업용 IT 시스템의 문제를 이해하고 해결 방안을 찾는 소중한 경험을 쌓았다. 현재 캐나다에 컨설팅 회사를 설립해 기업 고객에게 클라우드 서비스 컨설팅을 하고 있다.

목차

목차
  • 1장. 카프카 구성하기
    • 소개
    • 카프카 설치
    • 카프카 실행
    • 카프카 브로커 설정
    • 카프카 토픽 설정
    • 메시지 콘솔 프로듀서 생성
    • 메시지 콘솔 컨슈머 생성
    • 브로커 설정 구성
    • 스레드와 성능 구성
    • 로그 설정 구성
    • 복제 설정 구성
    • 주키퍼 설정 구성
    • 기타 세부 파라미터 구성

  • 2장. 카프카 클러스터
    • 소개
    • 단일 노드 - 단일 브로커 클러스터 구성: SNSB
    • SNSB: 토픽, 프로듀서, 컨슈머 생성하기
    • 단일 노드 - 다중 브로커 클러스터 구성: SNMB
    • SNMB: 토픽, 프로듀서, 컨슈머 생성하기
    • 다중 노드 - 다중 브로커 구성: MNMB

  • 3장. 메시지 검사
    • 소개
    • 이벤트 모델링
    • 프로젝트 설정
    • 카프카에서 읽어오기
    • 카프카에 쓰기
    • ProcessingApp 실행
    • 검사기 코딩
    • 검사기 실행

  • 4장. 메시지 정보 확장
    • 소개
    • 지리적 위치 추출기
    • 지리적 위치 확장
    • 통화 금액 추출기
    • 통화 금액 확장
    • 통화 금액 확장기 실행
    • 이벤트 모델링
    • 프로젝트 설정
    • 날씨 정보 추출기 열기
    • 위치별 온도 확장
    • 위치별 온도 확장기 실행

  • 5장. 컨플루언트 플랫폼
    • 소개
    • 컨플루언트 플랫폼 설치
    • 카프카 운영하기
    • 컨플루언트 컨트롤 센터 모니터링
    • 스키마 레지스트리 사용하기
    • 카프카 REST 프록시 사용하기
    • 카프카 커넥트 사용하기

  • 6장 카프카 스트림
    • 소개
    • 프로젝트 설정하기
    • 스트리밍 애플리케이션 실행

  • 7장. 카프카 관리
    • 소개
    • 컨슈머 그룹 관리
    • 로그 세그먼트 덤프 받기
    • 주키퍼 오프셋 가져오기
    • GetOffsetShell 사용하기
    • JMX 사용하기
    • 미러메이커 사용하기
    • 로그 프로듀서 재생
    • 상태 변경 로그 통합하기

  • 8장. 카프카 운영
    • 소개
    • 토픽의 추가와 삭제
    • 메시지 토픽 수정
    • 정상 종료 수행
    • 리더십 조정
    • 클러스터 확장
    • 복제 팩터 추가
    • 브로커의 해제
    • 컨슈머 오프셋 위치 확인

  • 9장. 모니터링과 보안
    • 소개
    • 서버 지표 모니터링
    • 프로듀서 지표 모니터링
    • 컨슈머 지표 모니터링
    • 그래파이트를 사용한 모니터링
    • 갱글리아를 사용한 모니터링
    • SSL을 사용하는 인증 구현
    • SASL/커버러스를 사용하는 인증 구현

  • 10장. 써드파티 도구와의 통합
    • 소개
    • 플룸을 사용한 노드 간 데이터 이동
    • 고블린으로 HDFS 클러스터에 기록하기
    • 로그스태시로 카프카에서 일래스틱으로 데이터 이동하기
    • 스파크 스트림과 카프카 연결하기
    • 스톰으로 카프카에서 데이터 가져오기
    • 카프카 데이터를 일래스틱으로 푸시하기
    • 카프카에서 Solr 클라우드로 데이터 추가하기
    • Akka로 카프카 프로듀서 제작하기
    • Akka로 카프카 컨슈머 제작하기
    • 카산드라에 데이터 저장하기
    • 미소스에서 카프카 실행하기
    • 아파치 빔으로 카프카 읽기
    • 아파치 빔으로 카프카에 쓰기

도서 오류 신고

도서 오류 신고

에이콘출판사에 관심을 가져 주셔서 고맙습니다. 도서의 오탈자 정보를 알려주시면 다음 개정판 인쇄 시 반영하겠습니다.

오탈자 정보는 다음과 같이 입력해 주시면 됩니다.

(예시) p.100 아래에서 3행 : '몇일'동안 -> 며칠동안

정오표

정오표

수정 사항은 여기에서 내려받으세요.