AWS OrganizationsとSavings Plansを活用したコスト削減のベストプラクティス

 こんにちは佐々木です。
AWSを利用していると気になるのが、AWSの利用料です。個々のサービス・リソースは機能に比べて充分に安いものの、利用しているうちにそれなりの金額に積み上がってくることが多いです。その対策として、AWSにはさまざまなコスト削減方法があり、即効性がある対策はSavings Plansやリザーブドインスタンスです。これらは一定期間の利用を宣言することにより、割引を受けることができます。今日はこの割引プランについての説明と、AWS Organizations適用時の効率的な利用料削減方法を紹介します。

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

 リザーブドインスタンスとSavings Plansは、どちらもEC2などのコンピュートリソースの利用料を節約するための料金プランです。リザーブドインスタンスとSavings Plansの違いは何でしょうか?リザーブドインスタンスは特定のインスタンスタイプの利用を一定期間(1年 or 3年)使う事を約束する代わりに、大幅な割引(最大72%)受けられるという仕組みです。これに対してSavings Plansは、コンピュートリソースの利用料に対してコミットを行います。利用料に対するコミットなので、リザーブドインスタンスのようにどのインスタンスタイプを使うかの指定は不要です。現時点ではRDSは対象外ですが、LambdaやFargateに対する割引を受けることも可能です。リザーブドインスタンスのキャパシティ予約に代替する機能はないものの、柔軟性が高いのでSavings Plansの使い勝手はかなり良いです。

Savings Plansの種類

 Savings Plansには、2つのタイプがあります。Compute Savings PlansとEC2 Instance Savings Plansです。

f:id:takurosasaki:20210420123432p:plain

 EC2 Instance Savings Plansは、リザーブドインスタンスに非常に似た割引モデルを提供します。リージョンやインスタンスの種類(インスタンスファミリー)を指定する代わりに、高い割引率を享受できます。ただし、特定のインスタンスを確実に起動できるというキャパシティ予約の機能はありません。リザーブドインスタンスより柔軟な点としては、購入後のOS変更やテナンシーなどを変更可能です。また、インスタンス自体の価格が変動した場合、それに追随します。リザーブドインスタンスの場合、EC2インスタンスが値引きされても新価格に対する割引ではなく、予約した時点の価格に対しての割引となっていました。この辺り、利用者にとってメリットがありますね。
 Compute Savings Plansは、EC2 Instance Savings Plansより柔軟性が高い料金プランです。割引率はEC2 Instance Savings Plansより、若干低いですが、それを補って余りあるメリットがあります。Compute Savings Plansは、全リージョンが対象となります。そして、EC2のみならずFargateやLambdaも対象となります。それでは、Savings Plansの仕組みをみてみましょう。

Savings Plansの仕組み

 リザーブドインスタンスは割引させたいインスタンスタイプを指定していましたが、Savings Plansは金額を指定します。単位時間あたりの対象サービス(EC2, Fargate, Lambda)の利用料を合計し、最低限どれくらいを使うかをコミットします。下の図でいうところの、変動の下限の部分です。その金額が単位時間あたり$10としたら、コミットメントとして割引後の金額を指定します。 ※EC2 Instance Savings Plansだと、リージョンやインスタンスファミリーの指定も必用です。

f:id:takurosasaki:20210420123941p:plain

 文章で説明すると少し難しく感じるかもしれませんが、実際は金額を指定するだけなので簡単です。コンソールに推奨事項というのがあって、現状の利用料を元に推奨の購入額も教えてくれます。

f:id:takurosasaki:20210420124012p:plain

f:id:takurosasaki:20210420124029p:plain

 コンソールで数字を入れると自動で計算してくれますが、1時間あたり$1でも1ヶ月で$720、1年だと$8,760と大きな数字になります。指定する単位が時間ということを必ず意識しましょう。ちょっと直感とずれていることが否めないですが、指定する単位が時間というのは仕方がないでしょう。

Savings Plansの活用

 それでは、実際のSavings Plans(SP)の購入イメージを考えてみましょう。SPは時間単位で指定するというところが考慮ポイントです。殆どのシステムでは、ピークとオフピークがあります。企業向けのシステムであれば、日中の利用が多く夜間は殆ど利用されません。AWSを上手く使いこなすと、実際の利用量に応じて用意するリソースをコントロールできます。そうなると利用料金ベースでみると、次の図(アカウントA)のようになります。

