「S3にデータを放り込んでいたら、いつの間にかストレージ料金が毎月数百ドルになっていた」——こんな経験はないでしょうか。
オンプレミス環境ではディスクを買い足せば追加費用は減価償却だけで済みましたが、クラウドではGB単位で毎月課金が発生します。特にAmazon S3は手軽にデータを保存できる反面、ストレージクラスの選択を放置するとコストが膨らみがちです。
この記事では、S3の7つのストレージクラスの料金体系と特徴を比較し、データの利用頻度に応じた最適な使い分け方を解説します。ライフサイクルポリシーの設定手順まで含めているので、読み終えたらすぐに実践できます。

なぜS3のストレージクラス選びが重要なのか?オンプレとの違い
オンプレミスでは、SSDやHDDを購入して物理的にサーバーへ搭載します。初期投資は大きいものの、一度買ってしまえば容量あたりの月額コストを意識する場面は少なかったはずです。
S3はまったく考え方が違います。保存しているデータ量に対して毎月課金が発生し、さらにデータの取り出し(リトリーブ)にも料金がかかります。つまり「どれくらいの頻度でアクセスするか」によって、最適なストレージクラスが変わるのです。
たとえば、東京リージョン(ap-northeast-1)でS3 Standardに1TBを保存すると月額約$25.60(2026年3月時点)です。同じ1TBをS3 Glacier Deep Archiveに保存すれば月額約$1.01。実に95%以上の削減になります。
ただし、Glacier Deep Archiveからデータを取り出すには最大12時間かかります。頻繁にアクセスするデータをここに入れてしまうと、取り出し料金と待ち時間で業務に支障が出ます。
だからこそ、データの特性を見極めてストレージクラスを使い分けることが、S3コスト最適化の基本中の基本です。
S3ストレージクラス7種の特徴と料金を比較する
AWSは現在7つのS3ストレージクラスを提供しています。それぞれの特徴を東京リージョン(ap-northeast-1)の料金とともに整理します(2026年3月時点)。
1. S3 Standard(頻繁にアクセスするデータ向け)
もっとも一般的なストレージクラスです。アクセス頻度が高いデータに適しています。
・保存料金: $0.025/GB/月(最初の50TB)
・取り出し料金: 無料
・可用性: 99.99%
・最低保存期間: なし
・用途: Webアプリのアセット、頻繁に参照するログ、アクティブなデータ
2. S3 Intelligent-Tiering(アクセスパターンが不明なデータ向け)
アクセスパターンをS3が自動で監視し、最適な階層にデータを移動してくれます。30日間アクセスがなければ低頻度アクセス層へ、90日間なければアーカイブ層へ自動で移行します。
・保存料金: 高頻度層は$0.025/GB/月(Standardと同額)
・監視料金: $0.0025/1,000オブジェクト/月
・取り出し料金: 高頻度・低頻度層は無料
・最低保存期間: なし(ただし削除時に日割り課金なし)
・用途: アクセスパターンが予測しにくいデータ、データレイク
3. S3 Standard-IA(低頻度アクセス向け)
IAはInfrequent Accessの略です。月に1〜2回程度しかアクセスしないが、必要なときにはすぐに取り出したいデータに適しています。
・保存料金: $0.0138/GB/月
・取り出し料金: $0.01/GB
・最低保存期間: 30日
・最小オブジェクトサイズ: 128KB
・用途: バックアップ、災害復旧用データ、古いログファイル
4. S3 One Zone-IA(低頻度+単一AZ向け)
Standard-IAとほぼ同じですが、データが単一のアベイラビリティゾーンにのみ保存されます。AZ障害でデータが失われるリスクがある代わりに、Standard-IAより約20%安くなります。
・保存料金: $0.011/GB/月
・取り出し料金: $0.01/GB
・最低保存期間: 30日
・用途: 再生成可能なデータ、サムネイル画像のキャッシュ
5. S3 Glacier Instant Retrieval(アーカイブだが即時取り出し)
四半期に1回程度アクセスするアーカイブデータに最適です。名前に「Glacier」とありますが、取り出しはミリ秒単位で完了します。
・保存料金: $0.005/GB/月
・取り出し料金: $0.03/GB
・最低保存期間: 90日
・用途: 医療画像、メディアアーカイブ、過去の財務データ
6. S3 Glacier Flexible Retrieval(標準的なアーカイブ)
年に1〜2回のアクセスで、取り出しに数分〜数時間かかっても問題ないデータ向けです。
・保存料金: $0.0045/GB/月
・取り出し料金: Expedited $0.033/GB(1〜5分)、Standard $0.011/GB(3〜5時間)、Bulk $0.00275/GB(5〜12時間)
・最低保存期間: 90日
・用途: コンプライアンス用の長期保存データ、古いバックアップ
7. S3 Glacier Deep Archive(最安の長期保存)
S3のなかで最も安いストレージクラスです。7〜10年以上の長期保存を前提としたデータに適しています。
・保存料金: $0.002/GB/月
・取り出し料金: Standard $0.022/GB(12時間以内)、Bulk $0.00552/GB(48時間以内)
・最低保存期間: 180日
・用途: 法令で保存義務があるデータ、磁気テープの代替

