Amazon S3 ストレージクラスを使用する - Amazon Simple Storage Service

新しい Amazon S3 ユーザーガイドにようこそ! Amazon S3 ユーザーガイドは、使用中止された 3 つのガイド (Amazon S3 開発者ガイドAmazon S3 コンソールユーザーガイドAmazon S3 入門ガイド) の情報と手順をまとめたものです。

Amazon S3 ストレージクラスを使用する

Amazon S3 内にある各オブジェクトには、ストレージクラスが関連付けられています。たとえば、S3 バケット内のオブジェクトをリストすると、コンソールにリスト内のすべてのオブジェクトのストレージクラスが表示されます。Amazon S3 では保存するオブジェクト用の幅広いストレージクラスが提供されています。ユースケースシナリオおよびパフォーマンスアクセス要件を考慮してクラスを選択します。このストレージクラスはすべて高度な耐久性を提供します.

以下のセクションでは、さまざまなストレージクラスの詳細と、オブジェクトにストレージクラスを設定する方法について説明します。

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

パフォーマンス重視のユースケース (ミリ秒単位のアクセス時間を要するユースケース) とアクセス頻度の高いデータには、次のストレージクラスを使用できます。

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

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

    重要

    このストレージクラスの使用は推奨しません。S3 標準ストレージクラスの方がコスト効果に優れています。

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

アクセスパターンが変化する、またはアクセスパターンが不明なデータを、自動的に最適化するためのストレージクラス

S3 Intelligent-Tiering は、オペレーション上のオーバーヘッドを発生させることなく、データを最も費用効果の高いアクセス階層に自動的に移動することで、ストレージコストを最小限に抑えるように設計された Amazon S3 ストレージクラスです。これは、アクセスパターンが変更されたときに、アクセス階層間で、細かなオブジェクトレベルでデータを移動することにより、自動的にコスト削減を実現する唯一のクラウドストレージです。S3 Intelligent-Tiering は、アクセスパターンが不明または変化するデータのストレージコストを最小限に抑える場合に最適なストレージクラスです。S3 Intelligent-Tiering には取り出し料金は発生しません。

オブジェクトのモニタリングとオートメーションに対して発生する少額の月額料金で、S3 Intelligent-Tiering はアクセスパターンをモニタリングし、オブジェクトをある階層から別の階層へ自動的に移動させることができます。オブジェクトを 4 つのアクセス層に格納することで機能します。すなわち、高頻度のアクセスと低頻度のアクセス用に最適化された 2 つの低レイテンシーのアクセス層と、まれなアクセス用に最適化された非同期アクセス用に設計された 2 つのオプトインのアーカイブアクセス層です。

S3 Intelligent-Tiering にアップロードまたは転送されたオブジェクトは、自動的に高頻度アクセス階層に保存されます。S3 Intelligent-Tiering は、アクセスパターンをモニタリングし、30 日間連続してアクセスされなかったオブジェクトは低頻度アクセス階層に移動します。また、PutBucketIntelligentTieringConfiguration、CLI、または Amazon S3 コンソールで API を使用して、アーカイブアクセス階層の 1 つまたは両方をアクティブ化することもできます。アーカイブアクセス階層の一方または両方をアクティブ化すると、S3 Intelligent-Tiering は、90 日間連続してアクセスされなかったオブジェクトをアーカイブアクセス階層に自動的に移動し、その後 180 日間連続してアクセスされなかったオブジェクトをディープアーカイブアクセス階層に自動的に移動します。

アーカイブされたオブジェクトに後でアクセスするには、最初にそれを復元する必要があります。詳細については、「アーカイブされたオブジェクトの操作」を参照してください。

注記

S3 Intelligent-Tiering ストレージクラスは、少なくとも 30 日間保存する予定でサイズが 128 KB 以上あるオブジェクトに最適です。オブジェクトのサイズが 128 KB 未満の場合は、自動階層化に適していません。これより小さいサイズのオブジェクトを保存することもできますが、S3 Intelligent-Tiering ストレージクラスで頻度なアクセス階層の料金が常に課金されます。

最小ストレージ期間の 30 日が過ぎる前にオブジェクトを削除した場合は、30 日分の料金が発生します。料金については、「Amazon S3 の料金」を参照してください。

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

S3 標準 – IAS3 1 ゾーン – IA のストレージクラスは、存続期間が長く、アクセス頻度の低いデータ用に設計されています(IA はinfrequent access (低頻度アクセス) の略です)。 S3 標準 – IA オブジェクトおよび S3 1 ゾーン – IA オブジェクトは、ミリ秒のアクセスに使用できます (S3 標準ストレージクラスに似ています)。この 2 つのクラスではオブジェクトに取り出し料金が発生するため、アクセスが頻繁ではないデータに最適です。料金については、「Amazon S3 の料金」を参照してください。

