このページは、2012 年にリリースされた当初のボールトと REST API を使用する、S3 Glacier サービスの既存のお客様を対象としたものです。
アーカイブストレージソリューションをお探しの場合は、Amazon S3 の S3 Glacier ストレージクラス (S3 Glacier Instant Retrieval、S3 Glacier Flexible Retrieval、S3 Glacier Deep Archive) を使用することをお勧めします。これらのストレージオプションの詳細については、「Amazon S3 ユーザーガイド」の「S3 Glacier ストレージクラス
Amazon S3 Glacier での AWS SDK の使用
AWS には Amazon S3 Glacier 用アプリケーションを開発するための SDK があります。SDK ライブラリは基本となる S3 Glacier API をラップし、プログラミングタスクを簡素化します。たとえば、S3 Glacier に送信する各リクエストに対して、リクエストを認証するために署名を含める必要があります。SDK ライブラリを使用すると、コードに AWS セキュリティ認証情報のみを指定するだけで、ライブラリによって必要な署名が計算され、S3 Glacier に送信するリクエストにその署名が含められます。AWS SDK では、基本となる REST API に対応するライブラリが提供され、簡単にリクエストを作成したりレスポンスを処理したりするために使用できるオブジェクトが提供されます。
トピック
AWS Command Line Interface (AWS CLI) は、S3 Glacier などの AWS のサービス のサービスを管理するための統合ツールです。AWS CLI のダウンロードの詳細については、「AWS Command Line Interface
Java 用と .NET 用の AWS SDK ライブラリ
Java 用と .NET 用の AWS SDK は高レベルと低レベルのラッパーライブラリを提供します。
このデベロッパーガイド全体で、AWS SDK for Java と AWS SDK for .NET を使用した S3 Glacier の操作例が示されています。
低レベル API とは
低レベルのラッパーライブラリは、S3 Glacier でサポートされる基本となる REST API (Amazon S3 Glacier の API リファレンス) に厳密にマップしています。低レベル API では、各 S3 Glacier REST オペレーションに対して、対応するメソッド、リクエスト情報を指定するリクエストオブジェクト、および S3 Glacier レスポンスを処理するレスポンスオブジェクトを提供します。低レベルのラッパーライブラリは、基本となる S3 Glacier オペレーションの最も完全な実装です。
これらの SDK ライブラリの詳細については、「Amazon S3 Glacier でのAWS SDK for Javaの使用」および「Amazon S3 Glacier でのAWS SDK for .NETの使用」を参照してください。
高レベル API とは
アプリケーション開発をさらに簡素化するために、これらのライブラリでは一部のオペレーションに対して高レベルの抽象化を提供します。例:
-
アーカイブのアップロード - 低レベル API を使用して、ファイル名およびアーカイブの保存先となるボールトの名前とともにアーカイブをアップロードする場合は、ペイロードのチェックサム (SHA-256 木構造ハッシュ) を指定する必要があります。一方、高レベル API ではチェックサムが自動的に計算されます。
-
アーカイブまたはボールトインベントリのダウンロード - 低レベル API を使用して、アーカイブをダウンロードする場合、まずジョブを開始し、ジョブが完了するまで待機してから、ジョブの出力を取得します。S3 Glacier でジョブの完了時に通知されるように、Amazon Simple Notification Service (Amazon SNS) トピックを設定する追加コードを記述する必要があります。また、ジョブの完了メッセージがトピックに投稿されたかどうかを確認するポーリングのメカニズムも必要です。高レベル API には、これらのすべてのステップに対応した、アーカイブをダウンロードするためのメソッドが用意されています。必要な操作は、アーカイブ ID と、ダウンロードしたデータを保存するフォルダーのパスを指定することのみです。
これらの SDK ライブラリの詳細については、「Amazon S3 Glacier でのAWS SDK for Javaの使用」および「Amazon S3 Glacier でのAWS SDK for .NETの使用」を参照してください。
高レベル API と低レベル API を使用する場合
一般的に、オペレーションの実行に必要なメソッドが高レベル API に用意されている場合は、シンプルな高レベル API を使用してください。ただし、高レベル API でその機能が提供されていない場合は、低レベル API を使用できます。また、低レベル API では、エラー発生時の再試行ロジックなど、オペレーションを細かく制御できます。たとえば、アーカイブをアップロードするときに、高レベル API ではファイルのサイズに応じて、単一オペレーションでアーカイブをアップロードするか、マルチパートアップロード API を使用するかを決定します。APIには、アップロードが失敗した場合の再試行ロジックも組み込まれています。ただし、アプリケーションでこれらの決定を細かく制御する必要がある場合は、低レベル API を使用します。