料金比較表で一目でわかるストレージクラスの選び方
東京リージョン(ap-northeast-1)で1TBを1か月保存した場合の料金を比較します(2026年3月時点)。
| ストレージクラス | 月額保存料金(1TB) | 取り出し速度 | 最適な用途 |
|---|---|---|---|
| S3 Standard | 約$25.60 | 即時 | 頻繁にアクセスするデータ |
| S3 Intelligent-Tiering | 約$25.60〜 | 即時〜数分 | アクセスパターン不明 |
| S3 Standard-IA | 約$14.13 | 即時 | 月1〜2回のアクセス |
| S3 One Zone-IA | 約$11.26 | 即時 | 再生成可能な低頻度データ |
| Glacier Instant Retrieval | 約$5.12 | ミリ秒 | 四半期に1回程度 |
| Glacier Flexible Retrieval | 約$4.61 | 1分〜12時間 | 年1〜2回のアクセス |
| Glacier Deep Archive | 約$1.01 | 12〜48時間 | 7年以上の長期保存 |
StandardからGlacier Deep Archiveに移すだけで、保存料金は96%削減できます。ただし取り出し料金と最低保存期間の制約があるため、データの利用頻度を正確に把握してから移行することが大切です。
ライフサイクルポリシーで自動的にコストを最適化する
手動でストレージクラスを変更するのは現実的ではありません。S3にはライフサイクルポリシーという機能があり、ルールに従ってオブジェクトのストレージクラスを自動で移行できます。
1. マネジメントコンソールからの設定手順
AWSマネジメントコンソールでS3バケットを開き、「管理」タブを選択します。「ライフサイクルルールを作成する」をクリックして、以下の要領で設定します。
・ルール名: わかりやすい名前をつける(例: logs-archive-policy)
・フィルター: プレフィックスで対象を絞る(例: logs/)
・移行アクション: 作成後30日でStandard-IA、90日でGlacier Flexible Retrieval、365日でGlacier Deep Archiveなど
・有効期限アクション: 不要になったデータの自動削除日数
2. AWS CLIでの設定方法
まず、ライフサイクルルールをJSON形式で定義します。
# lifecycle-rule.json を作成 { "Rules": [ { "ID": "logs-archive-policy", "Status": "Enabled", "Filter": { "Prefix": "logs/" }, "Transitions": [ { "Days": 30, "StorageClass": "STANDARD_IA" }, { "Days": 90, "StorageClass": "GLACIER" }, { "Days": 365, "StorageClass": "DEEP_ARCHIVE" } ], "Expiration": { "Days": 2555 } } ] }
次に、このルールをバケットに適用します。
# AWS CLIでライフサイクルルールを適用 aws s3api put-bucket-lifecycle-configuration \ --bucket your-bucket-name \ --lifecycle-configuration file://lifecycle-rule.json
設定を確認するには以下のコマンドを使います。
# 現在のライフサイクルルールを確認 aws s3api get-bucket-lifecycle-configuration \ --bucket your-bucket-name
3. 設計時の注意点
ライフサイクルポリシーを設定する際に見落としがちなポイントがあります。
・最低保存期間の罠: Standard-IAは30日、Glacierは90日、Deep Archiveは180日の最低保存期間があります。期間内に削除や移行をすると、残り日数分の料金が発生します
・最小オブジェクトサイズ: Standard-IAとOne Zone-IAは128KB未満のオブジェクトでも128KB分の料金が課金されます。小さいファイルが大量にある場合は要注意です
・移行コスト: ストレージクラスの変更自体にもリクエスト料金が発生します。1,000リクエストあたり$0.01〜$0.05程度ですが、オブジェクト数が多いと無視できません
実践パターン別のコスト最適化戦略
データの特性に応じた具体的な設計パターンを紹介します。
パターン1: アプリケーションログの段階的アーカイブ
直近のログはすぐに検索したいが、古いログは保存だけできれば十分——という典型的なパターンです。
・0〜30日: S3 Standard(CloudWatch Logs InsightsやAthenaで即座に分析)
・31〜90日: S3 Standard-IA(障害調査時にたまに参照)
・91〜365日: Glacier Flexible Retrieval(監査対応で年に数回取り出す程度)
・366日〜7年: Glacier Deep Archive(法令保存義務への対応)
・7年超: 自動削除
この構成で月間10TBのログを保存した場合、全期間Standardのままだと年間約$3,072になりますが、ライフサイクルポリシーを適用すれば年間約$500以下に抑えられます。
パターン2: メディアファイルの最適配置
ECサイトの商品画像や動画など、公開中のものは頻繁にアクセスされますが、販売終了後はほとんどアクセスがなくなるケースです。
・公開中: S3 Standard + CloudFrontキャッシュ
・販売終了後90日: Glacier Instant Retrieval(再利用時に即時取得可能)
・1年以上経過: Glacier Deep Archive
パターン3: データレイクにはIntelligent-Tiering
分析用のデータレイクでは、どのデータがいつアクセスされるか予測が難しい場合があります。こうしたケースではS3 Intelligent-Tieringが最適です。
監視料金(1,000オブジェクトあたり月$0.0025)が発生しますが、アクセスパターンに応じて自動的に最安の階層に移動してくれるため、手動で管理する手間とコストの両方を削減できます。
S3コスト分析ツールの活用方法
最適なストレージクラスを判断するには、現在のデータの利用状況を可視化する必要があります。AWSには複数のコスト分析ツールが用意されています。
S3 Storage Lens
S3 Storage Lensは、バケット全体のストレージ使用状況をダッシュボードで可視化するツールです。無料版でも28のメトリクスを確認でき、ストレージクラスごとの使用量やオブジェクト数の推移を把握できます。
# AWS CLI でS3 Storage Lensの設定を確認 aws s3control list-storage-lens-configurations \ --account-id 123456789012
S3 Storage Class Analysis
特定のバケットまたはプレフィックスに対して、アクセスパターンを分析してくれる機能です。30日以上のデータ収集後に、Standard-IAへの移行が適切かどうかを推奨してくれます。
マネジメントコンソールで対象バケットの「メトリクス」タブから「ストレージクラス分析フィルターを作成」で設定できます。
AWS Cost Explorerとの組み合わせ
Cost ExplorerでS3のコストを「ストレージクラス別」「バケット別」にブレイクダウンすると、どのバケットがコストの大部分を占めているか一目でわかります。まずは金額の大きいバケットから着手するのが効率的です。
よくあるトラブルと対処法
「想定外の取り出し料金が発生した」
GlacierやDeep Archiveからのデータ取り出しで高額な料金が発生するケースです。特にExpedited(迅速)取り出しは標準取り出しの約3倍の料金がかかります。
対処法としては、取り出し時にBulkオプションを選ぶことでコストを最小限に抑えられます。Bulk取り出しは時間がかかりますが、料金はExpeditedの約10分の1です。また、Provisioned Capacityを事前購入することで、Expedited取り出しを確実に利用できるようになります。
「最低保存期間内にオブジェクトを削除してしまった」
Standard-IA(30日)やGlacier(90日)、Deep Archive(180日)には最低保存期間があり、期間内に削除すると残り日数分の料金が課金されます。
ライフサイクルポリシーを設計する際は、移行先の最低保存期間を考慮して日数を設定してください。たとえば、Standard-IAに30日で移行する場合、最低でも60日後にGlacierへ移行するように設定すれば、Standard-IAの最低保存期間をクリアできます。
「小さいファイルを大量にIAクラスに移行したらコストが増えた」
Standard-IAとOne Zone-IAでは、128KB未満のオブジェクトも128KB分の料金が課金されます。1KBのファイルを100万個保存すると、実データは約1GBなのに128GBぶんの料金が発生します。
小さいファイルが多い場合は、tar.gzなどでまとめてからIAクラスに移行するか、Intelligent-Tieringを使う方がコスト効率が良くなります。

