Computer >> 컴퓨터 >  >> 프로그램 작성 >> 데이터 베이스

스냅샷에 S3를 사용하도록 Elasticsearch 구성

2017년 3월 2일 ObjectRocket.com/blog에서 최초 게시

데이터 플랫폼은 계속 확장되고 변형되지만 한 가지 측면은 절대 변하지 않는 것 같습니다. 모든 사람은 여전히 ​​데이터의 백업 복사본을 원합니다! 이 연습에서는 Elasticsearch® 인스턴스용 Rackspace ObjectRocket과 함께 S3 리포지토리 플러그인을 활용하는 방법을 보여줍니다.

스냅샷에 S3를 사용하도록 Elasticsearch 구성

데이터 플랫폼이 계속 확장되고 변형됨에 따라 한 가지 측면은 동일하게 유지됩니다. 모든 사람은 여전히 ​​데이터의 백업 복사본을 원합니다!기술의 발전은 여전히 ​​로컬 개발 환경으로 복원하기 위한 백업에 대한 액세스, 보관 또는 규정 준수를 위한 복사본 및 기타 경우를 요구합니다. . 이 게시물은 Rackspace® ObjectRocket®for Elasticsearch 인스턴스와 함께 S3 리포지토리 플러그인을 활용하는 방법을 설명합니다.

스냅샷 구성 요소

Elasticsearch 스냅샷은 리포지토리, 스냅샷 및 고유한 스냅샷 이름의 세 가지 주요 구성 요소로 구성됩니다. 저장소에는 스냅샷을 저장하는 위치와 방법에 대한 특정 세부 정보가 포함되어 있습니다. 기본 야간 ObjectRocket 백업 유형은 fs입니다. 및 S3 백업 유형:S3 . 둘 다 설정 구조가 약간 다릅니다. 다음은 저장소 스니펫의 예입니다.

GET /_snapshot?pretty
...
{
  "s3_repository" : {
    "type" : "s3",
    "settings" : {
      "bucket" : "MYBUCKETNAME",
      "server_side_encryption" : "false",
      "region" : "us-east-1",
      "compress" : "false"
    }
  }
}
...

표시된 각 저장소는 어레이에 나열된 하나 이상의 스냅샷으로 구성됩니다.

GET /_snapshot/s3_repository/_all?pretty
[... 
  {
    "snapshot" : "20170208225601",
    "uuid" : "t6R6jxLJTIueQizv9clJYg",
    "version_id" : 5010499,
    "version" : "5.1.1",
    "indices" : [ ".triggered_watches", ".watch_history-2016.10.26", "elastalert_status", "coffee-2016.10.301", ".kibana", "coffee-2016.10.305", "coffee-2016.10.304", "coffee-2016.10.303", "coffee-2016.10.302", ".watches" 
    ],
    "state" : "SUCCESS",
    "start_time" : "2017-02-09T06:56:01.191Z",
    "start_time_in_millis" : 1486623361191,
    "end_time" : "2017-02-09T06:56:12.179Z",
    "end_time_in_millis" : 1486623372179,
    "duration_in_millis" : 10988,
    "failures" : [ ],
    "shards" : {
      "total" : 57,
      "failed" : 0,
      "successful" : 57
    }
  }]

모든 _snapshot에 대해 작업을 수행하려면 올바른 리포지토리, 스냅샷 및 스냅샷 식별자를 참조해야 합니다. 앞의 예에서 snapshot : 20170208225601을 사용합니다. 고유 식별자로.

#### S3에 백업 보내기

Elasticsearch로 S3 리포지토리를 설정하는 것은 비교적 쉬운 프로세스입니다. 백업을 S3 버킷으로 보내기 위한 몇 가지 전제 조건이 있습니다.

  1. repository-s3 설치 플러그인.
  2. 클러스터가 외부에서 S3에 연결할 수 있는지 확인합니다.
  3. S3에 대한 적절한 자격 증명(버킷, 비밀 및 키)이 있어야 합니다.

ObjectRocket Elasticsearch 인스턴스가 있는 경우 처음 두 단계는 기본적으로 준비되어 있어야 하며 세 번째 구성 요소에 대한 S3 자격 증명이 있어야 합니다. Elasticsearch 스냅샷 프로세스를 제한하려면 커스텀 정책을 생성하세요. AWS® IAM 콘솔을 사용합니다. 정책 문서는 다음 예와 유사해야 합니다(MYBUCKETNAME 대체).

{
  "Statement": [
    {
      "Action": [
        "s3:ListBucket",
        "s3:GetBucketLocation",
        "s3:ListBucketMultipartUploads",
        "s3:ListBucketVersions"
      ],
      "Effect": "Allow",
      "Resource": [
        "arn:aws:s3:::MYBUCKETNAME"
      ]
    },
    {
      "Action": [
        "s3:GetObject",
        "s3:PutObject",
        "s3:DeleteObject",
        "s3:AbortMultipartUpload",
        "s3:ListMultipartUploadParts"
      ],
      "Effect": "Allow",
      "Resource": [
        "arn:aws:s3:::MYBUCKETNAME/*"
      ]
    }
  ],
  "Version": "2012-10-17"

}

전제 조건을 제거하고 첫 번째 단계는 S3 리포지토리를 만드는 것입니다.

PUT /_snapshot/s3_repository
{
  "type": "s3",
  "settings": {
    "bucket": "MYBUCKETNAME",
    "region": "us-east-1",
    "access_key": "KEY",
    "secret_key": "SECRET"
  }
}'

리포지토리를 만든 후 모든 표준 _snapshot 작업을 수행할 수 있습니다. 새 스냅샷을 찍으려면 다음 엔드포인트에 액세스하고 SNAPSHOT_NAME을(를) 정의하세요. :

PUT /_snapshot/s3_repository/SNAPSHOT_NAME?wait_for_completion=false

스냅샷을 실행하는 데 시간이 걸리는 경우가 있으므로 진행 중인 상태를 확인하는 것이 좋습니다. 스냅 사진. 이 끝점을 사용하면 현재 실행 중인 스냅샷 또는 복원 작업에 대한 자세한 정보가 표시됩니다.

GET /_snapshot/_status

이제 마지막 스냅샷이 완료된 직후 모든 인덱스를 삭제하고 결정을 빨리 후회했다고 가정해 보겠습니다. S3 스냅샷에서 모든 인덱스를 복원하려면 다음 명령을 실행하십시오.

POST /_snapshot/s3_repository/SNAPSHOT_NAME/_restore

인덱스를 선택적으로 복원해야 하는 경우 형식을 약간 수정합니다. 예:

POST /_snapshot/s3_repository/SNAPSHOT_NAME/_restore
{
  "indices": "myindex_1,myindex_2",
  "ignore_unavailable": true
}

한 번에 하나의 스냅샷 또는 복원 작업만 클러스터에서 실행할 수 있다는 점을 지적할 가치가 있습니다. 또한 스냅샷은 클러스터에 약간의 성능 영향을 미치므로 백업 정책이 너무 공격적이지 않은지 확인하십시오!

항상 그렇듯이 이러한 단계에 문제가 있는 경우 [email protected]

으로 언제든지 문의해 주십시오.

피드백 탭을 사용하여 의견을 작성하거나 질문하십시오. 영업 채팅을 클릭할 수도 있습니다. 지금 채팅하고 대화를 시작하세요.