S3のストレージクラスを整理した

# 背景・目的
現在、S3のストレージクラスについて検討しています。それに伴い、各ストレージクラスの特徴を整理します。
特にGlacierなどは以前の知識のままなので、キャッチアップしたいと思います。

# まとめ
下記に特徴を整理します。

|特徴|説明|
|:--|:--|
|パフォーマンスとアクセス頻度の高い<BR>データ向けのストレージクラス|・S3 Standard<BR>・S3 Express One Zone<BR>・Reduced Redundancy Storag|
|S3 Standard (STANDARD)|・デフォルト<BR>S3 Standardと、Standard-IA間のコストを最適化するためストレージ分析が利用できる|
|S3 Express One Zone (EXPRESS_ONEZONE)|・1桁ミリ秒単位のハイパフォーマンス向け<BR>・レイテンシーが最も低いストレージクラス<BR>・アクセス速度は、S3 Standardと比較し最大 10倍高速<BR>・リクエストコストはS3 Standardと比較し50%低減<BR>・シングルAZで提供される|
|Reduced Redundancy Storage (REDUCED_REDUNDANCY) |・S3 Standardより低いレベルの冗長性で保存する<BR>・重要ではないデータを配置する用途|
||<BR>|
|アクセスパターンの変化やアクセスパターンが不明なデータ向け|・S3 Intelligent-Tiering |
|S3 Intelligent-Tiering|・アクセスパターンが不明または変化するデータのストレージコストを最小限に抑える場合に最適なストレージクラス<BR><BR>・取り出し料金は発生しない<BR>・モニタリングとオートメーションに対して料金かかる<BR>・あまりアクセスされていないオブジェクトをより低コストのアクセス階層へ自動的に移動させる<BR>・3 つの低レイテンシーかつ高スループットのアクセス階層で、自動的にストレージコストを削減させる<BR>・99.9% の可用性<BR>・99.999999999の耐久性|
|S3 Intelligent-Tieringの3つの階層|・高頻度アクセス<BR>・低頻度アクセス（30日連続アクセスされないと移動される）<BR>・アーカイブインスタントアクセス （90日連続アクセスされないと移動される）|
|S3 Intelligent-Tieringの2つのアーカイブ階層|・アーカイブアクセス（90日以上アクセスなしのオブジェクトを自動的にアーカイブ）<BR><BR>・ディープアーカイブ(180日間連続してアクセスされなかったオブジェクトを自動的にアーカイブ)<BR><BR>※オプションで設定され、非同期によりアクセスが可能|
||<BR>|
|アクセス頻度の低いオブジェクトのストレージクラス|・S3 Standard-IA (STANDARD_IA)<BR>・S3 One Zone-IA (ONEZONE_IA)|
|S3 Standard-IA (STANDARD_IA) |・存続期間が長く、アクセス頻度の低いデータ用に設計<BR>・ミリ秒のアクセス|
|S3 One Zone-IA (ONEZONE_IA)|・1AZのみ保存<BR>・S3 Standard-IAよりも安価|
|S3-IAの注意点|・128KB以下は切り上げられ128KB相当の料金が請求される<BR>・30日前に削除されると30日分の料金が発生する|
||<BR>|
|ほとんどアクセスすることのないオブジェクトのストレージクラス|最小限のストレージ期間と取得料金になるため、ほとんどアクセスされないデータに対して最も効果的<BR><BR>3つのストレージクラスがある<BR>・S3 Glacier Instant Retrieval<BR>・S3 Glacier Flexible Retrieval<BR>・S3 Glacier Deep Archive|
|S3 Glacier Instant Retrieval|・ほとんどアクセスされない<BR>・ミリ秒単位の取得が必要な長期データに使用<BR>・リアルタイムアクセス可能|
|S3 Glacier Flexible Retrieval|・データの一部を数分で取得する必要があるアーカイブに使用<BR>・アーカイブされる<BR>・リアルタイムアクセスできない|
|S3 Glacier Deep Archive|・ほとんどアクセスする必要がないデータのアーカイブに使用<BR>・アーカイブされる<BR>・リアルタイムアクセスできない|


# 概要
下記のドキュメントを基に整理します。

https://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/storage-class-intro.html

## アクセス頻度の高いオブジェクトのストレージクラス
> パフォーマンス重視のユースケース (ミリ秒単位のアクセス時間を要するユースケース) とアクセス頻度の高いデータには、Amazon S3 は次のストレージクラスを提供しています。
> - S3 Standard – デフォルトのストレージクラス。オブジェクトのアップロード時にストレージクラスを指定しない場合、Amazon S3 Standard ストレージクラスが割り当てられます。S3 Standard と S3 Standard-IA 間のコストを最適化するために、「Amazon S3 分析 – ストレージクラス分析」を使用できます。
> - 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 (STANDARD)
    - S3 Express One Zone (EXPRESS_ONEZONE)
    - Reduced Redundancy Storage (REDUCED_REDUNDANCY) 
- S3 Standard (STANDARD)
    - デフォルト
    - S3 Standardと、Standard-IA間のコストを最適化するためストレージ分析が利用できる
- S3 Express One Zone (EXPRESS_ONEZONE)
    - 1桁ミリ秒単位のハイパフォーマンス向け
    - レイテンシーが最も低いストレージクラス
    - アクセス速度は、S3 Standardと比較し最大 10倍速い
    - リクエストコストはS3 Standardと比較し50%低減される
    - シングルAZで提供される
