概要
EC2 の料金は、同じインスタンスでも「どう買うか」で大きく変わります。長く使うと約束すれば割引が付き、余っているキャパシティを借りればさらに安くなります。ただし、安い買い方ほど「約束に縛られる」か「途中で取り上げられる」かのどちらかの条件が付きます。
設計で大事なのは、ワークロードを 2 つの軸で見分けることです。1 つは「ずっと動くのか、一時的に増えるだけなのか」、もう 1 つは「途中で止められても困らないのか、止まると困るのか」。この 2 つが決まれば、オンデマンド・リザーブドインスタンス・Savings Plans・スポット・キャパシティ予約のどれを選ぶかはほぼ決まります。
この記事では、購入オプションをこの 2 軸で整理し、Auto Scaling グループでオンデマンドとスポットを混ぜる設計にも触れます。実践では、リザーブドインスタンスの購入画面・スポットの料金履歴・キャパシティ予約の作成画面・Auto Scaling グループの購入オプションの設定を、購入・作成の手前まで操作して、それぞれ何を決めるものかを確かめます。

クラウドおさる猿山のバナナ運びも、毎日決まった量を運ぶ当番と、祭りの前だけ呼ぶ助っ人と、手が空いたときだけ手伝う若い猿がいるでござる。どの仕事を誰に任せるか、今日は EC2 の買い方で考えるでござるよ。
この記事のメリット
- ワークロードの性質(定常か一時的か、中断できるかできないか)から購入オプションを選べるようになる
- スポットインスタンスの中断の仕組みと、向いていない処理を説明できるようになる
- キャパシティ予約が「割引」ではなく「確保」を買うものだと区別できるようになる
- Auto Scaling グループで、オンデマンドのベース容量とスポットの割合を組み合わせる設計が分かる
- リザーブドインスタンスやキャパシティ予約の購入・作成画面で、何を決める必要があるかを把握できる
執筆者とキャラクター紹介
執筆者:土肥(とひ)
株式会社ジェニュインの代表であり元エンジニア。これまでオンプレミスと AWS 環境のインフラ業務を担当。AWS 認定資格の学習で得た知識を、ハンズオンとともに解説するのが得意。直近では新人の教育も行っており、これから技術を学ぶ方が納得できる解説を心がけています。基礎編・Cloud Practitioner の記事では、解説役としても登場します。


クラウドおさる



はじめましてでござる。弊猿はクラウドおさる。IT インフラが異常に発達した猿山から、雲に乗って地上の AWS を学びに降りてきたのでござる。



基礎編や Cloud Practitioner の記事では、とひさんに素朴な疑問をぶつける役でござるな。Security - Specialty などの記事では、要所でワンポイントや注意点をひとこと添えるでござる。



猿山にもデータセンターや監視当番があって、地上で起きることはだいたい猿山にも同じ仕組みがあるのでござる。例え話がつい猿山に寄るのは、弊猿の癖でござる。
技術解説
購入オプションの一覧
EC2 のユーザーガイドに並ぶ購入オプションのうち、SAA でよく比べられるのは次の 5 つです。料金の払い方そのもの(前払いの種類や Savings Plans の 4 つの種類)は、AWS の料金の払い方とサポート で整理しています。
| 購入オプション | 約束 | 中断 | 割引 | ひと言でいうと |
|---|---|---|---|---|
| オンデマンドインスタンス | なし。起動した時間を秒単位で払う | されない | なし(基準の料金) | いつでも始めて、いつでもやめられる |
| リザーブドインスタンス(RI) | 1 年または 3 年、インスタンスタイプとリージョンなどの設定を約束する | されない | あり | 構成を固定して長く使うと安くなる |
| Savings Plans | 1 年または 3 年、1 時間あたりの利用額(USD)を約束する | されない | あり | 利用額を約束すると、構成を変えても割引が当たる |
| スポットインスタンス | なし | される(AWS がキャパシティを必要とした場合など) | 大幅な割引 | 余っているキャパシティを安く借りる |
| オンデマンドキャパシティ予約 | 即時使用なら約束なし(いつでもキャンセル可) | ― | なし(リージョンの RI・Savings Plans と組み合わせれば割引が当たる) | 特定の AZ で起動できる枠を確保する |
RI と Savings Plans は「インスタンスそのもの」ではなく、条件に合う利用に自動で当たる請求上の割引です。一方、キャパシティ予約は割引を提供せず、「必要なときに確実に起動できること」を買います。予約した枠は、インスタンスを起動していなくても課金されます。キャパシティ予約に割引を当てられるのは Savings Plans とリージョンの RI で、AZ を指定して買うゾーンの RI の割引は当たりません。
なお、ゾーンの RI は、割引に加えてその AZ のキャパシティも予約します。キャパシティの予約が無いのは、リージョンの RI と Savings Plans です。



