S3 Glacier アーカイブの取得 - Amazon S3 Glacier

S3 Glacier アーカイブの取得

Amazon S3 Glacier (S3 Glacier) からアーカイブから取り出すのは非同期オペレーションであり、最初にジョブを開始し、次にジョブが完了した後で出力をダウンロードします。アーカイブを取り出すジョブを開始するには、ジョブの開始 (ジョブの POST) REST API、同等の AWS CLI、AWS SDK のいずれかを使用します。

S3 Glacier からアーカイブを取り出すプロセスは、2 つのステップに分かれます。

アーカイブを取り出すには

  1. アーカイブの取得ジョブを開始します。

    1. 取得するアーカイブの ID を入手します。アーカイブ ID は、ボールトのインベントリから取得できます。詳細については、「Amazon S3 Glacier でのボールト​インベントリのダウンロード」を参照してください。

    2. ジョブの開始 (ジョブの POST) オペレーションを使用して、S3 Glacier に対してアーカイブ全体またはアーカイブの一部をダウンロードするための準備をリクエストするジョブを開始します。

    ジョブを開始すると、S3 Glacier ではレスポンスでジョブ ID を返し、ジョブを非同期的に実行します(ステップ 2 で説明したように、ジョブが完了するまではジョブの出力をダウンロードできません)。

    重要

    標準取り出しの場合のみ、データ取り出しポリシーにより、PolicyEnforcedException 例外が発生して、取り出しジョブの開始リクエストが失敗することがあります。データ取り出しポリシーの詳細については、「Amazon S3 Glacier のデータ取り出しポリシー」を参照してください。PolicyEnforcedException 例外の詳細については、「エラーレスポンス」を参照してください。

    必要に応じて、S3 Glacier に保存されたデータの大きなセグメントを復元できます。たとえば、セカンダリコピーのデータを復元できます。ただし、大量のデータを復元する必要がある場合、S3 Glacier は 1 日あたり格納されるペビバイト (PiB) 単位の 35 のランダム復元リクエスト向けに設計されていることに注意してください。

    これらのストレージクラスからデータを復元する方法の詳細については、Amazon Simple Storage Service 開発者ガイドの「オブジェクトのアーカイブに適した Amazon S3 ストレージクラス」を参照してください。

  2. ジョブが完了したら、ジョブの出力の取得 (GET output) オペレーションを使用してバイトをダウンロードします。

    全バイトをダウンロードすることも、バイト範囲を指定してジョブの出力の一部だけをダウンロードすることもできます。出力が大きい場合には、出力をチャンクに分けてダウンロードすると、ネットワーク障害など、ダウンロードに関する障害が発生したときに便利です。1 回のリクエストでジョブの出力を取得する場合に、ネットワーク障害が発生すると、最初から出力のダウンロードをやり直さなければならなくなります。これに対して、出力をチャンクに分けてダウンロードしていれば、障害が発生した場合でも、全体ではなく、出力の一部のダウンロードをやり直せば済みます。

S3 Glacier では、出力を取得する前にジョブを完了している必要があります。ジョブは、完了から少なくとも 24 時間は有効です。つまり、ジョブが完了してから 24 時間は、出力をダウンロードできます。ジョブが完了しているかどうかを判断するには、以下のオプションの 1 つを使用してジョブのステータスを確認します。

  • ジョブの完了の通知を待つ — ジョブの完了後に S3 Glacier が通知を投稿する Amazon Simple Notification Service (Amazon SNS) トピックを指定できます。S3 Glacier は、ジョブの完了後にのみ、通知を送信します。

    ジョブを開始する際に、Amazon SNS トピックを指定できます。ジョブのリクエストで指定された Amazon SNS トピックのほか、ボールトにアーカイブの取得イベントに関する通知の設定がある場合には、S3 Glacier からその SNS トピックにも通知が発行されます。詳細については、「Amazon S3 Glacier でのボールト通知の設定」を参照してください。

  • 明示的にジョブ情報をリクエストする — S3 Glacier を使用して、ジョブのオペレーション (ジョブの説明 (GET JobID)) について説明し、ジョブの情報を定期的にポーリングすることもできます。ただし、Amazon SNS 通知を使用することをお勧めします。

注記

SNS 通知を使用して取得する情報は、ジョブの説明を呼び出して取得する情報と同じです。

アーカイブの取り出しオプション

