Amazon Simple Storage Service
開発者ガイド (API バージョン 2006-03-01)

Amazon S3 ストレージクラス

Amazon S3 内にある各オブジェクトには、ストレージクラスが関連付けられています。たとえば、S3 バケット内のオブジェクトをリストすると、コンソールにリスト内のすべてのオブジェクトのストレージクラスが表示されます。


        Amazon S3 コンソール内のストレージクラスの例を示します。

Amazon S3 では保存するオブジェクト用の幅広いストレージクラスが提供されています。ユースケースシナリオおよびパフォーマンスアクセス要件を考慮してクラスを選択します。このストレージクラスはすべて高度な耐久性を提供します.

アクセス頻度の高いオブジェクトのストレージクラス

パフォーマンスが大きく影響するユースケース (ミリ秒単位のアクセス時間を必要とする場合) とアクセス頻度の高いデータには、Amazon S3 が次のストレージクラスを提供します。

  • STANDARD — デフォルトのストレージクラスです。オブジェクトのアップロード時にストレージクラスを指定しない場合、Amazon S3 は STANDARD ストレージクラスを割り当てます。

     

  • REDUCED_REDUNDANCY — 低冗長化ストレージ (RRS) のストレージクラスは、それほど重要ではない再生可能なデータを、STANDARD ストレージクラスより低いレベルの冗長性で保存することができます。

    重要

    このストレージクラスの使用は推奨しません。コスト効果が良いのは STANDARD ストレージクラスです。

    耐久性において、RRS オブジェクトの平均年間予測喪失率は 0.01% です。RRS オブジェクトが紛失した場合、Amazon S3 はそのオブジェクトへのリクエストにエラー 405 を返します。

アクセス頻度が高いオブジェクトと低いオブジェクトを自動的に最適化するストレージクラス

INTELLIGENT_TIERING ストレージクラスは、パフォーマンスの低下や、オペレーション上のオーバーヘッドを発生させることなく、最もコスト効率の高いストレージアクセス階層に自動的にデータを移動することで、ストレージコストを最小限に抑えるように設計されています。INTELLIGENT_TIERING は、アクセスパターンが変更されたときに、高頻度のアクセス階層と低コストで低頻度のアクセス階層の 2 つのアクセス階層の間で、オブジェクトレベルで細かくデータを移動することで、自動的にコストを削減します。INTELLIGENT_TIERING ストレージクラスは、アクセスパターンが未知または予測不能な長期間使用するデータでのストレージコストを自動的に最小限に抑えたい場合に理想的です。

NTELLIGENT_TIERING ストレージでは、高頻度アクセスに最適化された階層と、低頻度アクセスのデータ用に最適化された低コスト階層の 2 つのアクセス階層にオブジェクトを保存します。オブジェクトごとのモニタリングおよび自動化にかかる月額料金を抑えるために、Amazon S3 では INTELLIGENT_TIERING ストレージクラスのオブジェクトのアクセスパターンをモニタリングし、30 日間連続してアクセスがなかったオブジェクトは低頻度のアクセス階層に移動されます。INTELLIGENT_TIERING ストレージクラスを使用している場合、取り出し料金はかかりません。低頻度のアクセス階層のオブジェクトにアクセスすると、オブジェクトは自動的に高頻度のアクセス階層に再度移動されます。INTELLIGENT_TIERING ストレージクラスのアクセス階層間でオブジェクトを移動させるときに追加の階層化料金は発生しません。

注記

INTELLIGENT_TIERING ストレージクラスは、少なくとも 30 日間保存する予定でサイズが 128 KB 以上あるオブジェクトに最適です。オブジェクトのサイズが 128 KB 未満の場合は、自動階層化に適していません。これより小さいサイズのオブジェクトを保存することもできますが、INTELLIGENT_TIERING ストレージクラスで常に高頻度アクセス階層の料金が課金されます。最小ストレージ期間の 30 日が過ぎる前にオブジェクトを削除した場合は、30 日分の料金が発生します。料金の詳細については、「Amazon S3 の料金」を参照してください。

アクセス頻度の低いオブジェクトのストレージクラス

STANDARD_IAONEZONE_IA のストレージクラスは、存続期間が長く、アクセスが頻繁ではないデータ用に設計されています。(IA はアクセスが頻繁ではないことを意味します。) STANDARD_IA と ONEZONE_IA のオブジェクトはミリ秒単位のアクセスで使用できます (STANDARD ストレージクラスと似ています)。Amazon S3 ではこうしたオブジェクトの取り出し料金が発生するため、アクセスが頻繁ではないデータに最適です。料金の詳細については、「Amazon S3 の料金」を参照してください。

