知らなかった。RIが小さいインスタンスタイプから順に適用されることを | Developers.IO

知らなかった。RIが小さいインスタンスタイプから順に適用されることを

ご機嫌いかがでしょうか、豊崎です。

Reserved Instance(以降RI)を利用いただいているお客様のご利用明細にわかりづらい箇所があり、調べていたところ勉強になった点がありましたので書き残しておこうと思います。 具体的にはRIがインスタンスにどのように適用されるか?についてです。

発生した現象

「m3.xlarge」のRIを購入しているアカウントで、RIを適用する想定だった「m3.xlarge」インスタンスの月額料金の半分しか減額されていないように見えました。

なんで??

ドキュメントを読んでみました。

https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/apply_ri.html

インスタンスサイズの柔軟性は、インスタンスサイズの正規化係数によって決定されます。割引は、予約したインスタンスサイズによって、同じインスタンスタイプの実行しているインスタンスに完全、または部分的に適用されます。この場合、一致する必要がある属性はインスタンスタイプ、テナンシー、プラットフォームのみです。

インスタンスサイズの柔軟性は、インスタンスファミリー内の最も小さいインスタンスサイズから大きいインスタンスサイズへ、正規化係数に基づいて適用されます。

インスタンスファミリーが同じであれば最も小さいインスタンスサイズから大きいインスタンスサイズへ適用されるらしいです。

さらにインスタンスサイズごとに以下のような正規化係数が定められているます。xlargeの正規化係数は8、largeの正規化係数はその半分の4です。

インスタンスサイズ 正規化係数
nano 0.25
micro 0.5
small 1
medium 2
large 4
xlarge 8
2xlarge 16
4xlarge 32
8xlarge 64
9xlarge 72
10xlarge 80
12xlarge 96
16xlarge 128
18xlarge 144
24xlarge 192
32xlarge 256

 

なんとなく答えが見えてきました。つまり、「m3.xlarge(正規化係数8)」インスタンス用として購入したRIではあるものの同一環境で「m3.large」インスタンスをずっと動かしていたら、先に「m3.large(正規化係数4)」インスタンスが適用されることになります。そして残りの「4」の部分が「m3.xlarge」に割あたることで半月分減額されているとなりそうです。で、実際調べてみるとまさにその状況でした。

インスタンスの柔軟性についての補足※要チェックです

インスタンスの柔軟性は「スコープをリージョンで指定している共有テナンシー上で動くLinux/UnixのRIで自動的に適用されます」 https://aws.amazon.com/jp/blogs/news/new-instance-size-flexibility-for-ec2-reserved-instances/

言い換えると、特定のAZを指定して購入したRI、ベアメタル、占有テナントのRI、Windows系インスタンス、RHEL、および SLESのRIには適用されません。

https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/apply_ri.html

ご注意くださいますようお願いいたします。

さいごに

RI(インスタンスサイズの柔軟性)について調べたことをまとめてみました。小さいインスタンスから割り当てされることを認識していませんでしたが最終的な請求額は一緒ですし、使いもらす可能性が減るのでいいですね!コストについてもっとちゃんと認識しないとなと思いました。反省反省。この記事が誰かのお役に立てば幸いです。