リザーブドインスタンスを完全理解!これを読めばとりあえず大丈夫。

December 15, 2019

「RI(リザーブドインスタンス)で料金が安くなることは知っているけれど、オプションなどがイマイチ分からなくて導入できない。」と思ってる人は、結構いるんじゃないでしょうか?

条件によっては、料金がかなり安くなるので、分からないで導入できないのは勿体ないです。

是非、この記事を読んで、安心してRIを使えるようになりましょう。

どんな時にリザーブドインスタンスは最適なのか?

これは、「同じEC2インスタンスを常時起動かつ長期(1年 or 3年)で使用する場合」になります。  

ちなみにリザーブドインスタンスは、EC2インスタンスの割引き券のようなイメージで捉えてもらうと分かりやすいかも。

この「常時起動」と「長期」という2つのキーワードは、かなり重要です。というのも、リザーブドインスタンスは、事前に1年 or 3年のどちらかの期間で購入します。一度購入したら、EC2インスタンスを使用有無にかかわらず、購入した期間は支払う必要があります。

例えば、1年間のリザーブドインスタンスを前払いなしで購入し、その半年後に、「あ、やっぱりEC2インスタンス使わなくなったや。。」となった場合。この場合でも、残念ながら残りの半年分は、EC2インスタンスの利用有無にかかわらず料金を支払い続けないといけません。

従って、「常時起動」と「長期」をしっかり考えた上で購入する必要があります。

リザーブドインスタンスの支払い方法は、どんな種類がある?

支払い方法は、以下の3種類が用意されています。

  • 全額前払い
  • 一部前払い
  • 前払いなし

気になる割引率ですが、「全額前払い > 一部前払い > 前払いなし」の順になります。

例:t2.large インスタンスの場合(コンバーティブルの場合)※コンバーティブルの解説は後述。   全額前払い28%、一部前払い26%、前払いなし22%

インスタンスタイプ別の割引率をより知りたい場合は、下記の公式サイトをご参照ください。 Amazon EC2 リザーブドインスタンス料金表 | AWS

リザーブドインスタンス購入時の選択項目

リザーブドインスタンスを購入する場合、いくつかの項目を選択する必要があります。それぞれ解説していきます。

プラットフォーム LinuxやWindowsなどのOSを選択します。

インスタンスタイプ インスタンスファミリーとインスタンスサイズを選択します。

テナンシー 専用ハード(dedicated)or 共用ハード(default)を選択します。

期間 1年 or 3年 を選択します。

お支払い方法 全額前払い or 一部前払い or 前払いなし を選択します。

キャパシティ予約 アベイラビリティゾーンを指定することでキャパシティ予約をすることが可能です。アベイラビリティゾーンではなく、リージョンで使用した場合、キャパシティ予約は使用できません。ただ、その場合、リージョン内にある全てのインスタンスに自動的に割引が適用されます。

提供クラス スタンダード or コンバーティブル を選択します。これについては、少し詳しく解説していきます。

下記は、比較した表になります。 スタンダードとコンバーティブルの比較

一番の大きな違いは、表からも分かる通り「インスタンスファミリー、オペレーティングシステム、テナンシー、支払いオプションの変更」です。
スタンダードでは、この変更ができません。具体例を挙げると、リザーブドインスタンスの購入後、「OSをAmazon LinuxからCentOSに変えたい。」、「インスタンスファミリーをT2からT3に変えたい。」となっても、スタンダードの場合リザーブドインスタンスの交換をすることができません。
従って、「将来的にインスタンスファミリーを変えるかも。」「OSは変更するかも。」などの不安要素があれば、コンバーティブルをオススメします。(コンバーティブルでも割引率が30%程あるので、料金の節約にはなるかと思います。)

購入したリザーブドインスタンスを変更したくなったらどうする?

もしかしたら、購入後にリザーブドインスタンスを変更したい場。   「t2.largeからt2.smallに変えたい。」 「t2からt3に変えたい。」 リザーブドインスタンスでは、このような交換が可能です。ただ、少しクセがあるので「インスタンスサイズを変更する場合」と「インスタンスファミリーを変更する場合」で解説していきます。

インスタンスサイズを変更する場合

インスタンスサイズの変更で抑えておきたい用語が「フットプリント」。このフットプリントは、正規化係数*インスタンスの数で計算し、この範囲でリザーブドインスタンスを交換することが可能です。従って、このフットプリントを超えてリザーブドインスタンスの交換をすることはできません。また、インスタンスサイズを変えることができるのは、プラットフォームにLinux/Unixを選択した場合のみです。  

具体的に説明していきます。

まず正規化係数ですが、下記のように決められています。 正規化係数

例えば、t2.largeのリザーブドインスタンスを2個購入したとします。

① 1つの t2.larget2.mediumに変更したい場合 t2.largeのフットプリントは、以下の計算より「4」。

4(正規化係数)×1(インスタンス数)=4(フットプリント)

t2.mediumの正規化係数は表より「2」。そのため、以下の計算より、2個のt2.mediumにリザーブドインスタンスを分割することができます。

4(フットプリント)/2(正規化係数)=2(インスタンス数)

② t2.largeインスタンスをt2.xlargeに変更したい場合 t2.xlargeの正規化係数は表より「8」。そのため、変更する場合は、フットプリントが「8」必要です。今回は、t2.largeインスタンスが2個いるため、フットプリントは、ちょうど「8」です。

4(正規化係数)×2(インスタンス数)=8(フットプリント)

そのため、2個のt2.largeのリザーブドインスタンスとt2.xlargeを交換することができます。(実際にはマージすることになります。)

分割とマージの2パターンを紹介しました。あくまで、リザーブドインスタンスの交換は、「フットプリントの範囲内で行う」ということをお忘れなく。

インスタンスファミリーを変更する場合

インスタンスファミリーの変更は、コンバーティブルのみ可能です。また、いくつか制限があるのですが、特に注意して欲しいものをピックアップしました。

  • 「全額前払い」 or 「一部前払い」から「前払いなし」のコンバーティブルリザーブドインスタンスに変更することはできない。
  • 「前払いなし」から「前払いなし」のコンバーティブルリザーブドインスタンスに変更する場合は、時間料金が交換元のコンバーティブルリザーブドインスタンスの時間料金以上になるもののみ。

まとめ

以上で、リザーブドインスタンスに関する解説は終了となります。ややこしい決まりがありますが、1つ1つ見ていくと以外にシンプルです。是非、導入を検討してみてください。