例として、STANDARD_IA と ONEZONE_IA のストレージクラスを選択したとします。

  • バックアップの保存

     

  • アクセスが頻繁ではないが、ミリ秒単位のアクセスを必要とする旧いデータに適しています。例として、データのアップロード時に STANDARD ストレージクラスを選択し、Amazon S3 がオブジェクトを STANDARD_IA または ONEZONE_IA クラスに移動するようにライフサイクル設定を使用したとします。ライフサイクル管理の詳細については、「オブジェクトのライフサイクル管理」を参照してください。

注記

STANDARD_IA と ONEZONE_IA ストレージクラスは、少なくても 30 日間保存する予定でサイズが 128 KB 以上あるオブジェクトに最適です。オブジェクトが 128 KB 以下の場合、Amazon S3 は 128 KB に相当する料金を請求します。最小ストレージ期間の 30 日が過ぎる前にオブジェクトを削除した場合は、30 日分の料金が発生します。料金の詳細については、「Amazon S3 の料金」を参照してください。

ストレージクラスの違いについては下記をご覧ください。

  • STANDARD_IA —Amazon S3 は、地理的に分離された複数のアベイラビリティーゾーン間でオブジェクトデータを重複して保存します (STANDARD ストレージクラスに似ています)。STANDARD_IA オブジェクトはアベイラビリティーゾーンに障害が発生した場合の回復性に優れています。このストレージクラスは ONEZONE_IA クラスよりも優れた高可用性と弾力性を提供します。

     

  • ONEZONE_IA –—Amazon S3 はオブジェクトデータを 1 つのアベイラビリティーゾーンでのみ保存するので、STANDARD_IA よりも安価になります。ただし、地震や洪水といった災害によるアベイラビリティーゾーンの物理的な損失時においてデータの回復性はありません。ONEZONE_IA ストレージクラスは STANDARD_IA に並ぶ耐久性を備えていますが、その可用性と回復性は劣ります。ストレージクラスの耐久性と可用性の比較情報については、このセクションにある耐久性と可用性をまとめた表をご覧ください。料金については、「Amazon S3 料金表」を参照してください。

次の構成を推奨します。

  • STANDARD_IA—プライマリまたは再作成できないデータのコピーでのみ使用してください。

  • ONEZONE_IA—アベイラビリティーゾーンに障害が発生した場合にデータを再作成できる場合や、クロスリージョンレプリケーション (CRR) 設定時のオブジェクトレプリカで使用してください。

オブジェクトのアーカイブに適したストレージクラス

GLACIER および DEEP_ARCHIVE ストレージクラスは、低コストのデータアーカイブに適しています。これらのストレージクラスは STANDARD ストレージクラスと同様の耐久性と弾力性を提供します。ストレージクラスの耐久性と可用性の比較情報については、このセクションにある耐久性と可用性をまとめた表をご覧ください。

ストレージクラスの違いについては下記をご覧ください。

  • GLACIER — データの一部を数分で取得する必要がある可能性があるアーカイブに使用します。GLACIER ストレージクラスに格納されたデータの最小ストレージ期間は 90 日で、迅速取り出しを使用すると 1〜5 分でアクセスできます。最低期間の 90 日以前にオブジェクトを削除、上書き、または別のストレージクラスに移行した場合は、90 日分の料金が請求されます。料金の詳細については、「Amazon S3 の料金」を参照してください。

     

  • DEEP_ARCHIVE — ほとんどアクセスする必要がないデータのアーカイブに使用します。DEEP_ARCHIVE ストレージクラスに格納されたデータの最小ストレージ期間は 180 日で、標準取り出しを使用すると 12 時間かかります。最低期間の 180 日以前にオブジェクトを削除、上書き、または別のストレージクラスに移行した場合は、180 日分の料金が請求されます。料金の詳細については、「Amazon S3 の料金」を参照してください。

    DEEP_ARCHIVE は、AWS で最も低コストのストレージオプションです。DEEP_ARCHIVE のストレージコストは、GLACIER ストレージクラスを使用するよりも安くなります。DEEP_ARCHIVE の取得コストを削減するには、一括取り出しを使用します。この場合、データは 48 時間以内に返ります。

アーカイブ済みオブジェクトの取得

オブジェクトのストレージクラスを GLACIER または DEEP_ARCHIVE に設定するには、セクション「オブジェクトのストレージクラスを設定」で説明しているように、他のストレージクラスに対して行う場合と同様の方法で行います。ただし、GLACIER および DEEP_ARCHIVE オブジェクトにはリアルタイムでアクセスできません。オブジェクトにアクセスできるようになる前に、まず GLACIER および DEEP_ARCHIVE オブジェクトを復元する必要があります (STANDARD、RRS、STANDARD_IA、ONEZONE_IA、および INTELLIGENT_TIERING のオブジェクトにはいつでもアクセスできます)。アーカイブ済みオブジェクトの取得の詳細については、「アーカイブされたオブジェクトの復元」を参照してください。

重要

GLACIER または DEEP_ARCHIVE ストレージクラスを選択した場合、オブジェクトは、Amazon S3 に維持されます。別々の Amazon S3 Glacier サービスを使用して直接アクセスすることはできません。

