본문 바로가기

엘라스틱서치3

[Guide] 샤드 크기 결정: 샤딩 전략과 고려 사항 이번 포스팅에선 Elasticsearch 를 사용할 때 클러스터에 적절한 샤드 개수를 결정하는 방법들에 대해 소개합니다.​샤드 크기 결정ES의 인덱스는 하나 이상의 샤드로 분리되며, 각 샤드는 하드웨어 장애를 대비해 다른 노드에 복제된다. 만약 데이터 스트림을 사용한다면, 각 데이터 스트림은 인덱스들의 시퀸스로 back 된다. 단일 노드에 저장할 수 있는 데이터의 크기엔 한계가 있기 때문에, 노드를 추가하고 인덱스 및 해당하는 샤드의 수를 증가시켜 클러스터의 용량을 늘릴 수 있다. 하지만 각 인덱스와 샤드엔 약간의 오버헤드가 있기 때문에, 데이터를 너무 많은 샤드로 분할하면 오버헤드는 걷잡을 수 없이 커진다. 너무 많은 인덱스나 샤드를 가진 클러스터는 오버샤딩 되었다고 말할 수 있다. 오버샤딩된 클러스터.. 2023. 3. 23.
[Guide] 검색 속도 튜닝 Tune for search speed이번 포스팅에서는 Elasticsearch 에서 검색 속도 향상을 위한 튜닝 방법에 대해 살펴보겠다.​​파일시스템 캐시에 충분한 메모리를 줄 것ES 는 빠른 검색을 위해 파일시스템 캐시에 높게 의존한다. 일반적으로 못해도 사용가능한 메모리의 절반은 파일시스템 캐시가 사용할 수 있도록 하여, ES 인덱스의 접근 빈도가 높은 데이터들을 이 물리 메모리에 보관할 수 있게 해야 한다.​​빠른 하드웨어 사용만약 검색이 주로 I/O 로부터 발생한다면 위에 설명한 것 처럼 더 많은 메모리를 파일시스템 캐시로 두거나, 더 빠른 드라이브를 사용해야 한다. 보통 SSD 는 스피닝 디스크 (HDD) 보다 더 나은 성능을 보여주는 것으로 알려져 있다. NFS 나 SMB 와 같은 원격 파일.. 2023. 3. 16.
데이터 스트림 (Data streams) 데이터 스트림은 단일 리소스에서 다중 인덱스에 걸친 append-only 시계열 데이터에 대한 요청을 처리하게 해준다. 데이터 스트림은 로그, 이벤트, 메트릭 등과 같은 연속적으로 생성되는 데이터에 적합하다.​색인 및 검색 요청을 데이터 스트림에 직접적으로 할 수 있다. 그러면 해당 스트림의 데이터를 가지고 있는 뒷단의 인덱스에게 자동으로 라우팅을 해준다. ILM (Index Lifecycle Management)를 통해 뒷단 인덱스들을 자동으로 관리할 수 있다. 예를들어 ILM을 통해 오래된 뒷단 인덱스를 좀더 저렴한 장비로 옮기고 필요없는 인덱스를 삭제할 수 있다. ILM를 통해 데이터 증가로 인한 오버헤드와 비용을 절감할 수 있다.​​뒷단 인덱스 (Backing indices)​데이터 스트림은 자동.. 2023. 3. 13.