既存の EC2 Reserved Instance を期限切れのタイミングで Savings Plan へと切り替える

記事タイトルとURLをコピーする

営業部 佐竹です。
本日は購入済の EC2 Reserved Instance (RI) をその期限切れのタイミングにて Savings Plan へと切り替える対応方法について記載します。

はじめに

既に EC2 インスタンスのコスト削減を RI で行っている場合に「既存の EC2 Reserved Instance を、それらの期限切れに合わせて Savings Plan に交換したい」という要望が出ます。

この変更を行いたい背景は Savings Plan が RI と比較し、より柔軟性の高いコスト削減のサービスであるためです。

これらの比較については以下のブログを参考ください。

blog.serverworks.co.jp

RI 期限切れ時の対応方法

RI から Savings Plan への切り替えを行いたい場合、以下の2つの対応方法が考えられます。

  1. RI の期限切れを待ち、増加した Savings Plan の推奨を確認した後、Savings Plan を購入する
  2. 期限切れする RI を Savings Plan の Hourly コミット金額に換算し、期限切れのタイミングで Savings Plan を購入する

それぞれについて掘り下げます。

RI の期限切れを待ち、増加した Savings Plan の推奨を確認した後、Savings Plan を購入する

f:id:swx-satake:20211108182035p:plain

RI の期限が切れた後、一定期間待つことで消えた RI の分 Savings Plan の推奨が増加します。推奨の反映までに待つ必要がある一定期間は、目安として RI が期限切れしてからおおよそ半日から1日程度です。

どの程度 Savings Plan の推奨が増えたのか前後で比較するためにも、RI 期限切れ前の Savings Plan の推奨値は確認して手元にメモしておくのが良いでしょう。

Savings Plan の推奨機能については以下をご参考ください。

blog.serverworks.co.jp

デメリット

本手法のデメリットは一定期間 Savings Plan も RI もが存在しない「コスト最適化が行われない期間」が発生してしまうことです。ですが、Savings Plan の推奨を利用することができるため、安全かつ容易です。

期限切れする RI を Savings Plan の Hourly コミット金額に換算し、期限切れのタイミングで Savings Plan を購入する

1つ目の手法におけるデメリット「コスト最適化が行われない期間」が発生してしまうことが許容できない場合、RI を Savings Plan の Hourly コミット金額に換算し、それをコミットするという対応が可能です。

f:id:swx-satake:20211108190632p:plain

上画像のように、RI を Savings Plan に換算した金額に加えて、Savings Plan の推奨値を上乗せして購入することも可能です。

この換算をどのように行うかですが、RI の数が少ない場合は後程ご紹介します公式サイトにて、Savings Plan のコミット金額をそれぞれ確認し加算されるのが適切な対応手法です。

しかし台数が多い場合は計算に手間がかかります。そこで Cost Explorer を利用することで容易に可能であるということを以下でご紹介します。

Cost Explorer を利用した Savings Plan コミット金額確認方法

まず、Cost Explorer のコンソールを開き、左端メニューから Reservations (RI) の Utilization report を選択します。

f:id:swx-satake:20211108191723p:plain

次に、「Download CSV」を押下し Table data 形式にて現在アクティブとなっている RI の一覧をダウンロードします。

ダウンロードする CSV の期間はどのような設定でも構いませんが、「Last 7 days」などできるだけ新しい日付にします。これは、期限切れの RI を一覧から省くためですが、期限切れの RI が存在していても問題ありません。

ダウンロードした CSV を Excel で開き、有効期限を指定して対象を絞り込みます。

f:id:swx-satake:20211108192902p:plain

今回は上画像の通り、2022年4月の期限切れを迎える RI に絞り込みを行いました。

この後「Effective Hourly Rate」を確認します。右端から4列目で、2021年11月現在では「AB列」に相当します。

f:id:swx-satake:20211108193352p:plain

この「Effective Hourly Rate」が Savings Plan の Hourly コミット額と一致します。そのため、本値を合算した値を Savings Plan でコミットして頂ければ基本的には問題ないのですが、注意点があります。

補足:Hourly Recurring Fee との関係性