f:id:takurosasaki:20210421014913p:plain

 グラフに追加した緑と黄色の帯の部分が、SPの購入イメージです。ディフェンシブに適用する場合は、利用料金の平均の下限である$3になります。しかし、これは最適解ではありません。多少オーバーコミットの時間があったとしても、全体としては適用される期間が多い$4で購入した方が、トータルでは安くなります。平均の利用時間とSPの割引率を考えながら、最適解を探す必要があります。 ※実際の購入の際は、1日の平均ではなく曜日などの傾向も考慮する必要があります。

Organization(組織)でSPを購入する

 次の例は、夜間にバッチ用のAWSアカウント(アカウントB)です。夜間に一定の利用があるものの、稼働していない時間が多くSPの適用が不向きです。

f:id:takurosasaki:20210421014846p:plain

 こういった場合に有用なのが、個別のアカウントでのSP購入ではなく、Organization全体でのSP購入です。アカウント設定の請求設定で、『RIとSavings Plansの割引共有』を設定しておくとOrganizations内のアカウント間で割引が共有されます。

f:id:takurosasaki:20210421074840p:plain

 日中に利用が多いアカウントAと夜間のみ利用されるアカウントBを組み合わせると、次のようになります。SPが効率的に購入できることが解りますね。

f:id:takurosasaki:20210421081310p:plain

※なにか素晴らしい色使いになってしまっていますが。

組織全体のSavings Plansの最適化をする

 複数のアカウントを組み合わせた方が、単体でSPを購入するより有利な事が解りました。それでは、実際には、どのようなオペレーションでSPを購入すればよいのでしょうか?多くの場合、アカウントごとに担当者がいます。そのため、他のアカウントの担当者が、どのようなAWSの利用計画をするかわかりません。同様に、Organizationの管理者は全体のAWSの利用料は解るものの、個々のアカウントの利用計画は解りません。そのため、現時点の利用料をもってSPを購入しても良いか解りません。
 ただ、組織全体としての一番最適化したSPの購入方法としては、管理アカウントで一括で購入する方法です。一方で、それだと個別アカウントへの割引のキャッシュバックをどうするかや、アカウント担当者のコストに対する意識が希薄化するなどの課題があります。
 そこでお勧めの購入方法として、アカウントごとの独自判断での購入と、組織アカウントでSP未適用分を購入するという2段階の方法です。この方法だと、個別のアカウントの担当者は自システムでSPの割引分のメリットを受けられます。また、組織自体も全体最適したSPの割引を受けられます。

f:id:takurosasaki:20210421082759p:plain

 規模や事業部の独立性などの、組織によって最適解は異なります。上であげた購入方法は、あくまで一例です。自分の組織にとって、どのような購入方法がよいか、一度考えてみるのがよいでしょう。

まとめ

 AWSの利用料削減のプランであるSavings Plans(SP)の概要とAWS Organizationsを利用した購入戦略の一例でした。SPには、柔軟性が高いCompute Savings Plansと割引率が高いEC2 Instance Savings Plansがあります。また、AWS Organizationsを使うことにより、アカウント間でSPの共有ができます。SPの共有を前提に、個別アカウントでの購入と、管理アカウントの購入を組み合わせるとよいでしょう。
 NRIネットコムではAWS Organizationsが利用可能な支払い代行サービスも提供しています。Organizatonsの設計から、今回のようなAWSのコスト削減の支援も行っています。もしご興味がありましたら、お気軽にお問い合わせください。

www.nri-net.com

f:id:takurosasaki:20210326005216p:plain

執筆者佐々木拓郎

Japan APN Ambassador 2019
ワイン飲みながら技術書を書くのが趣味なおじさんです

Twitter:https://twitter.com/dkfj

Facebook:https://www.facebook.com/takuro.sasaki

個人ブログ:https://blog.takuros.net/

Amazon著者ページ:Amazon.co.jp: 佐々木 拓郎:作品一覧、著者略歴