[新機能] Savings Plans のリリースにあわせてIAMの権限を修正した話

AWS運用自動化サービス「Cloud Automator」

CS課佐竹です。
最近、寒くなりましたね。

はじめに

ついにリリースがされた 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/

また、以下が製品ページのURLとなります。Pricingは以下のページに記載されております。FAQも充実していますので、公式ページを見られるのが正確で良いでしょう!

Savings Plansって何?

「以下のブログを~」と先に書いたものの、やはり若干ですが説明させて頂きます。
ざっくりいうと Reserved Instance よりも素晴らしいコスト削減の機能です。特徴は以下の通りです。ちなみに略してSPと書きます。

  1. Savings Plansには種類が2種あります
  2. 「Compute Savings Plan」はEC2インスタンスとEMR, ECS, EKS, Fargate等に適用され、Region、Instance Family、Availability Zone、Instance Type、OS、テナンシーに関係なくコストが削減されます
  3. 「EC2 Instance Savings Plan」はEC2にのみ適用され、Availability Zone、Instance Type、OS、テナンシーに関係なく、そのRegionで選択したインスタンスファミリーのコストが削減されます
  4. 「Compute Savings Plan」よりも「EC2 Instance Savings Plan」のほうが縛りが強いため、コスト削減効果は高くなります
  5. コミットは1年間または3年間の一貫した使用量($ /時間で測定)へのコミットメントとなります

Savings Plansのメリット

いままでReserved Instance(RI)では縛りが多く、やれRegionを超えられない、OS固定、Dedicatedは別扱いだとかいろいろありましたが、「Compute Savings Plan」では「Regionなんか関係ねぇ!」とばかりその制約もとっぱらわれました。しかも、Instance Familyも制約がないのです。つまり利用時間をコミットすればそれだけでEC2が安くなるんだというものです。しかもディスカウント率もRIと遜色ありません。「EC2 Instance Savings Plan」はサービスがEC2のみに限定されつつRegionとInstance Familyは固定ですが、その分ディスカウント率が高くなっています。これはどちらも便利・楽、つまり最強に使い勝手がいい。これは素晴らしいということで早速見てみたい!その気持ちを抑えきれずマネコンにログインしたらエラーになるじゃありませんか。

Savings Plansを見ようと思うとエラーになる

Savings Plansへは、EC2もしくはCost Exploreのコンソールからの移動になります。実際の画面は下画像の通りです。

ここで画面右上の「Purchase a Saving Plan」を押すと、以下のエラーが出ます。

You are not authorized to perform this operation.
The IAM policy for the current user does not allow access to this page. IAM policies need to be enabled in order to access the Billing & Cost Management Console.Learn more

「Learn more」にリンクがありますがリンク先を見てもわかりませんでした。ですので調べました。

新しいIAMの権限が必要になった

結論からお伝えしますと、リリースにあたり以下のAWS Managed Policyが新設されていました。

AWSSavingsPlansFullAccess
AWSSavingsPlansReadOnlyAccess

なんと、「ReadOnlyAccess」が付与されていても、「AWSSavingsPlansReadOnlyAccess」がないと閲覧できないのです。というわけで色んなIAM Userにペタペタと「AWSSavingsPlansReadOnlyAccess」を付与することになりました。

実際にマネコンから検索するとこのように表示されます。購入オペレーションをされたい方は「AWSSavingsPlansFullAccess」の権限が必要になります。

※2019年11月11日追記:本IAMの権限について「公式ドキュメント」にも記載されました

Savings Plansのデメリットは?

メリットを記載しましたのであわせてデメリットも考えてみました。ここはやはり、「キャパシティ予約」でしょう。Reserved Instance(Availability Zone指定)には「キャパシティ予約機能」があります。が、Savings Plansにはそれがありません。実際にFAQには以下が記載されています。

>Do Savings Plans provide capacity reservations for EC2 instances?
No, Savings Plans does not provide a capacity reservation. You can however reserve capacity with On Demand Capacity Reservations and pay lower prices on them with Savings Plans.

その対策ですが、Answerにある通り「オンデマンドキャパシティ予約」が今後のキャパシティ予約の解決策となります。
Reserved Instanceと異なり、Savings Plansではキャパシティ予約の機能は完全に分離されている状態です。ですので、オンデマンドキャパシティ予約を利用します。そして、オンデマンドキャパシティ予約の利用料は「オンデマンド」ですので、これはSavings Plansのコスト削減の対象になります。つまり、これはデメリットといいますか「機能が分断されかつそのキャパシティ予約の機能は既に提供されていますよ」というご理解を頂けますと幸いです。

まとめ

Regionを超えてEC2等のコスト削減が可能なSavings Plansがリリースされました。ですがそのせっかくの機能を試そうにも「IAMの権限でエラーになる!」とお困りの方、是非以下の権限を参考に権限を付与ください。

AWSSavingsPlansFullAccess
AWSSavingsPlansReadOnlyAccess

Savings Plansを運用して気づいたことなどあれば別途ブログにしたいと思いますのでお楽しみに。

AWS運用自動化サービス「Cloud Automator」