스냅샷 생성 API
스냅샷 생성 API (Create Snapshot API)
기존 저장소 안에 스냅샷을 만들어요.
도입 버전 1.0
- 스냅샷에 대해 더 자세히 알아보려면 Snapshots를 참고하세요.
- 저장소 목록을 보려면 Get snapshot repository를 참고하세요.
엔드포인트
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.
출처: 문서