- Reduced Redundancy Storage (REDUCED_REDUNDANCY) 
    - S3 Standardより低いレベルの冗長性で保存する
    - 重要ではないデータを配置する用途

## アクセスパターンが変化する、またはアクセスパターンが不明なデータを、自動的に最適化するためのストレージクラス
> 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 つの低レイテンシーかつ高スループットのアクセス階層で、自動的にストレージコストを削減させる
    - 99.9% の可用性
    - 99.999999999の耐久性

> S3 Intelligent-Tiering は、3 つのアクセス階層にオブジェクトを自動的に保存します。
> - 高頻度アクセス – S3 Intelligent-Tiering にアップロードまたは転送されたオブジェクトは、高頻度アクセス階層に自動的に保存されます。
> - 低頻度アクセス – S3 Intelligent-Tiering では、30 日間連続してアクセスされなかったオブジェクトは低頻度アクセス階層に移動されます。
> - アーカイブインスタントアクセス – S3 Intelligent-Tiering では、90 日間連続してアクセスされていない既存のオブジェクトは、アーカイブインスタントアクセス階層に自動的に移動されます。

- 3つの階層にオブジェクトを自動的に保存する
    - 高頻度アクセス
    - 低頻度アクセス
        - 30日連続アクセスなしが移動される
    - アーカイブインスタントアクセス 
        - 90日連続アクセスなしが移動される

> S3 Intelligent-Tiering では、これらの 3 つの階層に加えて、オプションとして次の 2 つのアーカイブアクセス階層が用意されています。
> - アーカイブアクセス – S3 Intelligent-Tiering では、非同期的にアクセスできるデータ向けにアーカイブアクセス層をアクティブ化するオプションが提供されます。アクティブ化された後、アーカイブアクセス階層は 90 日間以上してアクセスされなかったオブジェクトを自動的にアーカイブします。
> - ディープアーカイブアクセス – S3 Intelligent-Tiering では、非同期的にアクセスできるデータ向けにディープアーカイブアクセス階層をアクティブ化するオプションが提供されます。アクティブ化後、ディープアーカイブアクセス階層は 180 日間連続してアクセスされなかったオブジェクトを自動的にアーカイブします。

- オプションで2つのアーカイブアクセス階層が用意されている
    - アーカイブアクセス
        - 非同期にアクセスする
        - 90日以上アクセスなしのオブジェクトを自動的にアーカイブ
    - ディープアーカイブ
        - 非同期にアクセスする
        - 180日間連続してアクセスされなかったオブジェクトを自動的にアーカイブ

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


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

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


- S3 Standard-IA (STANDARD_IA) 
    - 存続期間が長く、アクセス頻度の低いデータ用に設計
    - ミリ秒のアクセス
- S3 One Zone-IA (ONEZONE_IA)
    - 1AZのみ保存
    - S3 Standard-IAよりも安価


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

- 下記に最適
    - 128KB以上のサイズ
    - 30日間保存する予定のオブジェクト
- 128KB以下は切り上げられ128KB相当の料金が請求される
- 30日前に削除されると30日分の料金が発生する


## ほとんどアクセスすることのないオブジェクトのストレージクラス
> S3 Glacier Instant Retrieval、S3 Glacier Flexible Retrieval、および S3 Glacier Deep Archive ストレージクラスは、低コストで長期保存するために使用できるデータストレージおよびデータアーカイブ向けに設計されています。これらのストレージクラスでは、最小限のストレージ期間と取得料金になるため、ほとんどアクセスされないデータに対して最も効果的です。S3 Glacier ストレージクラスの詳細については、「長期データストレージとしての S3 Glacier ストレージクラスを理解する」を参照してください。
Amazon S3 は以下の S3 Glacier ストレージクラスを提供します:
> - S3 Glacier Instant Retrieval – ほとんどアクセスされず、ミリ秒単位の取得が必要な長期データに使用します。このストレージクラスのデータにはリアルタイムアクセスできます。
> - S3 Glacier Flexible Retrieval – データの一部を数分で取得する必要があるアーカイブに使用します。このストレージクラスのデータはアーカイブされ、リアルタイムアクセスできなくなります。
> - S3 Glacier Deep Archive – ほとんどアクセスする必要がないデータのアーカイブに使用します。このストレージクラスのデータはアーカイブされ、リアルタイムアクセスできなくなります。

- 最小限のストレージ期間と取得料金になるため、ほとんどアクセスされないデータに対して最も効果的
-  S3 Glacier Instant Retrieval
    -  ほとんどアクセスされない
    -  ミリ秒単位の取得が必要な長期データに使用
    -  リアルタイムアクセス可能
-  S3 Glacier Flexible Retrieval
    -  データの一部を数分で取得する必要があるアーカイブに使用
    -  アーカイブされる
    -  リアルタイムアクセスできない
-  S3 Glacier Deep Archive
    -  ほとんどアクセスする必要がないデータのアーカイブに使用
    -  アーカイブされる
    -  リアルタイムアクセスできない

# 考察
今回、ストレージクラスを整理しました。
次回は、Intelligent-TieringとGlacierについて深堀って整理します。


# 参考
https://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/storage-class-intro.html

https://aws.amazon.com/jp/blogs/news/analyze-access-patterns-and-use-the-most-cost-effective-amazon-s3-storage-class/