엘라스틱 스택 개발부터 운영까지

엘라스틱 스택 개발부터 운영까지

$36.05
Description
데이터를 처리하는 데 서로 잘 맞지도 않는 오픈소스 기술들을 굳이 동원해야 할까? 제각각인 오픈소스들을 통합하고 운영하느라 지친 개발자와 운영자들을 위한 솔루션! 이제 엘라스틱 스택 기술 하나면 OK!

어느덧 엘라스틱 스택은 검색 엔진을 넘어서 데이터 처리 시스템의 최강자로 자리 잡았다. 이 책에서는 빠르게 변화하는 세상에서 엘라스틱 스택을 지렛대로 삼아 기업의 생존 능력을 극대화하는 방법을 체계적으로 정리한다.

엔터프라이즈 빅데이터 파이프라인을 만들어 기업의 데이터를 처리하고 싶다면? 기업 내에 검색 엔진을 구축해서 빠르게 자료를 검색하고 싶다면? 방대한 데이터를 잘 가공해서 저장한 후에 멋진 시각화로 인사이트를 얻고 싶다면? 여러 서버에서 데이터들을 가져와 하나로 통합한 다음에 추이를 보거나 통계를 내고 싶다면? 바로 이럴 때 엘라스틱 스택이 정답이다. 실습을 위한 물리적인 컴퓨터나 가상 머신만 준비한다면 나머지는 모두 이 책이 책임져줄 것이다.
이 책에서는 엘라스틱 스택을 사용해 데이터 중심 애플리케이션을 설계하고, 개발하며, 운영하는 과정에서 꼭 알아야 할 필수 지식을 구체적인 사례와 함께 설명한다.
저자

김준영

학창시절제2의봉준호같은유명한영화감독이되고싶었지만스스로에대한확신이없어서성균관대컴퓨터공학과에입학했다.대학시절삼성전자소프트웨어맴버십과병역특례,대학서버실관리를하면서컴퓨터프로그래밍의매력에푹빠졌다.삼성전자에서타이젠(Tizen)운영체제를개발했고현재는SK텔레콤에서데이터분석업무를담당하고있다.2014년도에컴퓨터시스템응용기술사자격증을취득했다.

목차

1부|엘라스틱스택개요
1장엘라스틱스택이란
__1.1엘라스틱서치의탄생
__1.2엘라스틱스택으로발전
__1.3엘라스틱스택의구성요소
____1.3.1엘라스틱서치:분산검색엔진
____1.3.2키바나:시각화와엘라스틱서치관리도구
____1.3.3로그스태시:이벤트수집과정제를위한도구
____1.3.4비츠:엣지단에서동작하는경량수집도구
____1.3.5기타솔루션
__1.4엘라스틱스택의용도
____1.4.1전문검색엔진
____1.4.2로그통합분석
____1.4.3보안이벤트분석
____1.4.4애플리케이션성능분석
____1.4.5머신러닝
__1.5빅데이터플랫폼의일부로동작하는엘라스틱스택
____1.5.1엔터프라이즈데이터버스인카프카와연동
____1.5.2하둡생태계와연동
____1.5.3관계형데이터베이스와연동
__1.6유사제품과의비교
____1.6.1엘라스틱서치의유사제품군
____1.6.2로그스태시/비츠의유사제품군
____1.6.3키바나의유사제품군
____1.6.4엘라스틱스택의유사제품군
__1.7체계적인문서화와활발한공동체지원
__1.8정리

2장윈도우실습환경구성
__2.1설치준비
__2.2엘라스틱서치설치
____2.2.1엘라스틱서치다운로드
____2.2.2엘라스틱서치실행
__2.3키바나설치
____2.3.1키바나다운로드
____2.3.2키바나실행
__2.4엘라스틱스택라이선스확인
__2.5특정버전다운로드
__2.6정리

