Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 스프링
- VPC
- Spring
- JPA
- springboot
- Spring Boot
- 스프링 부트
- aws
- 월미도
- 자료구조
- 백준
- Apache Kafka
- 백트래킹
- Kafka
- 코드업
- 알고리즘
- 오일러프로젝트
- gcp
- Spring Data JPA
- 클라우드
- DFS
- 스프링부트
- 카프카
- 인천여행
- 프로그래밍문제
- Docker
- 로드밸런서
- Elasticsearch
- 쿠버네티스
- 클라우드 컴퓨팅
Archives
- Today
- Total
GW LABS
기초부터 다지는 ElasticSearch 운영 노하우 (5) - 클러스터 운영하기 본문
6.1 버전 업그레이드
- Full Cluster Restart: 모든 노드를 동시에 재시작하는 방식이며, 다운 타임이 발생하지만 빠르게 버전을 업그레이드 할 수 있다.
- Rolling Restart: 노드를 순차적으로 한 대씩 재시작하는 방식이며, 다운 타임은 없지만 노드 개수에 따라서 업그레이드에 소요되는 시간이 길어질 수 있다.
- 수동외의 다른방법으로 업그레이드 할 수 있는 방법이 있는지 리서치 필요
6.2 샤드 배치 방식 변경
- 장애로 인해 unassigned 샤드들에 대한 재할당이 필요한데 지속적으로 실패한다면 강제 배치가 필요
- reroute: 샤드 하나하나를 특정 노드에 배치할 때 사용
- allocation: 클러스터 전체에 해당하는 샤드 배치 방식을 변경할 때 사용
- all: 프라이머리 샤드와 레플리카 샤드 전부 배치 허용
- primaries: 프라이머리 샤드만 배치 허용
- new_primaries: 새롭게 생성되는 인덱스에 한해 프라이머리 샤드만 배치 허용
- none: 모든 샤드의 배치 작업을 비활성화
- null: 클러스터 설정에서 해당 설정 삭제, default 값인 all로 설정됨
- rebalance: 클러스터 전체에 해당하는 샤드 재분배 방식을 변경할 때 사용
- filtering: 특정 조건에 해당하는 샤드들을 특정 노드에 배치할 때 사용
6.3 클러스터와 인덱스의 설정 변경
- Cluster 설정종류
- transient: 운영 중에만 적용되는 설정(재시작한다면 초기화)
- 샤드 할당/비할당 같은 자주 변경되는 옵션들을 설정
- persistent: 영구히 적용
- 노드 디스크 사용률 등의 임계치 설정 옵션들을 설정
- transient > persistent > elasticsearch.yml
- transient: 운영 중에만 적용되는 설정(재시작한다면 초기화)
- unassigned 샤드 발생원인 조회
- /_cluster/allocation/explain
6.4 인덱스 API
- open/close: 인덱스를 open/close
- aliases: 인덱스에 별칭을 부여하는 API
- rollover: 인덱스를 새로운 인덱스로 분기시키는 API
- refresh: 문서를 세그먼트로 내리는 주기를 설정하는 API
- forcemerge: 샤드 내의 세그먼트를 병합시키는 API
- reindex: 인덱스를 복제하는 API
6.4.1 open/close API
- open: 색인/검색이 가능한 상태
- close: 색인/검색이 불가능한 상태
6.4.2 aliases API
- 인덱스에 별칭을 부여
- 여러 개의 인덱스에 걸쳐 alias를 설정하면 색인이 되지 않는다.
- 여러 개의 인덱스에 걸쳐 alias를 생성하고 close API로 인덱스가 하나라도 생성되었다면 alias를 통한 검색 요청이 불가능하다.
6.4.3 rollover API
- 특정 조건을 설정하여 해당 조건을 만족하면 인덱스를 새로 만들고, 새롭게 생성된 인덱스로 요청받는 API
- 특정 인덱스가 추가되어야 한다면 aliases API를 통해 기존과 새로 생성된 인덱스를 묶어 색인/검색한다.
6.4.4 refresh API
- 메모리 버퍼 캐시에 있는 문서들을 바로 세그먼트로 저장해주는 API
- refresh_interval 주기를 기다리지 않는다.
6.4.5 forcemerge API
- 세그먼트를 강제로 병합하는 API, 인덱스에 속한 모든 샤드를 대상으로 병합을 수행한다.
- 과거 로그 데이터와 같은 인덱스에 적용하는 것이 좋음
- 세그먼트 수가 줄어 검색 성능이 향상되고 디스크 용량도 절약할 수 있음
6.4.6 reindex API
- 인덱스의 analyzer를 변경할 때, 클러스터간 데이터 마이그레이션 시 주로 사용한다.
- 클러스터 간 데이터 마이그레이션 시에는 elasticsearch.yml whitelist 설정이 필요
- 데이터 마이그레이션 타겟 클러스터에 whitelist 설정
6.5 템플릿 활용하기
- 인덱스가 생성될 때마다 특정 패턴의 이름을 가진 인덱스에 설정이 자동 반영되도록 하는 기능
- settings: 인덱스의 설정값
- mappings: 인덱스의 매핑 정보
- aliases: 인덱스의 alias 정보
'Book-Review > Programing' 카테고리의 다른 글
기초부터 다지는 ElasticSearch 운영 노하우 (7) - 검색 엔진으로 활용하기 (0) | 2022.08.30 |
---|---|
기초부터 다지는 ElasticSearch 운영 노하우 (6) - 클러스터 성능 모니터링과 최적화 (0) | 2022.08.28 |
기초부터 다지는 ElasticSearch 운영 노하우 (4) - 클러스터 구축하기 (0) | 2022.08.25 |
기초부터 다지는 ElasticSearch 운영 노하우 (3) - ElasticSearch 기본 개념 (0) | 2022.08.24 |
기초부터 다지는 ElasticSearch 운영 노하우 (2) - ElasticSearch 기본 동작 (0) | 2022.08.23 |
Comments