써먹는 웹개발

[Aws Elasticsearch] 6.4에서 7.1로 Data Migration하는 방법 (reindex, 재색인) 본문

Study/Elasticsearch

[Aws Elasticsearch] 6.4에서 7.1로 Data Migration하는 방법 (reindex, 재색인)

kmhan 2021. 6. 15. 20:46


728x90
반응형

기존에 스냅샷으로 해보다가 index 상태가 red가 되어 실패한적이 있으니 스냅샷으로 처리하는 방법을 아시는 분은 댓글에 달아주시면 감사하겠습니다.

답) red가 되었을때 아래 글인 reindex로 처리하면 해결됩니다.

스냅샷 반영전 엄청나게 중요한 것

1. 엘라스틱서치 plugin > s3 snapshot을 설치하고 올려야된다.

경로 elasticsearch\bin
명령어 : elaticsearch-plugin install repository-s3

2. store.size 기준으로 파악해서 용량 만들어 둘 것

ex) store.size가 25로 3개면 여유 용량 최소 75gb로 생성

Data Migration 방법 중에 내가 썼던 방법은 kibana에서 쓴 reindex(재색인)인데 방법은 1번처럼 하면된다.

1. 6.4버전의 index_name을 7.12에 index_name_bak이라는 명칭으로 복사해옴 (split 안하면 동일한 인덱스명도 상관없음)

※ 6.4버전의 엘라스틱서치의 host를 192.168.1.3으로 설정하고 다른 버전의 엘라스티서치 2개를 동시에 실행하였습니다.

POST _reindex?refresh
{
"source": {
"remote": {
"host": "http://192.168.1.3:9200"
},
"index": "index_name"
},
"dest": { "index": "index_name_bak"}
}

여기부터는 shard split (예시는 5등분)

2. shard를 split하기 위해 읽기전용 상태로 변경

PUT index_name_bak/_settings
{
"settings": {
"index.blocks.write": true
}
}

3. 주 샤드의 데이터를 5등분하고 레플리카 샤드도 1개 생성

POST '기존 인덱스명'/_split/'새로운 인덱스명'

POST index_name_bak/_split/index_name
{
"settings": {
"index.number_of_shards": 5,
"index.number_of_replicas" : 1
}
}

4. 기존 인덱스명 제거

DELETE index_name_bak

※ 아마존 엘라스틱서치 7.1버전에 7.12버전 스냅샷을 올렸다가 실패했습니다. 참고하세요.

728x90
반응형


Comments