AWSコスト削減 予約・前払い編
概要
AWSでは多くのコスト削減方法がありますが、実施する方法を考えても機会がなければ実行できないことが多いです。不要なリソースを削除したり、パフォーマンスとコストを両立する方法を考えることはベストプラクティスですが、工数や人員の問題から管理が難しい場合もあります。そこで、何もしなくてもAWSの料金を削減できる方法について考えます。
RI/SPsとは何か?
RI(Reserved Instance)とSPs(Savings Plans)は、AWSが提供する割引プランです。EC2やRDSなどのインスタンスに対して1年または3年分料金を前払いすることで、割引が適用されます。割引率はインスタンスタイプなどによって異なり、4%~60%程度です。
仕組み
割引適用の仕組みは次の通りです。
Reserved Instance
リザーブドインスタンスを購入すると、選択したリザーブドインスタンス期間が終了するまでの間、インスタンスを実行するかどうかにかかわらず 1 時間ごとまたは 1 秒ごとに料金請求が発生します。実効時間単価は、インスタンスのコストを 1 時間ごとに支払うと考えた場合の金額です。つまり、リザーブドインスタンスの期間全体の料金合計 (前払い分も含まれます) を、リザーブドインスタンス期間の 1 時間ごとに分配すると考えます。
Savings Plans
あらゆる種類のコンピューティング使用量に対して、Savings Plan 料金とオンデマンド料金があります。以下に、あらゆる種類のサービスの Savings Plan 料金とオンデマンド料金を示します。確約量に対しては Savings Plans 料金が請求され、確約量を超える使用については通常のオンデマンド料金で請求されます。
Savings Plansの補足として割引額はインスタンスタイプなどによって差があり、割引率が高いインスタンスから適用されます。
つまり、コミットメント1時間当たりで一番高い割引率のインスタンスに対して適用され、リソース使用料が割引率分だけ請求から差し引かれるということです。
例えばEC2でよく使用されるt2.microの場合、Savings Plansで1年間の料金を全額前払いすると28%の割引になります。
比較
RIは割引率が高い代わりに制限が多く、SPsはあらゆるリソースに対して柔軟な割引が適用されます。以下はRIとSPsの比較です。
Reserved Instance | Savings Plans | |
---|---|---|
割引対象 | EC2, RDS, OpenSearch Service | EC2, Lambda, Fargate, SageMaker |
柔軟性 | 低い | 高い |
割引率 | 高い | やや低い |
計算 | 容易 | 複雑 |
※ReservedシリーズはInstance以外にもNode, Capacityなどの種類があります。
長期間のプロジェクトで安定稼働しているリソースがある場合はRIがおすすめ、プロジェクトの期間が決まっていないが1年以上使用する見込みがある場合はSPsがおすすめです。導入としてまずはSPsを購入し、条件に合ったインスタンスに対してRIを適用する方法が考えられます。
契約年数と前払い額による割引率の違い
割引率は契約年数と前払い額に依存します。
Reserved Instance
契約年数:
- 1年契約: 割引率は通常4%~40%程度。 🥉
- 3年契約: 割引率は通常20%~60%程度。 🥇
Savings Plans (SPs)
契約年数:
- 1年契約: 割引率は通常5%~30%程度。 ☘️
- 3年契約: 割引率は通常10%~50%程度。 🥈
前払い額(RI/SPs共通)
- No Upfront(前払いなし): 割引率は最も低い。
- Partial Upfront(一部前払い): 前払い額が多いほど割引率が高くなります。
- All Upfront(全額前払い): 前払い額が最も多く、割引率も最大になります。
これらの割引率を考慮して、組織の予算やリソース利用パターンに最も適したプランを選択することが重要です。
前払いをしたほうが得をする?
支払いはドル単位のため、前払いする時期によって予約購入の価格は変動します。
以下は為替相場が160円から120円になり円高が進む場合に全額前払いをすると損するのか試算した結果です。
※ChatGPTに生成していただきました。
全額前払いとオンデマンド支払いの比較
条件
1200ドルの商品を前払いして購入する場合と、1年で1か月ごとに100ドル買い続ける場合を比較します。
-
商品は円建てで支払うため、為替相場によって支払額が変わります。
-
予約して購入すると30%割引が適用されます。
-
円高傾向が進んでおり、1ドル160円が1年で1ドル120円に変動しました。この時、相場は1か月ごとに定率で変化すると考えます。
-
前払い購入:
- 商品価格: 1200ドル
- 割引: 30%
-
月ごとの購入:
- 月ごとの購入金額: 100ドル
- 割引: なし
- 為替レートの変化: 初期値160円/ドルから1年後に120円/ドル
- 定率変化: 毎月の為替レート変化を計算し、各月の支払額を計算
-
前払い購入:
比較結果
- 前払い購入: 134,400円
- 月ごとの購入: 168,858.85円
前払い購入の方が、月ごとの購入よりも安くなります。
全額前払いと半額前払いの比較
条件
- 前払い購入:
- 商品価格:1200ドル
- 前払い割引:30%
- 分割払い購入:
- 分割払い割引:頭金と月々の支払いに25%割引が適用
- 為替レート変動:1ドル160円から1ドル120円に1年で変動
- 為替レートの月ごとの変動は定率
比較結果
- 前払い:134,400円
- 分割払い:144,120円
上記の計算は割引率によって変動しますが、予算を確保できれば基本的には全額前払いが良いでしょう。
まとめ
AWSの予約支払いを活用することで、AWSのコンピューティングやDBサービスをより低コストで運用することができます。
割引のオプション制度は複雑ですが、計画を詳細に検討すればより良い割引率を提供してくれるサービスだということが分かります。
コスト削減効果をすぐに実感したいのであれば有効な手段だと思いますので是非ご検討ください。
Discussion