스냅샷 생성 API

스냅샷 생성 API (Create Snapshot API)

기존 저장소 안에 스냅샷을 만들어요.

도입 버전 1.0

엔드포인트

PUT /_snapshot/{repository}/{snapshot}
POST /_snapshot/{repository}/{snapshot}

경로 파라미터

파라미터 데이터 타입 설명
repository String 스냅샷을 저장할 저장소 이름이에요.
snapshot String 만들 스냅샷의 이름이에요.

쿼리 파라미터

파라미터 데이터 타입 설명
wait_for_completion Boolean 계속하기 전에 스냅샷 생성이 완료될 때까지 기다릴지 여부예요. 이 파라미터를 포함하면 생성 완료 후 스냅샷 정의가 반환돼요.

요청 본문 필드

요청 본문은 선택 사항이에요.

필드 데이터 타입 설명
indices String 스냅샷에 포함할 인덱스예요. ,로 인덱스 목록을 만들고, *로 인덱스 패턴을 지정하며, -로 특정 인덱스를 제외할 수 있어요. 항목 사이에 공백을 넣지 마세요. 기본값은 모든 인덱스예요.
ignore_unavailable Boolean indices 목록의 인덱스가 존재하지 않을 때 스냅샷을 실패시키지 않고 무시할지 여부예요. 기본값은 false 예요.
include_global_state Boolean 클러스터 상태를 스냅샷에 포함할지 여부예요. 기본값은 true 예요.
partial Boolean 부분 스냅샷을 허용할지 여부예요. 기본값은 false 이며, 하나 이상의 샤드 저장에 실패하면 전체 스냅샷이 실패해요.

예제 요청

다음 예제들은 스냅샷을 만드는 방법을 보여줘요.

본문 없는 요청

다음 요청은 my-s3-repository라는 S3 저장소에 my-first-snapshot이라는 스냅샷을 만들어요. 요청 본문은 선택 사항이라 포함하지 않았어요.

POST /_snapshot/my-s3-repository/my-first-snapshot

본문 있는 요청

특정 인덱스를 포함하거나 제외하고 다른 설정을 지정하려면 요청 본문을 추가할 수도 있어요:

PUT /_snapshot/my-s3-repository/2
{
  "indices": "opensearch-dashboards*,my-index*,-my-index-2016",
  "ignore_unavailable": true,
  "include_global_state": false,
  "partial": false
}

예제 응답

성공하면 응답 내용은 wait_for_completion 쿼리 파라미터를 포함했는지에 따라 달라져요.

wait_for_completion 미포함
{
  "accepted": true
}

스냅샷이 실제로 생성되었는지 확인하려면 Get snapshot API를 사용하고, snapshot 경로 파라미터에 스냅샷 이름을 전달하세요.

wait_for_completion 포함

스냅샷 정의가 반환돼요.

{
  "snapshot" : {
    "snapshot" : "5",
    "uuid" : "ZRH4Zv7cSnuYev2JpLMJGw",
    "version_id" : 136217927,
    "version" : "2.0.1",
    "indices" : [
      ".opendistro-reports-instances",
      ".opensearch-observability",
      ".kibana_1",
      "opensearch_dashboards_sample_data_flights",
      ".opensearch-notifications-config",
      ".opendistro-reports-definitions",
      "shakespeare"
    ],
    "data_streams" : [ ],
    "include_global_state" : true,
    "state" : "SUCCESS",
    "start_time" : "2022-08-10T16:52:15.277Z",
    "start_time_in_millis" : 1660150335277,
    "end_time" : "2022-08-10T16:52:18.699Z",
    "end_time_in_millis" : 1660150338699,
    "duration_in_millis" : 3422,
    "failures" : [ ],
    "shards" : {
      "total" : 7,
      "failed" : 0,
      "successful" : 7
    }
  }
}

응답 본문 필드

필드 데이터 타입 설명
snapshot String 스냅샷 이름이에요.
uuid String 스냅샷의 범용 고유 식별자(UUID)예요.
version_id Integer 스냅샷을 만든 Open Search 버전의 빌드 ID예요.
version Float 스냅샷을 만든 Open Search 버전이에요.
indices Array 스냅샷의 인덱스예요.
data_streams Array 스냅샷의 데이터 스트림이에요.
include_global_state Boolean 현재 클러스터 상태가 스냅샷에 포함되는지 여부예요.
start_time String 스냅샷 생성 프로세스가 시작된 날짜/시간이에요.
start_time_in_millis Long 스냅샷 생성 프로세스가 시작된 시간(밀리초)이에요.
end_time String 스냅샷 생성 프로세스가 종료된 날짜/시간이에요.
end_time_in_millis Long 스냅샷 생성 프로세스가 종료된 시간(밀리초)이에요.
duration_in_millis Long 스냅샷 생성 프로세스가 지속된 총 시간(밀리초)이에요.
failures Array 스냅샷 생성 중 발생한 실패가 있다면 그 목록이에요.
shards Object 생성된 총 샤드 수와 성공·실패한 샤드 수예요.
state String 스냅샷 상태예요. 가능한 값: IN_PROGRESS , SUCCESS , FAILED , PARTIAL .
remote_store_index_shallow_copy Boolean 원격 저장소 인덱스의 스냅샷을 얕은 복사본(shallow copy)으로 캡처하는지 여부예요. 기본값은 false 예요.
pinned_timestamp Long 스냅샷이 참조하는 원격 저장소 파일의 암시적 잠금을 위해 스냅샷이 고정한 타임스탬프(밀리초)예요.

필요한 권한

Security 플러그인을 사용한다면 적절한 권한이 있는지 확인하세요: cluster:admin/snapshot/create.

출처: 문서