Home ElasticSearch
Post
Cancel

ElasticSearch

실운영환경

  1. 운영 노드 구성시 마스터 노드와 데이터 노드는 각각 몇대 이상을 구성해야하는가? 그 이유는 무엇인가?

  2. Elastic-Search는 데이터 저장소를 구성하는 단계에서 미러링 정책을 권장하는가? 권장한다면 그 이유는 무엇이고, 아니라면 그 이유는 무엇인가?

  3. 운영리눅스 JVM 설정시 주의해야할 3가지는 무엇인가?

  4. 과거에는 엘라스틱서치의 보안기능 활성화를 위해 별도 프록시 구성을 해야 했지만 현재는 베이직 라이선스에서도 보안기능을 사용할 수 있다. config/elasticsearch.yml에 추가할 보안기능 활성화 설정코드는 무엇인가?

  5. 운영 노드 구성시 마스터 노드와 데이터 노드는 각각 몇대 이상을 구성해야하는가? 그 이유는 무엇인가?
    • 마스터: 3개의 마스터 노드를 구성할 필요가 있다. 하나의 마스터 노드가 다운되었을 때 스플릿 브레인 없이 서비스가 지속되게 하기 위한 최소한의 구성이다. 데이터: replica 를 활용하기 위해 최소 2대 이상 확보해야 한다.
  6. Elastic-Search는 데이터 저장소를 구성하는 단계에서 미러링 정책을 권장하는가? 권장한다면 그 이유는 무엇이고, 아니라면 그 이유는 무엇인가?
    • 권장하지 않는다. 데이터 손실에 대비한 replica, snap-shot과 같은 소프트웨어적인 백업이 충분히 준비되어있으므로 미머링으로 인해 발생할 수 있는 성능저하나 장애요인이 더 큰 문제가 될 수 있다.
  7. 운영리눅스 JVM 설정시 주의해야할 3가지는 무엇인가?
    • Xms, Xmx 수치를 동일하게 할당한다.
    • 힙 크기는 최대 시스템 물리메모리의 절반으로 한다.
    • 힙 크기는 최대 30~31GB 수준을 넘기지 않은다
  8. 과거에는 엘라스틱서치의 보안기능 활성화를 위해 별도 프록시 구성을 해야 했지만 현재는 베이직 라이선스에서도 보안기능을 사용할 수 있다. config/elasticsearch.yml에 추가할 보안기능 활성화 설정코드는 무엇인가?
    • xpack.security.enabled: true

  1. 성능과 안정성 양쪽을 높이기 위한 운영 클러스터 고려사항
    • 노드 구성 계획
      • 최소 3개의 마스터 노드를 구성할 필요가 있다. 하나의 마스터 노드가 다운되었을 때 스플릿 브레인 없이 서비스가 지속되게 하기 위한 최소한의 구성이다.
      • 데이터 노드도 replica 를 활용하기 위해 최소 2대 이상 확보해야 한다.
  2. 고려사항에 따른 노드 구성계획 및 하드웨어 산정
    • 분산/병렬처리에 특화된 만큼, 단일 노드의 하드웨어가 굉장히 좋을 필요는 없으나 낮은 사양의 하드웨어는 병모깅 될 수 있기 때문에 중간 정도의 하드웨어를 권장한다.
      • 메모리 : 일반적으로 엘라스틱 서치에서 가장 먼저 고갈되어 문제가 되는 리소스는 메모리로, 검색성능을 위해 샤드 유지, 검색과 집계, 인덱싱, 코디네이팅 등 전반적인 영역에서 많은 메모리를 사용하게 된다. -> 가장 이상적인 메모리는 64GB이다.
      • CPU : es는 분산/병렬처리에 최적화된 제품이기 때문에 단일코어의 성능보다는 다중코어를 권장한다.
      • 디스크 : SSD를 권장하며, HDD의 경우 RPM이 빠른 제품을 권장한다. 네트워크 저장소는 되도록 피하고, 최대한 빠른 디스크 성능을 선택한다. es는 많은 요소를 heap 메모리에 로드해 빠른 검색과 집계가 가능하도록 하지만, 세그먼트를 읽고 쓰기 위해 디스크 IO를 상당히 많이 사용한다. RAID의 경우 RAID 0 을 이용해 디스크 성능 향상을 도모하는 것은 좋지만 기타 미러링 정책은 선택하지 않은 편이 좋다. 의도치 않은 데이터 손실에 대비해 레플리카-스냅샷과 같이 소프트웨어적으로도 충분한 대비가 되어 있으므로 미러링으로 인해 발생할 수 있는 성능 저하나 장애요인이 더 큰 문제가 될 수 있다.
      • 하드웨어 통일 : 총 시간은 가장 느린 노드가 코티네이팅 노드로 전달한 시간 + @ 만큼이 될 확률이 높다. 따라서 하느웨어의 성능은 되도록 통일하는 것이 중요하며, 혼합해 사용하는 경우에는 실시간 인덱싱을 하는 핫노드, 인덱싱 없은 웜노드, 데이터 보관이 주목적인 콜드 노드로 구분해 서로 다른 타입의 노드끼리는 동일 인덱스를 공유하지 않게 한다.
      • 스냅샷 처리 : 모든 노드에서 접근 가능하도록 네트워크 공유 드라이브(NAS)를 구성한다. -> 스냅샷 생성 시 각 노드에는 스냅샷 저장소로 파일 복사가 직접 일어나기 때문이다.
  3. 보안기능 설정, 사용자 등록 및 관리방법
This post is licensed under CC BY 4.0 by the author.