EC2の料金体系を完全解説!オンデマンド・リザーブド・無料枠の違いとは?
生徒
「AWSのEC2を使ってみたいんですが、料金がどれくらいかかるのか不安です…」
先生
「EC2にはいくつかの料金体系があって、使い方によってコストが大きく変わりますよ。オンデマンド、リザーブド、無料利用枠などがあります。」
生徒
「それぞれの違いって具体的にはどうなってるんですか?」
先生
「では、それぞれのEC2の料金タイプについて詳しく説明していきましょう!」
1. EC2の料金体系とは?
AWS EC2(Elastic Compute Cloud)のコスト計算は、基本的に使った分だけ支払う「従量課金制(ペイアズユーゴー)」がベースとなっています。しかし、すべての利用者が同じ単価で支払うわけではありません。
AWSでは、利用者の「使用期間」や「コミットメント(約束)」に応じて、主に以下の3つの料金プランを使い分けることで、コストを最適化できるようになっています。
- オンデマンドインスタンス:事前予約なしで、必要な時に必要なだけ使い、秒単位または時間単位で支払う標準プラン。
- リザーブドインスタンス:1年または3年の継続利用を約束することで、オンデマンドに比べて大幅な割引を受けるプラン。
- 無料利用枠(Free Tier):アカウント作成から12か月間、特定の条件を満たせば0円で利用できる初心者向け特典。
「プログラミングやインフラの学習を始めたばかり」という方は、まずは無料利用枠の範囲内で操作に慣れ、特定の期間だけ集中して開発を行う場合はオンデマンド、商用サービスとして24時間365日動かすことが決まったらリザーブドを検討するという流れが一般的です。
たとえば、プログラミング未経験の方が「今月はどのくらい料金がかかるかな?」と計算するプログラムをJavaで作ってみる場合、以下のようにプランごとに単価(変数)を使い分けて計算するイメージを持つと分かりやすいでしょう。
public class Ec2PriceCalculator {
public static void main(String[] args) {
// 1時間あたりの料金(例:t3.microの場合)
double onDemandPrice = 0.0104; // オンデマンド単価
double reservedPrice = 0.0062; // リザーブド単価(約40%OFFの例)
int usageHours = 720; // 1ヶ月(30日)フル稼働した場合
System.out.println("オンデマンドの場合: " + (onDemandPrice * usageHours) + " USD");
System.out.println("リザーブドの場合: " + (reservedPrice * usageHours) + " USD");
}
}
オンデマンドの場合: 7.488 USD
リザーブドの場合: 4.464 USD
このように、EC2の料金体系は「自由度をとるか、安さをとるか」の選択です。自分のプロジェクトのフェーズに合わせて最適なプランを選ぶことが、クラウドを賢く使いこなす第一歩となります。
2. オンデマンドインスタンスとは?
オンデマンドインスタンスは、使った分だけ料金が発生する従量課金制です。時間単位(または秒単位)で課金されるため、試験運用や一時的な作業に最適です。
オンデマンドの特徴:
- 初期費用不要・契約不要
- 必要なときにすぐ使える
- 停止中は課金されない(EBS料金は発生)
例えば、東京リージョンで t3.micro を使った場合、1時間あたりおよそ0.0104 USD程度の料金がかかります。
3. リザーブドインスタンスとは?
リザーブドインスタンス(Reserved Instance)は、1年または3年の長期契約を結ぶことで、オンデマンドよりも大幅な割引が受けられる料金体系です。
リザーブドの主な特徴:
- 最大で72%の割引(使用条件による)
- 安定した長期利用に向いている
- 一部前払い/全部前払い/後払いの選択肢がある
Webサーバーや社内アプリケーションなど、長期的に稼働させるEC2インスタンスに適しています。ただし、一度契約すると変更やキャンセルができないため、使用頻度が読める場面で使うのがベストです。
4. 無料利用枠(Free Tier)について
AWSでは、新規アカウント作成から12か月間、一部のリソースを無料で利用できる「無料利用枠」が用意されています。
EC2での無料枠の条件:
- 対象インスタンスタイプ:
t2.microまたはt3.micro - 1か月あたり750時間まで無料
- Amazon Linux や Ubuntu などが利用可能
例えば、1台のインスタンスを24時間ずっと稼働しても約31日分=750時間の範囲内に収まります。開発学習・検証など初心者にとっては最適な選択肢です。
5. それぞれの料金プランの比較まとめ
| プラン名 | 課金方式 | 用途 | メリット | 注意点 |
|---|---|---|---|---|
| オンデマンド | 従量課金(秒単位/時間単位) | 短期間の実験・検証 | 柔軟性が高く契約不要 | 長期利用では割高 |
| リザーブド | 期間契約(1年/3年) | 安定運用・商用サービス | 最大72%割引 | 中途解約・変更不可 |
| 無料利用枠 | 制限付き無料 | 初学者・試用 | コストゼロで試せる | 期間とインスタンスに制限 |
6. EC2の料金を抑えるためのコツ
AWS EC2の料金は使い方次第で大きく変わります。以下のような工夫でコスト削減が可能です。
- 使わないときはインスタンスを停止(ストレージ料金は別)
- 無料枠を活用して学習や検証を行う
- リザーブドを検討し長期利用で安くする
- スポットインスタンス(変動価格)を併用する
- CloudWatchでインスタンスの利用状況を監視
また、料金アラートを設定しておくことで、思わぬ課金を防ぐことも可能です。
7. スポットインスタンスで最大90%コスト削減
さらに踏み込んだコスト削減を目指すなら、スポットインスタンスの活用が欠かせません。これはAWS内の「余っている計算リソース」をオークション形式で利用する仕組みです。
スポットインスタンスの主な特徴:
- オンデマンド料金と比較して最大90%オフ
- AWS側のリソース状況により、インスタンスが中断(強制終了)される可能性がある
- 中断の通知は2分前に行われる
突然の終了が許容できるバッチ処理、データ分析、CI/CDのテスト環境などに最適です。予備のインスタンスとして組み合わせることで、全体の運用コストを劇的に下げることができます。
8. Savings Plans(セービングスプラン)の活用
リザーブドインスタンスと並んで強力な割引プランがSavings Plansです。これは「1年または3年の期間、1時間あたり10ドル分使用する」といったコミットメント(利用金額の約束)をすることで割引を受ける仕組みです。
Savings Plansが選ばれる理由:
- インスタンスファミリーやリージョンを変更しても割引が適用される柔軟性
- EC2だけでなく、FargateやLambdaにも適用可能
- リザーブドインスタンスと同等の高い割引率
リザーブドインスタンスよりも柔軟性が高いため、2026年現在のAWSコスト最適化(FinOps)においては、まずこのSavings Plansから検討するのが主流となっています。
9. インスタンス以外にかかる「隠れた費用」に注意
EC2の料金計算で初心者が陥りやすい罠が、インスタンス代金以外のコストです。サーバーを動かしている時間以外にも、以下の費用が発生することを忘れないようにしましょう。
- EBS(ストレージ)料金:インスタンスを停止していても、データを保存しているディスク容量分は課金されます。
- データ転送量(アウトバウンド):AWSからインターネットへデータを送信する際に発生します(受信は無料)。
- 固定IP(Elastic IP):インスタンスに紐付けていない状態で放置すると、少額の維持費が発生します。
「インスタンスを止めたから安心」と思わず、不要になったボリューム(EBS)やスナップショットをこまめに削除することが、無駄な出費を抑える最大のポイントです。
まとめ
今回の記事では、AWS EC2の料金体系について、オンデマンドインスタンス・リザーブドインスタンス・無料利用枠という3つの主要プランを中心に解説しました。 それぞれの料金タイプには特徴があり、柔軟に使いたいならオンデマンド、長期利用ならリザーブド、学習用途なら無料利用枠という選び方が基本です。
オンデマンドは初期費用なしでいつでも使える一方、リザーブドはコスト効率に優れています。 無料利用枠は、1か月750時間という制限内であればコストを気にせず試せるので、AWS初心者にとって非常に魅力的な選択肢です。
また、EC2の料金はインスタンスの起動時間、ストレージ(EBS)、データ転送量など複数の要素で決まるため、必要なときだけ起動し、不要なときは停止・削除する運用が大切です。
実際に料金を把握しながら使いたいときは、Billingダッシュボードでリアルタイムに確認したり、AWS Budgetsでアラートを設定するのが効果的です。
例えば、CloudWatchと組み合わせて、使用率が低ければインスタンスを自動停止するように設計すれば、無駄な料金をさらに抑えることが可能です。
以下は、EC2起動中にインスタンスの稼働状況を確認し、CloudWatchでアラートを設定するための例です。
# CloudWatchでCPU使用率が10%以下ならアラームを作成
aws cloudwatch put-metric-alarm \
--alarm-name "LowCPUUtilization" \
--metric-name CPUUtilization \
--namespace AWS/EC2 \
--statistic Average \
--period 300 \
--threshold 10 \
--comparison-operator LessThanThreshold \
--dimensions Name=InstanceId,Value=i-xxxxxxxxxxxxxxxxx \
--evaluation-periods 1 \
--alarm-actions arn:aws:sns:ap-northeast-1:123456789012:StopEC2
このように料金を意識した運用を行うことで、AWS EC2はとても効率的なクラウドインフラになります。 今後はスポットインスタンスやSavings Plansといった他の料金戦略も学んでいくと、より最適なクラウドコスト管理が実現できます。
生徒
「EC2の料金って難しいと思ってたけど、使い方によって選べばそんなに怖くないんですね!」
先生
「その通りです。料金体系を知っておくと、使いすぎや無駄な出費を防げますよ。」
生徒
「リザーブドは安いけど長期契約なんですね。最初は無料利用枠を使って試してみようと思います!」
先生
「それが一番安全な始め方です。無料枠をうまく使いながら、徐々にステップアップしていきましょう。」
生徒
「CloudWatchで監視したり、料金アラートも設定してみたいです!」
先生
「その意識が大切ですね。次はスポットインスタンスやSavings Plansの活用も考えてみましょう。」