RI と Savings Plans は「長く頼むから安くして」の約束、キャパシティ予約は「その日は必ず場所を空けておいて」の約束でござる。値引きと場所取りは別物なのでござるな。
2 つの軸で選ぶ
購入オプションは、ワークロードを 2 つの軸で分けると選びやすくなります。
| 中断されると困る | 中断されても困らない | |
|---|---|---|
| 定常的に動く(ベースの量) | RI または Savings Plans | スポット(再実行できるなら)。または RI / Savings Plans |
| 一時的に増える(ピーク) | オンデマンド。確実に起動したいならキャパシティ予約も | スポット |


たとえば「毎晩 7 時間かかり、10 時間以内に終わらせる必要があるバッチを RI で回している。月末だけ処理量が増えて容量が足りない。処理は途中で止められない」という状況を考えます。
- 増えるのは月末だけなので、追加の RI や RI のサイズアップは、残りの期間にとって余分な約束になる
- 処理は止められないので、中断されうるスポットには載せられない
- したがって、増えた分はオンデマンドで賄うのが、約束も中断もなく費用も使った分だけになる選び方になる
月末に確実に起動できる枠まで確保したい場合は、キャパシティ予約を組み合わせる選択肢もあります。ただし、予約中は使っていなくても課金されること、将来の日付を指定する予約には約束の期間があり、最小の規模(32 vCPU 分以上)が決まっていることに注意が必要です。



「一番安いから」とスポットを選ぶと、止められない処理では外すのでござる。安さの前に「途中で取り上げられて困るかどうか」を先に確かめるのが筋でござるぞ。
スポットインスタンスの中断
スポットインスタンスは、次のような理由で中断されることがあります。
| 理由 | 内容 |
|---|---|
| キャパシティ | AWS がキャパシティを必要としたとき。ホストのメンテナンスなどでも起こりうる |
| 料金 | 上限料金を指定していて、スポット料金がそれを超えたとき |
| 制約 | 起動グループなどの制約が満たされなくなったとき |
中断されるときは、停止または終了の 2 分前に中断通知が出ます。通知は EventBridge のイベント(EC2 Spot Instance Interruption Warning)や、インスタンスメタデータの spot/instance-action で受け取れます。ただし通知はベストエフォートで、休止で中断される場合は 2 分前の通知がありません。
2 分の猶予で後片付けはできても、何時間もかかる処理を最後まで終わらせることはできません。スポットに向くのは、データ分析やバッチの中でも「途中で止まっても、やり直せる・続きから再開できる」ように作られた処理です。
Auto Scaling グループでオンデマンドとスポットを混ぜる
1 つの Auto Scaling グループの中で、オンデマンドインスタンスとスポットインスタンスを混ぜて起動できます(混合インスタンスグループ)。決めるのは主に次の 3 つです。
| 設定 | 意味 |
|---|---|
| オンデマンドのベース容量 | まずオンデマンドで起動する台数。ここまではスポットを起動しない |
| ベース容量を超える分のオンデマンドの割合 | ベースを超えた分を、オンデマンドとスポットで何 % ずつにするか(0〜100) |
| スポットの配分戦略 | どのスポットのプールから起動するか。使い始めには、中断されにくく価格もできるだけ低いプールを選ぶ「価格とキャパシティの最適化」(price-capacity-optimized。コンソールの表記は「料金キャパシティ最適化」)が推奨されている |
たとえばベース容量を 2、ベースを超える分のオンデマンドを 0% にすると、「止まると困る最低 2 台はオンデマンド、スケールアウトで増える分はすべてスポット」という構成になります。割合の計算で端数が出たときは、オンデマンドの側に切り上げられます。
混合インスタンスグループを作ると、既定ではオンデマンドだけで起動します。スポットを使うには、オンデマンドの割合を下げる必要があります。
実践
購入オプションごとの画面を、購入・作成の手前まで操作します。この実践では、リザーブドインスタンスの購入、キャパシティ予約の作成、Auto Scaling グループの作成のいずれも行いません。
前提条件
- リージョン:
ap-northeast-1(東京) - EC2・Auto Scaling の画面を開ける IAM ユーザーまたはロールでコンソールにログイン済みであること
以下のリソースが作成済みであることを前提とします(起動テンプレート自体には料金はかかりません)。
| リソース種別 | リソース名 | 内容 | 作り方の参考 |
|---|---|---|---|
| 起動テンプレート | po-lab-template | Amazon Linux 2023・t3.micro。Auto Scaling グループの作成画面を進めるために使う | EC2 Auto Scaling で落ちても自動で戻る Web サーバーを作る ※起動テンプレートの作成まで |
リザーブドインスタンスは、購入を確定するとキャンセルできません。キャパシティ予約は、作成すると使っていなくても課金されます。この記事の手順では、どちらも確定ボタンを押さずに画面を閉じます。
手順 1: リザーブドインスタンスの購入画面で候補と料金を見る
AWS マネジメントコンソールにログインし、リージョンが ap-northeast-1(東京)であることを確認します。
上部の検索バーに EC2 と入力し、「EC2」を選択します。左側ナビゲーションの「インスタンス」→「リザーブドインスタンス」を選択し、「リザーブドインスタンスの購入」をクリックします。
以下を指定して「検索」をクリックします。
- 提供クラス:
スタンダード - プラットフォーム:
Linux/UNIX(デフォルト) - テナンシー:
デフォルト(デフォルト) - インスタンスタイプ:
t3.micro - 期間:
1 ~ 12 か月(もう一方の選択肢は12 ~ 36 か月) - お支払い方法:
前払いなし
その他の項目はデフォルトのままにします。


