Amazon S3
容量無制限のオブジェクトストレージサービスで、99.999999999% の耐久性を標準提供し、Web サイトホスティングからデータレイクまで幅広い用途に対応する
概要
Amazon Simple Storage Service (S3) は、AWS で最も広く利用されているストレージサービスです。インターネット経由でどこからでもデータを保存・取得でき、保存容量に上限はありません。1 ファイルあたり最大 5 TB まで対応し、S3 Standard のように複数のアベイラビリティゾーンへ分散するクラスでは、データが自動的に 3 つ以上のアベイラビリティゾーンに複製されるため、99.999999999% (イレブンナイン) という極めて高い耐久性を実現しています。一方で S3 One Zone-IA と S3 Express One Zone は単一のアベイラビリティゾーンにデータを置くため、その AZ が失われた場合はデータも失われます。S3 Standard、S3 Intelligent-Tiering、S3 Standard-IA、S3 One Zone-IA、S3 Express One Zone、S3 Glacier Instant Retrieval、S3 Glacier Flexible Retrieval、S3 Glacier Deep Archive と、アクセス頻度や性能要件に応じたストレージクラスが用意されており、ライフサイクルポリシーで自動的にコスト最適化できます。静的 Web サイトのホスティング、データレイクの構築、バックアップ・アーカイブ、ログの蓄積など、データを保存するあらゆる場面で利用されています。
ストレージクラスとライフサイクルポリシー
S3 のストレージクラスは S3 Standard、S3 Intelligent-Tiering、S3 Standard-IA、S3 One Zone-IA、S3 Express One Zone、S3 Glacier Instant Retrieval、S3 Glacier Flexible Retrieval、S3 Glacier Deep Archive で、これに加えてオンプレミス環境向けの S3 on Outposts があります。データのアクセス頻度と性能要件に応じた使い分けがコスト最適化の鍵になります。S3 Standard は頻繁にアクセスするデータ向けで、東京リージョンでは 1 GB あたり月額約 0.025 ドルです (2026 年 8 月時点)。Standard-IA は月 1 回程度のアクセス頻度のデータに適し、保存料金が約 40% 安い代わりに取り出し時のリクエスト料金が発生します。同じ低頻度アクセス向けでも One Zone-IA は単一のアベイラビリティゾーンにしか保存しないため、Standard-IA より保存料金が安い反面、AZ の消失でデータを失っても再作成できるデータに限って使います。Express One Zone も単一 AZ にデータを置きますが、こちらは安さではなく 1 桁ミリ秒のアクセス遅延を狙う高性能クラスで、機械学習の学習データや繰り返し読むワークロードの一時データに向いています。S3 Intelligent-Tiering はアクセスパターンを自動分析して最適なクラスに移行する仕組みで、アクセス頻度が予測困難なデータに向いています。Glacier 系は長期アーカイブ用で、Deep Archive なら 1 GB あたり月額約 0.002 ドルまで下がりますが、取り出しには標準取り出しで 12 時間以内、大容量 (Bulk) 取り出しで 48 時間以内を要します。ライフサイクルポリシーを設定すれば、作成から 30 日後に Standard-IA、90 日後に Glacier へ自動移行するルールを定義でき、手動管理なしにコストを削減できます。Azure Blob Storage も Hot/Cool/Cold/Archive の 4 層構成を持ち、ライフサイクル管理ポリシーでは最終アクセス時刻の追跡に基づいて blob 単位で階層を自動移動できます。違いは移行判断の作り方で、Azure は経過日数や最終アクセスからの日数をルールとして自分で書くのに対し、S3 の Intelligent-Tiering はアクセスパターンの監視と移行判断をサービス側が担い、オブジェクト単位の監視料金と引き換えにルール設計そのものを省けます。
バケット設計とアクセス制御
S3 のバケット名はグローバルで一意である必要があり、命名時にはプロジェクト名やアカウント ID を含めて衝突を避けるのが実務上の定石です。アクセス制御はバケットポリシー (リソースベース) と IAM ポリシー (アイデンティティベース) の 2 層で構成されます。まず S3 Block Public Access をアカウントレベルで有効にして意図しない公開を防止し、その上で必要な範囲だけバケットポリシーで許可する設計が推奨されます。サーバーサイド暗号化は SSE-S3 (S3 管理キー) がデフォルトで有効になっており、コンプライアンス要件で鍵の管理が必要な場合は SSE-KMS を選択します。バージョニングを有効にすれば誤削除からの復旧が可能になり、MFA Delete と組み合わせることで悪意ある削除も防止できます。
パフォーマンスチューニングとコスト可視化
S3 は単一プレフィックスあたり毎秒 5,500 回の GET と 3,500 回の PUT をサポートしており、プレフィックスを分散させることで事実上無制限のスループットを実現できます。大容量ファイルのアップロードにはマルチパートアップロードが有効で、100 MB 以上のファイルでは並列転送により速度が大幅に向上します。地理的に離れたクライアントからのアップロードには S3 Transfer Acceleration が効果的で、CloudFront のエッジネットワークを経由して転送速度を改善します。コスト管理の面では、S3 Storage Lens がバケット全体の使用状況をダッシュボードで可視化し、不要なオブジェクトの特定やストレージクラスの最適化を支援します。S3 Inventory を使えばオブジェクトの一覧を CSV や Parquet 形式で定期出力でき、暗号化状態やストレージクラスの棚卸しに活用できます。
参考資料 (AWS 公式)
本ページの一次情報は AWS 公式サイトおよび公式ドキュメントです。最新の仕様 / 料金は次の公式ページで確認できます。
本ページと公式ドキュメントの記述が食い違う場合は、公式ドキュメントを正としてください。