2부|엘라스틱스택구성요소
3장엘라스틱서치기본
__3.1준비작업
____3.1.1엘라스틱서치요청과응답
____3.1.2키바나콘솔사용법
____3.1.3시스템상태확인
____3.1.4샘플데이터불러오기
__3.2인덱스와도큐먼트
____3.2.1도큐먼트
____3.2.2인덱스
__3.3도큐먼트CRUD
____3.3.1인덱스생성/확인/삭제
____3.3.2도큐먼트생성
____3.3.3도큐먼트읽기
____3.3.4도큐먼트수정
____3.3.5도큐먼트삭제
__3.4응답메시지
__3.5벌크데이터
__3.6매핑
____3.6.1다이내믹매핑
____3.6.2명시적매핑
____3.6.3매핑타입
____3.6.4멀티필드를활용한문자열처리
__3.7인덱스템플릿
____3.7.1템플릿확인
____3.7.2템플릿설정
____3.7.3템플릿우선순위
____3.7.4다이내믹템플릿
__3.8분석기
____3.8.1분석기구성
____3.8.2토크나이저
____3.8.3필터
____3.8.4커스텀분석기
__3.9정리

4장엘라스틱서치:검색
__4.1쿼리컨텍스트와필터컨텍스트
__4.2쿼리스트링과쿼리DSL
____4.2.1쿼리스트링
____4.2.2쿼리DSL
__4.3유사도스코어
____4.3.1스코어알고리즘(BM25)이해하기
____4.3.2IDF계산
____4.3.3TF계산
__4.4쿼리
____4.4.1전문쿼리와용어수준쿼리
____4.4.2매치쿼리
____4.4.3매치프레이즈쿼리
____4.4.4용어쿼리
____4.4.5용어들쿼리
____4.4.6멀티매치쿼리
____4.4.7범위쿼리
____4.4.8논리쿼리
____4.4.9패턴검색
__4.5정리

5장엘라스틱서치:집계
__5.1집계의요청-응답형태
__5.2메트릭집계
____5.2.1평균값/중간값구하기
____5.2.2필드의유니크한값개수확인하기
____5.2.3검색결과내에서의집계
__5.3버킷집계
____5.3.1히스토그램집계
____5.3.2범위집계
____5.3.3용어집계
__5.4집계의조합
____5.4.1버킷집계와메트릭집계
____5.4.2서브버킷집계
__5.5파이프라인집계
____5.5.1부모집계
____5.5.2형제집계
__5.6정리

6장로그스태시
__6.1로그스태시소개
____6.1.1로그스태시특징
__6.2로그스태시설치
____6.2.1JDK설치
____6.2.2로그스태시다운로드
____6.2.3로그스태시실행
__6.3파이프라인
____6.3.1입력
____6.3.2필터
____6.3.3출력
____6.3.4코덱
__6.4다중파이프라인
____6.4.1다중파이프라인작성
__6.5모니터링
____6.5.1API를활용하는방법
____6.5.2모니터링기능활성화
__6.6정리

7장비츠
__7.1비츠소개
__7.2비츠설치
__7.3파일비트
____7.3.1파일비트아키텍처
____7.3.2파일비트다운로드
____7.3.3파일비트실행
____7.3.4파일비트설정
____7.3.5모듈
__7.4모니터링
__7.5그밖의비츠사용하기
__7.6정리

8장키바나
__8.1키바나소개
____8.1.1인덱스패턴
__8.2디스커버
____8.2.1쿼리바,필터바,타임피커
__8.3시각화
____8.3.1막대그래프
____8.3.2히트맵
____8.3.3TSVB(TimeSeriesVisualBuilder)
__8.4대시보드
____8.4.1대시보드만들기
__8.5캔버스
____8.5.1엘라스틱서치SQL
__8.6맵스
____8.6.1윈도우웹서버구축
____8.6.2사용자지정타일맵과GeoJSON적용
____8.6.3클러스터와그리드
____8.6.4GeoJSON적용하기
____8.6.5타일맵서비스
__8.7정리

3부|엘라스틱스택실전활용
9장캐글CSV파일을활용한인덱스작성
__9.1실습진행방식
__9.2실습준비작업
__9.3CSV파일가져오기
__9.4키바나데이터비주얼라이저를이용한파일가져오기
____9.4.1데이터Discover
__9.5로그스태시를이용한파일가져오기
____9.5.1CSV파일읽기
____9.5.2날짜/시간타입으로파싱
____9.5.3루비필터를이용한파싱
__9.6인덱스매핑
____9.6.1인덱스매핑을적용하여로그스태시데이터저장
____9.6.2템플릿을적용하여로그스태시데이터저장
__9.7키바나에서간단히분석해보기
____9.7.1지난10년동안어떤영화장르가가장많이만들어졌는가?
____9.7.2할리우드영화중평점높은영화는수익이났을까?예산은얼마나썼을까?
__9.8정리

