RI・SPの購入数量の算出の方法や注意点について

# はじめに
[Japan AWS Jr. Champions Advent Calendar](https://qiita.com/advent-calendar/2023/jr-champions) 9日目の投稿です
今回は、AWSのコスト削減の大きな方法であるRI・SPの購入数量を算出する方法や注意点についてブログにしました。
RI・SPをなんとなく知っている人はいるかと思いますが、どの程度買うべきかについて考える材料にしていただければと思います。
今回は、新規購入する場合と、更新をする場合の大きく２つに分けて記載します。

# 新規に購入する場合
新規にRI・SPを購入する場合は、AWSのコスト関連ツールで「推奨事項」というものがあるので、そちらのツールを使用することで、自ずと購入数量が算出されます。

推奨事項の使い方は、下記ブログに記載されているので、わからない方は見ていただければと思います。
https://aws.amazon.com/jp/builders-flash/202304/aws-cost-optimization/?awsf.filter-name=*all


推奨事項を使う上で悩むのが購入条件になるかと思います。
RIとSPで、それぞれ下記の条件があります。

・RI
支払い方法：「全額前払い」、「一部前払い」、「前払いなし」
購入期間：1年もしくは3年
種類（EC2のみ）：スタンダードもしくはコンバーティブル

・SP
支払い方法：「全額前払い」、「一部前払い」、「前払いなし」
購入期間：1年もしくは3年
種類：ComputeSavingsPlans、EC2InstanceSavingsPlans、SageMakerSavingsPlans

これらの購入条件の特性の違いを今回は解説いたします。

### 支払い方法
支払い方法は3種類ありますが、割引率が大きく異なり、下記となります。
「全額前払い」＞「一部前払い」＞「前払いなし」

特別な理由がない限りは全額前払いがいいかと存じます。会社の予算の関係で、大きな金額を確保することができないなどであれば、一部前払いや前払いなしを検討いただければと思います。

### 購入期間
こちらも割引率に影響し、下記のようになります。
3年＞1年

かなり長期間使うことを前提とするなら、3年の方が良いでしょう。

### 種類
RIとSPで種類は異なりますので、それぞれ解説します。

### RI：スタンダード or コンバーティブル
RIは2種類ございます。

スタンダード：AZ、インスタンスサイズ、ネットワークタイプの変更ができますが、インスタンスファミリーの変更ができません。
インスタンスファミリーの変更予定が少ない、本番環境などはこちらを選ぶと良いでしょう。

コンバーティブル：インスタンスファミリーの変更も可能です。ただし、購入時よりもハイスペックなRIのみしか変更できないので、スペックダウンはできないです。
開発環境などスペックが変動しやすい場合は、コンバーティブルが適しているでしょう。


### SP：ComputeSavingsPlans、EC2InstanceSavingsPlans、SageMakerSavingsPlans
SPは3種類ございます。

ComputeSavingsPlans：インスタンスファミリー、サイズ、アベイラビリティーゾーン、リージョン、OS、テナンシーを指定せずとも、EC2 インスタンスに割引が適用される柔軟性の高いものとなります。
また、EC2以外にも、FargateやLambdaにも適用されます。
こちらも、インスタンスサイズなどの変動が大きい場合や、コンピューティングサービス全般に割引を適用させたい場合に選択すると良いでしょう。

EC2InstanceSavingsPlans：EC2限定で、リージョン内のインスタンスファミリーでの契約をすることで割引を受けられるものです。
柔軟性が低い分、割引率は高いです。インスタンスファミリーの指定がある場合は、こちらを選択すると良いでしょう。

SageMakerSavingsPlans：その名の通り、SageMakerのみのSavingsPlansです。リージョンやインスタンスファミリーの指定をせずとも購入できます。SageMakerを使う時のみ選択すると良いでしょう。

# 更新をする場合

既存のRIやSPを更新する場合、少し注意点があります。
もし既にRIやSPが適用されており、期限が近づいているので更新する際の購入額を決めたい場合、下記の手順を実施することを推奨します。

①使用状況レポートの確認
②推奨事項の確認

### ①使用状況レポートの確認
Cost Explorerの機能で、RIやSPがどの程度使われているかを確認するツールがございます。
こちらのレポートで現状のRIやSPがどの程度使われているかを確認してください。
表示される使用率によって対応が変わります。

100％に近い使用率の場合：現状のRIやSPと同じ数量を継続購入することを推奨します。
100％にはあまり及ばない場合：RIやSPを使い余らせている状況です。例えば、10個のRIを購入して、使用率が60％だった場合、6台分しか使われていないので、継続購入するのは6台のみにした方が良いです。

RIやSPは使っていないものがある場合でも請求は発生するので、使用率に合わせた台数を継続購入するようにしましょう。
本来割引を受けるはずのサービスが、ただのコストになるという本末転倒な事態になります。

### ②推奨事項の確認
更新をする際には、あらためて推奨事項を確認してみましょう。
既存のRIやSPがある場合の推奨事項には一点注意がございます。

それは、既存のRIやSPで割引されているもの以外で、割引できるものがある場合のみ、推奨事項に表示されるということです。

そのため、既存のRIやSPのみで充足している場合は、推奨事項に何も表示されないこともあります。
既存のRIやSP以外でオンデマンド稼働しているインスタンスが多いと、推奨事項が表示されるので、追加購入分として前回購入したものと合わせて買うと良いでしょう。


# その他注意事項
２点ほど注意事項がございます。

・基本的に解約不可
RIやSPは、長期間大量に使うことを前提に割引を受けられるサービスとなります。
そのため、基本的に解約は不可能です。そのため、慎重に買いましょう。
ただし、該当のインスタンスタイプがEOSを迎えるなどの場合、AWSから返金を受け取ることは可能かもしれませんので、その場合はAWSサポートなどにご確認いただければと存じます。


・推奨事項が表示されないケース
インスタンスがあるにも関わらず、推奨事項が表示されないケースがありますが、これはインスタンスを停止している時間が多い場合に起こりえます。
先ほど記載したように長期間大量に使い続けることが前提なので、平日日中帯しか稼働していないサーバなどは、割引を受けるのに適さないものとなります。
そのようなケースで、RIやSPを購入してしまうと、実は損してしまう可能性があります。その場合、オンデマンドでの利用を推奨します。


# まとめ
今回はRIやSPの購入数量算出の方法や、注意点について解説しました。
新規購入の際については理解している人は多いですが、更新の際などについては理解していない方が多いかなという印象を持っていたので、これを機に知ってもらえたらなと考えております。