こんにちは。桶谷です。
クリスマスも終わり師走一直線、みなさんはどんな年末年始を過ごされるのでしょうか。ちなみにサーバーワークスは今日まで元気に営業しております。私は元旦から雪山に行く予定なのですが、暖冬で雪が積もっているかが一番の懸念です。
さて、最近Reserved Instance(以下RI)に関する問い合わせが多くありました。年末だからでしょうか。せっかくなので整理しておこうと思います。
RIの有効期限
まずRIには2種類の有効期限があります。
https://aws.amazon.com/jp/ec2/purchasing-options/reserved-instances/getting-started/
※英語
「1 or 3 years」=1年、または3年の有効期間ですね。このあたりは皆さんよくご存知だと思います。ところがここ数ヶ月に購入したRIをよく見るとStartとExpiresは以下のようになっています。
Startが2015/12/11、Expiresが2016/12/10、これはパッと見「1年ないじゃん」となっちゃいます。
でもこれが正解です。理由はRIの有効期間が年単位の算出ではなく、24時間 x 365日になっているため、そして来年は閏年のため、期限が1日早まるからになります。
各種カレンダーアプリなどで毎年のRIの期限切れを管理されている場合はお気をつけください。
RIの更新
RIの有効期限が切れる際、特に変化(必要なインスタンススペック、サーバ数など)がなければ、継続してRIを適用するために再度購入が必要になります。よく「RIの更新ってどうしたらいいの?」と聞かれるのですが、結論から言うとRIに更新(有効期限の延長とか)という概念はありません。同じ条件でRIを追加購入する形となります。さて、RIを追加購入する際、どのような形が最もコスト効率がよくなるでしょうか。
ここで関連しそうなRIの仕様について整理してみます。
- RIを購入した瞬間から権利が発生する
- RIの有効期限は開始/終了共に購入した時間の影響を受ける
- All Upfront以外の月額費用については購入時の時間が基準となる時間割り料金となる
- 購入したRIの条件に当てはまるリソースが存在する場合にRIが適用される
上記仕様を踏まえると、RIを更新したい場合、存在するRIの有効期限±1時間の間に同じRIを購入する形が最も無駄が少なくなります。
有効期限-1時間の間に購入する場合はRIの有効期間が重複する部分の月額(もしくは年額)の1時間分、有効期限+1時間の間に購入する場合はRI非適用の1時間分のオンデマンド料金が発生する形となります。どちらも1時間分のみのためコスト全体への影響は少ないですが、もしRI非適用で同条件のリソースが存在する場合は有効期限-1時間で購入するとRI重複分についても有効活用できると思います。
保持しているRIと同一条件のRIを購入する際、EC2の場合はRIの管理画面でRIを選択し「Purchase More Like These」を選択すると簡単です。
まとめ
ということでRIのアレコレでした。RIを購入する、というのはたまにしか発生しないイベントですが、発生した際はバタバタせずに落ち着いて購入しましょう。次はSpot Instanceのアレコレとかを書く、かもしれません。
それではみなさん、良いお年を!来年もよろしくお願いします!