10장로그스태시를활용한한글트위터데이터분석
__10.1실습진행방식
__10.2실습준비작업
____10.2.1트위터개발자정보
__10.3로그스태시수행
__10.4검색과한글형태소분석기
__10.5리인덱싱
__10.6실시간데이터시각화
__10.7정리

11장파이썬클라이언트를활용한공공데이터분석
__11.1실습진행방식
__11.2실습준비작업
____11.2.1서울열린데이터인증키발급받기
____11.2.2파이썬3.8설치
____11.2.3QGIS설치
____11.2.4맵시각화타입추가
__11.3서울행정동별인구분석하기
____11.3.1로그스태시로공공데이터가져오기
____11.3.2QGIS이용한사용자벡터레이어생성
____11.3.3서울에서일인가구가많은지역은어디일까?
____11.3.4서울에서외국인이많은곳은어디일까?
__11.4서울공공와이파이지도만들기
____11.4.1오픈API를이용한공공데이터가져오기
____11.4.2파이썬을이용한오픈API실행
____11.4.3파이썬엘라스틱서치클라이언트
____11.4.4파이썬클라이언트앱
____11.4.5bulkAPI를이용한인덱스
____11.4.6서울시공공와이파이위치시각화하기
__11.5정리

4부|엘라스틱운영
12장리눅스실습환경구성
__12.1버추얼박스에서우분투설치하기
__12.2엘라스틱서치설치
____12.2.1wget을이용한설치
____12.2.2리눅스패키지매니저를이용한설치
__12.3키바나설치
____12.3.1wget을이용한설치
____12.3.2리눅스패키지매니저를이용한설치
__12.4정리

13장클러스터와노드구성
__13.1HTTP계층과전송계층
__13.2노드
____13.2.1마스터노드
____13.2.2데이터노드
____13.2.3인제스트노드
____13.2.4그밖의노드들
____13.2.5전용노드
__13.3노드구성과시스템구성
____13.3.1소규모클러스터
____13.3.2대규모클러스터
____13.3.3핫/웜/콜드노드구성
__13.4클러스터백업
____13.4.1리포지토리등록
____13.4.2스냅샷찍기
____13.4.3스냅샷복원
__13.5샤드
____13.5.1프라이머리샤드와레플리카샤드
____13.5.2샤드할당과정
____13.5.3샤드상태모니터링
__13.6샤드개수와크기구성가이드
____13.6.1샤드개수가이드
____13.6.2샤드크기가이드
__13.7설정
____13.7.1클러스터설정
____13.7.2노드설정
____13.7.3인덱스설정
__13.8정리

14장운영클러스터구축
__14.1성능과안정성을위한운영클러스터고려사항
____14.1.1노드구성계획
____14.1.2하드웨어선정
____14.1.3엘라스틱서치버전선정
__14.2클러스터구성
____14.2.1노드설치
____14.2.2개발모드와운영모드
____14.2.3운영모드설정
____14.2.4실행

출판사 서평

|이책에서다루는내용|
-엘라스틱서치,로그스태시,비츠,키바나에대한핵심적인사용방법소개
-엘라스틱스택의특성을제대로활용하는방법을보여주는구체적인프로젝트사례-운영과정에서주의해야하는사항을실무관점에서정리

|이책의특징|
-엘라스틱스택에빠르게친숙해지고싶은누구나쉽게따라할수있는풍부한예제
-검색엔진활용법뿐만아니라,빅데이터파이프라인을구성하는방법
-엘라스틱스택의모니터링은물론,수집된데이터를다양한방식으로시각화하는방법
-실제데이터수집부터시각화까지전체과정을엘라스틱스택의구성요소만으로전개
-한국어형태소분석기적용사례
-공공데이터와GIS데이터를활용한지도시각화사례
-운영과정에필요한클러스터/샤드구성과보안강화방법소개