例えば、S3 標準 – IA と S3 1 ゾーン – IA のストレージクラスを選択し、次のことを行います。

  • バックアップの保存

  • アクセスが頻繁ではないが、ミリ秒単位のアクセスを必要とする旧いデータに適しています。例えば、データのアップロード時に S3 標準ストレージクラスを選択し、Amazon S3 がオブジェクトを S3 標準 – IA または S3 1 ゾーン – IA クラスに移動するようにライフサイクル設定を使用することができます。

    ライフサイクル管理の詳細については、「ストレージのライフサイクルの管理」を参照してください。

注記

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

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

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

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

次の構成を推奨します。

  • S3 標準 – IA — プライマリまたは再作成できないデータのコピーでのみ使用します。

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

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

S3 Glacier および S3 Glacier Deep Archive ストレージクラスは、低コストのデータアーカイブに適しています。これらのストレージクラスは S3 標準ストレージクラスと同様の耐久性と回復性を提供します。ストレージクラスの耐久性および可用性の比較情報については、「Amazon S3 ストレージクラスの比較」を参照してください。

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

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

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

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

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

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

重要

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

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

Amazon S3 on Outposts のストレージクラス

Amazon S3 on Outposts を使用すると、AWS Outposts で S3 バケットを作成し、ローカルデータアクセス、ローカルデータ処理、データレジデンシーを必要とするアプリケーション用に、オンプレミスのオブジェクトを保存および取得できます。S3 on Outposts は、新しいストレージクラスである S3 Outposts (OUTPOSTS) を提供します。AWS Outposts では、Amazon S3 と同じ API および機能 (アクセスポリシー、暗号化、タグ付けを含む) を使用できます。

S3 Outposts のストレージクラスは、AWS Outposts のバケットに格納されたオブジェクトに対してのみ使用できます。AWS リージョンの S3 バケットでこのストレージクラスを使用しようとすると、InvalidStorageClass エラーが返ってきます。さらに、S3 on Outposts で他の S3 ストレージクラスを使用しようとすると、同じエラー応答が返ってきます。AWS マネジメントコンソール、AWS CLI、AWS SDK、または REST API を使用して、Outposts で S3 を使用できます。

S3 Outposts (OUTPOSTS) ストレージクラスに格納されているオブジェクトは、デフォルトでは Amazon S3 マネージド暗号化キー (SSE-S3) によるサーバー側の暗号化を使用して常に暗号化されます。詳細については、「Amazon S3 が管理する暗号化キーによるサーバー側の暗号化 (SSE-S3) を使用したデータの保護」を参照してください。

お客様が用意した暗号化キー (SSE-C) を使用したサーバー側の暗号化を使用して、S3 Outposts ストレージクラスに格納されたオブジェクトを明示的に暗号化することもできます。詳細については、「お客様が用意した暗号化キーによるサーバー側の暗号化 (SSE-C) を使用したデータの保護」を参照してください。

S3 on Outposts の詳細については、「Amazon S3 on Outposts の使用」を参照してください。

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

ストレージクラスの可用性、耐久性、最小ストレージ期間、その他の考慮すべき事項を含め、次の表で比較しています。

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

S3 スタンダード

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

99.999999999%

99.99%

>= 3

なし

なし

なし

S3 標準 – IA

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

99.999999999%

99.9%

>= 3

30 日間

128 KB

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

S3 Intelligent-Tiering

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

99.999999999%

99.9%

>= 3

30 日間

なし

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

S3 1 ゾーン - IA

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

99.999999999%

99.5%

1

30 日間

128 KB

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

S3 Glacier

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

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

>= 3

90 日間

40 KB

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

S3 Glacier Deep Archive

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

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

>= 3

180 日間

40 KB

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

RRS (非推奨)

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

99.99%

99.99%

>= 3

なし

なし

なし

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

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

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

オブジェクトストレージクラスを設定および更新するには、Amazon S3 コンソール、AWS SDK、または AWS コマンドラインインターフェイス (AWS CLI) を使用できます。いずれも、Amazon S3 API を使用して Amazon S3 にリクエストを送信します。

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

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

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

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

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

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

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

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

  • レプリケーションを設定する場合、レプリケートされたオブジェクトのストレージクラスを別のストレージクラスに設定できます。ただし、S3 Glacier または S3 Glacier Deep Archive ストレージクラスに保存されているオブジェクトをレプリケートすることはできません。詳細については、「レプリケーション設定」を参照してください。

アクセスポリシーのアクセス許可を特定のストレージクラスに制限する

Amazon S3 オペレーションのアクセスポリシーアクセス許可を付与する場合、s3:x-amz-storage-class 条件キーを使用して、アップロードされたオブジェクトを保存するときに使用するストレージクラスを制限できます。例えば、s3:PUTObject アクセス許可を付与すると、オブジェクトのアップロードを特定のストレージクラスに制限できます。ポリシーの例については、「例 5: オブジェクトのアップロードを特定のストレージクラスのオブジェクトに制限する」を参照してください。

ポリシーでの条件の使用方法および Amazon S3 条件キーの完全なリストについては、以下を参照してください。