elasticache 인덱스와 샤드

Bonjugi·2024년 5월 6일
0

아래 글을 주로 인용했습니다.

용어

도큐먼트 : 단일 데이터
인덱스 : 도큐먼트들을 모아놓는곳 (도서관의 섹션으로 생각하면 좋다)
색인 : 데이터를 ES에 저장하는 행위

색인한다 라는 용어가 생소했다. 인덱싱이라 함은 이미 저장되어이쓴 데이터와 별개로, 빠르게 찾기위한 별도의 인덱스 데이터를 생성하는것이 더 자연스러운 나에게는..

프라이머리샤드, 복제본

인덱스는 샤드단위로 분산되어 저장된다.
인덱스 생성시 별도 설정하지 않으면, 기본적으로 1개의 샤드로 인덱스가 구성된다.
노드가 추가되면 해당 샤드들이 분산된다.
디폴트로 1개의 복제본이 생성됨.

샤딩,레플리카는 대체로 다른 분산저장시스템들의 컨셉과 거의 동일하다. (MongoDB, Redis..)
샤드는 분산 저장으로 I/O 향상을 위한것이 주목적이고, 레플리카는 데이터를 복제하여 장애극복을 위함이 더 크다. 레플리카는 읽기전용으로 동작하여 읽기 트래픽 분산에도 도움이 된다.

참고로 프라이머리 샤드 수는 인덱스 생성시 지정할수 있고, 재색인 하지 않는이상 변경 불가하다.
복제본은 변경 가능하다. (카프카도 비슷하다. 파티션은 늘릴수만 있고 복제는 언제든 변경가능)

AWS Opensearch 에서는?

Opensearch 는 node 수 조정만 가능하다.
샤드나 레플리카 수를 별도 조정하는건 안보인다.
참고로, 프라이머리 샤드 수는 재색인 하지 않는이상 조정이 불가능하다고 한다.
색인이 얼마나 걸릴지 모르겠지만, 재색인과정에서 서비스 영향도가 분명 있을듯.
카프카는 파티션을 늘리는것까진 가능한데, 줄이는게 불가능하다는 특징과 유사하다.
managed라서 베스트 프랙티스로 돌아가고있을듯 하다.

노드수나 스토리지를 변경하는건 무중단으로 가능하다고 한다.

0개의 댓글