Edited at

AWSの新価格モデル「Savings Plans」とは?オンデマンドやリザーブドインスタンスと比較する

2019/11/7に、AWSからSavings Plansという新しいAWS利用料節約のための価格モデルが登場しました。

このSavings Plansについて調べてみました。

image.png


(そもそも) オンデマンドとは

そもそも、AWSの利用料は通常オンデマンド (使った分だけお支払い) です。

オンデマンドで利用料を支払うことが適した場面は以下の通りでした。


  • 短期的に利用する場面

  • スパイクが発生し、リソースの使用量の予測が難しいワークロード

  • 開発環境

  • テスト環境

これらの環境ではオンデマンドで利用料を支払うことが適しています。


リザーブドインスタンスとは

オンデマンドに対し、リザーブドインスタンス (RI) があります。

以下で示すように、リザーブドインスタンスを購入すると、大幅に利用料を削減できます。


  • 1年間または3年間の利用料を前払いする代わりにコスト削減

  • 最大でオンデマンドから7割以上も削減

リザーブドインスタンスは、オンデマンドとは異なり、定常的に利用する場合には積極的に活用すべきものです。

2016年にはリージョンRI、2016年にはコンバーティブル(変更可能)RIが登場し、選択肢も増えています。

また、Linuxインスタンスにおいては、大きなインスタンスサイズのRIに対し、複数の小さなインスタンスサイズのRIを適用できるなど、柔軟に適用してコスト削減が可能となります。


新たに登場したSavings Plansとは

従来存在していたこれらの支払い方法に加えて、今回、新たにSavings Plansが加わりました。

New – Savings Plans for AWS Compute Services

https://aws.amazon.com/jp/blogs/aws/new-savings-plans-for-aws-compute-services/

ドキュメントの解説に基づき、特徴を整理してみました。


(1) Savings Plansの特徴


概要



  • EC2Fargateの利用料を最大で72%削減できます。

  • 1年間または3年間、一定の利用料をコミットするだけで、その利用料に対して割引を適用します。

  • 例えば、10 USD / 時間 をコミットすると、その利用料に対して割引が適用されます。

雑な意訳: 「これだけの利用料になる予定です!と宣言すれば、前払いと引き換えに割引を適用してもらえる」


仕組み


  • EC2とFargateの全てのタイプのコンピューティングに、オンデマンド料金に加え、Savings Plans料金が適用できます。

  • 例えば、Savings Plansで10 USD / 時間 をコミットすると、10 USDまではSavings Plansが適用され、コミットメントを超えた利用料については、オンデマンドでの支払いとなります。


(2) Savings Plansを選ぶメリット

Savings Plansには、以下に示すように、オンデマンドやリザーブドインスタンスとは異なる特徴があります。


  • 要件が変わっても、同じ利用料のコミットメントで、対象となるAWSリソース全てに適用される

  • Fargateにも適用される

また、Savings PlansにはCompute Savings PlansEC2 Instance Savings Plansの2種類の価格モデルがあります。


(3) 2種類の価格モデル


Compute Savings Plans

最も柔軟性のあるモデルで、コンバーティブルRIと同じ料率で、最大66%の値引きが提供されます。

例えば、以下のように、変更が行われたとしてもリザーブドインスタンスのようにプラン変更や買い直しをする必要はなくなります。


  • インスタンスファミリーをc5からm5に変更しても適用が続く

  • リージョンをシンガポールからロンドンに変更しても適用が続く

  • OSをWindowsからLinuxに変更しても適用が続く

  • テナンシーをデフォルトから専有に変更しても適用が続く

  • EC2からFargateに移行しても適用が続く

上記の通りインスタンスファミリーにもOS種別にも依存しない買い方となりますので、もはやコンバーティブルRIを買うくらいなら、Savings Plansで購入すべきと言えます。

実際の画面を見てみましょう。

image.png

上記のように1時間あたりの利用料を指定すると、1年間または3年間のコストが見積もられますので、表示された料金を支払うという形になります。


EC2 Instance Savings Plans

選択したリージョンでしか適用できませんが、選択したインスタンスファミリー (例: c5やm5) などで、スタンダードRIと同様に最大72%の値引きが提供されます。

こちらは名の通り、EC2にしか適用されず、Fargateは対象外です。

以下のような場面で選択すべきと言えます。


  • 同じインスタンスファミリーを使い続ける


    • 例: m5.largeからm5.xlarge、m5.2xlarge・・・と変更する予定はあるが、c5には変更予定がない



Compute Savings Plansに比べて、利用量に加えてリージョンとインススタンスファミリーなどを選択する必要があります。

実際の画面を見てみましょう。

image.png

一瞬、リザーブドインスタンスと何が違うのかと戸惑いそうですが、違いは以下です。


  • EC2のリザーブドインスタンスは台数、インスタンスサイズ、OS、テナンシーを指定し適用する

  • EC2 Instance Savings Plansは利用料とインスタンスファミリーを指定し、台数、インスタンスサイズ、OS、テナンシーに関係なく適用される


リザーブドインスタンスとSavings Plansの比較

これまでに書いたように、Savings Plansでは、リザーブドインスタンスの全ての利点を含みながら、柔軟性が向上します。

何よりも、管理負荷が劇的に下がります。

より具体的にリザーブドインスタンスとSavings Plansを比較してみました。

Compute Savings Plans
EC2 Instance Savings Plans
コンバーティブルRI(注1)
スタンダードRI

割引率
最大66%
最大72%
最大66%
最大72%

AWS利用料を指定して大幅割引


×
×

どのインスタンスファミリーであっても自動的に割引

×
×
×

どのインスタンスサイズであっても自動的に割引


×(注2)
×(注2)

