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

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

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

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

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

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

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

  • S3 Express One Zone – Amazon S3 Express One Zone は、最もレイテンシーの影響を受けやすいアプリケーションに 1 桁のミリ秒単位で一貫したデータアクセスを提供することを目的として構築された、高パフォーマンスのシングルアベイラビリティーゾーンの Amazon S3 ストレージ クラスです。S3 Express One Zone は、現在入手可能なレイテンシーが最も低いクラウドオブジェクトストレージクラスで、データアクセス速度は最大 10 倍速く、リクエストコストは S3 スタンダードよりも 50% 低減されます。S3 Express One Zone では、データは単一のアベイラビリティーゾーン内で冗長的に複数のデバイスに保存されます。詳細については、「S3 Express One Zone とは」を参照してください。

  • 低冗長化 – 低冗長化ストレージ (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 はアクセスパターンをモニタリングし、あまりアクセスされていないオブジェクトをより低コストのアクセス階層へ自動的に移動させることができます。S3 Intelligent-Tiering は、3 つの低レイテンシーかつ高スループットのアクセス階層で、自動的にストレージコストを削減できます。非同期でアクセスできるデータの場合は、S3 Intelligent-Tiering ストレージクラスで自動アーカイブ機能をアクティブ化することもできます。S3 Intelligent-Tiering は、99.9% の可用性と99.999999999% の耐久性を実現するように設計されています。

S3 Intelligent-Tiering は、3 つのアクセス階層にオブジェクトを自動的に保存します。

  • 高頻度アクセス – S3 Intelligent-Tiering にアップロードまたは転送されたオブジェクトは、高頻度アクセス階層に自動的に保存されます。

  • 低頻度アクセス – S3 Intelligent-Tiering では、30 日間連続してアクセスされなかったオブジェクトは低頻度アクセス階層に移動されます。

  • アーカイブインスタントアクセス – S3 Intelligent-Tiering では、90 日間連続してアクセスされていない既存のオブジェクトは、アーカイブインスタントアクセス階層に自動的に移動されます。

S3 Intelligent-Tiering では、これらの 3 つの階層に加えて、オプションとして次の 2 つのアーカイブアクセス階層が用意されています。

  • アーカイブアクセス – S3 Intelligent-Tiering では、非同期的にアクセスできるデータ向けにアーカイブアクセス層をアクティブ化するオプションが提供されます。アクティブ化された後、アーカイブアクセス階層は 90 日間以上してアクセスされなかったオブジェクトを自動的にアーカイブします。

  • ディープアーカイブアクセス – S3 Intelligent-Tiering では、非同期的にアクセスできるデータ向けにディープアーカイブアクセス階層をアクティブ化するオプションが提供されます。アクティブ化後、ディープアーカイブアクセス階層は 180 日間連続してアクセスされなかったオブジェクトを自動的にアーカイブします。

注記
  • アーカイブインスタントアクセス階層をバイパスしたい場合は、アーカイブアクセス階層を 90 日間だけアクティブ化します。アーカイブアクセス階層は、分単位から時間単位の取得時間でストレージコストをわずかに削減します。アーカイブインスタントアクセス階層は、ミリ秒単位のアクセスと高いスループットパフォーマンスを実現します。

  • アプリケーションがオブジェクトに非同期でアクセスできる場合にのみ、アーカイブアクセス階層とディープアーカイブアクセス階層をアクティブにします。取得するオブジェクトがアーカイブアクセス階層またはディープアーカイブアクセス階層に保存されている場合は、まず RestoreObject を使用してオブジェクトを復元します。

新しく作成されたデータを S3 Intelligent-Tiering に移動して、デフォルトのストレージクラスとして設定することができます。また、PutBucketIntelligentTieringConfiguration API オペレーション、AWS CLI、または Amazon S3 コンソールを使用して、アーカイブアクセス階層の 1 つまたは両方をアクティブ化することもできます。S3 Intelligent-Tiering の使用方法およびアクティブアクセス階層のアクティブ化の詳細については、「 S3 Intelligent-Tiering の使用」を参照してください。

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

注記

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

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

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

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

  • バックアップの保存

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

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

注記

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

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

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

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

次の構成を推奨します。

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

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

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

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

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

  • S3 Glacier Instant Retrieval – ほとんどアクセスされず、ミリ秒単位の取得が必要なデータのアーカイブに使用します。S3 Glacier Instant Retrieval ストレージクラスに格納されたデータは、S3 標準 IA ストレージクラスと比較して、S3 標準 – IA ストレージクラスと同じレイテンシーとスループットパフォーマンスを実現し、コスト削減を実現します。S3 Glacier Instant Retrieval は、S3 標準 – IA よりもデータアクセスコストは高くなります。

    料金については、[Amazon S3 の料金] を参照してください。

  • S3 Glacier Flexible Retrieval – データの一部を数分で取得する必要があるアーカイブに使用します。S3 Glacier Flexible Retrieval ストレージクラスに保存されるデータの最小ストレージ期間は 90 日で、迅速取り出しを行うと 1〜5 分でアクセスできます。取り出し時間は融通が利き、最大 5~12 時間で一括取りを無償でリクエストできます。最低期間の 90 日より前にオブジェクトを削除、上書き、または別のストレージクラスに移行した場合は、90 日分の料金が請求されます。Amazon S3 は、S3 Glacier Flexible Retrieval で AWS アカウント ごとに、1 秒あたり最大 1,000 トランザクションのレートで復元リクエストをサポートします。

    料金については、[Amazon S3 の料金] を参照してください。

  • S3 Glacier Deep Archive – ほとんどアクセスする必要がないデータのアーカイブに使用します。S3 Glacier Deep Archive ストレージクラスに保存されたデータの最小ストレージ期間は 180 日で、デフォルトの取り出しを使用すると 12 時間かかります。最低期間の 180 日より前にオブジェクトを削除、上書き、または別のストレージクラスに移行した場合は、180 日分の料金が請求されます。Amazon S3 は、S3 Glacier Deep Archive で AWS アカウント ごとに、1 秒あたり最大 1,000 トランザクションのレートで復元リクエストをサポートします。

    料金については、[Amazon S3 の料金] を参照してください。

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

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

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

重要

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

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

S3 Glacier ストレージクラスの開始方法

Amazon S3 Glacier ストレージクラスの使用方法の詳細については、「チュートリアル: Amazon S3 Glacier ストレージクラスの使用を開始する」を参照してください。

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

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

S3 on Outposts は、新しいストレージクラスである S3 Outposts (OUTPOSTS) を提供します。S3 Outposts のストレージクラスは、Outposts のバケットに格納されたオブジェクトに対してのみ使用できます。AWS リージョン の S3 バケットでこのストレージクラスを使用しようとすると、InvalidStorageClass エラーが発生します。さらに、S3 on Outposts に保存されているオブジェクトで他の S3 ストレージクラスを使用しようとすると、同じエラー応答が発生します。

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

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

注記

S3 on Outposts は、AWS Key Management Service (AWS KMS) キー (SSE-KMS) を使用したサーバー側暗号化をサポートしていません。

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

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

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

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

S3 Standard

ミリ秒アクセスで頻繁にアクセスされたデータ (月に 2 回以上)

99.999999999%

99.99%

>= 3

なし

なし

なし

S3 Standard – IA

存続期間が長く、ミリ秒単位のアクセスデータであまり頻繁にアクセスされない (1 か月に 1 回)

99.999999999%

99.9%

>= 3

30 日間

128 KB

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

S3 Intelligent-Tiering

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

99.999999999%

99.9%

>= 3

なし

なし

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

S3 1 ゾーン - IA

再作成可能で、ミリ秒単位でアクセスされたデータでアクセス頻度が低く(月に 1 回)

99.999999999%

99.5%

1

30 日間

128 KB

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

S3 Express One Zone

単一の AWS アベイラビリティーゾーン内のレイテンシーの影響を受けやすいアプリケーションに対する 1 桁のミリ秒単位のデータアクセス

99.999999999%

99.95%

1

なし

なし

S3 Express One Zone のオブジェクトは、選択した単一の AWS アベイラビリティーゾーンに保存されます。

S3 Glacier Instant Retrieval

存続期間が長く、ミリ秒のアクセスで四半期に一度アクセスされるアーカイブデータ 99.999999999%

99.9%

>= 3

90 日間

128 KB

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

S3 Glacier Flexible Retrieval

存続期間が長く、取得時間は分から数時間になり、年に 1 回アクセスされたアーカイブデータ 99.999999999%

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

>= 3

90 日間

NA*

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

S3 Glacier Deep Archive

存続期間が長く、年に 1 回未満でアクセスされ、取得時間は何時間に渡ってアクセスされるアーカイブデータ 99.999999999%

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

>= 3

180 日間

NA**

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

RRS (非推奨)

重要ではない、ミリ秒単位で頻繁にアクセスされるデータ

99.99%

99.99%

>= 3

なし

なし

なし

* S3 Glacier Flexible Retrieval では、アーカイブされたオブジェクトごとに 40 KB の追加メタデータが必要です。これには、S3 Glacier Flexier Flexible Retrieval レート (データの識別と取得に必要) で請求される 32 KB のメタデータと、S3 スタンダートレートで請求される追加の 8 KB データが含まれます。S3 Glacier Flexible Retrieval にアーカイブされたオブジェクトのユーザー定義名とメタデータを維持するには、S3 スタンダートレートが必要です。ストレージクラスの詳細については、「Amazon S3 ストレージクラス」を参照してください。

** S3 Glacier Deep Archive には、アーカイブされたオブジェクトごとに 40 KB の追加メタデータが必要です。これには、S3 Glacier Deep Archive レート (データの識別と取得に必要) で請求される 32 KB のメタデータと、S3 スタンダートレートで請求される追加の 8 KB データが含まれます。Amazon S3 Glacier Deep Archive にアーカイブされたオブジェクトのユーザー定義の名前とメタデータを維持するには、S3 スタンダートレートが必要です。ストレージクラスの詳細については、「Amazon S3 ストレージクラス」を参照してください。

S3 One Zone-IA と S3 Express One Zone を除くすべてのストレージクラスは、災害によるアベイラビリティーゾーンの物理的な損失に対して回復力を持つように設計されていることに注意します。また、アプリケーションシナリオのパフォーマンス要件の他に、コストについても考慮してください。ストレージクラスの料金については「Amazon S3 の料金」をご覧ください。

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

オブジェクトストレージクラスを設定および更新するには、Amazon S3 コンソール、AWS SDK、または AWS Command Line Interface (AWS CLI) を使用できます。これらのアプローチはすべて、Amazon S3 API オペレーションを使用して Amazon S3 にリクエストを送信します。

Amazon S3 API オペレーションは、オブジェクトのストレージクラスを次のように設定 (または更新) することをサポートしています。

  • 新しいオブジェクトの作成時にストレージクラスを指定できます。例えば、PUT ObjectPOST Object、および Initiate Multipart Upload API オペレーションを使用してオブジェクトを作成する場合、x-amz-storage-class リクエストヘッダーを追加してストレージクラスを指定します。このヘッダーを追加しない場合は、Amazon S3 では、デフォルトのストレージクラスである S3 Standard を使用します。

  • 既に Amazon S3 に保存されているオブジェクトのストレージクラスを別のストレージクラスに変更するには、PUT Object - Copy API オペレーションを使用してオブジェクトのコピーを作成します。ただし、PUT Object - Copy を使用して、S3 Glacier Flexible Retrieval または S3 Glacier Deep Archive ストレージクラスに保存されているオブジェクトをコピーすることはできません。S3 1 ゾーン — IA から S3 Glacier Instant Retrieval に移行することもできません。

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

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

    • x-amz-storage-class ヘッダーを、使用するストレージクラスに設定します。

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

  • オブジェクトのサイズが 160 GB 未満の場合は、Amazon S3 コンソールを使用してオブジェクトのストレージクラスを変更できます。それ以上大きい場合は、S3 Lifecycle の設定を追加すると、オブジェクトのストレージクラスを変更できます。

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

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

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

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

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