Aws Savingplan and Reserved instance

Awsのsaving planとリザーブドインスタンス

AWSのSaving Planを調べた。

値段をだけ見ると RI(リザーブドインスタンス)のスタンダード > Saving Plan > RIコンバーチブルのような感じ何だけど、 それぞれ適応条件が違うので少し整理が必要。 かいつまんで言うと、とりあえずSaving PlanをデフォルトでONにして、ほぼ固定で1年インスタンスを使う場合はRIスタンダードor EC2 Saving Planを適応するのが現状だと安そう。

Savings Planのメモ

https://docs.aws.amazon.com/ja_jp/savingsplans/latest/userguide/sp-applying.html

ここに書いてあることを理解の補助としてメモする。数字とかが若干ずれてるけど、まぁ、大筋は間違ってないので良しとする。

利用しているリソース
r5.4xlarge (Linux) を4つ、us-east-1リージョンでフルタイムで稼働。
m5.24xlarge(Windows) を専有インタンスをus-east-1リージョンに1つ。フルタイムで稼働
400 vCPU と 1,600 GB の Fargate を利用(us_west-1)
512 MB (0.5 GB) メモリ の AWS Lambda。

サンプル価格表

サンプルは1年間1部前払いの料金にしていて、各レートはわかりやすくするために参考値になっています。

リソース オンデマンドレート Savings Plans 割引率 EC2 Savings Plans 割引率
r5.4xlarge Linux(4) $1.00 ($4.00) $0.70 ($2.8) 30% $0.60 40%
Fargate vCPU (400) $0.04 ($16.00) $0.03 ($12.0) 25% N/A N/A
Fargate GB (1600GB) $0.004($6.40) $0.003 ($4.80) 25% N/A N/A
m5.24xlarge Windows $10.00 $8.20 18% $7.80 22%
Lambda usage $22.70   0%-15% N/A N/A

ケース1:Saving Plans apply to all usage

すべてのリソースに対してSaving Plansを適応する場合。 1年間、1時間あたり50ドルのコミットメントで、Compute Savings Planを購入。 サンプルのリソースの各使用量の合計にCompute Savings Plansが適応されて47.13ドルになり、Savings Planの$50のコミットメント内ですべてカバーされます。

オンデマンドだけの場合、時間あたり$59.10 ($4 + $16 + $6.4 + $10 + $22.70)になる。

ケース2:Savings Plans apply to some usage

一部のリソースにSavings Planを適応する

1年間、一部前払いの$2.00/時間のコミットメントのSaving Planを購入します。 常時、Sabings Planにより、30%のディスカウントを提供します。 $2.00/時間のコミットメットはr5インスタンスの4ユニットのうち、2.9ユニット分(0.7*2.9)の支払いに当てられます。残りの1.1ユニットはオンデマンドのレートになり、$1.14/時間がかかります。 その他のリソースへの課金はオンデマンドレートでの課金になります。 この場合、残りのリソースの課金額が $55.10/時間になり、r5インスタンスへの課金額が$1.14/時間となり、合計で$56.24/時間になります。

ケース3:Savings Plans apply to some usage, across products

1年間、一部前払いの$19.60/時間のコミットメントのSaving Planを購入します。 SavingsPlansは、一番割引率の高いものに適応されるので、r5.4xlargeに(30%ディスカウント)適応されます。 (0.7*4) 次にFargate(25%ディスカウント)に適応されて、SavingsPlanはFargateのCPU、メモリの順に適応されていきます(割引率が高いので)。 全体の課金額が$19.60/時間に到達し、SavingPlanの枠を使い果たすと、オンデマンドの料金になります。

この場合、m5.24xlarge と Lambdaがオンデマンド請求となり、$32.70/時間 (10 + 22.70)になります。

ケース4: Savings Plans and EC2 reserved instances apply to the usage

1年間、一部前払いの$18.20/時間のコミットメントのSaving Planを購入。また2つのリザーブドインスタンス(スタンダード)のr5.4xlargeを購入しています。 はじめに、2つのr5.4xlargeのインスタンスにリザーブドインスタンスの割引が適応され、残りのr5.4xlarge、Fargateで18.20のSavings Plan($1.8 + $12 + $4.8)が適応されます。 この場合も、m5.24xlarge と Lambdaがオンデマンド請求となり、$32.70/時間 (10 + 22.70)になります。

ケース 5: Multiple Savings Plans apply to the usage

1年間、一部前払いの$3.00/時間のコミットメントのEC2 Saving Planを購入。また、16.80/時間コミットメントのComputeSavings Planを購入 r5のインスタンスファミリーが4つあるので、合計で$2.8/時間になり、EC2 SavingPlanに含まれます。 次にFatgateのメモリ、CPUの順に利用されます。 m5.24xlarge と Lambdaがオンデマンド請求となり、$32.70/時間 (10 + 22.70)になる。

まとめ

割引率の高さは

Ec2 Savings Plan ≒ リザーブドインスタンス(スタンダード) > Compute Savings Plan > リザーブドインスタンス(コンバーチブル)

になるので、コンバーチブルを買うならSavingsPlanを買ってしまったほうが値段的には安いけども、使う金額予め計算してから申し込むSavings Planは毎度計算が必要。 例えば、インフラの予算を取るために比較を作るったりする場合、リザーブドインスタンスはこのインスタンスが1ヶ月いくら!ってかけるけど、Saving Planは1ヶ月何時間利用する予定だから、 いくらで申し込んで最終的にこれだけ割引になります。という感じに、スマホの2年契約の割賦払いみたいな説明をしなくてはならなくなる。

とはいってもインフラ代の節約は重要なので説明できるようになってはいたいなー。

connvoi's Picture

About connvoi

肉とビールと料理と写真とゲーム たまに技術 python / Solr / PHP / ansible

アマゾンセール情報サイト アマセール管理人

Jp, Tokyo https://connvoi.com