個人的な備忘録：AWS認定試験で頻出のAmazon S3ストレージクラスについて、公式ドキュメントを参考に体系的にまとめてみた

## はじめに
Amazon S3（Simple Storage Service）は、スケーラブルで安全かつ高耐久性を備えたオブジェクトストレージサービスです。***データを保存するだけでなく、ウェブサイトホスティングやバックアップ、アーカイブなど、さまざまな用途に柔軟に対応できます。***

:::note note
**Amazon S3は、99.999999999%（11ナイン）のデータ耐久性を提供し、低コストかつ高信頼性のストレージソリューションとして、多くの企業や開発者に利用されています。**
:::

なお、本記事の内容は個人的な備忘録としてまとめたものです。***その点をご了承いただければ幸いです。少しでも参考になれば嬉しいです。***

## 書こうと思ったきっかけ
受講中のITスクールで行われたハッカソン（チーム開発）において、フロントエンド部分をCloudFrontとS3バケットに配置することにしました。

![Screenshot 2025-01-25 at 1.44.57.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3662571/c06d3316-95b7-4b5d-61e1-67827deee5e2.png)

AWS上での実装自体は完了していますが、構築を進める中で、改めて知識を整理する必要性を感じました。

https://qiita.com/free-honda/items/c51a5cb34f4f67bf6b7e

***そこで今回は、Amazon S3に特化して、その特徴や用途を体系的にまとめていきたいと思います。***

## S3の技術検証記事について
これまで、AWSやS3に関するさまざまな技術検証を行ってきました。以下にその一部をご紹介します。

**Amazon S3とCloudFrontを使った静的ウェブサイトホスティングの技術検証**👇

https://qiita.com/free-honda/items/52729083cac7b1621771

**AWS CloudShellにTerraformを導入し、S3バケットを作成するデモ**👇

https://qiita.com/free-honda/items/19b4e7db8b8f24d41277

**AWS CLIのコマンド操作だけでS3静的ウェブホスティングを構築してみた**👇

https://qiita.com/free-honda/items/b6cbdd00a3932a401847

**S3バケットに配置したPACファイルを活用し、インターネット通信を制御してみた**👇

https://qiita.com/free-honda/items/35471fde808a558c81f9

***興味のある記事があれば、ぜひ参考にご覧ください！***

## 公式ドキュメントを読みながら体系的にまとめてみた
ここからは、以下のAWS公式サイトを参考にしながら、自分なりに要約して整理していきます。**詳細を知りたい方は、ぜひ公式サイトをご覧ください。**

https://aws.amazon.com/jp/s3/storage-classes/

### そもそもAmazon S3とは？

Amazon S3は、さまざまなストレージクラスを提供し、ワークロードのパフォーマンス、データアクセス、回復力、コスト要件に応じた柔軟な選択が可能です。

これらのストレージクラスは、アクセス頻度やデータ特性に合わせて設計されており、幅広いユースケース（**データレイク、アーカイブストレージ、変更されたアクセスパターンなど**）に対応します。

### 主なストレージクラス

- **S3 Intelligent-Tiering**: 不明または変化するアクセスパターンに対して自動でコストを削減。
- **S3 Standard**: アクセス頻度の高いデータ向け。
- **S3 Standard-IA/S3 One Zone-IA**: アクセス頻度の低いデータ向け。
- **S3 Glacier**: 長期アーカイブ用、即時アクセスが不要なデータ向け。
- **S3 Glacier Instant Retrieval**: 即時アクセスが必要なアーカイブデータ向け。
- **S3 Glacier Deep Archive**: 最も低コストな長期保存用ストレージ。

### 特徴と利点

- **高耐久性と可用性**:  
  99.999999999%（11ナイン）の耐久性を持ち、データは最低3つのアベイラビリティーゾーン（AZ）に冗長保存されます。
  
