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

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

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

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

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

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

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

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

    重要

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

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

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

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

オブジェクトのモニタリングとオートメーションに対して発生する少額の月額料金で、S3 Intelligent-Tiering はアクセスパターンをモニタリングし、あまりアクセスされていないオブジェクトをより低コストのアクセス階層へ自動的に移動させることができます。S3 Intelligent-Tiering は、2 つの低レイテンシーと高スループットのアクセス階層で、自動ストレージコスト削減を実現します。非同期でアクセスできるデータの場合は、S3 Intelligent-Tiering ストレージクラスで自動アーカイブ機能をアクティブ化することもできます。S3 Intelligent-Tiering は、99.9% の可用性と99.999999999% の耐久性を実現するように設計されています。

S3 Intelligent-Tiering にアップロードまたは転送されたオブジェクトは、自動的に高頻度アクセス階層に保存されます。S3 Intelligent-Tiering は、アクセスパターンをモニタリングし、30 日間連続してアクセスされなかったオブジェクトは低頻度アクセス階層に移動します。新しく作成されたデータのデフォルトのストレージクラスとして S3 Intelligent-Tiering を設定するか、PutBucketIntelligentTieringConfiguration、API、CLI、または Amazon S3 コンソールを使用してアーカイブアクセス階層の一方または両方をアクティブ化することを選択できます。アーカイブアクセス階層の一方または両方をアクティブ化すると、S3 Intelligent-Tiering は、90 日間連続してアクセスされなかったオブジェクトをアーカイブアクセス階層に自動的に移動し、その後 180 日間連続してアクセスされなかったオブジェクトをディープアーカイブアクセス階層に自動的に移動します。S3 Intelligent-Tiering の使用方法の詳細については、「 S3 Intelligent-Tiering の使用」を参照してください。

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

注記

オブジェクトのサイズが 128 KB 未満の場合は、モニタリングされず、自動階層化に適していません。小さいオブジェクトは必ず高頻度アクセス階層に保存されます。S3 Intelligent-Tiering の詳細については、「S3 Intelligent-Tiering アクセス階層」を参照してください。

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

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

例えば、S3 Standard-IA と S3 One Zone-IA のストレージクラスを選択し、次のことを行います。

  • バックアップの保存

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

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

注記

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

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

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

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

次の構成を推奨します。

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

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

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

S3 Glacier および S3 Glacier Deep Archive ストレージクラスは、低コストのデータアーカイブに適しています。これらのストレージクラスは S3 Standard ストレージクラスと同様の耐久性と回復性を提供します。ストレージクラスの耐久性および可用性の比較情報については、「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 Standard、RRS、S3 Standard-IA、S3 One Zone-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 Management Console、AWS CLI、AWS SDK、または REST API を使用して S3 on Outposts を使用できます。

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 Standard

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

99.999999999%

99.99%

>= 3

なし

なし

なし

S3 Standard–IA

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

99.999999999%

99.9%

>= 3

30 日間

128 KB

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

S3 Intelligent-Tiering

認識されていない、変更されている、または予測不可能なアクセスパターンを持つデータ

99.999999999%

99.9%

>= 3

なし

なし

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

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 Command Line Interface (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 S3 によってオブジェクトに新しいバージョン ID が設定されます。

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

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

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

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

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