Elasticsearch 인덱스 Number_of_Replicas

number_of_replicas를 구성하는 방법과 그 의미 및 모범 사례에 대해 설명합니다.

Elasticsearch가 처음이신가요? Elasticsearch 입문용 웨비나에 참여하세요. 지금 무료 클라우드 체험을 시작하거나, 내 기기에서 Elastic을 사용해 볼 수 있습니다.

Elasticsearch는 대량의 데이터를 처리하고 고가용성을 제공할 수 있는 분산 시스템으로 설계되었습니다. 이를 가능하게 하는 핵심 기능 중 하나는 number_of_replicas 설정으로 제어되는 인덱스 복제 개념입니다. 이 문서에서는 이 설정의 세부 사항과 그 의미, 올바르게 구성하는 방법에 대해 자세히 설명합니다.

Elasticsearch에서 복제본의 역할

Elasticsearch에서 인덱스는 여러 기본 샤드에 걸쳐 분할된 문서의 모음입니다. 각 기본 샤드는 독립적인 Apache Lucene 인덱스이며, 인덱스 내의 문서는 모든 기본 샤드에 분산되어 있습니다. 고가용성과 데이터 이중화를 보장하기 위해 Elasticsearch는 각 샤드에 복제본이라고 하는 하나 이상의 복사본을 가질 수 있도록 합니다.

number_of_replicas 설정은 인덱스의 각 기본 샤드에 대해 Elasticsearch가 생성하는 복제 샤드(복사본)의 수를 제어합니다. 기본적으로 Elasticsearch는 각 기본 샤드에 대해 하나의 복제본을 생성하지만 시스템의 요구 사항에 따라 변경할 수 있습니다.

수_오브_복제본 구성하기

number_of_replicas 설정은 인덱스 생성 시 구성하거나 나중에 업데이트할 수 있습니다. 인덱스 생성 중에 설정하는 방법은 다음과 같습니다:

이 예제에서 Elasticsearch는 my_index 인덱스의 각 기본 샤드에 대해 두 개의 복제본을 생성합니다.

기존 인덱스에 대한 number_of_replicas 설정을 업데이트하려면 _settings API를 사용하면 됩니다:

이 명령은 my_index 인덱스를 업데이트하여 각 기본 샤드에 대해 3개의 복제본을 갖도록 합니다.

number_of_replicas 설정의 의미

number_of_replicas 설정은 Elasticsearch 클러스터의 성능과 복원력에 상당한 영향을 미칩니다. 다음은 고려해야 할 몇 가지 핵심 사항입니다:

  1. 데이터 중복성 및 가용성: number_of_replicas 을 늘리면 각 샤드의 복사본을 더 많이 생성하여 데이터의 가용성이 향상됩니다. 노드에 장애가 발생해도 Elasticsearch는 나머지 노드에 있는 복제본 샤드의 데이터를 계속 제공할 수 있습니다.
  2. 검색 성능: 복제본 샤드는 읽기 요청을 처리할 수 있으므로 복제본이 많으면 더 많은 샤드에 부하를 분산하여 검색 성능을 향상시킬 수 있습니다.
  3. 쓰기 성능: 그러나 각 쓰기 작업은 샤드의 모든 복사본에서 수행해야 합니다. 따라서 number_of_replicas 이 높을수록 각 쓰기마다 수행해야 하는 작업 수가 증가하므로 인덱싱 성능이 느려질 수 있습니다.
  4. 스토리지 요구 사항: 복제본이 많을수록 더 많은 저장 공간이 필요합니다. 클러스터에 추가 복제본을 저장할 수 있는 충분한 용량이 있는지 확인해야 합니다.
  5. 노드 장애에 대한 복원력: number_of_replicas 은 클러스터의 노드 수를 고려하여 설정해야 합니다. number_of_replicas 이 노드 수보다 크면 클러스터는 데이터 손실 없이 여러 노드의 장애를 견딜 수 있습니다.

number_of_replicas 설정 모범 사례

최적의 number_of_replicas 설정은 시스템의 특정 요구 사항에 따라 다릅니다. 그러나 다음은 몇 가지 일반적인 모범 사례입니다:

  • 단일 노드 클러스터의 경우, 복제본을 보관할 다른 노드가 없으므로 number_of_replicas 을 0으로 설정해야 합니다.
  • 멀티노드 클러스터의 경우 데이터 중복성과 고가용성을 보장하려면 number_of_replicas 을 최소 1로 설정해야 합니다.
  • 검색 성능이 우선순위라면 number_of_replicas 을 늘리는 것이 좋습니다. 하지만 쓰기 성능 및 스토리지 요구 사항과의 절충점을 염두에 두어야 합니다.
  • 항상 클러스터에 추가 복제본을 저장할 수 있는 충분한 용량이 있는지 확인하세요.

관련 콘텐츠

최첨단 검색 환경을 구축할 준비가 되셨나요?

충분히 고급화된 검색은 한 사람의 노력만으로는 달성할 수 없습니다. Elasticsearch는 여러분과 마찬가지로 검색에 대한 열정을 가진 데이터 과학자, ML 운영팀, 엔지니어 등 많은 사람들이 지원합니다. 서로 연결하고 협력하여 원하는 결과를 얻을 수 있는 마법 같은 검색 환경을 구축해 보세요.

직접 사용해 보세요