検索結果に、期間(12 ヶ月)・支払いオプションごとの前払い料金、実質レート、1 時間あたりのレートが並びます。ここでは「カートに入れる」はクリックせず、「キャンセル」で画面を閉じます。RI は「この構成をこの期間使い続ける」約束で、一時的な需要に対して買うものではないことが、入力項目からも分かります。
手順 2: スポットの料金履歴を見る
左側ナビゲーションの「インスタンス」→「スポットリクエスト」を選択し、「料金設定履歴」をクリックします。「スポットインスタンスの料金設定履歴」の画面が開くので、以下を指定します。
- グラフ:
アベイラビリティーゾーン(デフォルト) - インスタンスタイプ:
t3.micro(デフォルトは別のタイプなので選び直します) - プラットフォーム:
Linux/UNIX - 日付範囲:
3 か月(デフォルトは1 週間)


AZ ごとにスポット料金が上下していることと、画面下部に表示されるオンデマンド料金・AZ ごとの平均料金・節約率を確認します。料金履歴は過去 90 日分まで表示できます。確認したら画面を閉じます。ここでスポットインスタンスの起動はしません。
手順 3: キャパシティ予約の作成画面で入力する
左側ナビゲーションの「インスタンス」→「キャパシティーの予約」を選択します。予約がまだ無いときは説明の画面が表示されるので、「キャパシティ予約タイプ」で「オンデマンドキャパシティ予約を作成」が選ばれていることを確認して「開始方法」をクリックします。予約があるときは「キャパシティ予約の作成」をクリックします。
「オンデマンドキャパシティ予約を作成」の画面で、以下を入力します。
- インスタンスタイプ:
t3.micro - プラットフォーム:
Linux/UNIX - アベイラビリティーゾーン:
ap-northeast-1a - テナンシー:
デフォルト - 合計キャパシティ:
2インスタンス - キャパシティ予約の開始:
今すぐ - キャパシティ予約の終了:
手動(デフォルトは特定の時間。「手動でキャンセルするまでキャパシティ予約は継続されます」と表示されます) - インスタンスの適格性:
オープン(デフォルト)


