2017년 3월 2일 ObjectRocket.com/blog에서 최초 게시
데이터 플랫폼은 계속 확장되고 변형되지만 한 가지 측면은 절대 변하지 않는 것 같습니다. 모든 사람은 여전히 데이터의 백업 복사본을 원합니다! 이 연습에서는 Elasticsearch® 인스턴스용 Rackspace ObjectRocket과 함께 S3 리포지토리 플러그인을 활용하는 방법을 보여줍니다.
데이터 플랫폼이 계속 확장되고 변형됨에 따라 한 가지 측면은 동일하게 유지됩니다. 모든 사람은 여전히 데이터의 백업 복사본을 원합니다!기술의 발전은 여전히 로컬 개발 환경으로 복원하기 위한 백업에 대한 액세스, 보관 또는 규정 준수를 위한 복사본 및 기타 경우를 요구합니다. . 이 게시물은 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 버킷으로 보내기 위한 몇 가지 전제 조건이 있습니다.
repository-s3
설치 플러그인.- 클러스터가 외부에서 S3에 연결할 수 있는지 확인합니다.
- 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]
으로 언제든지 문의해 주십시오.피드백 탭을 사용하여 의견을 작성하거나 질문하십시오. 영업 채팅을 클릭할 수도 있습니다. 지금 채팅하고 대화를 시작하세요.