はじめに
Amazon S3(Simple Storage Service)は、スケーラブルで安全かつ高耐久性を備えたオブジェクトストレージサービスです。データを保存するだけでなく、ウェブサイトホスティングやバックアップ、アーカイブなど、さまざまな用途に柔軟に対応できます。
Amazon S3は、99.999999999%(11ナイン)のデータ耐久性を提供し、低コストかつ高信頼性のストレージソリューションとして、多くの企業や開発者に利用されています。
なお、本記事の内容は個人的な備忘録としてまとめたものです。その点をご了承いただければ幸いです。少しでも参考になれば嬉しいです。
書こうと思ったきっかけ
受講中のITスクールで行われたハッカソン(チーム開発)において、フロントエンド部分をCloudFrontとS3バケットに配置することにしました。
AWS上での実装自体は完了していますが、構築を進める中で、改めて知識を整理する必要性を感じました。
そこで今回は、Amazon S3に特化して、その特徴や用途を体系的にまとめていきたいと思います。
S3の技術検証記事について
これまで、AWSやS3に関するさまざまな技術検証を行ってきました。以下にその一部をご紹介します。
Amazon S3とCloudFrontを使った静的ウェブサイトホスティングの技術検証👇
AWS CloudShellにTerraformを導入し、S3バケットを作成するデモ👇
AWS CLIのコマンド操作だけでS3静的ウェブホスティングを構築してみた👇
S3バケットに配置したPACファイルを活用し、インターネット通信を制御してみた👇
興味のある記事があれば、ぜひ参考にご覧ください!
公式ドキュメントを読みながら体系的にまとめてみた
ここからは、以下のAWS公式サイトを参考にしながら、自分なりに要約して整理していきます。詳細を知りたい方は、ぜひ公式サイトをご覧ください。
そもそも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) | - アクセス頻度の高いデータ向けの汎用ストレージ - 低レイテンシーかつ高スループット - 99.9% の可用性 SLA、99.99% の可用性設計 |
クラウドアプリケーション、動的なウェブサイト、コンテンツ配信、モバイルアプリ、ゲームアプリ、ビッグデータ分析 |
Amazon S3 Intelligent-Tiering | - データアクセス頻度に基づき、最適なストレージ階層へ自動移動 - 高頻度、低頻度、アーカイブ階層対応 - パフォーマンス影響なしでコスト削減 |
データレイク、データ分析、新規アプリケーション、ユーザー生成コンテンツ |
Amazon S3 Express One Zone | - 単一アベイラビリティーゾーンの高性能ストレージ - S3 Standard の 10 倍のデータアクセス速度、50% のリクエストコスト削減 - AWS サービスとの連携で機械学習や分析ワークロードの高速化 |
高頻度アクセスのデータ、低レイテンシーを必要とするアプリケーション、Amazon SageMaker モデルトレーニングやデータ分析 |
Amazon S3 標準 - 低頻度アクセス (S3 Standard-IA) | - アクセス頻度は低いが必要時にすぐ取り出せるデータ向け - 高耐久性、高スループット、低レイテンシーを低コストで提供 - 長期保存、バックアップ、ディザスタリカバリに最適 |
長期保存、ディザスタリカバリ、バックアップ |
Amazon S3 One Zone-IA | - 単一アベイラビリティーゾーンにデータを保存 - S3 Standard-IA よりもコストを 20% 削減 - 再作成可能なデータやオンプレミスデータのセカンダリバックアップに適用 |
セカンダリバックアップ、クロスリージョンレプリケーションによるコスト効率の高いストレージ |
Amazon S3 Glacier Flexible Retrieval | - アーカイブデータ向けに設計された低コストストレージ - データ耐久性 99.999999999% (11 ナイン)、99.99% の可用性 - 非同期でのデータ取り出しをサポート(数分〜数時間) - 無料の一括検索を提供 |
バックアップ、ディザスタリカバリ、オフサイトデータストレージ、大量のアーカイブデータの管理 |
まとめ
ここまで読んでいただき、ありがとうございました。私自身、AWS認定試験を勉強していた際に、このあたりの内容をたくさん覚えましたが、細かい部分はやはり忘れてしまっていました。
今回、公式ドキュメントを読みながら体系的にまとめることで、知識をより深く定着させる良い機会となりました。
このまとめた内容が、どなたかの技術的な参考や支えになれば幸いです。
おまけ:ストレージクラスとライフサイクル管理
Amazon S3のストレージクラスは、オブジェクト単位で設定することができます。
これにより、1つのバケット内に異なるストレージクラスのオブジェクトを混在させることが可能です。
さらに、S3ライフサイクルポリシーを活用すれば、アプリケーションを変更することなく、データを異なるストレージクラスへ自動的に移行することができます。
これにより、コスト効率をさらに高める運用が可能です!