アーカイブの取り出しジョブを開始するときは、アクセス時間とコスト要件に基づいて、以下のいずれかのオプションを指定できます。取り出し料金については、「S3 Glacier の料金表」を参照してください。

  • 迅速 — 迅速取り出しでは、アーカイブのサブセットが迅速に必要になった場合にデータにすばやくアクセスできます。最大規模のアーカイブ (250 MB 以上) を除くすべてのアーカイブについては、迅速取り出しでアクセスしたデータは通常 1〜5 分以内で使用可能になります。プロビジョンドキャパシティーは、迅速取り出しの取得容量を必要なときに利用できることを保証します。詳細については、「プロビジョンドキャパシティー」を参照してください。

  • 標準 — 標準取り出しでは、数時間以内にすべてのアーカイブにアクセスできます。通常、標準取り出しは 3〜5 時間で完了します。標準取り出しは、取り出しオプションを指定しないで取り出しリクエストを行った場合にデフォルトで適用されます。

  • 大容量 — 大容量取り出しは、S3 Glacier の最も安価な取り出しオプションであり、これを使用して大量のデータ (ペタバイトのデータを含む) を 1 日以内に低コストで取得できます。通常、大容量取り出しは 5〜12 時間で完了します。

迅速、標準、または大容量の取り出しを行うには、ジョブの開始 (ジョブの POST) REST API リクエストの Tier パラメータに必要なオプションを設定するか、同等の AWS CLI または AWS SDK を設定します。プロビジョニングされた容量を購入した場合、すべての迅速取り出しはプロビジョニングされた容量を通じて自動的に提供されます。

プロビジョンドキャパシティー

プロビジョンドキャパシティーは、迅速取り出しの取得容量を必要なときに利用できることを保証します。容量の各単位について 5 分ごとに 3 回以上の迅速取り出しを提供し、最大 150 MB/秒の取り出しスループットを提供します。

ワークロードからデータのサブセットにアクセスする際に非常に高い信頼性と予測可能性が求められる場合は、プロビジョニングされた取得容量を購入する必要があります。プロビジョンドキャパシティーがなくても、需要が異常に高い例外的な場合を除いては、Expedited 取り出しが受け入れられます。ただし、環境を問わず、どのような場合でも迅速取り出しにアクセスするには、プロビジョニングされた取得容量を購入してください。

プロビジョニングされた容量の購入

プロビジョニングされた容量単位を購入するには、S3 Glacier コンソール、プロビジョニングされた容量の購入 (POST provisioned-capacity) REST API、AWS SDK、AWS CLI のいずれかを使用できます。プロビジョニングされた容量の料金情報については、「S3 Glacier の料金表」を参照してください。

プロビジョニングされた容量単位は、購入日時 (開始日) から 1 か月間有効です。単位に有効期限に失効します。これは開始日から正確に 1 か月後であり、1 秒単位で四捨五入されます。

開始日が 31 日の場合、有効期限は翌月の最終日となります。たとえば、開始日が 8 月 31 日の場合、有効期限は 9 月 30 日です。開始日が 1 月 31 日の場合、有効期限は 2 月 28 日です。

S3 Glacier コンソールを使用して、プロビジョニングされた容量を購入するには、[Settings (設定)] を選択してから、[Provisioned capacity (プロビジョニングされた容量)] を選択します。


							プロビジョニングされた容量のイメージ。

プロビジョニングされた容量を持っていないが、購入する予定の場合、1 キャパシティーユニットの追加 を選択して 購入 を選択します。


							プロビジョニングされた容量のイメージ。

購入が成功したら、もう一度 購入 を選択して、追加のキャパシティーユニットを購入できます。完了したら、閉じる を選択します。

アーカイブの取得範囲

S3 Glacier からアーカイブを取得するときには、取得するアーカイブの範囲 (部分) をオプションで指定することもできます。デフォルトでは、アーカイブの全体が取得されます。バイト範囲を指定すると、以下のことを行う場合に便利です。

  • データのダウンロードの管理 – S3 Glacier では、取り出しリクエストが完了してから 24 時間、取得したデータをダウンロードできます。このため、アーカイブの一部だけを取得することによって、特定のダウンロード期間内のダウンロードのスケジュールを管理できます。

  • サイズの大きなアーカイブの特定の一部のみ取得 – たとえば、以前に多くのファイルをまとめ、1 つのアーカイブとしてアップロードしたものの、その後、ファイルの一部のみを取得する必要が生じたとします。このような場合には、取得リクエストを 1 回使用して、必要なファイルが含まれるアーカイブから一定の範囲を指定できます。このほか、取得リクエストを複数回、1 回ごとに 1 つまたは複数のファイルから成る範囲を指定して送信する方法もあります。

範囲取得を使用して取得ジョブを開始した場合には、メガバイト単位に調整した範囲を指定する必要があります。つまり、バイト範囲の始点はゼロ (アーカイブの先頭) またはその後 1 MB 間隔 (1 MB、2 MB、3 MB など) の点を指定することができます。

レンジの終わりの値には、アーカイブの末尾、またはレンジの開始値より大きな任意の 1 MB 間隔の数値のいずれかを指定できます。このほか、 (取得ジョブが完了した後で) データをダウンロードする際にチェックサムの値を取得する場合には、ジョブの開始時にリクエストする範囲が木構造ハッシュ可能になっている必要があります。チェックサムは、データが送信中に破損しなかったことを確認する方法の 1 つです。メガバイト単位への調整と木構造ハッシュを可能にするための調整については、「データをダウンロードするときのチェックサムの受信」を参照してください。