Elasticsearch Reindex remote

JunMyung Lee·2023년 6월 30일
0

Elasticsearch

목록 보기
23/41

운영중인 인덱스를 가져와서 로컬에서 테스트를 하는 경우가 있다. 그럴때 다른 인덱스를 조회하는 쿼리를 실행해서 파일로 저장하고,
다시 그 파일을 읽어서 색인하는 방식을 생각할 수 있다. ( 본인이 그랬음... )

원래 reindex 기능이 있는건 알고 있었지만 사용하질 않았다.

배치를 로컬로 돌려서 색인하거나 같은 서버에서 사용하는데 왜쓰지? 라는 생각...
을 했는데 역시나.. 똑똑한 사람이라 그런지 원격지에 있는 ES서버의 색인도 reindex가 가능했다!!!

테스트는 Docker로 진행하였고 elasticsearch 7.13 이미지를 사용한다.

Step 1. 로컬호스트 설정

elasticsearch.yml

reindex.remote.whitelist: "TARGET_IP:9200"

예제에서는 whitelist를 0.0.0.0:9200 으로 하면 모든 IP 설정이라 어느 ES든 접근이 가능하다고 했는데 해당 설정으로 하면 예외가 발생한다. ( 설정이 안되었다는 예외 )
도커환경이라 그런지는 모르겠지만 직접적인 대상 IP를 지정해야 한다.

Step 2. Query

POST _reindex
{
    "source": {
        "remote": {
            "host": "http://TARGET_IP:9200",
            "username": "user",
            "password": "password"
        },
        "index": "target-index"
    },
    "dest": {
        "index": "new-index"
    }
}
profile
11년차 검색개발자 입니다. 여러 지식과 함께 실제 서비스를 운영 하면서 발생한 이슈에 대해서 정리하고 공유하고자 합니다.

0개의 댓글