Elastic Cloud의 Snapshot 기능을 이용하여 AWS S3로 마이그레이션 하기

서아로·2023년 11월 29일
0

대학교 별 aws 강의 멘토로 다니면서 데이터를 어떻게 보관할지에 대해 고민이 되었는데 엘라스틱 클라우드에 있는 데이터들을 자사 aws s3에 저장하기로 하였다.
오늘은 그 방법에 대해 알아보자

elasticsearch에서는 스냅샷을 찍어 인덱스를 저장하는 기능을 제공하고 이 스냅샷을 다른 클러스터에 복원시켜 데이터를 옮길 수 있다
아래 도큐먼트에 snapshot-restore 도큐먼트를 첨부한다.

(https://www.elastic.co/guide/en/elasticsearch/reference/current/snapshot-restore.html )

따라서 스냅샷을 활용하여 elastic cloud에 있는 데이터를 aws s3로 마이그레이션 하는 방법에 대해 알아보도록 하자.

<진행순서>
1.   aws 에 접속하여 IAM 사용자 추가
2. deployement s3.client 설정
3. aws s3에 버킷 생성
4. cloud에 repository 생성
5. 스냅샷 찍기
6. s3에서 스냅샷 생성 확인

AWS S3를 스냅샷 레포지토리로 사용하기 위해서는 elasticsearch-keystore에 등록 해야한다.

하지만 엘라스틱서치 클라우드상에서는 직접 elasticsearch-key store 에는 접근이 불가하다. (온프레미스 환경에서만 접근 가능)

따라서 아마존에 Credential을 새로 만들어야하는데 우선 aws에 접속하여 IAM 사용자를 만들어보도록 하자.

  1. aws 에 접속하여 IAM 사용자를 추가한다.

Amazon S3를 스냅샷 repository로 사용하기 위해서는 aws IAM 에서 s3 fullaccess 권한을 가진 사용자의

access key 와 secret key 가 필요하다. 따라서 s3fullaccess IAM 사용자를 만들어 보도록 하자.

우선, aws 콘솔에 IAM 을 검색하여 사용자를 추가하자.

권한 옵션에서 직접 정책연결>AmazonS3FullAccess를 추가하자
이 권한을 추가해주어야 s3에 접근이 가능하다.

만들어진 해당 사용자의 액세스 키를 만들기 위해서는 사용자 > 보안 자격 증명> 액세스 키 만들기 를 선택한다.

액세스 키를 만들고 csv 파일을 다운로드 받는다.(다운로드 꼭 받아놓기 .ᐟ.ᐟ)

  1. deployement s3.client 설정하기

이제 클라우드상에서 elasticsearch-keystore를 어떻게 등록하는지 알아보도록 하자.

엘라스틱 클라우드에 접속하여 Manage this deployment를 클릭한다.

setting name 을 s3.client.default.access_key 로 설정 후 csv 파일로 다운받은 access_key를 secret에 작성하고 등록해준다.

setting name을 s3.client.default.secret_key로 설정 후 csv로 다운받은 secret_key를 작성하여 등록하여 준다.

아래 사진과 같이 등록된 것을 확인할 수 있다.

이제 스냅샷을 저장해놓을 버킷을 생성해보자

  1. aws s3에 버킷을 생성하자

AWS에 접속하여 콘솔에 s3를 검색한다. 버킷 생성을 클릭하여 새롭게 버킷을 생성한다.

  1. 클라우드에 repository 만들기

엘라스틱 클라우드에도 repository를 만들어 주자

stack management> snapshot and restore 에 들어가 repository를 생성한다.

dev tools에서도 repository의 설정을 만들 수 있다

client 명은 default로 앞 전에 만들었던 s3.client.default.access_key 에서 default 가 client명이 된다

또한 path를 만들어 폴더 별로 스냅샷을 저장해 놓을 예정이기 때문에 base_path를 설정했다

레포지토리 생성 후 verify repository를 눌러 오류가 생기지 않아야 해당 repository 가 사용가능하다.

  1. 스냅샷 찍기

모든 인덱스를 스냅샷 찍기보단 원하는 index를 indices에 적어 원하는 index만 스냅샷을 찍을 수 있다.

  1. s3에서 스냅샷 생성 확인하기
    aws S3에 해당 스냅샷이 생성되었는지 확인하자 스냅샷이 S3에 잘 저장된것을 확인할 수 있다.

이로써 스냅샷을 찍어 s3에 인덱스를 저장하는 기능에 대해 알아보았다.
앞으로 해당 기능을 이용하여 앞으로 있을 elasticsearch& aws 프로젝트와 관련한 데이터를 s3에 스냅샷을 이용하여 저장할 예정이다.
해당 글은 사내 블로그에도 포스팅 될 내용이지만 개인 블로그에도 정리해보고자 작성한다.

참고: https://www.youtube.com/watch?v=mgJ2kEFMfEY&t=1749s

0개의 댓글