이미 소장하고 있다면 판매해 보세요.
|
01장: 엘라스틱서치 소개
1.1 엘라스틱서치의 기본 콘셉트 1.2 라이선스 정책 1.3 실습 환경 구축 __1.3.1 엘라스틱서치 설치 __1.3.2 키바나 설치 __1.3.3 샘플 데이터 적재 __1.3.4 Cerebro 설치 02장: 엘라스틱서치 기본 동작과 구조 2.1 엘라스틱서치 기본 동작 빠르게 둘러보기 __2.1.1 문서 색인 __2.1.2 문서 조회 __2.1.3 문서 업데이트 __2.1.4 문서 검색 __2.1.5 문서 삭제 2.2 엘라스틱서치 구조 개괄 2.3 엘라스틱서치 내부 구조와 루씬 __2.3.1 루씬 flush __2.3.2 루씬 commit __2.3.3 세그먼트 __2.3.4 루씬 인덱스와 엘라스틱서치 인덱스 __2.3.5 translog 03장: 인덱스 설계 3.1 인덱스 설정 __3.1.1 number_of_shards __3.1.2 number_of_replicas __3.1.3 refresh_interval __3.1.4 인덱스 설정을 지정하여 인덱스 생성 3.2 매핑과 필드 타입 __3.2.1 동적 매핑 vs. 명시적 매핑 __3.2.2 필드 타입 __3.2.3 doc_values __3.2.4 fielddata __3.2.5 _source __3.2.6 index __3.2.7 enabled 3.3 애널라이저와 토크나이저 __3.3.1 analyze API __3.3.2 캐릭터 필터 __3.3.3 토크나이저 __3.3.4 토큰 필터 __3.3.5 내장 애널라이저 __3.3.6 애널라이저를 매핑에 적용 __3.3.7 커스텀 애널라이저 __3.3.8 플러그인 설치를 통한 애널라이저 추가와 한국어 형태소 분석 __3.3.9 노멀라이저 3.4 템플릿 __3.4.1 인덱스 템플릿 __3.4.2 컴포넌트 템플릿 __3.4.3 레거시 템플릿 __3.4.4 동적 템플릿 __3.4.5 빌트인 인덱스 템플릿 3.5 라우팅 __3.5.1 인덱스 내에서의 _id 고유성 보장 __3.5.2 인덱스 매핑에서 라우팅을 필수로 지정하기 04장: 데이터 다루기 4.1 단건 문서 API __4.1.1 색인 API __4.1.2 조회 API __4.1.3 업데이트 API __4.1.4 삭제 API 4.2 복수 문서 API __4.2.1 bulk API __4.2.2 multi get API __4.2.3 update by query __4.2.4 delete by query 4.3 검색 API __4.3.1 검색 대상 지정 __4.3.2 쿼리 DSL 검색과 쿼리 문자열 검색 __4.3.3 match_all 쿼리 __4.3.4 match 쿼리 __4.3.5 term 쿼리 __4.3.6 terms 쿼리 __4.3.7 range 쿼리 __4.3.8 prefix 쿼리 __4.3.9 exists 쿼리 __4.3.10 bool 쿼리 __4.3.11 constant_score 쿼리 __4.3.12 그 외 주요 매개변수 __4.3.13 검색 결과 정렬 __4.3.14 페이지네이션 4.4 집계 __4.4.1 집계 기본 __4.4.2 메트릭 집계 __4.4.3 버킷 집계 __4.4.4 파이프라인 집계 4.5 서비스 코드에서 엘라스틱서치 클라이언트 이용 __4.5.1 저수준 REST 클라이언트 __4.5.2 고수준 REST 클라이언트 __4.5.3 자바 클라이언트 05장: 서비스 환경에 클러스터 구성 5.1 운영 환경을 위한 설정과 클러스터 구성 __5.1.1 노드 설정과 노드 역할 __5.1.2 그 외 필요한 주요 설정 5.2 클러스터 구성 전략 __5.2.1 마스터 후보 노드와 데이터 노드를 분리 __5.2.2 마스터 후보 노드와 투표 구성원 __5.2.3 서버 자원이 많지 않은 경우 __5.2.4 서버 자원이 굉장히 많이 필요한 경우 __5.2.5 사양이 크게 차이나는 서버 자원을 활용해야 하는 경우 __5.2.6 조정 전용 노드 __5.2.7 한 서버에 여러 프로세스 띄우기 5.3 보안 기능 적용 __5.3.1 모든 보안 기능을 적용하지 않은 상태 __5.3.2 TLS 부트스트랩 체크 __5.3.3 클러스터 최초 기동 시 자동 보안 설정 이용 __5.3.4 키바나와 브라우저 사이에 TLS 적용 __5.3.5 수동으로 엘라스틱서치 노드 간의 통신에 TLS 적용 __5.3.6 수동으로 기본 인증 설정 __5.3.7 수동으로 REST API 호출에 TLS 적용 06장: 클러스터 운영 6.1 클러스터 설정 API 6.2 cat API를 통한 클러스터 관리와 모니터링 6.3 인덱스 운영 전략 __6.3.1 템플릿과 명시적 매핑 활용 __6.3.2 라우팅 활용 __6.3.3 시계열 인덱스 이름 __6.3.4 alias __6.3.5 롤오버 __6.3.6 데이터 스트림 __6.3.7 reindex __6.3.8 shrink로 샤드 개수 줄이기 __6.3.9 split으로 샤드 개수 늘이기 __6.3.10 다중 필드 __6.3.11 타입이 계속 변경되는 데이터 __6.3.12 루씬 텀 길이 제약 __6.3.13 대량 색인이 필요할 때 6.4 샤드 운영 전략 __6.4.1 샤드의 크기와 개수 조정 __6.4.2 모든 노드가 충분히 일을 하고 있는지 __6.4.3 미래에 데이터가 커질 것을 고려 __6.4.4 테스트 수행 6.5 롤링 리스타트 6.6 스냅샷과 복구 __6.6.1 스냅샷 저장소 등록과 설정 __6.6.2 스냅샷을 생성하고 조회하기 __6.6.3 스냅샷에서 인덱스 복구하기 __6.6.4 스냅샷 삭제하기 __6.6.5 스냅샷 생명 주기 관리 6.7 명시적으로 세그먼트 병합하기 6.8 샤드 할당 필터링과 데이터 티어 구조 __6.8.1 노드 속성과 샤드 할당 의식 __6.8.2 클러스터 단위 샤드 할당 필터링 __6.8.3 인덱스 단위 샤드 할당 필터링 __6.8.4 데이터 티어 구조 6.9 인덱스 생명 주기 관리 6.10 서킷 브레이커 6.11 슬로우 로그 설정 6.12 버전 업그레이드 __6.12.1 사전에 챙겨야 할 사항 __6.12.2 롤링 업그레이드 __6.12.3 풀 리스타트 업그레이드 __6.12.4 엘라스틱 스택 업그레이드 07장: 운영 도중 발생하는 장애 대응 7.1 장애 징후 탐지를 위한 사전 모니터링 등록 __7.1.1 메트릭비트로 지표 데이터를 수집하고 스택 모니터링으로 확인하기 __7.1.2 키바나의 얼럿 기능으로 알람 받기 __7.1.3 다른 대안으로 구성하기 7.2 장애 발생 시 대응 7.3 자주 발생하는 장애 유형 __7.3.1 키바나에서 과도한 요청 인입 __7.3.2 GC로 인한 stop-the-world 상황 __7.3.3 디스크 풀 상황 __7.3.4 미할당 샤드가 남았는데 샤드 할당이 더 이상 진행되지 않는 상황 __7.3.5 댕글링 인덱스 __7.3.6 장애 복구 작업 도중 새 인덱스가 생성될 때 __7.3.7 날짜가 넘어가는 순간에 대량으로 새 인덱스가 생성되며 부하가 몰려 죽는 상황 __7.3.8 특정 노드의 성능이 떨어지는 상황 7.4 샤드 복구 전략 __7.4.1 샤드 복구 기본 __7.4.2 샤드 복구 진행 상황 확인 __7.4.3 샤드 복구 속도 조정 __7.4.4 샤드 복구 우선순위 조정 7.5 원활한 장애 복구를 위한 서비스 구조 설계 __7.5.1 앞쪽에 메시지 큐를 둔다 __7.5.2 멱등하게 설계한다 __7.5.3 용도나 중요도별로 클러스터를 분리해야 한다 08장: 엘라스틱서치의 내부 동작 상세 8.1 엘라스틱서치의 데이터 분산 처리 과정 __8.1.1 쓰기 작업 시 엘라스틱서치 동작과 동시성 제어 __8.1.2 읽기 작업 시 엘라스틱서치 동작 __8.1.2 체크포인트와 샤드 복구 과정 8.2 엘라스틱서치의 검색 동작 상세 __8.2.1 엘라스틱서치 검색 동작 흐름 __8.2.2 루씬 쿼리의 매칭과 스코어링 과정 __8.2.3 캐시 동작 09장: 커스텀 플러그인을 이용한 엘라스틱서치 커스터마이징과 실전 운영 9.1 커스텀 플러그인이 필요한 이유 9.2 플러그인 기본 __9.2.1 플러그인 기본 관리 __9.2.2 플러그인 기본 구조 __9.2.3 플러그인 개발 시 유의할 사항 9.3 Hello World 플러그인 제작 __9.3.1 플러그인 프로젝트 생성과 기본 구조 잡기 __9.3.2 Plugin과 ActionPlugin 9.4 엘라스틱서치와 플러그인의 테스트 코드 작성 __9.4.1 테스트 코드 작성을 위한 기본 설정 __9.4.2 엘라스틱서치 테스트 프레임워크로 테스트 코드 작성 __9.4.3 REST 레이어 테스트 9.5 ActionFilter로 위험한 액션 차단 및 변조하기 __9.5.1 ActionFilter를 사용하는 플러그인 구현 __9.5.2 엘라스틱서치 기동 과정과 ActionFilter의 동작 상세 __9.5.3 createComponents로 플러그인 구성요소 등록 __9.5.4 LifecycleComponent로 생명 주기를 가진 구성요소 관리 9.6 특정 조건을 만족할 때를 감지하여 알람 보내기 __9.6.1 persistent 타입의 task 동작 __9.6.2 PersistentTaskPlugin 구현 __9.6.3 플러그인에 권한 부여하기 9.7 인덱스 내 일부 데이터만 덤프하기 __9.7.1 덤프 플러그인 작성 __9.7.2 플러그인에 권한을 강제로 부여하기 __9.7.3 HDFS에 덤프 9.8 데이터 변경분을 카프카로 발급하기 __9.8.1 IndexingOperationListener로 문서 작업 추적 __9.8.2 카프카로 메시지 발급 |
|
이 책에서 다루는 내용
- 엘라스틱서치의 주요 특성과 동작 이해 - 인덱스와 샤드 설계 - 클러스터 운영 전략과 노하우 - 장애 징후 탐지를 위한 모니터링 - 운영 도중 자주 발생하는 장애 유형과 대응 방법 - 원활한 장애 복구를 위한 서비스 구조 설계와 샤드 복구 전략 - 통신 채널 암호화와 인증, 권한 분리 적용 - 엘라스틱서치의 분산 처리 과정과 동시성 제어 - 엘라스틱서치와 루씬의 검색 동작 흐름과 매칭, 스코어링 과정 상세 - 캐시 동작 상세 - 체크포인트와 샤드 복구 과정 - 커스텀 플러그인 개발과 엘라스틱서치 커스터마이징 - 엘라스틱서치 소스 코드 분석 - 위험한 액션 차단 및 변조 - 엘라스틱서치 데이터 변경분을 카프카로 발급 |