本記事のまとめ
S3のコスト最適化は、データの利用頻度に応じたストレージクラスの使い分けが基本です。
| データの特性 | 推奨ストレージクラス | Standardとの削減率 |
|---|---|---|
| 毎日アクセスする | S3 Standard | — |
| アクセス頻度が不明 | S3 Intelligent-Tiering | 最大40%〜 |
| 月1〜2回のアクセス | S3 Standard-IA | 約45% |
| 四半期に1回程度 | Glacier Instant Retrieval | 約80% |
| 年1〜2回のアクセス | Glacier Flexible Retrieval | 約82% |
| ほぼアクセスしない長期保存 | Glacier Deep Archive | 約96% |
ライフサイクルポリシーを正しく設定すれば、データの移行は完全に自動化できます。まずはS3 Storage LensやCost Explorerで現在の利用状況を把握し、金額の大きいバケットから最適化に着手してみてください。
オンプレ時代の「とりあえず大容量ディスクを買い足す」という発想から、「データの温度に応じてコストを最適化する」という発想への転換が、クラウドのコスト管理では欠かせません。
なお、S3の基本操作やバケットの作成手順については「Amazon S3入門 バケット作成からアクセス制御まで現場で使える基礎知識」で詳しく解説しています。EC2のコスト削減については「EC2コスト削減 リザーブドインスタンスとSavings Plansの違いと選び方」もあわせてご覧ください。
Linuxサーバー上でのS3操作やAWS CLIの基礎については、姉妹サイトLinuxMaster.JPで詳しく解説しています。
S3の料金、見直すなら今がチャンスです
ストレージクラスの最適化はクラウドコスト削減の第一歩です。
オンプレの経験を活かしながら、現場で使えるクラウドスキルを体系的に身につけたい方へ、メルマガで実践的なクラウド活用ノウハウをお届けしています。


コメント