どのテナンシーやOSであっても自動的に割引


×
×

どのリージョンであっても自動的に割引

×
×
×

Fargateでも割引

×
×
×

1年間または3年間の期間指定



(注1) コンバーティブルRIはインスタンスファミリー、インスタンスサイズ、OS、テナンシー間で変更可能ですが、手動で切り替える必要があります。

(注2) リージョナルコンバーティブルRIと、リージョナルスタンダードRIには、インスタンスの柔軟性があります。


Savings Plansの適用方法

実態に即して時間あたりの利用料を見積もりながら購入するには、Savings Plansの推奨事項を確認します。

まずは、AWS Cost ExplorerでSavings Plansの推奨事項を確認します。

image.png

※引用: https://aws.amazon.com/jp/blogs/aws/new-savings-plans-for-aws-compute-services/

次に、各自のニーズに応じて推奨事項に基づき購入プランをカスタマイズしていきます。

例えば、Savings Plansのタイプをどうするか、支払い期間をどうするかといったことを検討します。

検討が終わったら、時間単位のコミットメントを確認し、カートに追加します。


リザーブドインスタンスの方が良いことはあるのか?

EC2においては、Savings Plansにはキャパシティ予約がありませんので、起動が保証されません。

ただし、オンデマンドキャパシティ予約によってクリアできますので、あわせ技でリザーブドインスタンスと同じメリットを得られます。


Savings Plansの注意事項


  • Organizationsのメンバーアカウントでは、AWSマネジメントコンソール上で「現時点では、リンクされたアカウントの Savings Plan に関する推奨事項をご利用できません。Savings Plan の推奨事項については、支払者にお問い合わせください。」と表示され、推奨事項を見ることができません。

  • リザーブドインスタンスと同様に、請求ファミリー間で割引の共有が可能ですが、リザーブドインスタンスとSavings Plansの共有はセットになっており、例えばリザーブドインスタンスだけは共有するがSavings Plansは共有しないといった設定はできないようです。

  • リザーブドインスタンスからSavings Plansへの変更はできず、逆も不可能です。


個人的見解によるQA


Q1: どのEC2に割引が適用されているか管理したいのですができますか?

【質問の背景】


  • どのEC2に割引が適用されているか管理したい!

  • 管理するための仕組みを作ったり、サードパーティのソフトを用意するために、別途費用がかかってしまい、結局、RIの割引を相殺してしまう。

  • そこまでして管理することが無駄だと分かっていても、会社の命令で絶対に管理しないといけない!


回答: 無理やりやればできると思われますがお勧めできません


  • Savings Plansは、EC2の台数等の条件に関係なく割引が適用されるものになります。


    • いくらコミットしたかだけを管理すればOKです。



  • そもそも「どのEC2に…」という概念がない割引になりますので、利用者側でわざわざ気にする必要は全くありません。

  • EC2個別の適用状況は気にするだけ無駄で、時間と労力を浪費するだけです。


Q2:複数の組織が同じAWSアカウントを共有しており、どの組織が割引を適用しているか把握したいのですができますか?


回答: 無理やりやればできると思われますがお勧めできません


  • 課金系の管理はAWSのアップデートによって即破綻する可能性があるため、AWSの仕様にできるだけ寄せておくのが無難です。


    • AWSが提供していない管理をシステム的に無理やりやろうとすると、破綻する可能性があります。



  • 運用でカバーする方法としては、Savings Plansに切り替えて、管理部門が各組織に対して事前にAWS利用料の計画を提出させ、計画に応じて前払い料金を事前徴収する仕組みに変更すると良いのではないでしょうか。


    • 管理部門は、各組織がいくらコミットしたかだけを把握し、その使い道を各組織に委ねることができます。

    • または、そもそもAWSアカウントの構成を見直して1組織=1AWSアカウントなどと変えていくべきでしょう。




Q3: 既にRIを購入している状態で、Savings Plansを買うとどうなりますか?


回答: RIから先に適用されます


  • RIの方が優先的に適用され、RIが適用されていないAWS利用料に対し、Savings Plansが適用されます。


Q4: RIの有効期限が切れそうだが、次はRIを購入するのではなくSavings Plansを購入する方が良いか


回答: その方が良いでしょう


  • Savings Plansにより、環境の構成を気にすることなく割引を適用できますので、今後、複雑な購入ルールの理解が不要となるメリットがあります。

  • Savings Plansは従来のRIの購入単位よりもさらに小さい$0.001/時間という単位から購入でき、開発環境やテスト環境にも適用を検討できます。

  • さらに、WindowsやRHELなどの有償OSでも柔軟性があることもメリットです。


まとめ


  • Savings Plansとは特定のインスタンスの構成によらず、AWS利用料のコミットメントをすることで、EC2のリザーブドインスタンスと全く同率の割引をする新しい料金モデルです。

  • EC2だけでなく、Fargateにも適用できます。

  • 2種類のSavings Plansがあります。



    • Compute Savings Plans: EC2とFargateに適用でき、リージョンに依存しない。コンバーティブルRIと同じ料率。


    • EC2 Instance Savings Plans: EC2のみ適用でき、選択したリージョンの選択したインスタンスファミリーに割引が適用。スタンダードRIと同じ料率。



  • 全てのAWSリージョン (北京と寧夏を除く) と、AWS GovCloud (米国) で利用可能。

  • AWS Cost Explorerで過去7日間、過去30日間、過去60日間の使用履歴に基づき、推奨事項を確認可能。

  • EC2において、Savings Plansは従来のEC2 RIの利点を全て含んでいます。


参考文献

AWS Documentation » Savings Plans

https://docs.aws.amazon.com/savingsplans/latest/userguide/what-is-savings-plans.html