0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【2026年版】EC2の購入オプション、もう「RIかオンデマンドか」ではない話

0
Posted at

はじめに

EC2まわりは地味に見えて、実は制度の動きが多い領域です。

以前は「リザーブドインスタンス(RI)かオンデマンドか」という二択に近い感覚でしたが、今は Savings Plans を軸に、オンデマンドとスポットを細かい単位で組み合わせる のが標準的な設計になっています。AWS の意思決定ガイドでも RI は「基本的に Savings Plans への置き換えを推奨する旧来のオプション」と明記されるようになりました。

この記事では、AWS 認定試験(CLF〜SAP)で問われる概念整理と、実務でのチューニングポイントの両方を、公式ドキュメントの記述をベースに整理します。

対象読者

  • AWS 認定試験でコスト最適化まわりを学習中の方
  • 「とりあえず RI 買っておけばいい」で止まっている方
  • Savings Plans を買ったが、使用率が伸び悩んでいる方

1. 最初に:「課金の軸」と「容量確保の軸」は別物

ここが実務でも試験でも一番混同されやすいポイントです。

何を決めるか 該当するもの
購入オプション 請求金額の計算方法 オンデマンド / Savings Plans / RI / スポット
キャパシティ予約 必要なときに枠が確保されているか On-Demand Capacity Reservation(ODCR) / Capacity Blocks for ML

この2つは独立していて、実務では重ねて使います。

ODCR は「使っても使わなくてもオンデマンド相当額で課金される」ものであり、それ自体に割引はありません。ただしその請求に対して Savings Plans やリージョン RI の割引を効かせられます。

「予約したのに安くならない」という誤解は、この2軸を1軸で考えていることが原因であることがほとんどです。

なお Capacity Blocks for ML は例外で、Savings Plans / RI の割引と併用できません(単独価格・前払い)。GPU 系では需給次第でオンデマンドより高くなることもあり、「割引の仕組み」ではなく「可用性を買う仕組み」と理解するのが正確です。


2. Savings Plans が軸になった理由

Savings Plans は「$/時間」でのコミットを 1年 または 3年 で行う形式です。EC2 に関係するのは2種類。

Compute Savings Plans EC2 Instance Savings Plans
割引率 最大 66% 最大 72%
スコープ リージョン・インスタンスファミリー・OS・テナンシーを問わない 特定リージョンの特定インスタンスファミリーに限定
対象サービス EC2 / Fargate / Lambda EC2 のみ
向いているケース アーキテクチャが変化する、新世代インスタンスへ移行する可能性がある 構成が安定していて、当面ファミリーを変えない

RI の現在地

RI が依然として意味を持つ場面は、かなり限定的になりました。

  • ゾーナル RI のみがキャパシティ予約を伴う(リージョナル RI には容量確保の効果はない)
  • Savings Plans の対象外サービス(例:Redshift の Reserved Nodes)

一方、公式ドキュメントには「新しいインスタンスファミリーでは RI 価格が用意されていない場合がある」という記述もあります。新世代を積極的に使う環境ほど、RI は選びにくくなっています。

DB 系も 2025年12月に Database Savings Plans(最大 35%、1年・前払いなし)が登場し、Aurora / RDS / DynamoDB / ElastiCache / DocumentDB / Neptune / Keyspaces / Timestream / DMS が対象に。2026年3月には OpenSearch Service と Neptune Analytics も追加されました。「コミット割引 = Savings Plans」という整理がかなり進んだ形です。

割引の適用順序(地味に重要)

複数のコミットが有効なとき、AWS は次の固定順で割引を適用します。

リザーブドインスタンス → EC2 Instance Savings Plans → Compute Savings Plans

RI と SP を併存させている環境でカバレッジを設計する際は、この順序を前提に考える必要があります。


3. スポットは「割引」ではなく「設計」

スポットは最大 90% オフですが、押さえるべき性質がいくつかあります。

  • Savings Plans の割引はスポット利用に適用されない(完全に別建て)
  • 中断時は 2分前に通知。既定では終了、設定次第で停止・休止も可能
  • 価格は入札制ではなく、長期的な需給トレンドに応じて緩やかに変動
  • AWS 都合で最初の 1時間以内に中断された場合、その部分時間は課金されない

効くのは価格ではなくプールの広さ

スポットの実力を決めるのは、キャパシティプール(インスタンスタイプ × AZ の組み合わせ)をどれだけ広く取れるかです。公式ガイドでも「インスタンスの多様化が、最も実装が簡単で、最も効果が大きい」と言い切られています。

割り当て戦略は5種類(Price capacity optimized / Capacity optimized / Capacity Optimized Prioritized / Diversified / Lowest price)ありますが、Lowest price は非推奨と明記されており、原則 price-capacity-optimized を選びます。

Auto Scaling Group での実装例

属性ベースのインスタンス選択(Attribute-Based Instance Selection)を使うと、タイプを列挙せずに「vCPU 4〜8、メモリ 8〜32GiB、x86_64」といった要件で指定でき、新世代が出たら自動的に候補に入ります。

{
  "MixedInstancesPolicy": {
    "InstancesDistribution": {
      "OnDemandBaseCapacity": 2,
      "OnDemandPercentageAboveBaseCapacity": 0,
      "SpotAllocationStrategy": "price-capacity-optimized"
    },
    "LaunchTemplate": {
      "Overrides": [
        {
          "InstanceRequirements": {
            "VCpuCount":       { "Min": 4, "Max": 8 },
            "MemoryMiB":       { "Min": 8192, "Max": 32768 },
            "CpuManufacturers": ["intel", "amd"]
          }
        }
      ]
    }
  }
}

