기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
EBS 다이렉트 API를 사용하여 Amazon EBS 스냅샷 쓰기
다음 단계에서는 EBS 다이렉트 API를 사용하여 증분 스냅샷을 쓰는 방법을 설명합니다.
-
StartSnapshot 작업을 사용하고 상위 스냅샷 ID를 지정하여 기존 스냅샷의 증분 스냅샷으로 스냅샷을 시작하거나 상위 스냅샷 ID를 생략하여 새 스냅샷을 시작합니다. 이 작업은 대기 중 상태의 새 스냅샷 ID를 반환합니다.
-
PutSnapshotBlock 작업을 사용하고 대기 중인 스냅샷의 ID를 지정하여 개별 블록 형식으로 데이터를 추가합니다. 전송되는 데이터의 블록에 대해 Base64 인코딩 SHA256 체크섬을 지정해야 합니다. 이 서비스는 수신된 데이터의 체크섬을 계산하고 지정된 체크섬과 대조하여 검증합니다. 체크섬이 일치하지 않으면 작업이 실패합니다.
-
대기 중인 스냅샷에 데이터를 추가했으면 CompleteSnapshot 작업을 사용하여 스냅샷을 봉인하고 완료됨 상태로 전환하는 비동기 워크플로우를 시작합니다.
이 단계를 반복하여 이전에 생성한 스냅샷을 상위 스냅샷으로 사용해 새 증분 스냅샷을 생성합니다.
예를 들어 다음 다이어그램에서 스냅샷 A는 처음 시작된 새 스냅샷입니다. 스냅샷 A는 스냅샷 B를 시작하는 데 상위 스냅샷으로 사용됩니다. 스냅샷 B는 스냅샷 C를 시작하고 생성하는 데 상위 스냅샷으로 사용됩니다. 스냅샷 A, B, C는 증분 스냅샷입니다. 스냅샷 A는 EBS 볼륨 1을 생성하는 데 사용됩니다. 스냅샷 D는 EBS 볼륨 1에서 생성됩니다. 스냅샷 D는 A의 증분 스냅샷이며 B 또는 C의 증분 스냅샷이 아닙니다.
다음 예에서는 EBS 다이렉트 API를 사용하여 스냅샷을 쓰는 방법을 보여 줍니다.
스냅샷 시작
- AWS CLI
-
다음 start-snapshot 예제 요청은 스냅샷 8
을 상위 스냅샷으로 사용하여 snap-123EXAMPLE1234567
GiB 스냅샷을 시작합니다. 새 스냅샷은 상위 스냅샷의 증분 스냅샷이 됩니다. 지정된 60
분의 제한 시간 내에 스냅샷에 대한 추가 또는 완료 요청이 없으면 스냅샷이 오류 상태로 전환됩니다. 550e8400-e29b-41d4-a716-446655440000
클라이언트 토큰은 요청에 대한 멱등성을 보장합니다. 이 클라이언트 토큰이 생략되면 AWS SDK에서 자동으로 생성됩니다. 멱등성에 대한 자세한 내용은 StartSnapshot API 요청에서 멱등성 보장 섹션을 참조하세요.
aws ebs start-snapshot --volume-size 8
--parent-snapshot snap-123EXAMPLE1234567
--timeout 60
--client-token 550e8400-e29b-41d4-a716-446655440000
이전 명령에 대한 다음 예제 응답은 스냅샷 ID, AWS 계정 ID, 상태, 볼륨 크기(GiB) 및 스냅샷의 블록 크기를 보여줍니다. 스냅샷이 pending
상태로 시작됩니다. 후속 put-snapshot-block
명령에서 스냅샷 ID를 지정하여 스냅샷에 데이터를 쓴 다음 complete-snapshot
명령을 사용하여 스냅샷을 완료하고 상태를 completed
로 변경합니다.
{
"SnapshotId": "snap-0aaEXAMPLEe306d62",
"OwnerId": "111122223333",
"Status": "pending",
"VolumeSize": 8,
"BlockSize": 524288
}
- AWS API
-
다음 StartSnapshot 예제 요청은 스냅샷 8
을 상위 스냅샷으로 사용하여 snap-123EXAMPLE1234567
GiB 스냅샷을 시작합니다. 새 스냅샷은 상위 스냅샷의 증분 스냅샷이 됩니다. 지정된 60
분의 제한 시간 내에 스냅샷에 대한 추가 또는 완료 요청이 없으면 스냅샷이 오류 상태로 전환됩니다. 550e8400-e29b-41d4-a716-446655440000
클라이언트 토큰은 요청에 대한 멱등성을 보장합니다. 이 클라이언트 토큰이 생략되면 AWS SDK에서 자동으로 생성됩니다. 멱등성에 대한 자세한 내용은 StartSnapshot API 요청에서 멱등성 보장 섹션을 참조하세요.
POST /snapshots HTTP/1.1
Host: ebs.us-east-2.amazonaws.com
Accept-Encoding: identity
User-Agent: <User agent parameter>
X-Amz-Date: 20200618T040724Z
Authorization: <Authentication parameter>
{
"VolumeSize": 8
,
"ParentSnapshot": snap-123EXAMPLE1234567
,
"ClientToken": "550e8400-e29b-41d4-a716-446655440000
",
"Timeout": 60
}
이전 요청에 대한 다음 예제 응답은 스냅샷 ID, AWS 계정 ID, 상태, 볼륨 크기(GiB) 및 스냅샷의 블록 크기를 보여줍니다. 스냅샷이 대기 중 상태로 시작됩니다. 후속 PutSnapshotBlocks
요청에서 스냅샷 ID를 지정하여 스냅샷에 데이터를 씁니다.
HTTP/1.1 201 Created
x-amzn-RequestId: 929e6eb9-7183-405a-9502-5b7da37c1b18
Content-Type: application/json
Content-Length: 181
Date: Thu, 18 Jun 2020 04:07:29 GMT
Connection: keep-alive
{
"BlockSize": 524288,
"Description": null,
"OwnerId": "138695307491",
"Progress": null,
"SnapshotId": "snap-052EXAMPLEc85d8dd",
"StartTime": null,
"Status": "pending",
"Tags": null,
"VolumeSize": 8
}
스냅샷에 데이터 추가
- AWS CLI
-
다음 put-snapshot 예제 명령은 스냅샷 524288
의 블록 인덱스 1000
에 snap-0aaEXAMPLEe306d62
바이트의 데이터를 씁니다. Base64로 인코딩된 QOD3gmEQOXATfJx2Aa34W4FU2nZGyXfqtsUuktOw8DM=
체크섬은 SHA256
알고리즘을 사용하여 생성되었습니다. 전송되는 데이터는 /tmp/data
파일에 있습니다.
aws ebs put-snapshot-block --snapshot-id snap-0aaEXAMPLEe306d62
--block-index 1000
--data-length 524288
--block-data /tmp/data
--checksum QOD3gmEQOXATfJx2Aa34W4FU2nZGyXfqtsUuktOw8DM=
--checksum-algorithm SHA256
이전 명령에 대한 다음 예제 응답은 서비스에서 수신한 데이터의 데이터 길이, 체크섬 및 체크섬 알고리즘을 확인합니다.
{
"DataLength": "524288",
"Checksum": "QOD3gmEQOXATfJx2Aa34W4FU2nZGyXfqtsUuktOw8DM=",
"ChecksumAlgorithm": "SHA256"
}
- AWS API
-
다음 PutSnapshot 예제 요청은 스냅샷 524288
의 블록 인덱스 1000
에 snap-052EXAMPLEc85d8dd
바이트의 데이터를 씁니다. Base64로 인코딩된 QOD3gmEQOXATfJx2Aa34W4FU2nZGyXfqtsUuktOw8DM=
체크섬은 SHA256
알고리즘을 사용하여 생성되었습니다. 데이터는 요청 본문에 포함돼 전송되며 다음 예에서는 BlockData
로 표시되어 있습니다.
PUT /snapshots/snap-052EXAMPLEc85d8dd
/blocks
/1000 HTTP/1.1
Host: ebs.us-east-2.amazonaws.com
Accept-Encoding: identity
x-amz-Data-Length: 524288
x-amz-Checksum: QOD3gmEQOXATfJx2Aa34W4FU2nZGyXfqtsUuktOw8DM=
x-amz-Checksum-Algorithm: SHA256
User-Agent: <User agent parameter>
X-Amz-Date: 20200618T042215Z
X-Amz-Content-SHA256: UNSIGNED-PAYLOAD
Authorization: <Authentication parameter>
BlockData
이전 요청에 대한 다음 예제 응답은 서비스에서 수신한 데이터의 데이터 길이, 체크섬 및 체크섬 알고리즘을 확인합니다.
HTTP/1.1 201 Created
x-amzn-RequestId: 643ac797-7e0c-4ad0-8417-97b77b43c57b
x-amz-Checksum: QOD3gmEQOXATfJx2Aa34W4FU2nZGyXfqtsUuktOw8DM=
x-amz-Checksum-Algorithm: SHA256
Content-Type: application/json
Content-Length: 2
Date: Thu, 18 Jun 2020 04:22:12 GMT
Connection: keep-alive
{}
스냅샷 완료
- AWS CLI
-
다음 complete-snapshot 예제 명령은 스냅샷 snap-0aaEXAMPLEe306d62
를 완료합니다. 이 명령은 5
블록을 스냅샷에 쓰도록 지정합니다. 6D3nmwi5f2F0wlh7xX8QprrJBFzDX8aacdOcA3KCM3c=
체크섬은 스냅샷에 쓴 전체 데이터 세트의 체크섬을 나타냅니다. 체크섬에 대한 자세한 내용은 이 설명서 앞부분에 있는 EBS 다이렉트 API 체크섬을 사용하여 스냅샷 데이터 검증 섹션을 참조하세요.
aws ebs complete-snapshot --snapshot-id snap-0aaEXAMPLEe306d62
--changed-blocks-count 5
--checksum 6D3nmwi5f2F0wlh7xX8QprrJBFzDX8aacdOcA3KCM3c=
--checksum-algorithm SHA256
--checksum-aggregation-method LINEAR
다음은 이전 명령에 대한 응답의 예입니다.
{
"Status": "pending"
}
- AWS API
-
다음 CompleteSnapshot 예제 요청은 스냅샷 snap-052EXAMPLEc85d8dd
를 완료합니다. 이 명령은 5
블록을 스냅샷에 쓰도록 지정합니다. 6D3nmwi5f2F0wlh7xX8QprrJBFzDX8aacdOcA3KCM3c=
체크섬은 스냅샷에 쓴 전체 데이터 세트의 체크섬을 나타냅니다.
POST /snapshots/completion/snap-052EXAMPLEc85d8dd
HTTP/1.1
Host: ebs.us-east-2.amazonaws.com
Accept-Encoding: identity
x-amz-ChangedBlocksCount: 5
x-amz-Checksum: 6D3nmwi5f2F0wlh7xX8QprrJBFzDX8aacdOcA3KCM3c=
x-amz-Checksum-Algorithm: SHA256
x-amz-Checksum-Aggregation-Method: LINEAR
User-Agent: <User agent parameter>
X-Amz-Date: 20200618T043158Z
Authorization: <Authentication parameter>
다음은 이전 요청에 대한 응답의 예입니다.
HTTP/1.1 202 Accepted
x-amzn-RequestId: 06cba5b5-b731-49de-af40-80333ac3a117
Content-Type: application/json
Content-Length: 20
Date: Thu, 18 Jun 2020 04:31:50 GMT
Connection: keep-alive
{"Status":"pending"}