|이책의대상독자|
-데이터처리,검색,변환,분석,시각화업무를수행해야하는현업개발자
-빅데이터의고가용성,안정성,보안을확보해야하는서버운영자
-단일오픈소스기술로빅데이터플랫폼을설계하거나도입하기원하는아키텍트
-엘라스틱스택기술:엘라스틱서치,로그스태시,비츠,키바나에관심있는개발자나운영자

|이책의구성|
1부‘엘라스틱스택개요’에서는엘라스틱스택의역사,용도,구성요소를알아보고엘라스틱서치와키바나설치방법을알아본다.
1장‘엘라스틱스택이란’에서는엘라스틱의변천사와엘라스틱스택의구성요소,엘라스틱스택을활용한전문검색서비스,로그모니터링같은서비스활용방법과빅데이터플랫폼에서엘라스틱스택의위상과역할을알아본다.그리고엘라스틱스택과여타솔루션들의차이점을알아볼것이다.
2장‘윈도우실습환경구성’에서는윈도우환경에서엘라스틱서치와키바나7.10.1버전을설치하는방법을알아본다.
2부‘엘라스틱스택구성요소’에서는엘라스틱스택의구성요소인엘라스틱서치,키바나,로그스태시,비츠를자세히알아본다.
3장‘엘라스틱서치기본’에서는엘라스틱서치인덱스,도큐먼트를알아보고도큐먼트CRUD와인덱스구조를이해한다.또한매핑,인덱스템플릿,분석기등을배우면서엘라스틱서치에도큐먼트를저장하는방법을배운다.
4장‘엘라스틱서치:검색’에서는인덱스쿼리에서사용하는BM25알고리즘을알아보고전문쿼리와용어수준의쿼리의차이점과대표적인쿼리들을직접실행하면서검색방법을알아본다.
5장‘엘라스틱서치:집계’에서는통계정보를얻는메트릭집계,도큐먼트를나누는버킷집계,여러집계를사용하는파이프라인집계를배운다.
6장‘로그스태시’에서는로그스태시와JDK설치방법을알아보고파이프라인작성법과플러그인사용법등을배운다.또한로그스태시모니터링도알아본다.
7장‘비츠’에서는비츠설치방법과파일비트를이용해비츠를설치하고실행하는일련의과정을배운다.또한모듈을이용하여쉽게비츠를설정하는방법과모니터링까지알아본다.
8장‘키바나’에서는시각화메뉴들중디스커버,시각화,대시보드,캔버스,맵스의사용법을알아본다.
3부‘엘라스틱스택실전활용’에서는1부와2부에서배운내용을바탕으로엘라스틱스택으로구현할수있는몇가지프로젝트를진행한다.
9장‘캐글CSV파일을활용한인덱스작성’에서는캐글에서다운로드한CSV영화파일을엘라스틱스택에올린다음데이터를분석해본다.이과정에서로그스태시루비필터등을이용해데이터를정제하고,매핑과인덱스템플릿을이용해인덱스를생성한다.
10장‘로그스태시를활용한한글트위터데이터분석’에서는로그스태시트위터플러그인을이용하여소셜데이터를입수하는방법을배우고,노리Nori분석기로한글데이터를분석하는방법을배운다.인덱스를다시설계하는방법과키바나에서실시간데이터를시각화하는방법을다룬다.
11장‘파이썬클라이언트를활용한공공데이터분석’에서는파이썬을이용한엘라스틱서치클라이언트앱개발방법을다룬다.이과정에서공공API를사용하는방법과QGIS를이용해지도에서활용할수있는벡터레이어를만들고시각화하는방법을배운다.
4부‘엘라스틱운영’에서는리눅스환경에서엘라스틱스택설치방법과클러스터의기본이되는노드,샤드,인덱스와그설정에대해익힌다.또한실제3대의노드로클러스터구성까지실습해본다.
12장‘리눅스실습환경구성’에서는리눅스환경에서엘라스틱서치와키바나7.10.1버전을설치하는방법을알아본다.
13장‘클러스터와노드구성’에서는노드의역할을설명하고클러스터구성가이드를제공한다.또한핫/웜구성방법과백업방법을알아보고샤드와샤드최적화를알아본다.마지막으로노드와클러스터를설정하는방법을배운다.
14장‘운영클러스터구축’에서는운영을위한하드웨어선정가이드와클러스터구성방법을배우고보안기능을활성화하는방법을익힌다.마지막으로운영에필요한사용자역할을구분하는방법을살펴본다.