- **柔軟な配置**:  
  必要に応じて、1つのAZ内でコストとレイテンシーを最小化する構成や、複数のAZやリージョンにデータを保存する設定が可能です。

- **ローカル要件対応**:  
  データレジデンシー要件に合わせて、AWSローカルゾーンやOutpostsを使用して特定のデータ境界に保存可能です。

## Amazon S3 ストレージクラスの比較表を作ってみた

| **ストレージクラス**                          | **特徴**                                                                                                                                                                                                                              | **主なユースケース**                                                                                                  |
|-------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------|
| **Amazon S3 標準 (S3 Standard)**           | - アクセス頻度の高いデータ向けの汎用ストレージ<br>- 低レイテンシーかつ高スループット<br>- 99.9% の可用性 SLA、99.99% の可用性設計                                                                                             | クラウドアプリケーション、動的なウェブサイト、コンテンツ配信、モバイルアプリ、ゲームアプリ、ビッグデータ分析                                            |
| **Amazon S3 Intelligent-Tiering**         | - データアクセス頻度に基づき、最適なストレージ階層へ自動移動<br>- 高頻度、低頻度、アーカイブ階層対応<br>- パフォーマンス影響なしでコスト削減                                                                                | データレイク、データ分析、新規アプリケーション、ユーザー生成コンテンツ                                                                                    |
| **Amazon S3 Express One Zone**            | - 単一アベイラビリティーゾーンの高性能ストレージ<br>- S3 Standard の 10 倍のデータアクセス速度、50% のリクエストコスト削減<br>- AWS サービスとの連携で機械学習や分析ワークロードの高速化                                                   | 高頻度アクセスのデータ、低レイテンシーを必要とするアプリケーション、Amazon SageMaker モデルトレーニングやデータ分析                                       |
| **Amazon S3 標準 - 低頻度アクセス (S3 Standard-IA)** | - アクセス頻度は低いが必要時にすぐ取り出せるデータ向け<br>- 高耐久性、高スループット、低レイテンシーを低コストで提供<br>- 長期保存、バックアップ、ディザスタリカバリに最適                                                     | 長期保存、ディザスタリカバリ、バックアップ                                                                                                               |
| **Amazon S3 One Zone-IA**                 | - 単一アベイラビリティーゾーンにデータを保存<br>- S3 Standard-IA よりもコストを 20% 削減<br>- 再作成可能なデータやオンプレミスデータのセカンダリバックアップに適用                                                              | セカンダリバックアップ、クロスリージョンレプリケーションによるコスト効率の高いストレージ                                                                                                     |
| **Amazon S3 Glacier Flexible Retrieval**  | - アーカイブデータ向けに設計された低コストストレージ<br>- データ耐久性 99.999999999% (11 ナイン)、99.99% の可用性<br>- 非同期でのデータ取り出しをサポート（数分〜数時間）<br>- 無料の一括検索を提供                                                | バックアップ、ディザスタリカバリ、オフサイトデータストレージ、大量のアーカイブデータの管理                                                               
## まとめ
ここまで読んでいただき、ありがとうございました。***私自身、AWS認定試験を勉強していた際に、このあたりの内容をたくさん覚えましたが、細かい部分はやはり忘れてしまっていました。***

:::note info
**今回、公式ドキュメントを読みながら体系的にまとめることで、知識をより深く定着させる良い機会となりました。**
:::

このまとめた内容が、どなたかの技術的な参考や支えになれば幸いです。

### おまけ：ストレージクラスとライフサイクル管理
Amazon S3のストレージクラスは、オブジェクト単位で設定することができます。

:::note warn
***これにより、1つのバケット内に異なるストレージクラスのオブジェクトを混在させることが可能です。***
:::

さらに、S3ライフサイクルポリシーを活用すれば、アプリケーションを変更することなく、データを異なるストレージクラスへ自動的に移行することができます。

**これにより、コスト効率をさらに高める運用が可能です！**