コスト最適化
EC2 の購入オプション(On-Demand、Savings Plans、Reserved、Spot)、低コストのストレージクラス、データ転送料金、コスト監視ツール。
- 分野コスト最適化
- 図 9
- 出題パターン 11
- サービス 13
5 分で押さえる要点
- On-Demand:秒単位 / 時間単位の支払い、コミットメントなし。短期間で予測できないワークロードや検証中のワークロードに適しています。比較の基準となる最も高い料金です。
- Savings Plans:1 年または 3 年、1 時間あたり一定額(USD)の利用をコミットし、On-Demand より安い料金を得ます。Compute Savings Plans が最も柔軟です(すべての family、Region、OS、Fargate と Lambda も対象)。EC2 Instance Savings Plans は割引率が高い一方、1 つの Region 内の 1 つの family に固定されます。
- Reserved Instances:特定の構成を 1 年または 3 年予約します。Standard は割引率が高く Marketplace で売却でき、Convertible は別の構成に変更できます。RDS、ElastiCache、Redshift、OpenSearch には独自の reserved があります。問題文が「データベースが 24 時間 365 日安定稼働」なら → reserved / Database Savings Plans。
- Spot Instances:EC2 の余剰キャパシティを使い最大 90% 割引ですが、AWS が回収する可能性があり、事前通知は 2 分前のみです。中断に耐えられる処理に適しています:バッチ、画像処理、CI、EMR の task node、ステートレスな worker。データベースや停止できない処理には使いません。
- 組み合わせ:安定したベース部分は Savings Plans / RI、変動部分は On-Demand、中断に耐えられる部分は Spot で実行します。mixed instances policy を設定した Auto Scaling group で On-Demand と Spot を混在させ、複数の instance type を使って回収リスクを下げます。
- Dedicated Host:物理サーバー 1 台を専有し、socket / core を確認できます。問題文に socket / core 単位のソフトウェアライセンス(BYOL)やコンプライアンス要件があれば → Dedicated Host。
- コミットの前に適正サイズ化(rightsizing):Compute Optimizer がより適切なインスタンス、EBS、Lambda を提案します。過大なサイズのマシンに Savings Plans をコミットすると、無駄を 1~3 年間固定することになります。
- S3:アクセス頻度に応じてストレージクラスを選び、ライフサイクルポリシーでクラスの移行 / 削除を自動化します。Standard-IA と One Zone-IA は最低 30 日、Glacier Instant / Flexible は 90 日、Deep Archive は 180 日分課金されます。IA はオブジェクトあたり最低 128 KB で課金されます。
- アクセスパターンが事前にわからなければ S3 Intelligent-Tiering:階層を自動で移動し、取り出し料金はなく、オブジェクトごとのモニタリング料金のみです。128 KB 未満のオブジェクトはモニタリング対象外で、常に Frequent 階層に置かれます。
- データ転送:インターネットへの送信および AZ 間 / Region 間の転送は課金されます。インターネットへの送信は毎月最初の 100 GB が無料です(全サービス合算)。削減策:CloudFront でユーザーの近くにキャッシュ、NAT を経由せず S3 / DynamoDB には gateway endpoint、適切な場合は通信量の多いトラフィックを同じ AZ 内に収めます。
- NAT Gateway は時間単位と処理 GB 単位で課金されます。プライベートサブネットから S3 / DynamoDB への大量トラフィック:NAT を経由せず gateway endpoint(無料)を使います。
- Cost Explorer はコストの確認と予測を行い、Savings Plans / RI の購入を推奨します。Budgets はしきい値を設定してアラートを送り、action を自動実行できます。問題文が「コストが超過しそうなときに警告」なら → Budgets、「傾向を分析し、コストのかかるサービスを特定」なら → Cost Explorer。
- Cost and Usage Report(Data Exports)は最も詳細なコストデータで、S3 に出力して Athena でクエリします。cost allocation tag を付けてプロジェクト / 部門ごとにコストを配分します。
- AWS Organizations の一括請求(consolidated billing):利用量を合算して階層料金を適用し、Savings Plans / RI をアカウント間で共有します。問題文が複数アカウントで、請求書を 1 つにして共通の割引を活用したいなら → Organizations。
- 使っていないものを停止:業務時間外の開発環境、孤立した EBS volume / snapshot、Elastic IP とパブリック IPv4(いずれも時間単位で課金)。Trusted Advisor と Cost Optimization Hub がアイドル状態や低使用率のリソースを一覧表示します。
構成図
負荷の形に合わせて購入方法を組み合わせる
ステップ
- Savings Plans は継続的な利用分に自動適用されます。コミット額はピークではなくベース部分に合わせます。
- ピーク時は On-Demand のマシンを追加して秒単位で支払い、ピークが終われば削除します。
- 中断に耐えられる処理は Spot で実行し、複数の instance type / AZ に分散して同時に回収されにくくします。
Spot の中断通知への対応(2 分)
S3 ライフサイクル:データの経過日数でクラスを移行
ステップ
- 30 日後、読み取りが減ったら Standard-IA へ。すぐに読めますが取り出し料金がかかります。
- 古くなるほど安いクラスへ移します。Glacier Flexible は読み取り前に restore が必要です。
- 長期保存は Deep Archive に置き、保持期限が来たら自動で削除します。
S3 へは NAT 経由か gateway endpoint 経由か
ステップ
- endpoint がない場合:S3 への GB すべてに NAT の処理料金がかかります。
- プライベートサブネットの route table に gateway endpoint を追加:S3 へのトラフィックが直接届き、endpoint の料金はかかりません。
CloudFront で origin 側の負荷とコストを削減
ステップ
- ユーザーは最寄りのエッジからダウンロードします。
- origin はキャッシュミス分と動的リクエストだけを処理します。
AWS Budgets:アラートと自動アクション
ステップ
- 予測コストが予算の 80% を超える:アラートを送信します。
- 予算を超過:budget action が policy を適用し、新しいリソースの作成をブロックします。
詳細なコストレポート:CUR + Athena
ステップ
- cost allocation tag を有効化して、タグがコストレポートに表示されるようにします。
- 詳細なレポートが S3 に出力されます。
- Athena でプロジェクトごとのコストをクエリし、ダッシュボードで財務部門に表示します。
Organizations:請求書を 1 つに、割引を共有
ステップ
- すべてのアカウントのコストが 1 つの請求書にまとめられ、利用量の合算により階層料金が適用されます。
- prod で購入して使い切れなかった Savings Plans は dev に自動適用されます(共有を無効にしていない場合)。
EC2 の購入方法を選ぶ
ステップ
- 動画レンダリング、CI、バッチでのデータ処理:Spot を使い、複数の instance type を混在させて回収されにくくします。
- 常時稼働のベース負荷だが、instance family の変更やコンテナへの移行の可能性がある:Compute Savings Plans が最も柔軟です。
- 短期で予測できない負荷:On-Demand、秒単位の支払い、コミットメントなし。
比較表
EC2 の購入オプション
| On-Demand | Savings Plans | Reserved Instances | Spot | |
|---|---|---|---|---|
| コミットメント | なし | USD / 時間、1 年または 3 年 | 特定の構成、1 年または 3 年 | なし |
| 割引(最大) | 0% | Compute 最大 66%、EC2 Instance 最大 72% | Standard は Convertible より大きい | 最大 90% |
| 柔軟性 | 最も高い | Compute:すべての family / Region / Fargate / Lambda | Convertible は変更可、Standard は売却可 | 回収あり、2 分前に通知 |
| 用途 | 短期、予測不能 | 安定したベース、アーキテクチャ変更の可能性あり | 安定したベース、固定構成 | 中断に耐えられる処理 |
コスト別の S3 ストレージクラス
| クラス | アクセス | 最低保存期間 | 備考 |
|---|---|---|---|
| Standard | 頻繁、ミリ秒 | なし | ≥ 3 AZ |
| Intelligent-Tiering | 事前に不明 | なし | オブジェクトごとのモニタリング料金、取り出し料金なし |
| Standard-IA | 低頻度、ミリ秒は必要 | 30 日、128 KB | GB 単位の取り出し料金 |
| One Zone-IA | 低頻度、再作成可能なデータ | 30 日、128 KB | 1 AZ のみ |
| Glacier Instant Retrieval | 四半期に 1 回程度、ミリ秒 | 90 日、128 KB | 取り出し料金 |
| Glacier Flexible Retrieval | 年に 1 回程度、数分~数時間 | 90 日 | 読み取り前に restore が必要 |
| Glacier Deep Archive | 年に 1 回未満、数時間 | 180 日 | 最安、restore が必要 |
コスト管理ツール
| ツール | 機能 | よく出る問われ方 |
|---|---|---|
| Cost Explorer | コストの確認、フィルタ、予測、Savings Plans / RI の推奨 | どのサービスでコストが増えた? Savings Plans をどれだけ買うべき? |
| Budgets | コスト / 利用量 / RI・SP カバレッジのしきい値、アラート、action | 予算超過が近づいたら通知、ブロック用の policy を自動適用 |
| Cost and Usage Report / Data Exports | 明細行単位の詳細データを S3 に出力 | Athena で分析、独自ダッシュボード |
| Compute Optimizer | EC2、EBS、Lambda、ECS の適正サイズを推奨 | 低使用率のマシン、より安いインスタンスタイプの選定 |
| Trusted Advisor | アイドル状態のリソース、最適化されていない設定をチェック | 未アタッチの EBS、余分な EIP の検出… |
| Pricing Calculator | 構築前のコスト見積もり | 新しいアーキテクチャの見積もり |
データ転送コストの削減
| 状況 | 安くする方法 |
|---|---|
| プライベートサブネットから S3 / DynamoDB への読み書きが多い | NAT Gateway の代わりに Gateway endpoint |
| 世界中のユーザーが静的コンテンツをダウンロード | CloudFront でエッジにキャッシュ |
| 2 つのサービスが大量のデータをやり取り | 高可用性要件に影響しなければ同じ AZ に配置 |
| 別 Region へのバックアップ | 必要な部分のみコピー、圧縮、転送先で安いストレージクラスを選択 |
よく出る出題パターン
1アプリケーションは今後 3 年間 EC2 上で 24 時間 365 日安定稼働しますが、チームは instance family を変更したり、一部を Fargate に移行したりできるようにしたいと考えています。
答えを見る
正解: 3 年の Compute Savings Plans
すべての family / Region の EC2 に加え、Fargate と Lambda にも適用されます。
不正解: Standard Reserved Instances
構成に固定され、Fargate には適用されません。
不正解: EC2 Instance Savings Plans
1 つの Region 内の 1 つの family に固定され、Fargate は含まれません。
2毎晩数千枚の画像を処理する必要があります。ジョブは途中で停止されてもやり直せます。最も安くしたいと考えています。
答えを見る
正解: Spot Instances(例:AWS Batch や Spot を使う Auto Scaling、複数の instance type)
中断に耐えられる処理で、最大 90% 割引になります。
不正解: On-Demand
実行はできますが、はるかに高くつきます。
不正解: Reserved Instances
数時間しか実行しなくても丸 1 日分を支払うことになります。
3Web サイトには 10 台分の安定したベース負荷があり、ピーク時には数時間だけ最大 30 台を追加する必要があります。
答えを見る
正解: ベースの 10 台分は Savings Plans / RI、ピーク部分は Auto Scaling で On-Demand(中断に耐えられるなら Spot も)
負荷の各部分にそれぞれ適した購入方法を使います。
不正解: 40 台分の Savings Plans を購入
オフピーク時にもピーク時のキャパシティ分を支払うことになります。
4規制によりログを 7 年間保持する必要があります。最初の 30 日はよく参照されますが、その後はほとんど誰も読まず、必要なときは数時間待てます。
答えを見る
正解: ライフサイクル:Standard 30 日 → Glacier Deep Archive、7 年後に削除
復元時に数時間待てるデータには Deep Archive が最も安価です。
不正解: S3 Standard のまま置いておく
ほとんど読まれないデータに高い料金を払うことになります。
不正解: すべて One Zone-IA
コンプライアンス対象のデータを 1 つの AZ に置くべきではなく、Glacier より高価でもあります。
5バケットには数百万のオブジェクトがあり、アクセスパターンは予測できません。
答えを見る
正解: S3 Intelligent-Tiering
アクセスに応じて階層を自動で移動し、取り出し料金はかかりません。
不正解: アクセスログに基づいてクラスを移行するジョブを自作
運用の手間がかかり、誤りも起きやすくなります。
6プライベートサブネットの EC2 が同じ Region の S3 から大量のデータをダウンロードするため、NAT Gateway の請求額が非常に高くなっています。
答えを見る
正解: S3 用の Gateway endpoint を作成し、プライベートサブネットの route table にルートを追加
S3 へのトラフィックが NAT を経由しなくなります。gateway endpoint は無料です。
不正解: NAT instance に切り替える
データ転送のコストは残り、運用の手間も増えます。
7世界中のユーザーが EC2 から画像や動画をダウンロードするため、インターネットへのデータ転送コストが高くなっています。
答えを見る
正解: 前段に CloudFront を置き、静的コンテンツを S3 に移して origin にする
コンテンツがエッジにキャッシュされ、origin からの取得が減ります。ユーザーにとっても速くなります。
不正解: インスタンスサイズを大きくする
インターネットへ送信されるデータ量は減りません。
8経営陣は、月間コストの予測が予算の 80% を超えそうなときにメールで通知を受け、超過したら追加のリソース作成を自動でブロックしたいと考えています。
答えを見る
正解: 予測 80% のアラート(SNS / メール)と、IAM policy または SCP を適用する budget action を設定した AWS Budgets
Budgets は実績と予測の両方のしきい値に対応し、自動 action も実行できます。
不正解: Cost Explorer
確認と分析のためのもので、しきい値によるアラートは送信しません。
不正解: CloudWatch billing alarm
発生済みの実際のコストに基づく通知のみで、Budgets のような予測や action はありません。
9企業には 30 の AWS アカウントがあり、請求書を 1 つにまとめ、あるアカウントで購入した Savings Plans を他のアカウントでも使えるようにしたいと考えています。
答えを見る
正解: consolidated billing を使う AWS Organizations
請求書は 1 つ、階層割引は合計利用量で計算され、Savings Plans / RI はアカウント間で共有されます。
不正解: 各アカウントが個別に Savings Plans を購入
あるアカウントでは余り、別のアカウントでは足りなくなりがちです。
10財務部門はプロジェクトごとにコストを配分し、SQL で詳細なレポートを自作する必要があります。
答えを見る
正解: プロジェクトごとに cost allocation tag を付け、Cost and Usage Report(Data Exports)を S3 に出力して Athena でクエリ
CUR は最も詳細なデータで、tag の列があります。
不正解: 毎月の PDF 請求書を読む
詳細さが足りず、プロジェクトごとに分けられません。
11データベースソフトウェアのライセンスは物理 core 数で課金され、企業は既存のライセンスを EC2 で使いたいと考えています。
答えを見る
正解: EC2 Dedicated Host
物理 socket / core が見えるため、core 単位の BYOL ライセンスを使えます。
不正解: Dedicated Instances
専用ハードウェアですが、ライセンス計算のための socket / core の可視化や制御はできません。
早見表
まずどこでコストを最適化するか?
| やりたいこと | 使うもの |
|---|---|
| 常時稼働のベース負荷、family 変更 / Fargate 移行の可能性あり | Compute Savings Plans · 図を見る |
| 1 つの Region 内で 1 つの family に固定されたベース負荷 | EC2 Instance Savings Plans または Standard RI · 図を見る |
| 中断に耐えられる処理 | Spot(複数の instance type、2 分前通知に対応) · 図を見る |
| socket / core 単位のライセンス | Dedicated Host |
| 古くなるほど読まれなくなるデータ | S3 ライフサイクルで IA / Glacier へ移行 · 図を見る |
| アクセスパターンが不明 | S3 Intelligent-Tiering |
| S3 / DynamoDB へのトラフィックで NAT 料金が高い | Gateway endpoint · 図を見る |
| インターネットへのデータ転送料金が高い | CloudFront · 図を見る |
| 予算超過が近づいたら警告 / ブロック | AWS Budgets + budget action · 図を見る |
| tag 別の詳細なコストレポート | Cost and Usage Report + Athena · 図を見る |
| 複数アカウント、請求書は 1 つ、割引を共有 | Organizations consolidated billing · 図を見る |
| リソース使用率の低いマシン | コミット前に Compute Optimizer(rightsizing) |
落とし穴
- データベースや途中で止められない処理に Spot を使う。
- Savings Plans / RI をベース部分ではなくピーク負荷に合わせて購入する。
- rightsizing の前にコミットする:無駄を 1~3 年間固定してしまう。
- family を変更するとわかっているのに Standard RI を選ぶ:Convertible RI か Compute Savings Plans のほうが適している。
- 小さいオブジェクトや短期間のオブジェクトを Standard-IA / Glacier に移す:最低 128 KB と 30 / 90 / 180 日分が課金される。
- すぐに読む必要があるデータに Glacier Flexible Retrieval / Deep Archive を選ぶ:restore が必要で、数分~数時間待つ。
- S3 へのトラフィックをすべて NAT Gateway 経由にし、無料の gateway endpoint を使わない。
- 大量のデータをやり取りするサービスを設計する際に AZ 間のデータ転送料金を見落とす。
- 問題がしきい値によるアラートを求めているのに Cost Explorer を選ぶ:正解は Budgets。
- 使っていない EBS volume、snapshot、Elastic IP を放置する:課金は続く。
- Dedicated Instances で core 単位のライセンスを解決できると考える:必要なのは Dedicated Host。
このモジュールのサービス
変わりやすい数値 (AWS ドキュメントで確認済み)
- Spot Instances は On-Demand と比べて最大 90% 割引になります。 2026-10-16 確認 ↗
- Spot の中断通知は、インスタンスの停止 / 終了の 2 分前に(EventBridge とインスタンスメタデータ経由で)発行されます。 2026-10-16 確認 ↗
- Savings Plans は 4 種類あります:Compute(最大 66%、EC2、Fargate、Lambda が対象)、EC2 Instance(最大 72%、1 つの Region 内の 1 つの family)、Database(最大 35%)、SageMaker AI(最大 64%)。 2026-10-16 確認 ↗
- Savings Plans の期間は 1 年または 3 年で、支払いは All upfront / Partial upfront / No upfront です。 2026-10-16 確認 ↗
- Standard RI は変更できませんが RI Marketplace で売却できます。Convertible RI は変更できますが Marketplace では売却できません。 2026-10-16 確認 ↗
- AWS Budgets のデータ更新は 1 日最大 3 回です。実際のコストまたは予測コストに基づいてアラートを出し、メール / SNS で送信します。 2026-10-16 確認 ↗
- S3 Standard-IA と One Zone-IA:最低 30 日と 128 KB。Glacier Instant / Flexible Retrieval:90 日。Deep Archive:180 日。 2026-10-16 確認 ↗
- S3 Intelligent-Tiering には取り出し料金がありません。128 KB 未満のオブジェクトはモニタリング対象外で、常に Frequent Access 階層に置かれます。 2026-10-16 確認 ↗
- インターネットへのデータ送信は毎月最初の 100 GB が無料です(全サービス・全 Region の合算、中国と GovCloud を除く)。 2026-10-16 確認 ↗
- S3 用の Gateway endpoint には追加料金がかかりません。 2026-10-16 確認 ↗
- VPC 内のリソースに割り当てられたパブリック IPv4 はすべて、使用中の Elastic IP も含めて時間単位で課金されます。 2026-10-16 確認 ↗
- On-Demand Capacity Reservation は 1 つの AZ で EC2 キャパシティを確保します。即時利用タイプはコミットメント不要ですが、それ自体に割引はありません。割引を得るには Savings Plans または Regional RI と組み合わせます。 2026-10-19 確認 ↗