|이책을활용하기위한개발환경|
●엘라스틱서치7.10.1
●키바나7.10.1
●로그스태시7.10.1
●파일비트7.10.1
●윈도우10(2부,3부에서활용)
●리눅스우분투18.04(4부에서활용)
●JDK8
●파이썬3.8

[감수의글]
감수를위해이책초고부터교정지까지본문을여러차례반복해서읽게되었는데그때마다엘라스틱스택의각기다른핵심기능과활용법이눈에쏙쏙들어오는신기한경험을했다.보통기술서를여러번읽으면약간은지루하다는생각이들기마련인데이책은읽을때마다뭔가중요한내용을배우고있다는느낌을받았다.엘라스틱을한번도접한적이없는개발자뿐만아니라어느정도엘라스틱에익숙하다고생각하는개발자도이책을손에들면감수자의말에공감하게될것이다.
이책에서는모든것을포괄적으로설명하기위해중요한내용과그렇지않은내용을전반에여기저기흩트려놓는대신,철저하게파레토법칙에따라80%효과를얻을수있는20%에집중한다.따라서본문전개과정에서속도감과응집력이상당히높다.또한카탈로그에나온API나기능설명에그치지않고핵심을빠르게학습하기위한좋은예제가설명뒤에바로이어지며,책전반에걸쳐추상적인이론을손에잡히는구체적인사례로바꿔낸다.엘라스틱스택을언제어디서어떻게잘활용할수있는지고민하면서인터넷에올라온단편적인지식을수집하다지친분들이라면이책이갈증을해소해주는오아시스처럼보일것이다.
본문에도나오지만엘라스틱스택은설치부터실제활용까지그사용법이크게어렵지않기때문에그냥곧바로써봐도될것같다는생각이들수도있다.하지만입문하기쉽다고해서마스터하기도쉽다고보기는어렵다.엘라스틱스택은빅데이터파이프라인전체를구축할수있는강력한기능을제공하기때문에실제알아야할내용이매우많으므로,사용하면서배우고,배우면서사용하는능동적인학습이필수다.능동적인학습과정에서큰도움을주는이책의주요특성중하나는목적지향적인설명이다.앞뒤맥락없이무조건적으로이런저런기능이있다고설명하는대신,이런저런일을하려면엘라스틱의어떤기능을활용해야할지를잘설명한다.예를들어,유사한기능이두가지있을때정확한차이점과구체적인사용법을알아야기능이나비기능(성능과저장공간절약)측면에서원하는목적을달성할수있는데,이책에서는각각에대해의도와핵심을설명하고비교를통해상황에맞는선택지를제시한다.또한개발과정을벗어나실제운영과정에서고려해야하는(정말양보하기어려운필수)사안에대해서도풍부한그림과시나리오를활용해내부동작방식까지파고들면서그렇게해야하는이유와구체적인지침을명확하게정리해준다.
이책에서숨겨진주인공은바로엘라스틱스택활용부문에나오는프로젝트삼총사다.빅데이터관련프로젝트를진행할때여러가지오픈소스를활용해복잡하게연결하는대신엘라스틱스택만으로데이터수집부터시각화까지한번에끝내는비법이궁금했을텐데,이책에서는예제를위한예제가아닌캐글/트위터/공공데이터에서가져온실제데이터를토대로한국어까지깔끔하게처리하면서지도위에시각화하는전과정을압축적으로보여준다.이과정에서엘라스틱스택을구성하는개별구성요소를연결하는방법뿐만아니라부드럽게연계하기위한필터활용은물론이고실제비즈니스논리구현과정에필요한프로그래밍에이르기까지빠짐없이다루므로,엘라스틱스택을제대로활용하는유스케이스나실무사례로도손색이없다는생각이다.
저자진이자신들의풍부한현업실무경험을바탕으로심사숙고해서선별한내용을가득담은이책을지렛대로삼아,아무쪼록엘라스틱스택의풍부한기능과강력한성능을독자여러분이마주치는현업의문제를풀어가는과정에적극적으로활용할수있으면좋겠다.