

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# EBS direct API の概念
<a name="ebsapi-elements"></a>

EBS direct API の使用を開始する前に、以下の主要な概念を理解しておく必要があります。

## スナップショット
<a name="ebsapi-snapshots"></a>

スナップショットは、EBS ボリュームからデータをバックアップするための主な手段です。EBS direct API では、オンプレミスのディスクからスナップショットにデータをバックアップすることもできます。ストレージコストを節約するために、連続するスナップショットは増分で、以前のスナップショット以降に変更されたボリュームデータのみが含まれています。詳細については、「[Amazon EBS スナップショット](ebs-snapshots.md)」を参照してください。

**注記**  
EBS direct APIsは、 でのパブリックスナップショットとローカルスナップショットをサポートしていません AWS Outposts。

## ブロック
<a name="ebsapi-blocks"></a>

ブロックは、スナップショット内のデータのフラグメントです。各スナップショットには、何千ものブロックを含めることができます。スナップショット内のすべてのブロックは固定サイズです。

## ブロックインデックス
<a name="ebsapi-block-indexes"></a>

ブロックインデックスは、`512` KiB ブロック単位の論理インデックスです。ブロックインデックスを識別するには、論理ボリューム内のデータの論理オフセットをブロックサイズで除算します (データの論理オフセット/`524288`)。データの論理オフセットは `512` KiB に整合させる必要があります。

## ブロックトークン
<a name="ebsapi-block-tokens"></a>

ブロックトークンは、スナップショット内のブロックの識別ハッシュであり、ブロックデータの検索に使用されます。EBS direct API から返されるブロックトークンは一時的なものです。ブロックトークンは、これらのトークンに指定された有効期限のタイムスタンプに応じて変更されるか、同じスナップショットに対して別の ListSnapshotBlocks リクエストや ListChangedBlocks リクエストを実行した場合に変更されます。

## チェックサム
<a name="ebsapi-checksum"></a>

チェックサムは、送信中や保存中に発生したエラーを検出するために、データのブロックから派生される小さいサイズのデータです。EBS direct API は、チェックサムを使用してデータの整合性を検証します。EBS スナップショットからデータを読み取るときに、送信されるデータブロックごとに Base64 でエンコードされた SHA256 チェックサムがサービスから提供されます。このチェックサムを使用してデータを検証できます。EBS スナップショットにデータを書き込むときは、送信するデータのブロックごとに Base64 でエンコードした SHA256 チェックサムを提供する必要があります。サービスは、提供されたチェックサムを使用して、受信したデータを検証します。詳細については、このガイドで後述する[EBS direct API チェックサムを使用してスナップショットデータを検証](ebsapis-using-checksums.md)を参照してください。

## 暗号化
<a name="ebsapi-encryption"></a>

暗号化は、データを読み取り不可能なコードに変換することで、データを保護します。このコードは、暗号化に使用された KMS キー にアクセスできるユーザーのみが解読できます。暗号化されたスナップショットは、EBS direct API を使用して読み書きできますが、いくつかの制限があります。詳細については、このガイドで後述する[EBS direct API の暗号化の結果](ebsapis-using-encryption.md)を参照してください。

## API アクション
<a name="ebsapi-actions"></a>

EBS direct API は、6 つのアクションで構成されています。3 つは読み取りアクションであり、他の 3 つは書き込みアクションです。読み取りアクションは以下のとおりです。
+ **ListSnapshotBlocks** – 指定されたスナップショット内のブロックから、ブロックインデックスとブロックトークンを返します。
+ **ListChangedBlocks** – 同じボリュームとスナップショット系列の 2 つの指定されたスナップショットのブロック間で異なる、ブロックインデックスとブロックトークンを返します。
+ **GetSnapshotBlock** – 指定されたスナップショット ID、ブロックインデックス、ブロックトークンに対応するブロックのデータを返します。

書き込みアクションは以下のとおりです。
+ **StartSnapshot** – 既存のスナップショットの増分スナップショット、あるいは新しいスナップショットとしてスナップショットを開始します。開始済みスナップショットは、CompleteSnapshot アクションを使用して完了するまで、保留状態となります。
+ **PutSnapshotBlock** – 開始済みスナップショットに、個別のブロックとしてデータを追加します。データのブロックを送信する際に、Base64 でエンコードした SHA256 チェックサムを指定する必要があります。送信が完了すると、このチェックサムがサービスによって検証されます。サービスが計算したチェックサムと指定したチェックサムが一致しない場合、リクエストは失敗します。
+ **CompleteSnapshot** – 保留状態にある開始済みスナップショットを完了します。これにより、スナップショットは完了状態に変更されます。

## 署名バージョン 4 の署名
<a name="ebsapis-using-sigv4"></a>

署名バージョン 4 は、HTTP によって送信された AWS リクエストに認証情報を追加するプロセスです。セキュリティのため、 へのほとんどのリクエストは、アクセスキー ID とシークレットアクセスキーで構成されるアクセスキーで署名 AWS する必要があります。これらの 2 つのキーは、一般的にセキュリティ認証情報と呼ばれます。アカウントの認証情報を取得する方法については、「[AWS セキュリティ認証情報](https://docs.aws.amazon.com/IAM/latest/UserGuide/security-creds.html)」を参照してください。

HTTP リクエストを手動で作成する場合は、リクエストへの署名方法を知っている必要があります。 AWS Command Line Interface (AWS CLI) またはいずれかの AWS SDKs を使用してリクエストを行うと AWS、これらのツールはツールの設定時に指定したアクセスキーを使用して自動的にリクエストに署名します。これらのツールを使う場合は、自分でリクエストに署名する方法を学ぶ必要はありません。

詳細については、*IAM ユーザーガイド*[の AWS API リクエストの署名](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_sigv.html)を参照してください。