翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
EBS direct を使用した Amazon EBSスナップショットの書き込み APIs
次の手順では、EBS直接 を使用して増分スナップショットAPIsを書き込む方法について説明します。
-
StartSnapshot アクションを使用して、親スナップショット ID を指定して既存のスナップショットの増分スナップショットとしてスナップショットを開始するか、親スナップショット ID を省略して新しいスナップショットを開始します。このアクションは、保留状態にある新しいスナップショットの ID を返します。
-
PutSnapshotBlock アクションを使用して、保留中のスナップショットの ID を指定し、個々のブロックの形式でデータを追加します。送信されるデータのブロックには Base64-encodedSHA256チェックサムを指定する必要があります。サービスは、受信したデータのチェックサムを計算し、指定したチェックサムと照合してデータを検証します。チェックサムが一致しない場合、アクションは失敗します。
-
保留中のスナップショットにデータを追加したら、 アクションを使用して CompleteSnapshot、スナップショットをシールして完了状態に移行する非同期ワークフローを開始します。
上記の手順を繰り返し、以前に作成したスナップショットを親とする新しい増分スナップショットを作成します。
例えば、次の図のスナップショット A は、最初に開始した新しいスナップショットです。スナップショット A を親スナップショットとしてスナップショット B を開始します。スナップショット B を親スナップショットとしてスナップショット C を開始および作成します。スナップショット A、B、C は、増分スナップショットです。スナップショット A は、EBSボリューム 1 を作成するために使用されます。スナップショット D はEBSボリューム 1 から作成されます。スナップショット D は A の増分スナップショットであり、B または C の増分スナップショットではありません。
次の例は、EBS直接 を使用してスナップショットを書き込む方法を示していますAPIs。
スナップショットの開始
- 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例では、親スナップショットsnap-123EXAMPLE1234567
としてスナップショットを使用して 8
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 直接APIsチェックサムを使用してスナップショットデータを検証するを参照してください。
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"}