스프링에서 ElasticSearch 데이터를 스냅샷으로 백업하고 복원하는 방법입니다.
이전에 작성한 ElasticSearch 스냅샷 생성하는 방법은 직접 kibana에서 작업해야 했는데
이번에는 REST API를 통해 스프링에서 처리하는 방법입니다.
https://tiqndjd12.tistory.com/278
스냅샷 레포지토리 생성과 등록은 사전에 완료되었다고 가정하고 진행하겠습니다.
사전 정보가 필요하신 분은 위의 링크를 참고하시면 됩니다.
위의 코드는 스케줄러로 ElasticSearch 스냅샷을 생성하고 있습니다.(36 ~ 59라인)
@Scheduled 어노테이션을 사용해 매일 오전 2시에 cronSnapshot 메소드를 실행하도록 예약합니다.(36라인)
스냅샷 이름을 식별하기 위해 UUID를 사용하여 생성했습니다.(38 ~ 39라인)
스냅샷 이름을 포함하여 백업 URL을 생성하고 있습니다.(41 ~ 42라인)
indices, ignore_unavailable, include_global_state 속성은 이전에 작성한 것과 동일하게 설정했습니다.(44 ~ 48라인)
REST API의 PUT 메소드 방식을 통해 ElasticSearch 스냅샷을 생성합니다.(50라인)
ElasticSearch 스냅샷 생성하는 코드는 새벽 2시에 실행하도록 되어있어서 테스트 코드로 실행했습니다.
정상적으로 스냅샷이 생성된 것을 확인할 수 있습니다.
위의 코드는 클라이언트로부터 스냅샷 이름을 받아서 해당 스냅샷으로 복원하고 있습니다.(61 ~ 71라인)
스냅샷 이름을 포함하여 복원 URL을 생성하고 있습니다.(62 ~ 63라인)
indices, ignore_unavailable, include_global_state 속성은 이전에 작성한 것과 동일하게 설정했습니다.(65 ~ 68라인)
REST API의 POST 메소드 방식을 통해 ElasticSearch 스냅샷을 생성합니다.(70라인)
ElasticSearch 스냅샷으로 복원하는 코드를 테스트 코드로 실행했는데 정상적으로 복원된 것을 확인할 수 있습니다.
ElasticSearch 데이터 백업 및 복원을 스프링에서 처리할 수 있기 때문에 유용할 거 같습니다.
'dev > 스프링' 카테고리의 다른 글
Spring Async CompletableFuture (0) | 2024.06.12 |
---|---|
Spring Async 비동기 처리 (0) | 2024.06.10 |
Spring ElasticSearch 첨부파일 조회 (0) | 2024.05.12 |
Spring ElasticSearch 첨부파일 색인 (0) | 2024.05.11 |
Spring ClassPathResource (0) | 2024.04.21 |