No Upfront の場合は「Effective Hourly Rate」と「Hourly Recurring Fee」が同額で一致するため、どちらを利用しても問題ありません。

f:id:swx-satake:20211108193717p:plain

All Upfront の場合は上画像の通り「Hourly Recurring Fee」が $0 となるため、これが利用できません。そのため、「Effective Hourly Rate」をご利用ください。

No Upfront 時の注意点

支払い方法が No Upfront の場合は「Effective Hourly Rate」が「台数を加味していない値」となっています

f:id:swx-satake:20211108195208p:plain

そのため、「Number of RIs」(L列に相当)を利用し、乗算した値を出す必要があります。上画像の「台数換算」は 「Effective Hourly Rate」×「Number of RIs」 の値です。この台数換算後の合計値が Savings Plan のコミット金額となります。

All Upfront の場合は「Effective Hourly Rate」に台数分が含まれているため、台数を加味する必要はありません

本手法利用時の注意

本手法で Savings Plan に換算したコミット額の値が正しいものかどうか、念のため以下の公式料金ページと照らし合わせていただくことをお勧めします。

aws.amazon.com

デメリット

本換算手法はコスト削減効果が途切れることなく Savings Plan を購入できるものの、デメリットもあります。

1つ目に 同割引率での切り替えしかできません

これはまず、「Convertible RI が Compute Savings Plan の割引率に一致する」ということであり、「Standard RI が EC2 Instance Savings Plan の割引率に一致する」ということです。ようは、Convertible RI の値を換算した場合は Compute Savings Plan のコミット金額としてしか使えず、Standard RI では EC2 Instance Savings Plan のコミット金額としてしか使えません。

加えて、支払い方法や期間も揃える必要があります。All Upfront で RI を買っていた場合は、換算したコミット金額も All Upfront の Savings Plan として購入を行う必要があります。これは支払い方法や期間によっても割引率が異なるためです。

まとめると、以下のような「縛り」となります。

SP 切替前の RI 換算後の SP の種類 支払い方法 期間
Convertible RI Compute Savings Plan 換算前後で同設定 換算前後で同設定
Standard RI EC2 Instance Savings Plan 換算前後で同設定 換算前後で同設定

よって、割引率が異なるように Savings Plan へと切り替えたい場合、本手法は不適切となります。

2つ目に RI の利用率の問題があります。

購入済の全ての RI の Utilization が 100% であればそのまま換算した値を Savings Plan の購入へと利用できますが、RI の利用率が 100% ではないものがリストに含まれている場合は Savings Plan のコミット金額を調整する必要があります。例としては、利用率が 0% のものはその RI を換算から除外する必要があります。

このように、RI を Savings Plan へと換算するのは考慮すべき点が多く手間もかかるため、できれば先にご紹介した「RI の期限切れを待つ」対応方法を推奨いたします。

運用 Tips

Savings Plan は未来日付の購入とする「予約」が可能です。この機能を活用することで、RI の期限切れ直後に自動的に Active となる Savings Plan を予約しておくことが可能です。

詳しくは以下のブログをご参考ください。

blog.serverworks.co.jp

まとめ

本日は、購入済の EC2 Reserved Instance (RI) をその期限切れのタイミングにて Savings Plan へと切り替える対応方法について記載いたしました。手法としては以下の2つをご紹介しました。

  1. RI の期限切れを待ち、増加した Savings Plan の推奨を確認した後、Savings Plan を購入する
  2. 期限切れする RI を Savings Plan の Hourly コミット金額に換算し、期限切れのタイミングで Savings Plan を購入する

どちらもメリットデメリットがあるものの、前者の「RI の期限切れを待つ」対応方法が良い選択と考えられます。

「どうしてもコスト削減効果が途切れさせたくない」という切実な事情がない限りは、RI の期限切れを待った後に Savings Plan の推奨を確認し購入いただけますと幸いです。

では、またお会いしましょう。

佐竹 陽一 (Yoichi Satake) エンジニアブログの記事一覧はコチラ

営業部カスタマーサクセス課所属。AWS資格12冠。2010年1月からAWSを利用してきました。2021 Japan APN Ambassador /2020-2021 APN ALL AWS Certifications Engineer。AWSのコスト削減、最適化を得意としています。