Amazon S3 Glacier サービスの詳細については、「Amazon S3 Glacier 開発者ガイド」を参照してください。

Amazon S3 ストレージクラスの比較

次の表ではストレージクラスの比較を示しています。

ストレージクラス 対象 耐久性 (のために設計) 可用性 (のために設計) アベイラビリティーゾーン 最小ストレージ期間 請求可能な最小オブジェクトサイズ その他の考慮事項

スタンダード

頻繁にアクセスされるデータ

99.999999999%

99.99%

>= 3

なし

なし

なし

STANDARD_IA

存続期間が長く、あまり頻繁にアクセスされないデータ

99.999999999%

99.9%

>= 3

30 日間

128 KB

GB 単位の取り出し料金が適用されます。

INTELLIGENT_TIERING

アクセスパターンが変化する、または不明な、存続期間が長いデータ

99.999999999%

99.9%

>= 3

30 日間

なし

オブジェクトごとのモニタリングとオートメーションの料金が適用されます。取り出し料はありません。

ONEZONE_IA

存続期間が長く頻繁にアクセスされない、重要性の低いデータ

99.999999999%

99.5%

1

30 日間

128 KB

GB 単位の取り出し料金が適用されます。アベイラビリティーゾーンの損失においては回復性がありません。

GLACIER

取得時間が数分~数時間までの長期のデータアーカイブ 99.999999999%

99.99% (オブジェクトを復元後)

>= 3

90 日間

なし

GB 単位の取り出し料金が適用されます。これらにアクセスする前に、まずアーカイブされたオブジェクトを復元する必要があります。詳細については、「アーカイブされたオブジェクトの復元」を参照してください。

DEEP_ARCHIVE

ほとんどアクセスされないデータを標準取り出し (12 時間) でアーカイブする 99.999999999%

99.99% (オブジェクトを復元後)

>= 3

180 日間

なし

GB 単位の取り出し料金が適用されます。これらにアクセスする前に、まずアーカイブされたオブジェクトを復元する必要があります。詳細については、「アーカイブされたオブジェクトの復元」を参照してください。

RRS (非推奨)

頻繁にアクセスされる重要度が低いデータ

99.99%

99.99%

>= 3

なし

なし

なし

ONEZONE_IA を除くすべてのストレージクラスは、1 つのアベイラビリティーゾーンと他のアベイラビリティーゾーンの一部で同時にデータが完全に失われた際に、データを回復できるように設計されています。

アプリケーションシナリオの要求事項の他に、料金についても考慮してください。ストレージクラスの料金については「Amazon S3 の料金」をご覧ください。

オブジェクトのストレージクラスを設定

Amazon S3 API は、次のようにオブジェクトのストレージクラスの設定 (または更新) をサポートします。

  • 新しいオブジェクトの作成時にストレージクラスを指定できます。たとえば、PUT ObjectPOST ObjectInitiate Multipart Upload API を使用してオブジェクトを作成する場合に、x-amz-storage-class リクエストヘッダーを追加してストレージクラスを指定することができます。このヘッダーを追加しない場合は Amazon S3 がデフォルトのストレージクラスである STANDARD を使用します。

     

  • すでに Amazon S3 に保存されているオブジェクトのストレージクラスを別のストレージクラスに変更するには、PUT Object - Copy API を使用してオブジェクトのコピーを作成します。ただし、PUT Object - Copy を使用して、GLACIER または DEEP_ARCHIVE ストレージクラスに格納されているオブジェクトをコピーすることはできません。

    同じバケットでオブジェクトをコピーし、同じキー名を使用して次のようにリクエストヘッダーを指定します。

    • COPY に x-amz-metadata-directive ヘッダーを設定します。

    • x-amz-storage-class を使用したいストレージクラスで設定します。

    バージョニングを有効にしたバケットでは、オブジェクトの特定バージョンのストレージクラスを変更することはできません。このようなオブジェクトをコピーすると、Amazon S3 によってオブジェクトに新しいバージョン ID が設定されます。

     

  • オブジェクトのストレージクラスを変更するように Amazon S3 に指示するには、ライフサイクル設定をバケットに追加します。詳細については、「オブジェクトのライフサイクル管理」を参照してください。

     

  • クロスリージョンのレプリケーション (CRR) 設定では、レプリケートされたオブジェクトのストレージクラスを別のストレージクラスに設定できます。ただし、GLACIER または DEEP_ARCHIVE ストレージクラスに格納されているオブジェクトをレプリケートすることはできません。詳細については、「レプリケーション設定の概要」を参照してください。

オブジェクトのストレージクラスを作成し更新するには、Amazon S3 コンソール、AWS SDK または AWS Command Line Interface (AWS CLI) を使用します。いずれにおいても Amazon S3 へのリクエスト送信には Amazon S3 API が使用されます。