써먹는 웹개발

[aws] elasticsearch 와 s3 데이터 연동 본문

Study/Elasticsearch

[aws] elasticsearch 와 s3 데이터 연동

kmhan 2021. 6. 5. 23:17


728x90
반응형

※ 단계가 너무 많아서 중간은 생략하겠습니다.

   전체 플로우 참고 : https://docs.aws.amazon.com/ko_kr/elasticsearch-service/latest/developerguide/migration.html

 

0. snapshot 생성
※ 이전에 plugin에 repository-s3 설치필요

 1) 파일 생성시킬 폴더 셋팅

PUT _snapshot/snapshots
{
  "type": "fs",
  "settings": {
    "location": "/backup",
    "compress": true
  }
}

 2) 파일생성

 - repository명/snapshot명까지 반드시 입력해줘야 s3와 amazon elasticsearch 연동시 스냅샷 정보를 못 찾는 현상이 발생하지 않음

※ 로컬 키바나에서 입력 (*에 index명을 ,로 붙여가며 입력해도 됨)
PUT _snapshot/snapshots/migration-snapshot
{
  "indices": "*",
  "ignore_unavailable": true,
  "include_global_state": false
}

 ※ 스냅샷 처리 완료시 엘라스틱서치 실행파일에 다음문구 생성됨

 

1. s3에 데이터를 올립니다.

※ 주의사항 : index-0 파일을 포함하여 5개 파일이 들어있는 폴더 경로를 지정후에 다음 명령어 실행

1) 업로드할 아마존 s3 설정방법

cmd에서 aws configure 입력 후에 다음 4가지 추가

AWS Access Key ID [None]: ****
AWS Secret Access Key [None]: *****
Default region name [None]: ap-northeast-2
Default output format [None]: json

 

2) 아마존 버킷생성
aws s3 mb s3://아마존 버킷 --region 아마존 지역명
3) 현재 경로의 파일 전부 업로드 aws s3 sync . s3://아마존 버킷명 --sse AES256

새롭게 스냅샷을 추가하면 1(아마존 버킷생성) 부터 다시 명령어를 처리해야됩니다.

※ 위 명령어 입력시 python 문구만 출력되고 반응없을때 해결방법

 (aws cli1 설치했다는 전제하에) 시스템 변수 > Path에 'C:\Program Files\Amazon\AWSCLI\bin' 추가

 참고 : https://it-sunny-333.tistory.com/106

 

2. POSTman에서 s3 데이터를 아마존 엘라스틱서치에서 가져올수있게 

 - s3와 elasticsearch의 데이터 연동을 위함

PUT 아마존 엘라스틱서치 엔드포인트/_snapshot/migration-repository 
Body>raw {
  "type""s3",
  "settings": {
    "bucket""s3 버킷명",
    "region""지역명",
    "role_arn""역할명"
  }
}

다음 결과가 나오면 성공

 

 - 다음이 성공했으면 로컬 엘라스틱서치 키바나에서도 다음명령어 실행하면 로컬PC와 s3가 똑같이 연결이 되서 쓸 수 있습니다.

 

3. 스냅샷 명 확인 및 복원 명령어

스냅샷 명 확인 : GET /_snapshot/migration-repository/_all

복원 :

POST _snapshot/migration-repository/migration-snapshot/_restore
{
  "indices": "kw3_bak",
  "include_global_state": false
}

 

   질문이 필요하면 댓글을 달아주세요.

728x90
반응형


Comments