入力項目に、期間や支払いオプションが無いことを確認します。キャパシティ予約は「どの AZ に、どのインスタンスを、何台分の枠を取るか」だけを決めるもので、割引の約束ではありません。ここでは「作成」はクリックせず、「キャンセル」で画面を閉じます。



RI の画面には期間と支払いの欄があり、キャパシティ予約の画面には AZ と台数の欄しかないでござる。画面の欄を見比べると、値引きと場所取りの違いがそのまま見えるのでござるな。
手順 4: Auto Scaling グループの作成画面でオンデマンドとスポットの割合を決める
左側ナビゲーションの「Auto Scaling」→「Auto Scaling グループ」を選択し、「Auto Scaling グループを作成する」をクリックします。
- Auto Scaling グループ名:
po-lab-asg - 起動テンプレート:
po-lab-template
「次へ」をクリックします。「インスタンス起動オプション」の画面で、「インスタンスタイプの要件」の「起動テンプレートを上書きする」をクリックし、「手動でインスタンスタイプを追加する」を選びます。t3.micro と、t3a.micro などの近いインスタンスタイプが自動で並びます。ネットワーク(VPC・サブネット)は、作成しないのでここでは選ばなくて構いません。
続けて「インスタンス配布オプション」の「インスタンスの分散」で、以下を設定します。
- 「オンデマンドベース容量を含める」にチェックを入れ、ベース容量に
2を入力 - ベース容量を超える分: オンデマンド
0%(スポットは自動で100% になります) - 配分戦略:
料金キャパシティ最適化 (推奨)(デフォルト)


この設定では、最初の 2 台がオンデマンド、それを超える分がスポットで起動されます。ここでは「次へ」以降に進まず、「キャンセル」で作成を中止します。Auto Scaling グループは作成しません。



「月末だけ増える・止められない」ならオンデマンド、「ずっと動く」なら RI や Savings Plans、「止まってもやり直せる」ならスポットでござる。似た選択肢が並んだら、増え方と止められるかどうかの 2 つを先に確かめるのが近道でござるな。
まとめ
| ワークロード | 選ぶもの | 理由 |
|---|---|---|
| 定常的に動き、止まると困る | RI または Savings Plans | 長く使う約束で割引を得る |
| 一時的に増え、止まると困る | オンデマンド | 約束も中断もなく、使った分だけ払う |
| 確実に起動できる枠が必要 | キャパシティ予約(割引はリージョンの RI・Savings Plans と組み合わせる) | 特定の AZ の枠を確保する。使っていなくても課金される |
| 止まってもやり直せる | スポット | 大幅に安いが、2 分前の通知で中断されることがある |
| 最低限はオンデマンド、増える分は安く | Auto Scaling の混合インスタンスグループ | オンデマンドのベース容量と、超える分のスポットの割合で組み合わせる |
- 購入オプションは「定常か一時的か」「中断できるかできないか」の 2 軸で選ぶ
- リージョンの RI と Savings Plans は請求上の割引、キャパシティ予約は起動できる枠の確保で、目的が違う(ゾーンの RI は割引と枠の確保の両方)
- RI は購入後にキャンセルできない。一時的な需要に合わせて買い足すと、残りの期間が余分な約束になる
- スポットの中断通知は 2 分前でベストエフォート。長時間止められない処理には向かない
- 混合インスタンスグループは既定ではオンデマンドだけ。スポットを使うにはオンデマンドの割合を下げる
参照先
- Amazon EC2 の請求および購入オプション – Amazon Elastic Compute Cloud
- Amazon EC2 のリザーブドインスタンスを購入する – Amazon Elastic Compute Cloud
- スポットインスタンスの中断。 – Amazon Elastic Compute Cloud
- スポットインスタンスの中断通知 – Amazon Elastic Compute Cloud
- スポットインスタンスの料金履歴の表示 – Amazon Elastic Compute Cloud
- EC2 オンデマンドキャパシティ予約を使用してコンピューティングキャパシティを予約 – Amazon Elastic Compute Cloud
- キャパシティ予約の作成 – Amazon Elastic Compute Cloud
- キャパシティ予約の料金と請求 – Amazon Elastic Compute Cloud
- 混合インスタンスグループを作成するための設定の概要 – Amazon EC2 Auto Scaling
- 複数のインスタンスタイプの配分戦略 – Amazon EC2 Auto Scaling