OnDemandBaseCapacity でベースラインを確保し、それを超える分をスポットに寄せる、という書き方です。

取りやすい場所を事前に測る

# ワークロード要件に対して、どのリージョン/AZ がスポットを取りやすいかをスコア化
aws ec2 get-spot-placement-scores \
  --instance-types m6i.large m6a.large m5.large \
  --target-capacity 100 \
  --target-capacity-unit-type units \
  --region-names ap-northeast-1 ap-northeast-3

中断への備え

  • ASG の capacity rebalancing で rebalance recommendation に反応させる
  • 長時間ジョブはチェックポイント、タスクは細かく分割(2分以内に終わるタスクは中断の影響を受けない)
  • AWS FIS でスポット中断を意図的に発生させ、挙動をテストする

現実的な落としどころ:ハイブリッド

AWS が推しているのはこの形です。

締切を守れるだけのベースラインをオンデマンドまたは Savings Plans で先に確保し、その上にスポットを積んで前倒しする。

スポットが回収されても納期は割れず、取れた分だけ速く安く終わる。バッチ処理やデータ分析ではこの組み方が定番です。


4. 運用ツールは Cost Explorer だけではなくなった

「実使用量に応じて購入オプションを見直す」運用は定着してきましたが、道具立てはこの数年で増えています。

ツール 用途
Savings Plans 使用率/カバレッジレポート コミットを使い切れているか、利用のどれだけがカバーされているか
Savings Plans Purchase Analyzer 「もしこの額でコミットしていたら」を過去実績に対し1時間単位でシミュレーション
Cost Optimization Hub 1年/3年・前払い条件の希望を設定した上で推奨を取得
AWS Compute Optimizer コミット前のライトサイジング(過剰サイズのまま買わない)
EC2 Capacity Manager 全アカウント・全リージョンのオンデマンド/スポット/予約を一元可視化

Purchase Analyzer には、目標カバレッジ率(10〜100%)から必要なコミット額を逆算するモードもあります。既存の Savings Plans によるカバー分を差し引いた「不足分だけ」を出してくれるほか、期限切れ間近のプランを除外した試算や、ルックバック期間の短縮(移行直後・季節変動後の実態に合わせる)も可能です。

EC2 Capacity Manager は 2025年10月に GA。2026年1月には Spot Usage Total Count / Spot Total Interruptions / Spot Interruption Rate といったスポット中断メトリクスが追加され、リージョンや AZ をまたいだ中断傾向の比較ができるようになりました。追加料金なしです。

# 使用率
aws ce get-savings-plans-utilization \
  --time-period Start=2026-07-01,End=2026-08-01

# カバレッジ(どれだけの利用がSPでカバーされているか)
aws ce get-savings-plans-coverage \
  --time-period Start=2026-07-01,End=2026-08-01 \
  --granularity MONTHLY

# 購入推奨
aws ce get-savings-plans-purchase-recommendation \
  --savings-plans-type COMPUTE_SP \
  --term-in-years ONE_YEAR \
  --payment-option NO_UPFRONT \
  --lookback-period-in-days SIXTY_DAYS

キャパシティ予約まわりの最近の動き

大規模環境ほど効いてくる変更が続いています。

  • 中断可能な ODCR(2025年11月)— 未使用の予約容量を組織内の他ワークロードに一時開放できる。オーナーはいつでも回収可能で、利用側には中断通知が出る
  • 将来日付キャパシティ予約のキャンセル対応(2026年6月)— 120日先まで取れる予約をキャンセル可能に。キャンセル料が事前に提示され、CUR 2.0 で追跡できる
  • CUR 2.0 での ODCR / Capacity Blocks 可視化(2025年11月)— 予約ごとの利用率・カバレッジが Reserved / Used / Unused でラベル付けされ、時間単位・リソース単位で按分できる

5. 試験ではどこまで問われるか

試験対策としては、あくまで「概念として理解しているか」が問われます。レベル別の温度感は次のような形です。

レベル 問われ方
CLF 各購入オプションの名前と特徴の識別
SAA / SOA ワークロード特性(中断耐性・予測可能性・可用性要件)と購入オプションのマッピング
SAP Organizations 配下でのコミット共有、RAM による予約共有、ポートフォリオ全体でのコミット設計

特に SAP レベルでは「複数アカウント・複数リージョンにまたがる前提」で問われます。個々のワークロードは不安定でも、ポートフォリオ全体では山と谷が相殺されて基準線が安定する(=より大きなコミットが可能になる)という考え方は、押さえておくと選択肢を絞りやすくなります。


おわりに

実務で効いてくるのは、「コミットは一度で決め切るものではない」という感覚だと思っています。

安定した分から順にトランシェを積み上げ、新しいサービスが安定したら上乗せし、1年と3年を確信度で使い分ける。公式ガイドにも同じ趣旨の記述があり、やはりそうかと納得しました。試験では概念、実務ではこの積み上げのチューニング。そこが腕の見せどころだと思います。

数値(66% / 72% / 90% / 35%)はいずれも「最大」表記なので、社内資料に転記する際は「最大」を落とさないほうが安全です。


参考

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?