0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

EC2のRIは「台数」じゃなくて「ポイント」で数えるらしい

0
Posted at

最近、EC2に「正規化係数」というものがあると知りました。

きっかけは、RI(リザーブドインスタンス)の購入を調べていたときです。 m5.large を何台買えばいいか考えながらドキュメントを読んでいたら、Normalization Factor という見慣れない言葉が出てきました。調べてみると、RIの割引は台数ではなく、インスタンスのサイズごとに決まった「ポイント」で数えているんですね。

知らずに買っていたら、請求を見て「あれ、割引が思った台に乗ってない」と首をかしげていたと思います。せっかくなので、分かったことを短くまとめておきます。

RIは「サーバー」じゃなくて「割引枠」

最初に勘違いしていたのがここです。RIは特定のサーバーを予約する契約ではありません。すでに動いているオンデマンドインスタンスに、AWSが自動で当ててくれる割引枠です。

なので「どの台に割引を付けるか」は自分では選べません。AWSがルールに沿って割り振ります。そのルールの中心にあるのが正規化係数です。

サイズごとにポイントが決まっている

正規化係数は、すごく雑に言うと「サイズごとのポイント」です。 small を1として、サイズが1段上がるごとに倍になります。

サイズ 正規化係数
nano 0.25
micro 0.5
small 1
medium 2
large 4
xlarge 8
2xlarge 16
4xlarge 32
8xlarge 64
16xlarge 128

ポイントはサイズの名前だけで決まるので、 m5.large でも c5.large でも4です。vCPUの数とも関係ありません。 t3.nano はvCPUが2つありますが、ポイントは0.25です。

倍々にならないサイズもあります。 3xlarge は24、 6xlarge は48、 12xlarge は96といった具合です。大きいサイズを買うときは、ユーザーガイドの表を一度見ておくと安心です。

metal だけはちょっと特殊で、同じファミリーの対応するサイズと同じポイントになります。たとえば i3.metal は i3.16xlarge と同じ128です。

買った枠は「ポイント × 台数」

RIを買うと、1時間あたり「ポイント × 台数」の枠が手に入ります。 m5.xlarge を1台分買えば、枠は8ポイントです。

この8ポイントは、同じ m5 ファミリーならサイズをまたいで使えます。

ec2-ri-normalization.png

m5.large 2台なら4+4でぴったり使い切ります。 m5.xlarge 1台でも同じです。 m5.2xlarge は16ポイント必要なので、半分だけ割引になって、残りはオンデマンド料金になります。

ただ、ポイントが使えるのは同じファミリーの中だけです。 m5 の枠は m6i や c5 には使えません。

このサイズ融通が効くのは、リージョン指定で、プラットフォームが Linux/UNIX、テナンシーがデフォルトのRIです。Amazon Linux や Ubuntu ならここに入ります。リージョンの中ならどのアベイラビリティゾーン(AZ)で動いていても大丈夫です。

小さいインスタンスから先に使われる

個人的に、ここが一番ハマりそうだと思ったポイントです。

複数のサイズが同時に動いていると、割引はポイントの小さいインスタンスから順に当たります。

たとえば m5.2xlarge のRIを1つ持っていて、枠が16ポイントあるとします。そこに m5.large 2台と m5.xlarge 2台が動いていたらどうなるか。

まず large 2台で8ポイントを使います。残りの8ポイントで xlarge が1台分カバーされて、もう1台の xlarge はオンデマンドのままです。xlarge のために買ったつもりでも、小さい台が先に枠を持っていってしまうんですね。

Organizations で一括請求している場合は、RIを買ったアカウントの利用に先に当たって、余った分がほかのアカウントに回ります。

サイズ融通が効かないケースもある

ポイントの考え方が使えないRIもあります。AZ指定で買ったRI、Dedicated テナンシー、Windows、RHEL、SUSE などは、買ったサイズにしか割引が当たりません。

インスタンスファミリーでも例外があって、G4dn、G5、G6、P5、Inf2 など、GPU系を中心にサイズ融通の対象外になっています。この一覧はときどき増えるので、GPUインスタンスのRIは動かすサイズそのもので買うのが無難です。

買ったあとにRIのサイズを変えるときも、ポイントで帳尻を合わせます。 t3.small(1ポイント)を4台分持っていれば、合計4ポイントなので t3.large(4ポイント)1台分にまとめられます。変更できるのは同じファミリー、同じ世代の中だけで、 t3 から t4g のような乗り換えはコンバーティブルRIの交換が必要です。

請求で確かめるなら

実際にどう当たったかは、Cost and Usage Report の lineItem/NormalizationFactor と lineItem/NormalizedUsageAmount で確認できます。

ちなみに EC2 Instance Savings Plans だと、同じファミリー内のサイズ差はプラン側で吸収してくれます。ポイント計算を意識しないといけないのは、RIをサイズ違いで使うときです。

正規化係数を知ってから、RIの購入画面の見え方がだいぶ変わりました。台数ではなくポイントで数えてみると、手元の構成にどれだけ割引が乗るかが見えてきます。

参考にしたのは EC2 ユーザーガイドの How Reserved Instance discounts are applied です。対象外のファミリーもここで更新されます。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?