はじめに
こんばんは、mirukyです。
2026年3月14日、Amazon S3(Simple Storage Service)がサービス開始から20周年を迎えました。AWSの中でも最も古いサービスの一つであり、クラウドストレージの代名詞とも言える存在です。
2006年のローンチ時はわずか約1ペタバイトのストレージ容量、約400台のストレージノードからスタートしたS3が、20年後の今では500兆個以上のオブジェクトを保存し、毎秒2億リクエストを処理する巨大なインフラへと成長しました。
この記事では、S3の20年の歴史を振り返りつつ、全ストレージクラスの詳細比較、DynamoDBやCloudWatch LogsからのS3エクスポート連携、そして2025年のre:Inventで発表された最新機能(S3 Tables、S3 Vectors、S3 Metadata)まで、徹底的に解説します。
目次
- Amazon S3 の20年史
- S3 の5つの基本原則
- 全ストレージクラス徹底比較
- S3 Intelligent-Tiering の仕組み
- 他サービスからのS3エクスポート連携
- 2025-2026年の最新機能
- S3 のスケールを支えるエンジニアリング
1. Amazon S3 の20年史
1-1. 誕生からクラウドストレージの標準へ
Amazon S3は2006年3月14日(円周率の日、Pi Day)にローンチされました。当時のJeff Barrによるブログ記事はわずか数段落で、コード例もデモもなく、飛行機に乗る直前に書かれたものでした。
AWSの公式ブログでは当時のWhat's Newページの一節が引用されています。
"Amazon S3 is storage for the Internet. It is designed to make web-scale computing easier for developers. Amazon S3 provides a simple web services interface that can be used to store and retrieve any amount of data, at any time, from anywhere on the web."
(Amazon S3はインターネットのためのストレージです。開発者がウェブスケールのコンピューティングを容易にするために設計されました。Amazon S3は、ウェブ上のどこからでも、いつでも、任意の量のデータを保存・取得できるシンプルなウェブサービスインターフェイスを提供します)
(出典:AWS News Blog "Twenty years of Amazon S3 and building what's next", 2026年3月13日)
初期のS3はきわめてシンプルでした。一意の名前を持つバケットにオブジェクトを格納し、APIは「バケットの作成」「バケット一覧」「オブジェクトのPUT」「オブジェクトのGET」「ACLの設定」の5つだけ。価格は1GBあたり月額15セントでした。
1-2. オブジェクト数の爆発的増加
S3に保存されたオブジェクト数の推移を見ると、成長の凄まじさが分かります。
| 時期 | オブジェクト数 |
|---|---|
| 2007年10月 | 100億 |
| 2008年1月 | 140億 |
| 2008年10月 | 290億 |
| 2009年3月 | 520億 |
| 2010年3月 | 1,020億 |
| 2013年4月 | 2兆 |
| 2021年3月(15周年) | 100兆 |
| 2023年3月(17周年) | 280兆 |
| 2024年11月 | 400兆 |
| 2026年3月(20周年) | 500兆以上 |
(出典:AWS News Blog)
2013年にWerner Vogelsが2兆オブジェクトを発表してから、わずか13年で250倍に達しています。世界人口が約80億人とすると、1人あたり約6万2,500個のオブジェクトがS3に保存されている計算です。
1-3. 20年間の主要マイルストーン
S3の20年間で追加された主要機能を時系列で整理します。
| 年 | 主な出来事 |
|---|---|
| 2006年 | S3ローンチ(REST/SOAP API) |
| 2007年 | 欧州リージョン対応 |
| 2009年 | バージョニング機能 |
| 2012年 | S3 Glacier(アーカイブストレージ) |
| 2015年 | S3 Standard-IA(低頻度アクセス)、クロスリージョンレプリケーション |
| 2017年 | デフォルト暗号化 |
| 2018年 | S3 Intelligent-Tiering、S3 One Zone-IA |
| 2019年 | S3 Glacier Deep Archive、同一リージョンレプリケーション |
| 2020年 | 強い整合性(Strong Read-After-Write Consistency) |
| 2021年 | S3 Object Lambda |
| 2023年 | S3 Express One Zone、Mountpoint for Amazon S3 |
| 2024年 | S3 Tables(Apache Iceberg)、S3 Metadata |
| 2025年 | S3 Vectors(GA)、最大オブジェクトサイズ50TBへ拡張 |
| 2026年 | アカウントリージョナル名前空間、20周年 |
特に2020年の強い整合性の導入は大きな転換点でした。それまでS3は結果整合性モデルであり、PUTした直後にGETしても古いデータが返される可能性がありました。この改善により、追加料金なしで全てのS3操作に対して強い整合性が保証されるようになりました。
2. S3 の5つの基本原則
AWSの20周年ブログでは、S3が20年間変わらず守り続けてきた5つの基本原則が紹介されています。
| 原則 | 内容 |
|---|---|
| Security(セキュリティ) | データはデフォルトで保護される |
| Durability(耐久性) | 99.999999999%(イレブンナイン)を設計目標とし、ロスレスで運用 |
| Availability(可用性) | 障害は常に存在するという前提で全レイヤーに組み込む |
| Performance(パフォーマンス) | 事実上無制限のデータ量でも性能が劣化しない |
| Elasticity(弾力性) | データの追加・削除に応じてシステムが自動的に拡縮 |
この5つが正しく機能しているからこそ、多くの利用者はS3の裏側の複雑さを意識する必要がありません。
3. 全ストレージクラス徹底比較
2026年4月時点で、S3には8つのメインストレージクラスと2つの特殊用途クラスが存在します。
3-1. 汎用ストレージ
S3 Standard
最も基本的なストレージクラスです。頻繁にアクセスされるデータに適しており、デフォルトで選択されます。
| 項目 | 値 |
|---|---|
| 耐久性 | 99.999999999%(11ナイン) |
| 可用性(設計値) | 99.99% |
| 可用性 SLA | 99.9% |
| AZ数 | 3以上 |
| 最小保存期間 | なし |
| 取り出し料金 | なし |
| ユースケース | ウェブアプリ、コンテンツ配信、ビッグデータ分析 |
3-2. 自動最適化
S3 Intelligent-Tiering
アクセスパターンが不明、または変化するデータに最適です。自動的にコスト最適なティアへオブジェクトを移動します(詳細は次のセクションで解説)。
| 項目 | 値 |
|---|---|
| 耐久性 | 99.999999999% |
| 可用性(設計値) | 99.9% |
| 可用性 SLA | 99% |
| AZ数 | 3以上 |
| 最小保存期間 | なし |
| モニタリング料金 | オブジェクトあたり少額(128KB未満は対象外) |
| 取り出し料金 | なし |
3-3. 高性能ストレージ
S3 Express One Zone
2023年のre:Inventで発表された、1桁ミリ秒のレイテンシーを実現する高性能ストレージクラスです。
| 項目 | 値 |
|---|---|
| 耐久性 | 99.999999999% |
| 可用性(設計値) | 99.95% |
| 可用性 SLA | 99.9% |
| AZ数 | 1(単一AZ) |
| 最小保存期間 | 1時間 |
| 特徴 | RenameObject APIをサポートする唯一のクラス |
| ユースケース | ML学習データ、リアルタイム分析、HPC |
S3 Express One Zoneは単一AZにデータを保存するため、AZ障害時にはデータが利用できなくなる可能性があります。レイテンシーが最重要のワークロード向けです。
3-4. 低頻度アクセス
S3 Standard-IA(Infrequent Access)
アクセス頻度は低いが、必要な時にはミリ秒単位で取得したいデータ向けです。
| 項目 | 値 |
|---|---|
| 耐久性 | 99.999999999% |
| 可用性(設計値) | 99.9% |
| 可用性 SLA | 99% |
| AZ数 | 3以上 |
| 最小保存期間 | 30日 |
| 最小課金サイズ | 128KB |
| 取り出し料金 | あり(GBあたり) |
S3 One Zone-IA
Standard-IAと同等だが、単一AZに保存することでコストを抑えたクラスです。再作成可能なデータに適しています。
| 項目 | 値 |
|---|---|
| 耐久性 | 99.999999999% |
| 可用性(設計値) | 99.5% |
| 可用性 SLA | 99% |
| AZ数 | 1 |
| 最小保存期間 | 30日 |
| 最小課金サイズ | 128KB |
| 取り出し料金 | あり(GBあたり) |
One Zone-IAおよびExpress One Zoneは、AZ障害(火災、水害など)時にデータが失われる可能性があります。重要なデータの唯一のコピーをこれらのクラスに保存することは避けてください。
3-5. アーカイブストレージ
S3 Glacier Instant Retrieval
年に数回しかアクセスしないが、取り出し時にはミリ秒単位のアクセスが必要なデータ向けです。
| 項目 | 値 |
|---|---|
| 耐久性 | 99.999999999% |
| 可用性(設計値) | 99.9% |
| 最小保存期間 | 90日 |
| 最小課金サイズ | 128KB |
| 取り出し時間 | ミリ秒 |
S3 Glacier Flexible Retrieval(旧 S3 Glacier)
バックアップやディザスタリカバリなど、即時アクセスが不要なアーカイブデータ向けです。
| 項目 | 値 |
|---|---|
| 耐久性 | 99.999999999% |
| 可用性(設計値) | 99.99% |
| 可用性 SLA | 99.9% |
| 最小保存期間 | 90日 |
| 取り出しオプション | 迅速(1-5分)、標準(3-5時間)、大容量(5-12時間、無料) |
| メタデータ追加 | オブジェクトあたり40KB(8KB: Standard料金、32KB: Glacier料金) |
S3 Glacier Deep Archive
S3で最もコストが低いストレージクラスです。7-10年以上の長期保存に適しています。
| 項目 | 値 |
|---|---|
| 耐久性 | 99.999999999% |
| 可用性(設計値) | 99.99% |
| 可用性 SLA | 99.9% |
| 最小保存期間 | 180日 |
| 取り出しオプション | 標準(12時間以内)、大容量(48時間以内) |
3-6. ストレージクラス比較一覧
| クラス | AZ | 可用性設計 | 最小保存期間 | 取り出し | レイテンシー | 主な用途 |
|---|---|---|---|---|---|---|
| Standard | 3+ | 99.99% | なし | 無料 | ミリ秒 | 汎用 |
| Intelligent-Tiering | 3+ | 99.9% | なし | 無料 | ミリ秒 | アクセスパターン不明 |
| Express One Zone | 1 | 99.95% | 1時間 | なし | 1桁ミリ秒 | ML/HPC |
| Standard-IA | 3+ | 99.9% | 30日 | あり | ミリ秒 | 低頻度アクセス |
| One Zone-IA | 1 | 99.5% | 30日 | あり | ミリ秒 | 再作成可能データ |
| Glacier Instant Retrieval | 3+ | 99.9% | 90日 | あり | ミリ秒 | 年数回アクセスのアーカイブ |
| Glacier Flexible Retrieval | 3+ | 99.99% | 90日 | あり | 分〜時間 | バックアップ/DR |
| Glacier Deep Archive | 3+ | 99.99% | 180日 | あり | 時間 | 長期アーカイブ |
3-7. 特殊用途ストレージ
上記8クラスに加えて、以下の2つの特殊なオプションが存在します。
AWS 専有ローカルゾーン用の Amazon S3 ストレージ
特定の国や地域のデータレジデンシー要件に対応するため、AWS専有ローカルゾーンにデータを保存します。
Amazon S3 on Outposts
AWS Outposts上でS3を利用できるオプションです。オンプレミス環境にS3互換のオブジェクトストレージを配置でき、2023年にはOutpost間のレプリケーション機能も追加されました。
4. S3 Intelligent-Tiering の仕組み
S3 Intelligent-Tieringは、アクセスパターンをモニタリングし、自動的にコスト最適なティアへオブジェクトを移動するストレージクラスです。AWSの20周年ブログによると、利用者は累計で60億ドル以上のストレージコストを節約しています。
4-1. 5つのアクセスティア
S3 Intelligent-Tieringには5つのティアがあります。
| ティア | 条件 | 料金水準 | 取り出しレイテンシー |
|---|---|---|---|
| 高頻度アクセス | 直近30日以内にアクセス | S3 Standard相当 | ミリ秒 |
| 低頻度アクセス | 30日間アクセスなし | S3 Standard-IA相当 | ミリ秒 |
| アーカイブインスタントアクセス | 90日間アクセスなし | Glacier Instant Retrieval相当 | ミリ秒 |
| アーカイブアクセス | オプトインで有効、90日〜 | Glacier Flexible Retrieval相当 | 分〜時間 |
| ディープアーカイブアクセス | オプトインで有効、180日〜 | Glacier Deep Archive相当 | 時間 |
4-2. 仕組みのポイント
Intelligent-Tieringの特徴をまとめます。
- 取り出し料金なし: どのティアからオブジェクトにアクセスしても取り出し料金は発生しない
- ティア間移動料金なし: オブジェクトがティア間を移動する際の追加料金もなし
- モニタリング料金: オブジェクトあたり少額のモニタリング/オートメーション料金が発生(128KB未満のオブジェクトは対象外で、常に高頻度アクセスティア料金で課金)
- 上位2ティアは自動: 高頻度アクセスと低頻度アクセスのティアは自動的に適用される
- 下位2ティアはオプトイン: アーカイブアクセスとディープアーカイブアクセスのティアはバケットまたはプレフィックス単位で有効化が必要
「アクセスパターンが分からないデータ」に対しては、S3 Intelligent-Tieringが最も安全な選択肢です。手動でライフサイクルポリシーを設計するよりも、自動最適化に任せた方がコスト効率が良いケースが多いです。
5. 他サービスからのS3エクスポート連携
S3はAWSエコシステムのデータハブとして、多くのサービスからデータをエクスポートする先として利用されます。ここでは代表的な2つの連携を解説します。
5-1. DynamoDB から S3 へのエクスポート
DynamoDBには、テーブルデータをS3へ直接エクスポートする機能が組み込まれています。
フルエクスポート
DynamoDBのポイントインタイムリカバリ(PITR)を有効にしたテーブルから、指定した時点のデータスナップショットをS3にエクスポートできます。
- エクスポート形式: DynamoDB JSON、Amazon Ion、CSV から選択可能
- 本番テーブルへの影響: エクスポートはPITRのバックアップを利用するため、本番のキャパシティを消費しない
- エクスポート先: 同一アカウント・リージョンのS3バケット、またはクロスアカウント・クロスリージョンも可能
増分エクスポート
2023年に追加された機能で、前回のエクスポート以降に変更されたデータのみをエクスポートします。データレイクへの継続的なデータ連携に適しています。
活用シナリオ
エクスポート後のデータは、以下のような分析基盤で活用できます。
①DynamoDBテーブルからPITRバックアップを利用してS3バケットにエクスポート(本番に影響なし、DynamoDB JSON / Ion / CSV形式)
②Athenaでアドホッククエリを実行
③Redshift Spectrumで分析
④Glueで ETL処理
⑤SageMakerでML学習データとして利用
エクスポート手順(コンソール)
①DynamoDB コンソールでテーブルを選択
②「エクスポートおよびストリーム」タブを開く
③「S3 にエクスポート」をクリック
④エクスポート先S3バケット、データ形式、出力形式を指定
⑤「エクスポート」を実行
AWS CLIでの実行例
aws dynamodb export-table-to-point-in-time \
--table-arn arn:aws:dynamodb:ap-northeast-1:123456789012:table/MyTable \
--s3-bucket my-export-bucket \
--s3-prefix dynamodb-exports/ \
--export-format DYNAMODB_JSON \
--export-time 2026-04-01T00:00:00Z
PITRが有効でないテーブルからはエクスポートできません。エクスポートを利用する場合は、事前にPITRを有効化してください。PITRには追加料金が発生します。
5-2. CloudWatch Logs から S3 へのエクスポート
CloudWatch Logsに蓄積されたログデータをS3にエクスポートする方法は主に2つあります。
方法1: CreateExportTask(バッチエクスポート)
指定したロググループのデータを、指定した期間分だけS3バケットにエクスポートするバッチ処理です。
aws logs create-export-task \
--task-name "export-2026-03" \
--log-group-name "/aws/lambda/my-function" \
--from 1709251200000 \
--to 1711929600000 \
--destination my-log-bucket \
--destination-prefix "cloudwatch-logs/lambda/"
- エクスポートされるファイルはgzip圧縮形式
- S3バケットには適切なバケットポリシーの設定が必要(CloudWatch Logsからの書き込み許可)
- 1つのアカウントで同時実行できるエクスポートタスクは1つ
- 最大12時間かかる場合がある(ニアリアルタイムではない)
S3バケットポリシーの例
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "logs.ap-northeast-1.amazonaws.com"
},
"Action": "s3:GetBucketAcl",
"Resource": "arn:aws:s3:::my-log-bucket"
},
{
"Effect": "Allow",
"Principal": {
"Service": "logs.ap-northeast-1.amazonaws.com"
},
"Action": "s3:PutObject",
"Resource": "arn:aws:s3:::my-log-bucket/cloudwatch-logs/*",
"Condition": {
"StringEquals": {
"s3:x-amz-acl": "bucket-owner-full-control"
}
}
}
]
}
方法2: サブスクリプションフィルター経由(ニアリアルタイム)
ニアリアルタイムでのエクスポートが必要な場合は、以下の構成を利用します。
①CloudWatch Logsのロググループにサブスクリプションフィルターを設定
②Amazon Data Firehose(旧Kinesis Data Firehose)がログデータを受信・バッファリング
③S3バケットに配信(オプションで配信時にフォーマット変換も可能)
- Amazon Data Firehoseを介することで、ニアリアルタイム(最短60秒のバッファ間隔)でS3に配信
- 配信時にデータのフォーマット変換(JSON→Parquetなど)も可能
- Lambda関数を挟んだデータ変換にも対応
使い分けの目安
| 方法 | 遅延 | コスト | ユースケース |
|---|---|---|---|
| CreateExportTask | 数分〜数時間 | 低い | 過去ログの一括アーカイブ |
| サブスクリプションフィルター + Data Firehose | 60秒〜 | 中程度 | リアルタイム監視・分析 |
5-3. その他のS3エクスポート連携
DynamoDBとCloudWatch Logs以外にも、多くのAWSサービスがS3へのエクスポートに対応しています。
| サービス | エクスポート方法 | 備考 |
|---|---|---|
| RDS/Aurora | スナップショットのS3エクスポート | Apache Parquet形式 |
| Redshift | UNLOAD コマンド | CSV/Parquet/JSON対応 |
| Athena | CTAS(CREATE TABLE AS SELECT) | クエリ結果を直接S3に保存 |
| GuardDuty | 検出結果のS3エクスポート | 自動エクスポート設定可能 |
| AWS Config | 構成履歴のS3配信 | コンプライアンス監査用 |
| CloudTrail | 証跡のS3配信 | デフォルトのログ保存先 |
| VPC Flow Logs | フローログのS3配信 | Parquet形式対応 |
| Cost and Usage Report | 請求レポート | CSV/Parquet形式 |
6. 2025-2026年の最新機能
6-1. S3 Tables
2024年12月のre:Invent 2024で発表され、S3上でApache Icebergテーブルをネイティブに管理する機能です。
- テーブルの自動コンパクション、スナップショット管理、参照不要ファイルの削除を自動実行
- S3上に保存したまま、Athena、Redshift、EMRなどから直接クエリ可能
- 手動でIcebergテーブルのメンテナンスを行う必要がなくなり、運用コストを大幅に削減
- 2025年12月のre:Invent 2025では、Storage Lensのメトリクスエクスポート先としてS3 Tablesに対応
6-2. S3 Vectors
2025年12月のre:Invent 2025でGAとなった、S3ネイティブのベクトルストレージです。
- 1インデックスあたり最大20億ベクトルをサポート(GA時点で10億→その後拡張)
- クエリレイテンシーは100ミリ秒以下
- 専用のベクトルデータベースと比較して最大90%のコスト削減
- セマンティック検索やRAG(Retrieval-Augmented Generation)のユースケースに最適
- ローンチ以降、25万以上のインデックスが作成され、400億以上のベクトルが投入され、10億以上のクエリが実行されたとAWSは公開している(2026年3月時点)
S3 Vectorsにより、ベクトル検索のためだけに専用データベースを構築・運用する必要がなくなります。S3のコスト構造でベクトル検索ができるのは大きなメリットです。
6-3. S3 Metadata
S3上のオブジェクトに対する集中メタデータ管理機能です。
- 大規模なバケットの再帰的なLIST操作が不要になる
- データカタログ作成やデータディスカバリの時間を大幅に短縮
- データレイクにおける「このバケットにどんなデータがあるか」の把握が瞬時に可能
6-4. アカウントリージョナル名前空間
2026年3月に発表された新機能で、S3の汎用バケットを自身のアカウントのリージョナル名前空間内に作成できるようになりました。
従来のS3はグローバルに一意なバケット名が必要でしたが、この機能により、別のアカウントで使用されているバケット名でも自分のアカウント内で利用できます。バケットURLの形式は以下の通りです。
# 従来(グローバル名前空間)
https://my-bucket.s3.amazonaws.com/
# 新方式(アカウントリージョナル名前空間)
https://ACCOUNT_ID.s3.REGION.amazonaws.com/my-bucket/
6-5. 最大オブジェクトサイズの拡張
2025年12月、S3の最大オブジェクトサイズが5TBから50TBに拡張されました。これは2006年のローンチ時の最大5GBから10,000倍の増加です。大規模なメディアファイル、科学データセット、機械学習の学習データなどの保存がさらに容易になりました。
7. S3 のスケールを支えるエンジニアリング
20周年ブログでは、AWS VP of Data and AnalyticsであるMai-Lan Tomsen Bukovecが語ったS3のエンジニアリングの詳細が紹介されています。
7-1. ロスレス設計
S3の耐久性を支えるのは、全フリート上の全バイトを継続的に検査するマイクロサービス群です。これらの監査サービスがデータの劣化の兆候を検出した瞬間に、自動的に修復システムを起動します。イレブンナインの耐久性設計目標は、レプリケーション係数と再レプリケーションフリートのサイジングに基づきますが、実際のシステムはオブジェクトが失われないように構築されています。
7-2. 形式手法と自動推論
S3のエンジニアは形式手法(Formal Methods) と自動推論(Automated Reasoning) を本番環境で活用しています。インデックスサブシステムにコードをチェックインするたびに、自動化された証明が整合性の退行をチェックします。クロスリージョンレプリケーションやアクセスポリシーの正当性の証明にも同じアプローチが使われています。
7-3. Rustへの書き換え
過去8年間にわたり、AWSはS3のリクエストパスにおけるパフォーマンスクリティカルなコードをRustで段階的に書き換えています。Blobの移動とディスクストレージは既に書き換え済みで、他のコンポーネントでも作業が進行中です。Rustの型システムとメモリ安全性の保証により、コンパイル時にバグのクラス全体を排除できます。
7-4. スケールは味方
S3は「スケールは味方である」という設計哲学に基づいています。S3が大きくなればなるほど、ワークロードの相関が減り、全利用者の信頼性が向上します。
おわりに
ここまでお読みいただきありがとうございます。
S3は2006年3月14日のローンチから20年間で、わずか数段落のブログ記事で公開されたシンプルなオブジェクトストレージから、500兆オブジェクト以上を保存し毎秒2億リクエストを処理する巨大インフラへと成長しました。
価格は1GBあたり15セントから約2セントへと85%以上下がり、Intelligent-Tieringだけで利用者全体が60億ドル以上を節約しています。ストレージクラスは8種類に増え、S3 Tables、S3 Vectors、S3 Metadataによってデータレイクやベクトル検索のプラットフォームへと進化しています。
そして最も重要なのは、2006年に書かれたコードが今日も変更なしで動作するというAPI互換性の一貫性です。これこそがS3の本質的な価値であり、20年間で培われた信頼の証です。
ではまた、お会いしましょう。
参考リンク
AWS公式ブログ
- Twenty years of Amazon S3 and building what's next - AWS News Blog
- Celebrate 15 Years of Amazon S3 with 'Pi Week' Livestream Events - AWS News Blog
- Celebrate Amazon S3's 17th birthday at AWS Pi Day 2023 - AWS News Blog
- Amazon S3 Vectors now generally available with increased scale and performance - AWS News Blog
- Introducing account regional namespaces for Amazon S3 general purpose buckets - AWS News Blog
