ちょっと話題の記事

本文は長いけどわかりやすい(はず)AWSコスト削減の要 -RIとSPパーフェクトマスター 2020-

「この記事をブクマしておけばリザーブドインスタンス(RI) と SP に関する疑問は全部解決するZE!」みたいな記事を書いてほしい」というリクエストがあったわけではないですが、書いてみたくなったので書きました。
2020.07.09

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは、札幌在住 AWS 事業本部 オペレーション部(通称オペ部)の池田です。
先日、Savings Plans(SP)に関するよくあるお問い合わせをご紹介する動画を作成、公開したというブログ記事を書きましたところ、読まなきゃ損($∀$)リザーブドインスタンスのススメ -2019春-のような「この記事をブクマしておけばリザーブドインスタンス(RI) と SP に関する疑問は全部解決するZE!」みたいな記事を書いてほしい」というリクエストがあったわけではないですが、書いてみたくなったので書きました。
ブラウザのスクロールバーでなんとなくお察しいただけるとは思いますが、かなりのボリューム(600行超 およそ32000文字)になりましたので、左側に表示される目次をご活用ください。
なお、複数サービスにおいて共通となる説明については、各サービスの項目ごとに(一部コピペですが)繰り返し記載していますので、最初から最後までを読まずに確認したいサービスの項目だけをお読みいただいたとしても、重要事項を見落とすことはないと思います。
※ 7/16 本記事で出てくる用語の一部について、「用語の整理」として説明を追記しました。
※ 7/20 本記事で例示している m5.xlarge EC2 インスタンスの SP 料金の計算における SP プラン名を明記しました。
※ 7/30 用語の整理 において、プラットフォームに関して AWS ドキュメントへのリンクを追加しました。
※ 8/14 重要なポイントを 5分ほどで説明した動画を YouTube に公開しました。
8/21 SP と リージョン RI が、オンデマンドキャパシティ予約にも適用されることを追記しました。詳細はこちらの記事で公開しました。

はじめに

AWS に限らず、クラウドサービスを利用する上では予想外のオンデマンド料金が発生してしまわないか。という不安がどうしてもあると思います。そういったことが起きないよう、リソースに対し適正な予算の確保を目的として定期的なシステム構成の見直しやアプリケーションの最適化などを行なっているケースも多いでしょう。
そういった努力の上で長期利用が確定したリソース群をそのままオンデマンド料金で利用する方法もありますが、やはりかかるコストは少ない方が嬉しいですよね。本記事では長期利用が確定したリソースを対象としたコスト削減策の代表であるリザーブドインスタンス(RI)と Savings Plans(SP)について、できるだけ詳しくご紹介していきます。
AWS 全般におけるコスト削減につきましては、クラスメソッド コンサルティング部中川が公開しています【資料公開】AWSコスト最適化のポイントのご紹介をご覧ください。
RI の方が、既に AWS を利用してきている人には馴染みがある分、SP の考え方や仕組みがピンとこないかもしれません。また、最近 AWS に触れ始めた方々にとっては、両者の違いがよくわからないかもしれません。実際、友人など身近な人たちからも当然お客様からも、その違いなどに関する質問を多くいただいています。この記事では、それぞれの特徴および仕組みと注意点について、できるだけ詳しくご紹介していこうと思います。

用語の整理

普段は AWS サービスを利用しないが契約や経理業務などで関わる方のために、簡単ではありますが、比較的多く質問をいただく用語について整理しておきます。

インスタンスタイプ とは

インスタンスファミリー(t3 や m5 など EC2 なら最初の文字列 [.] の前)とインスタンスサイズ(medium や 8xlarge など [.] の後ろ)の組合せで対象インスタンスを区別します。RDS や ElastiCache 等他のサービスでは、インスタンスファミリーの前に db. や cache. などサービス名を識別できる文字列が付与されます(db.r5.xlarge や cache.m4.large など)。

リージョン とは

日本語訳では地域。
AWS サービスが提供される地域のくくりで、利用料金はこのリージョンごとに異なるケースが多いです。

AWS にはリージョンという概念が存在します。これは、データセンターが集積されている世界中の物理的ロケーションのことです。
AWS ドキュメント グローバルインフラストラクチャ より

アベイラビリティーゾーン とは

各リージョン内に存在するデータセンターのこと。
ざっくり言うと、単一のデータセンターを利用することをシングル AZ 、同一リージョン内で複数のデータセンターを利用することをマルチ AZ と呼びます。

アベイラビリティゾーン (AZ) とは、1 つの AWS リージョン内でそれぞれ切り離され、冗長的な電力源、ネットワーク、そして接続機能を備えている 1 つ以上のデータセンターのことです。
AWS ドキュメント グローバルインフラストラクチャ より

プラットフォーム とは

EC2 インスタンスにおける OS(Operating System)。エディションやライセンスモデルを選択するものもあります。
RI を購入する際にどのプラットフォームを選択すれば良いか、詳細はこちらのドキュメントで説明されています。

・ SUSE Linux および RHEL ディストリビューションでは、これらの特定のプラットフォーム (SUSE Linux または Red Hat Enterprise Linux プラットフォーム) 用のサービスを選択する必要があります。
・ その他のすべての Linux ディストリビューション (Ubuntu を含む) の場合は、Linux/UNIX プラットフォームに対するサービスを選択します。
・ 既存の RHEL サブスクリプションを持ち込む場合は、Red Hat Enterprise Linux プラットフォーム用のサービスではなく、Linux/UNIX プラットフォーム用のサービスを選択する必要があります。

テナンシー とは

テナント属性とも呼びます。EC2 インスタンスを利用(新規作成)する際に選択する項目で、「Default」「Dedicated Instance(ハードウェア専有インスタンス)」「Dedicated Host(s)(ハードウェア専有ホスト)」の 3種類があります。
SP や RI を購入する際には、これらが適用対象となるかを確認し適切なものを購入する必要があります。
Dedicated Host(s) を利用している場合は、RI ではなく、「ハードウェア専有ホスト(Dedicated Host)の予約」または SP を購入する必要があります。
テナント属性については、下記ブログ記事で詳しく紹介していますので、興味のある方はご覧ください。

EC2 インスタンスのテナント属性を理解する

ライセンスモデル とは

自分の所有している OS または DB エンジンのライセンスを利用する場合は、Bring Your Own License(BYOL)と呼び、ライセンス込みで利用できるものを License Included(LI)と呼びます。
RI を購入する場合は、このライセンスモデルが利用中インスタンスと一致したものを選択する必要があります。

Savings Plans(SP)

Savings Plans とは

2019年11月7日にリリースされ、EC2 インスタンスと Fargate および Lambda の利用費を対象として利用できる割引サービスです。
最大の利点はその柔軟性にあり、Compute Savings Plans なら利用者は特に意識する必要なく、EC2 インスタンスと Fargate および Lambda の利用費に割引が適用されます。
また、特徴として「1時間当たりの利用費をコミットする」点があります。これは、あらかじめ「1時間当たりに利用する対象サービスの利用費がいくら($10 など)になる。」と、宣言(コミット)することを意味しています。このときコミットする(SP の料金として支払う)金額は「割り引かれた後の料金」です。
例えば、東京リージョンで EC2 インスタンス m5.xlarge Linux/UNIX を 1つ利用している場合などには柔軟性の利点は感じられず、単純に従来のオンデマンド料金 $0.248/h が $0.185/h(Compute Savings Plans 1年 全前払い の場合) に割り引かれるだけに見えてしまうでしょう。
しかし、開発環境や他のシステムで EC2 インスタンスや Fargate 、Lambda などを複数利用していて毎時間一定額を超えている場合はどうでしょうか。これらリソースの利用費が毎時間 $15 を超えていたとして $10 のコミットをしておけば(各サービス、リソースごとに SP の割引額が設定されていますが)、最も割引率が高いリソースから順に自動的に割引料金が適用されます。この仕組みは非常に嬉しいですよね。
ざっくりとまとめると SP は、対象リソース(EC2 , Fargate , Lambda)において毎時間一定額以上の利用費が発生している場合に、最低額分(平均額ではない)をコミットしておくだけでもお得になる。というものです。
この最低額は、最もリソースの稼働が少なくなる時間帯の費用を算出することで求められると思います。また、推奨事項という機能を利用することでアカウントに対して適切なコミット額を AWS のシステムに提示してもらうことも可能です。一方、戦略的なコミット額を求める場合には、一定量の稼働が継続される時間や割引により発生するオンデマンド料金との差額、今後のリソース利用計画なども考慮する必要があるでしょう。
上記のように割引は自動で適用されますが、これはあくまでも請求情報の処理に関わるものですので、実際に稼働中のインスタンスを再起動させる必要はありませんし、稼働中リソースの動作に影響を与えるようなことはありません。
なお、1年または 3年という長期間の利用を前提として大幅な割引を得る仕組みですので、購入後の変更やキャンセルは行えません。購入される際にはしっかりと内容を確認されることをお勧めします。
「全前払い」「一部前払い」「前払いなし」という3種類の支払い方法が存在し、「全前払い」と「前払いなし」はクレジットカードを使った買い物で言う「一括前払い」「頭金なしの均等分割払い」とほぼ同等の支払い体系、「一部前払い」の場合は「頭金を契約期間における総額の 50% 〜 99% の間から自分で指定して前払いし、残金を均等分割払い」する方法になります。

Compute Savings Plans とは

最も柔軟性の高いプランになります。具体的には、EC2 インスタンスにおいてインスタンスファミリー、インスタンスサイズ、アベイラビリティーゾーン、リージョン、プラットフォーム(OS)、テナンシーを問わず割引が適用されます。Fargate や Lambda を利用している場合にも自動的に割引が適用されます。
つまり、どのインスタンスの利用費を安く抑える。という視点ではなく、対象となる様々なリソースの利用費を安く抑える。というイメージです。
開発環境と本番環境が混在していたり、世界各地のリージョンを利用していたり、対象サービスを数多く利用しているような AWS アカウントにおいては、とても重宝するのではないでしょうか。

EC2 Instance Savings Plans とは

Compute Savings Plans よりも割引率の高いプランになります。具体的には、EC2 インスタンスにおいて利用するリージョンとインスタンスファミリーを指定することで、インスタンスサイズ、アベイラビリティーゾーン、プラットフォーム(OS)、テナンシーを問わず割引が適用されます。
つまり、利用する対象をある程度限定する代わりに、それらリソースの利用費をより安く抑える。というイメージです。
特定のリージョンで、特定のインスタンスを長期利用している場合のほか、限られたファミリーのインスタンスでテスト環境を複数利用していたり、負荷状況などによって様々なサイズに変更または追加するといった運用をしているケースにも向いていると思われます。

Savings Plans の料金を調べる方法

SP も他のサービス同様、Savings Plans 料金ページで確認ができます。
また、AWS Pricing Calculatorでは、複数パターンのワークロードサンプルが用意されていますので、実態に近いワークロードを選択することで現実的なコミット額算出の一助になると思われます。
AWS Pricing Calculator については、下記ブログ記事と、その本文内で紹介されているブログ記事を参照ください。

AWS Simple Monthly Calculator がついに勇退するようです!

コミット額について

Savings Plans とは のところに記載しましたように「1時間当たりの利用費をコミットする」ときのコミット額(SP の料金として支払う金額)は「割り引かれた後の料金」です。
例えば、東京リージョンで EC2 インスタンス m5.xlarge Linux/UNIX には、オンデマンド料金 $0.248/h に対して、Compute Savings Plans 料金 $0.185/h が設定されています。
このインスタンス 1つしか利用していない(常時稼働している)場合に Savings Plans 料金よりも多くコミットすると、適用対象が存在しないためせっかくの割引サービスに対して余計に支払ってしまうことになります。
購入後に内容を変更したりキャンセルをすることはできませんので、購入操作時は十分な確認を行いましょう。
逆に少ない金額でコミットした場合は、オンデマンド料金で不足分を支払うことになります。たとえば、ほぼ50% 相当となる $0.092/h でコミットした場合にはおよそ 30分間でコミット額を超過(コミット額を消費)しますので、残りの 30分間はオンデマンド料金($0.124 = $0.248 x 0.5)が計上されることになります。
利用するインスタンスが増えるなどして、定常的に発生するオンデマンド費用が増えてきたら SP を買い足すことで柔軟にコスト削減が可能です。

利用インスタンスが複数存在する場合の考え方などについては下記ブログ記事(動画)でご紹介していますのでご覧ください。

Savings Plans(SP)に関してこの数ヶ月で多くいただいたお問い合わせを動画で紹介してみました。〜オペ部だより〜

Savings Plans の注意点

キャパシティ予約の機能は提供されていません。別途オンデマンドキャパシティ予約を利用するか、場合によっては RI の購入を検討してください。
追記: なお、SP はオンデマンドキャパシティ予約の料金も適用対象となります。詳細はこちらのブログ記事に記載しました。
購入から 1年または 3年が経過し、有効期間を終えた SP はステータスが retired と表示され割引の適用が終了します。「自動更新」という機能以前に「更新」という考え方がないため、継続して SP を利用したい場合は「新たに買い直す」必要があります。
購入画面で入力するコミット額は「1時間あたりに利用をコミットする金額」であり、1日分や 1ヶ月分の金額ではありません。
一部前払いを選択した場合のみ、前払い金額には最低支払額が設定されており、総額の 50% から 99% の間になる金額で整数値で指定する必要があります(購入画面では小数点[.]が入力できません)。計算方法は、コミット金額に 1年または 3年の時間を乗算した期間分の総額に対して、前払い比率を乗算して算出した値から、小数点以下の値を切り上げて求めます。
なお、コミット額の最小値は $0.001 です。SP のサービス紹介ドキュメントでは特に触れられていませんが、技術解説のドキュメントから以下の記述を確認することができます。

commitment - The hourly commitment, in USD. This is a value between 0.001 and 1 million. You cannot specify more than three digits after the decimal point.

また、SP 購入画面でコミット額を入力する際に、以下のように赤文字で説明が表示されます。

Savings Plans の購入手順

SP の購入画面は以下のように AWS コスト管理 ページ配下にありますが、EC2 ダッシュボードのメニューからも移動が可能です。
Compute Savings Plans の場合、画像の 2 から 5 の項目に目的の内容を選択/入力してから、6 のカートに追加ボタンをクリック、購入前の内容確認画面へ移動します。複数種類購入したい場合は、確認画面(カート)へ進まずに繰り返し必要なものをカートに追加します。
この時点ではまだ購入手続きは行われておらず、間違いがあった場合は削除や編集が可能ですので、落ち着いて操作をしてください。

EC2 Instance Savings Plans を購入したい場合は、1 の項目で選択します。
以下のように「リージョン」と「インスタンスファミリー」を選択する項目が表示される以外は Comupute Savings Plans と同じですので、目的の内容を選択/入力して 6 のカートに追加ボタンをクリック、購入前の内容確認画面へ移動します。

どちらのプランの場合でも、一部前払いを選択した時のみ以下のようになります。
この前払い金額には最低支払額が設定されており、総額の 50% から 99% の間になる金額で整数値で指定する必要があります(購入画面では小数点[.]が入力できません)。計算方法は、コミット金額に 1年または 3年の時間を乗算した期間分の総額に対して、前払い比率を乗算して算出した値から、小数点以下の値を切り上げて求めます。

例として、1時間当たりのコミット額を $1 とした場合、1年間(24 x 365 = 8,760時間)で支払う総額は $8,760.00 となりますので、最低支払額はその半分の $4,380.00 となり、それに満たない場合は以下のようにメッセージが表示されます。
前述の通り、小数点以下の数値は入力できませんので、1時間当たりのコミット額を $0.97 とした場合などは、前払い額を 50% としたくても、厳密な 50% での支払いはできません(支払い総額 $8,497.2 x 0.5 = 4,248.6)。この場合は小数点以下を切り上げる必要があります。経理手続きなどにおいて厳密な金額管理が必要な場合にはご注意ください。

あとはカートに保存された内容をそれぞれ確認して(指差呼称や 2人以上でのチェックがお勧めです)、間違いがなければ「注文書の送信」をクリックして、ステータスが active になるのを待つだけです。
購入手順や実際に表示されるカートの画面、注文書の送信後については下記ブログ記事で紹介されていますので、気になる方はご参照ください。

約100USDのSavings Plansを購入してEC2の割引を確認してみた

Savings Plans よくあるお問い合わせ

  • コミット額は割引前(オンデマンド料金)と割引後(SP 料金)どちらですか?
    • 割引後の金額として 1時間当たりのコミット額を指定する必要があります。
  • 購入後にコミット額を追加したり減らしたりできますか?
    • いいえ、購入後の内容変更やキャンセルはできません。不安がある場合は、少なめのコミット額で購入して経過観察をして追加で購入するかどうか判断してください。また、購入単位は「1時間当たりの金額」であることをお忘れなく(1日でも1ヶ月でも1年でもありません)。
  • いまいちよくわからないのですが、わかりやすい資料などありませんか?
    • AWS 公式オンラインセミナーで公開されたこちらのスライドがお勧めです(このブログ記事がお役に立てば一番嬉しいですが)。
  • 大量のインスタンスを使っていて、一部頻繁に停止と起動させたりしますがこれらインスタンスの分も全部 SP を購入した方が総コストは安くなりますか?
    • コミット額は適用対象インスタンスの稼働状況に関わらす毎時間支払う必要があります。なので、実際の稼働インスタンスの費用がコミット額を下回る時間帯が多くなるとその分のコミット額は切り捨てられ無駄になってしまいます。全てのインスタンス費用を SP で賄おうとするのではなく、定常的に発生する利用費を削減するための方法と考えてください。
  • 1日のうち 6時間必ず毎日停止するインスタンスには 1日の稼働率と同じ 75% のコミット額で買えば良いですか?
    • 対象インスタンスに対する SP 料金による割引率次第です。この場合、SP 割引率が 25% 未満のインスタンスが対象なら、停止している 6時間分の料金によりオンデマンド利用よりも支払う金額が多くなるケースがあります。東京リージョン(Compute プラン)での割引率が 17% である a1 ファミリー などです。SP の場合は、コミット額を毎時間支払いますが、オンデマンドなら停止時間分の支払いは発生しないためです。


Compute プラン 東京リージョン 1年 前払いなし Linux/UNIX a1.medium
SP 料金全額をコミットした場合 $0.0267/h x 24h = $0.6408/day
SP 料金の 75% をコミットした場合 ($0.0267/h x 24h x 0.75) + ($0.0321/h x 18h x 0.25) = $0.62505/day
オンデマンド料金 $0.0321/h x 18h = $0.5778/day
参考: Savings Plans 料金表

Reserved Instances(RI)

Reserved Instances とは

EC2 のほか RDS や Redshift など AWS が提供する主要サービスへ展開されている、長期継続利用するインスタンス費用を大幅に割り引く仕組みです。また、EC2 においては AZ 指定によるキャパシティ予約の機能も提供されています。
その歴史は SP より古く、2009年3月12日に EC2 RI が発表されて以来、いくつもの改善が行われています。
SP は「1時間当たりの利用額を 1年または 3年の期間コミットする」仕組みですが、RI は「1年または 3年の期間、指定した条件のインスタンス利用をコミットする」仕組みです。物理インスタンスを購入するのではなく、特定のインスタンスに紐づかない利用費を割り引かれる「権利」を購入するので、稼働中インスタンスを再起動するといったことは不要です。
その仕組みから、安定稼働していて長期間の継続利用が確定しているインスタンスの費用削減および、EC2 の場合、メンテナンス等による再起動時にも確実に起動することを求められる重要なシステムに対するコスト削減 + AZ 指定によるキャパシティ予約の目的で利用するのに適しています。
EC2 Convertible RI および特定条件下の EC2 Standard RI を除き、購入後に内容を変更したりキャンセルをすることはできませんので、購入操作時は十分な確認を行いましょう。
基本的に「全前払い」「一部前払い」「前払いなし」という3種類の支払い方法が存在(一部のリソースにおいて異なるものがあります)し、それぞれはクレジットカードを使った買い物で言う「一括前払い」「頭金あり(前払い金額は RI ごとに指定されています)の均等分割払い」「頭金なしの均等分割払い」とほぼ同等の支払い体系となります。原則、購入後に支払い方法を変更することはできませんのでご注意ください(EC2 Convertible RI のみ可能です)。
購入から 1年または 3年が経過し、有効期間を終えた RI はステータスが retired と表示され割引の適用が終了します。RI には「自動更新」という機能が現時点ではないため、継続して RI を利用したい場合は「新たに買い直す」必要があります(EC2 RI のみ買い直す作業を簡略化する更新機能が提供されています)。 この買い直しのタイミングとシステムの改修、更新時期を揃えると、最新のインスタンスファミリーへの移行やスペック変更によって発生するオンデマンド料金を削減しやすくなるかと思います(後述する EC2 および RDS の「インスタンスサイズの柔軟性」もぜひ活用してください)。
なお、購入した RI の適用条件にマッチするインスタンスが稼働していない時間にも RI は消費されます。つまり、全前払いの場合を除き割り引かれた時間料金は期間中支払う必要があり、適用対象インスタンスが稼働していない時間分の割引が繰り越されるようなことはありません。
各サービスにより多少の違いはありますが、「現行世代」と「旧世代」があり、それぞれ料金ページが異なっています(サービスごとに後述)。各料金ページに掲載されていないインスタンスタイプ(ファミリーやサイズなど)については、RI そのものが提供されていません(オンデマンドでのみ利用可能な場合があります)し、「3年前払いなし」など一部の購入オプションが提供されていないものもあります。とにかく「料金ページに掲載されていないものは使えない(提供されていない)」とざっくり覚えても良いでしょう。

EC2 Reserved Instances とは

その名の通り EC2 インスタンスに対する割引を得る仕組みです。柔軟性の高い Convertible RI と、対象を限定する代わりに割引率の高い Standard RI という 2つのクラスがあります。
Convertible RI は、購入済み Convertible RI の価格と交換後の価格における差額費用を追加で支払うことで、例えば t2 から t3 などの「異なるインスタンスファミリーとの交換」や large から 2xlarge など「異なるインスタンスサイズとの交換」と、デフォルト(共有タイプ)かハードウェア占有タイプといった「異なるテナンシーとの交換」および Linux/UNIX から Windows など「異なるプラットフォームとの交換」が可能です。なお、購入済み価格よりも価格が安いものへ交換する場合は、購入済み価格よりも合計額が高くなるように交換後の数量が自動調整されます。
購入後でも条件を変更(交換)できる柔軟性があるため、期間中にインスタンスの変更が生じる可能性や変更計画がある場合でも長期間の割引を得ることが可能です。
また、一部制限がありますが「支払いオプションが異なるものと交換」することも可能です。
交換についての詳細は AWS ドキュメントコンバーティブルリザーブドインスタンス の交換で確認してください。
Standard RI は、対象とするインスタンスの条件を細かく指定(OS、インスタンスファミリー、インスタンスサイズ、リージョンや AZ、テナンシー)する代わりに最も割引率が高くなりますが、Convertible RI のような「交換」は行えません。しかし、Linux/UNIX に限られますが、複数の RI を「結合」して1つの RI にしたり、1つの RI を複数の RI に「分割」することは可能です。 どちらのクラスも、購入後に 1年から3年や 3年から1年といった「予約期間の変更」はできません。
動作検証などで頻繁にインスタンスサイズやインスタンスタイプ、プラットフォームを変更する場合や短期間だけの利用であるなら RI ではなく、スポットインスタンスの利用を検討する方が良いでしょう。(スポットインスタンスも RI 同様にオンデマンド料金より安く利用できる仕組みですが、これらを併用することはできません。)
安定稼働していて長期間の継続利用が確定しているインスタンスのコスト削減や、メンテナンス等による再起動時にも確実に起動することを求められる重要なシステムに対するコスト削減とキャパシティ予約の目的で利用するのに適しています。

EC2 Reserved Instances の料金を調べる方法

他のサービスも同じですが、インスタンスファミリーには「現行世代」と「旧世代」の 2種類あります。例えば、m3.medium の RI 料金を調べようと「AWS EC2 RI 料金」といったキーワードで WEB 検索をして見つかる「現行世代」インスタンスの料金ページにはその記載がありません。
「旧世代」をキーワードに追加して検索するとすぐにこのページが見つかり、m3 ファミリーなどはこちらに掲載されています。また、オンデマンドインスタンスが利用できても RI の提供がないものもありますので注意が必要です。
どちらの料金ページにも RI の料金が掲載されていないインスタンスについては、RI そのものが提供されていませんし、「3年前払いなし」など一部の購入オプションが提供されていないものもあります。

EC2 Reserved Instances のサイズ柔軟性

Convertible RI と Standard RI において、リージョン指定で購入した Linux/UNIX RI に限っては、サイズ柔軟性が提供されています。これは、同一インスタンスファミリーであれば、サイズの異なるインスタンスに対しても購入済み RI の割引が適用される仕組みで、割り引かれる金額は正規化係数によって求めることができます。
正規化係数はいくつかの AWS ドキュメントで紹介されていますが、このドキュメントがわかりやすいと思います。
上記ドキュメントではシンプルに t2.medium RI を例に解説されていますが、本記事ではもう少し複雑な例で説明します。
・前提事項: 東京リージョン、m5 ファミリー、Linux/UNIX 購入済み RI は 1つ、稼働インスタンスも 1台
・例1) RI は 12xlarge、稼働インスタンスは 8xlarge の場合
12xlarge の正規化係数は 96
8xlarge の正規化係数は 64
つまり、8xlarge 分は購入済み RI で全て賄われるが、正規化係数 32(4xlarge 相当)が無駄になってしまう。言い換えれば 4xlarge をあと 1台起動しても追加費用は発生しない状態となります。
・例2) RI は 8xlarge、稼働インスタンスは 12xlarge の場合
購入済み RI のサイズよりも稼働インスタンスのサイズが大きい場合は、それぞれの正規化係数から追加費用を算出します。
64 / 96 = 0.66...7 なので(便宜上、以降の計算では小数点以下第3位で切り上げます)、12xlarge の1時間あたりのオンデマンド費用 $2.9760 のうち 66.7%相当が購入済み RI で賄われることになり、追加で発生する 1時間当たりの費用は $2.9760 x (1 - 0.667)= $0.992 となります(ちょうど 4xlarge と同じ金額ですね)。

EC2 Reserved Instances の注意点

キャパシティの予約をしたい時は、AZ を指定して購入する必要があります(購入画面デフォルトはリージョン指定です)。
追記: なお、リージョン指定 RI はオンデマンドキャパシティ予約の料金も適用対象となります。詳細はこちらのブログ記事に記載しました。
RI は「1年または 3年の期間、指定した条件のインスタンス利用をコミットする」仕組みです。そのため、購入後に支払い方法を含め内容を変更することはできませんのでご注意ください(EC2 Convertible RI のみ可能です)。また、購入後のキャンセルもできませんので購入操作は慎重に行なってください。
サイズ柔軟性は Linux/UNIX のみに提供されています。他の OS では提供されていませんので、購入する RI の条件と利用するインスタンスが一致している必要があります。
RI を購入した後でインスタンスタイプ(ファミリーやサイズ)、OS を変更する可能性がある場合には Convertible RI を 1年で購入しておき、1年後に Standard RI で買い直しをするのが確実です。
とにかく、1年以上継続して利用するインスタンスの分だけを購入するようにしましょう。

EC2 Reserved Instances の購入手順

EC2 RI の購入画面は以下のように EC2 ダッシュボード ページ配下にあります。
まず、RI を購入したいリージョンのダッシュボードを開いていることを確認しましょう。目的のリージョンであれば、RI 一覧画面上部にある「リザーブドインスタンスの購入」ボタンをクリックし、購入対象選択ウィンドウを開きます。

ウィンドウ内の項目について説明します。
1: 購入したいプラットフォーム(OS)を選択します。デフォルト値は Linux/UNIX です。
2: デフォルト(共有タイプ)かハードウェア専有タイプかを選択します。デフォルト値は デフォルト です。
3: 提供クラス : スタンダードタイプかコンバーティブルタイプ、または両方を購入対象として表示させるのかを選択します。スタンダードタイプの方が割引率は高くなります。デフォルト値は すべて です。
4: キャパシティ予約をしたい場合、ここにチェックを入れると追加表示されるメニュー「アベイラビリティーゾーン」から、目的の AZ を選択します。デフォルト値は リージョン指定 となり、キャパシティ予約は無効です。
5: インスタンスタイプ : 購入したいインスタンスタイプを選択します。ここで誤った対象を選択してもやり直しが可能ですが、慎重に操作されることをお勧めします。

6: 期間 : 1年または3年を選択します。購入画面では以下の表記となっています。
1年 : 1月-12月
3年 : 12月-36月
7: お支払い方法 : 購入するRIの料金を支払う方法を選択します。支払い方法は以下の3種となります。
前払いなし(No Upfront) : 初期費用が最も安くなるが、月割りでのRI購入料金が発生します。
一部前払い(Partial Upfront) : RI購入料金の一部(AWSによりあらかじめ決められています)を初期費用として支払い、残金を月割りとする方法です。
全前払い(All Upfront) : RI購入料金を全額その月の利用費として支払う方法です。
8: 検索 : ここまでで選択した条件に該当するRIを表示させるために使います。これは、条件を変更した都度クリックする必要がありますので、複数タイプの購入をする際には忘れないよう注意が必要です。

以下は一通り条件を選択した状態。条件を変更した都度「検索」ボタンをクリックする必要があります。

「検索」ボタンをクリックした後の状態。マーケットプレイスで販売されているものが条件にマッチした場合もここに表示されますが、希望する内容かきちんと確認をしてから「カートに入れる」をクリックしましょう。
複数種類購入したい場合は、確認画面(カート)へ進まずに繰り返し必要なものをカートに追加します。
この時点ではまだ購入手続きは行われておらず、間違いがあった場合は削除や編集が可能ですので、落ち着いて操作をしてください。

以下は Linux/UNIX m5a.large スタンダード RI を 1つ、1年 全前払い としてカートに入れ「カートを見る」ボタンで移動した状態です。内容に間違いがなく即時購入したい場合は右下の「注文」をクリックします。
追加で購入したいものがある場合は「さらにカートに入れる」ボタンから、カートへ入れたものはそのままに検索画面へ移動することができます。

購入日を指定のうえ購入したい場合は「Now」の文字をクリックし、表示されるカレンダーから希望する日を選択ののち「注文」をクリックします。これで指定した日に購入処理が実行されます。
予約操作を行なった場合は指定した日まで購入処理が行われませんので、万が一、内容に間違いがあった場合には RI 一覧画面の「アクション」ボタンから「キュー入りリザーブドインスタンスの削除」を行うことで取り消しが可能です。

即時購入または予約購入どちらの場合も、購入処理が行われた直後は「ステータス」が「payment-pending」(支払い保留中)となり、処理が正常終了すると「active」に変わります。
万が一、購入失敗となった場合はメッセージとエラーコード(ステータスコード)を確認しましょう。一般的なエラーは以下の 2種類です。

  • ステータスコード 400 : 購入可能数の上限に達していて、それ以上を購入しようとした時に発生します。上限値を増やすには上限緩和申請を行う必要があります。
  • ステータスコード 500 : Insufficient capacityエラーは購入しようとしたRIの在庫がない場合に発生します。時間をおいて試してください。

なお、開設まもない AWS アカウントに対してはこのドキュメントに記載されているように一定期間、前払いなしでの購入が制限されています。急ぐ場合は一部前払いまたは全前払いでの購入を検討してください。

注記
前払いなしの リザーブドインスタンス は、予約の全期間について毎月支払いを行う契約義務に基づいています。そのため、前払いなしの リザーブドインスタンス を購入するには、請求履歴に問題がないことが必須となります。

EC2 Reserved Instances よくあるお問い合わせ

  • 本番稼働中のインスタンスに RI を適用させたいのですが、再起動は必要ですか?
    • いいえ、RI は割引の権利であり、請求処理において考慮されるため稼働中インスタンスへは影響がありません。
  • インスタンス ID が変わった場合は無効になりますか?
    • いいえ、特定のインスタンスに紐づくものではなく、適用対象となるインスタンスが稼働していれば自動で割引が適用されます。
  • 間違えた RI を買いました。キャンセルできますか?
    • いいえ、できません。購入前に十分な確認を行いましょう。
  • 支払い方法によって性能は変わりますか?
    • いいえ、なんら違いはありません。異なるのはお支払い総額です。
  • 一度購入したら自動更新されますか?
    • いいえ、お客様の明確な意思(操作)なく自動更新されることはありません。更新を希望する場合はこちらの記事を参考にしてください。
  • RI を前払いなしや一部前払いで購入後、対象インスタンスを停止した場合は、時間料金が発生しなくなりますか?
    • いいえ、RI は支払い方法を問わず長期間の利用をコミットすることで料金が割り引かれるため、対象インスタンスの稼働状況を問わず RI に対する時間料金を支払う必要があります。

RDS Reserved Instances とは

その名の通り RDS インスタンスに対する割引を得る仕組みです。EC2 のような「テナンシー」「スコープ」「コンバーティブル 」というオプションはありませんが、インスタンスサイズの柔軟性(条件は後述します)は提供されています。また、Aurora および一部の DB エンジンでは提供がありませんが、多くの DB エンジンに対してシングル AZ と、マルチ AZ の RI が提供されています。

RDS Reserved Instances の料金を調べる方法

他のサービスも同じですが、インスタンスファミリーには「現行世代」と「旧世代」の 2種類あります。例えば、db.m3.medium の RI 料金を調べようと「AWS RDS RI 料金」といったキーワードで WEB 検索をして見つかる「現行世代」インスタンスの料金ページにはその記載がありません。
「旧世代」をキーワードに追加して検索するとすぐにこのページが見つかり(実は上記検索結果でも 5番目くらいには出てきていますが、なかなか気づかないと思います)、m3 ファミリーなどはこちらに掲載されています。ただし、DB エンジンによって、提供されているインスタンスファミリーやサイズのほか、選択可能な支払い方法が異なる場合があります。また、オンデマンドインスタンスが利用できても RI の提供がないものもありますので注意が必要です。
どちらの料金ページにも RI の料金が掲載されていないインスタンスについては、RI そのものが提供されていませんし、「3年前払いなし」など一部の購入オプションが提供されていないものもあります。

RDS Reserved Instances のサイズ柔軟性

RDS の RI サイズ柔軟性は購入済み RI と同一 DB エンジン、同一インスタンスファミリー、同一リージョンに対象インスタンスが存在することが前提となります。 そのうえで、各インスタンスサイズに設定されている正規化された単位によって算出することになります。正規化された単位は、EC2 の項目で紹介した正規化係数と同じです。
正規化係数はいくつかの AWS ドキュメントで紹介されており、EC2 のドキュメントですが、このドキュメントがわかりやすいと思います。
上記ドキュメントに記載の正規化された単位(以降、正規化係数と記載します)をもとに 2つの例をご紹介します。

・例1: 購入済み RI よりもサイズの小さいインスタンスに適用される場合
MySQL シングルAZ db.t3.xlarge RI を所有しているが、MySQL シングルAZ db.t3.medium を利用している場合、それぞれの正規化された単位は次のようになります。
db.t3.xlarge : 8
db.t3.medium : 2
xlarge は medium の 4倍に相当しますので、同じ条件の medium インスタンス 4台分までをカバーすることが可能です。
マルチAZ で利用されている場合も考え方はかわりませんが、正規化された単位が異なります。
マルチAZ の場合は、シングルAZ の正規化された単位の 2倍の値になります。
つまり、マルチAZ db.t3.xlarge RI は正規化された単位が 16であるため、シングルAZ db.t3.medium 8台分をカバーすることが可能です。

・例2: 購入済み RI よりもサイズの大きいインスタンスに適用される場合
MySQL シングルAZ db.t3.large RI を所有しているが、MySQL シングルAZ db.t3.2xlarge を利用している場合、それぞれの正規化された単位は次のようになります。
db.t3.large : 4
db.t3.2xlarge : 16(時間当たりのオンデマンド料金 $0.832)
large は 2xlarge の 1/4 つまり 25% に相当しますので、残りの 75% である $0.832 x 0.75 = $0.624 を時間当たりの費用として追加で支払うことになります。
マルチAZ の場合も算出の仕方は同じで、正規化された係数と金額がシングルAZ の 2倍になります。

RDS Reserved Instances の注意点

RI は「1年または 3年の期間、指定した条件のインスタンス利用をコミットする」仕組みです。そのため、購入後に支払い方法を含め内容を変更することはできませんのでご注意ください。また、購入後のキャンセルもできませんので購入操作は慎重に行なってください。
サイズ柔軟性は AWS ドキュメントに掲載されているように以下に記載したものに提供されています。

MySQL、MariaDB、PostgreSQL、Amazon Aurora のデータベースエンジン、および Oracle データベースエンジンの「自分のライセンスを使用」 (BYOL) エディションでは、インスタンスサイズの柔軟性が提供されます。

RDS RI には、EC2 のような Convertible RI の提供はありませんので、1年以上継続して利用するインスタンスの分だけを利用するインスタンスと同じリージョンで購入するようにしましょう。
また、RDS RI には「キャパシティ予約」や「RI の更新」機能は現時点で提供されていません。

RDS Reserved Instances の購入手順

RDS RI の購入画面は以下のように RDS ダッシュボード ページ配下にあります。
まず、RI を購入したいリージョンのダッシュボードを開いていることを確認しましょう。目的のリージョンであれば、RI 一覧画面右上にある「リザーブド DB インスタンスの購入」ボタンをクリックし、購入対象選択画面へ移動します。
なお、RDS RI は EC2 RI のように複数種類をまとめて購入することはできません。

購入対象選択画面は以下のようになっています。

各項目について説明します。
1: RI を購入したい DB エンジンを選択します。Oracle や SQL Server ではライセンスモデルとエディションも利用するインスタンスと一致させる必要がありますので、しっかり確認しましょう。
2: RI を購入したいインスタンスタイプを選択します。ここに表示されないものは 1 で選択した DB エンジンに対して提供されていないことになります。
3: マルチ AZ の有無は、RI の割引を適用させたい利用するインスタンスと同じにしましょう。なお、Aurora を選択した場合はその仕組みから選択できなくなります(Aurora RI はマルチ AZ なしのみ提供されています)。
4: 1年または 3年の期間を選択します。デフォルト値は 1年です。
5: 支払い方法を選択します。DB エンジンやインスタンスタイプ、期間によっては「前払いなし」の提供がない場合があります。
6: 購入した RI を他の RI と識別しやすくしたい場合、任意の ID を設定することができます。入力できる文字や制限については画面の説明で確認してください。
7: 同一条件で複数台分の RI を購入したい場合にはここの値を変更します。デフォルト値は 1 となっています。
8: 一通り必要な情報を入力(選択)し終わると料金が表示されますので、一応ここで想定している内容であるかを確認しておきましょう(まだ購入処理が実行されたわけではないです)。間違いがあった場合は各項目を入力し直します。購入自体を取りやめたいときはここで「キャンセル」をクリックしましょう。「次へ」をクリックすると内容の確認画面へ移動します。

以下が購入直前の確認画面となります。それぞれ上記の項目に対応した内容が記載されます。右下の「注文」をクリックすると購入処理が実行され、完了すると取り消せませんので間違いがないか確認しましょう。可能であれば複数人でのダブルチェックや画面を指差しながら声に出す指差呼称を行うことをお勧めします。

購入処理が行われた直後は「ステータス」が「payment-pending」(支払い保留中)となり、処理が正常終了すると「active」に変わります。
万が一、購入失敗となった場合はメッセージとエラーコード(ステータスコード)を確認しましょう。一般的なエラーは以下の 2種類です。

  • ステータスコード 400 : 購入可能数の上限に達していて、それ以上を購入しようとした時に発生します。上限値を増やすには上限緩和申請を行う必要があります。
  • ステータスコード 500 : Insufficient capacityエラーは購入しようとしたRIの在庫がない場合に発生します。時間をおいて試してください。

なお、開設まもない AWS アカウントに対してはこのドキュメントに記載されているように一定期間、前払いなしでの購入が制限されています。急ぐ場合は一部前払いまたは全前払いでの購入を検討してください。

注記
前払いなしの リザーブドインスタンス は、予約の全期間について毎月支払いを行う契約義務に基づいています。そのため、前払いなしの リザーブドインスタンス を購入するには、請求履歴に問題がないことが必須となります。

RDS Reserved Instances よくあるお問い合わせ

  • 本番稼働中のインスタンスに RI を適用させたいのですが、再起動は必要ですか?
    • いいえ、RI は割引の権利であり、請求処理において考慮されるため稼働中インスタンスへは影響がありません。
  • インスタンス ID が変わった場合は無効になりますか?
    • いいえ、特定のインスタンスに紐づくものではなく、適用対象となるインスタンスが稼働していれば自動で割引が適用されます。
  • 間違えた RI を買いました。キャンセルできますか?
    • いいえ、できません。購入前に十分な確認を行いましょう。
  • 支払い方法によって性能は変わりますか?
    • いいえ、なんら違いはありません。異なるのはお支払い総額です。
  • 一度購入したら自動更新されますか?
    • いいえ、RDS RI には更新機能の提供がありません。継続して割引を適用させたい場合は、新たに買い直す必要があります。
  • RI を前払いなしや一部前払いで購入後、対象インスタンスを停止した場合は、時間料金が発生しなくなりますか?
    • いいえ、RI は支払い方法を問わず長期間の利用をコミットすることで料金が割り引かれるため、対象インスタンスの稼働状況を問わず RI に対する時間料金を支払う必要があります。
  • Aurora でマルチ AZ の RI が買えませんがマルチ AZ 配置で利用しています。全てに RI を適用させたい場合はいくつ購入すれば良いですか。
    • RDS ダッシュボードにある、データベースの一覧画面 DB 識別子が クラスタ名となっている行の「サイズ」列に「nインスタンス」と表示されます。この n が購入すべき RI の数量です。

Redshift Reserved Instances とは

Amazon Redshift RI は別名「リザーブドノード」とも呼ばれており、EC2 や RDS の RI と同様、1年または3年の長期利用を予約することでオンデマンド料金に対して大幅な割引を受けることができる仕組みです(最大75%)。 旧世代となっている dc1 ファミリーから、現行世代の dc2 ファミリーへのアップグレードは無料で行えますし、性能面でのメリットも得ることができますのでご検討ください。
Redshift RI の料金には、クラスターノードへのデータコピーと Amazon S3 へのデータコピーの料金も含まれています。

Redshift Reserved Instances の料金を調べる方法

Redshift RI も、他のサービス同様に「現行世代」と「旧世代」の 2種類ありますが、現在は 1つの料金ページにまとめて掲載されています。なお期間が 3年の場合は、ほとんどのインスタンスタイプにおいて「前払いなし」の提供がありません。

Redshift Reserved Instances の注意点

RI は「1年または 3年の期間、指定した条件のインスタンス利用をコミットする」仕組みです。そのため、購入後に支払い方法を含め内容を変更することはできませんのでご注意ください。また、購入後のキャンセルもできませんので購入操作は慎重に行なってください。
また、Redshift RI には EC2 RI や RDS RI のようなサイズ柔軟性は提供されていませんので、必ず利用したいインスタンスと同じ条件、同じリージョンの RI を購入しましょう。なお、複数クラスターを利用している際にそれら全てのインスタンスに対して RI をまとめて購入することができます(同一インスタンスタイプの場合です)が、一部のクラスターのみを dc1 から dc2 へアップグレードさせたい場合などに、その台数分の RI だけをアップグレードさせることはできませんので、多少手間かもしれませんがクラスター単位で RI を購入しておく方が良いのではないかと思います。
Redshift RI には「キャパシティ予約」や「RI の更新」機能は現時点で提供されていません。

Redshift Reserved Instances の購入手順

Redshift RI の購入画面は以下のように Redshift ダッシュボード の クラスター配下にあります。
まず、RI を購入したいリージョンのダッシュボードを開いていることを確認しましょう。目的のリージョンであれば、RI 一覧画面右上にある「リザーブドノードを購入」ボタンをクリックし、購入対象選択画面へ移動します。
なお、Redshift RI は EC2 RI のように複数種類をまとめて購入することはできません。

購入画面は以下のようになっています(新しいコンソールと元のコンソールがあり、本記事では新しいコンソールで紹介します。元のコンソールでの購入手順はこちらの記事を参考にしてください)。

各項目について説明します。
1: RI を購入したいインスタンスタイプを選択します。現時点でのデフォルト値は dc2.large となっています。
2: 1年または 3年で期間を選択します。デフォルト値は 1年となっています。
3: 支払い方法を選択します。1 と 2 で選択した条件に沿った金額が表示されますので、念のため確認しておきましょう。
4: RI を購入したい数量を入力します。できればクラスターごとのインスタンス分を購入するようにして、複数クラスター利用している場合は、クラスターごとに購入しておくと良いと思います。
5: 入力した条件を確認し、内容に間違いがない場合はここにチェックを入れます。
6: 購入しない場合は「キャンセル」をクリックします。購入して良い場合は画面右下の「リザーブドノードを購入」をクリックすると購入処理が実行されます(他のサービスおよび旧コンソールのような確認画面は表示されませんので、ご注意ください)。

購入処理が行われた直後は「ステータス」が「payment-pending」(支払い保留中)となり、処理が正常終了すると「active」に変わります。
万が一、購入失敗となった場合はメッセージとエラーコード(ステータスコード)を確認しましょう。一般的なエラーは以下の 2種類です。

  • ステータスコード 400 : 購入可能数の上限に達していて、それ以上を購入しようとした時に発生します。上限値を増やすには上限緩和申請を行う必要があります。
  • ステータスコード 500 : Insufficient capacityエラーは購入しようとしたRIの在庫がない場合に発生します。時間をおいて試してください。

なお、開設まもない AWS アカウントに対してはこのドキュメントに記載されているように一定期間、前払いなしでの購入が制限されています。急ぐ場合は一部前払いまたは全前払いでの購入を検討してください。

注記
前払いなしの リザーブドインスタンス は、予約の全期間について毎月支払いを行う契約義務に基づいています。そのため、前払いなしの リザーブドインスタンス を購入するには、請求履歴に問題がないことが必須となります。

Redshift Reserved Instances よくあるお問い合わせ

  • 本番稼働中のインスタンスに RI を適用させたいのですが、再起動は必要ですか?
    • いいえ、RI は割引の権利であり、請求処理において考慮されるため稼働中インスタンスへは影響がありません。
  • インスタンス ID が変わった場合は無効になりますか?
    • いいえ、特定のインスタンスに紐づくものではなく、適用対象となるインスタンスが稼働していれば自動で割引が適用されます。
  • 間違えた RI を買いました。キャンセルできますか?
    • いいえ、できません。購入前に十分な確認を行いましょう。
  • 支払い方法によって性能は変わりますか?
    • いいえ、なんら違いはありません。異なるのはお支払い総額です。
  • 一度購入したら自動更新されますか?
    • いいえ、Redshift RI には更新機能の提供がありません。継続して割引を適用させたい場合は、新たに買い直す必要があります。
  • RI を前払いなしや一部前払いで購入後、対象インスタンスを停止した場合は、時間料金が発生しなくなりますか?
    • いいえ、RI は支払い方法を問わず長期間の利用をコミットすることで料金が割り引かれるため、対象インスタンスの稼働状況を問わず RI に対する時間料金を支払う必要があります。
  • 予算の都合上、クラスターの一部のインスタンスに対してのみ RI を購入したいのですが問題ないですか?
    • はい、クラスターで利用しているインスタンス全てに対して RI を購入しなければならないといった制限はありません。購入した RI の台数分のみ料金が割り引かれます。

ElastiCache Reserved Instances とは

ElastiCache の RI は「リザーブドキャッシュノード」と呼ばれています。一部の支払いオプションが他の RI とは異なるため、少し戸惑うかもしれません。現行世代と旧世代のリザーブドキャッシュノードで異なる支払いオプションが用意されているからです。

  • 現行世代のリザーブドキャッシュノード(スタンダードリザーブドノード)の支払いオプション
    • 「全前払い」「一部前払い」「前払いなし」の3種類
  • 旧世代のリザーブドキャッシュノードの支払いオプション
    • ノードタイプにより「軽度」「中度」「重度使用」の 3種類または何れか 1種類以上

なお、「軽度使用」「中度使用」「重度使用」の場合は、指定された前払金を支払うことで、時間単位の利用料金が割り引かれる仕組みである点に注意が必要です。
提供されているキャッシュエンジンは Redis および Memcached です。

ElastiCache Reserved Instances の料金を調べる方法

料金ページは現行世代旧世代で分かれており、現行世代には一部、重度使用リザーブドノードが含まれます。

ElastiCache Reserved Instances の注意点

料金を調べる方法の項目で紹介しましたように、世代によって選択可能な支払い方法と支払いの仕組みが異なる点に注意が必要です。
RI は「1年または 3年の期間、指定した条件のインスタンス利用をコミットする」仕組みです。そのため、購入後に支払い方法を含め内容を変更することはできませんのでご注意ください。また、購入後のキャンセルもできませんので購入操作は慎重に行なってください。
また、EC2 RI や RDS RI のようなサイズ柔軟性は提供されていませんので、必ず利用したいインスタンスと同じ条件、同じリージョンの RI を購入しましょう。
ElastiCache RI には「キャパシティ予約」や「RI の更新」機能は現時点で提供されていません。

ElastiCache Reserved Instances の購入手順

ElastiCache RI の購入画面は以下のように ElastiCache ダッシュボード 配下にあります。
まず、RI を購入したいリージョンのダッシュボードを開いていることを確認しましょう。目的のリージョンであれば、RI 一覧画面左上にある「リザーブドノードの購入」ボタンをクリックし、購入対象選択ウィンドウを表示します。
なお、ElastiCache RI は EC2 RI のように複数種類をまとめて購入することはできません。
購入対象選択画面は以下のようになっています。

各項目について説明します。
1: RI を購入したいキャッシュエンジンを選択します。
2: RI を購入したいインスタンスタイプを選択します。
3: 1年または 3年で期間を選択します。
4: 支払い方法を選択します。1 と 2 , 3 で選択した条件に沿った金額が表示されますので、念のため確認しておきましょう。
5: 購入した RI を他の RI と識別しやすくしたい場合、任意の ID を設定することができます。
6: RI を購入したい数量を入力します。一通り必要な情報を入力(選択)し終わると料金が表示されます。
7: 一応ここで想定している内容であるかを確認しておきましょう(まだ購入処理が実行されたわけではないです)。間違いがあった場合は各項目を入力し直します。購入自体を取りやめたいときはここで「キャンセル」をクリックしましょう。「次へ」をクリックすると内容の確認画面へ移動します。

以下が購入直前の確認画面となります。それぞれ上記の項目に対応した内容が記載されます。右下の「注文」をクリックすると購入処理が実行され、それ以降は購入を取り消せませんので間違いがないか確認しましょう。可能であれば複数人でのダブルチェックや画面を指差しながら声に出す指差呼称を行うことをお勧めします。

購入処理が行われた直後は「ステータス」が「payment-pending」(支払い保留中)となり、処理が正常終了すると「active」に変わります。
万が一、購入失敗となった場合はメッセージとエラーコード(ステータスコード)を確認しましょう。一般的なエラーは以下の 2種類です。

  • ステータスコード 400 : 購入可能数の上限に達していて、それ以上を購入しようとした時に発生します。上限値を増やすには上限緩和申請を行う必要があります。
  • ステータスコード 500 : Insufficient capacityエラーは購入しようとしたRIの在庫がない場合に発生します。時間をおいて試してください。

なお、開設まもない AWS アカウントに対してはこのドキュメントに記載されているように一定期間、前払いなしでの購入が制限されています。急ぐ場合は一部前払いまたは全前払いでの購入を検討してください。

注記
前払いなしの リザーブドインスタンス は、予約の全期間について毎月支払いを行う契約義務に基づいています。そのため、前払いなしの リザーブドインスタンス を購入するには、請求履歴に問題がないことが必須となります。

ElastiCache Reserved Instances よくあるお問い合わせ

  • 本番稼働中のインスタンスに RI を適用させたいのですが、再起動は必要ですか?
    • いいえ、RI は割引の権利であり、請求処理において考慮されるため稼働中インスタンスへは影響がありません。
  • インスタンス ID が変わった場合は無効になりますか?
    • いいえ、特定のインスタンスに紐づくものではなく、適用対象となるインスタンスが稼働していれば自動で割引が適用されます。
  • 間違えた RI を買いました。キャンセルできますか?
    • いいえ、できません。購入前に十分な確認を行いましょう。
  • 支払い方法によって性能は変わりますか?
    • いいえ、なんら違いはありません。異なるのはお支払い総額です。
  • 一度購入したら自動更新されますか?
    • いいえ、ElastiCache RI には更新機能の提供がありません。継続して割引を適用させたい場合は、新たに買い直す必要があります。
  • RI を前払いなしや一部前払いで購入後、対象インスタンスを停止した場合は、時間料金が発生しなくなりますか?
    • いいえ、RI は支払い方法を問わず長期間の利用をコミットすることで料金が割り引かれるため、対象インスタンスの稼働状況を問わず RI に対する時間料金を支払う必要があります。

Elasticsearch Service Reserved Instances とは

Elasticsearch Service の RI は 2018年5月7日に提供開始が発表されました。購入時に「予約名(一意の名前)」を指定する必要がある点が他のサービスの RI と異なっています。 料金ページでは「前払いなし」を「NURI(No Upfront Reserved Instance)「一部前払い」を「PURI(Partially Upfront Reserved Instance)」「全前払い」を「AURI(All Upfront Reserved Instance)」と記載されています。

Elasticsearch Service Reserved Instances の料金を調べる方法

提供開始から 2年と比較的新しいサービスであり、旧世代インスタンスがありませんので、こちらの料金ページで全ての料金が確認できます。

Elasticsearch Service Reserved Instances の注意点

RI は「1年または 3年の期間、指定した条件のインスタンス利用をコミットする」仕組みです。そのため、購入後に支払い方法を含め内容を変更することはできませんのでご注意ください。また、購入後のキャンセルもできませんので購入操作は慎重に行なってください。
また、EC2 RI や RDS RI のようなサイズ柔軟性は提供されていませんので、必ず利用したいインスタンスと同じ条件、同じリージョンの RI を購入しましょう。
Elasticsearch Service RI には「キャパシティ予約」や「RI の更新」機能は現時点で提供されていません。
購入時に「予約名(一意の名前)」を指定する必要があります。

Elasticsearch Service Reserved Instances の購入手順

Elasticsearch Service の RI 購入画面は、Elasticsearch Service ダッシュボード 配下にあります。
まず、RI を購入したいリージョンのダッシュボードを開いていることを確認しましょう。目的のリージョンであれば、RI 一覧画面左上にある「リザーブドインスタンスの注文」ボタンをクリックし、購入対象選択画面へ移動します。
なお、Elasticsearch Service RI は EC2 RI のように複数種類をまとめて購入することはできません。
購入対象選択画面は以下のようになっています。

各項目について説明します。
1: RI に設定する一意の名称を入力します。
2: RI を購入したいインスタンスファミリーを選択します。
3: RI を購入したいインスタンスサイズを選択します。
4: RI を購入したい数量を入力します。
5: 1年または 3年で期間を選択します。
6: 支払い方法を選択します。
7: 選択した条件に沿った金額が表示されますので、念のため確認しておきましょう。まだ購入処理は実行されませんので、間違いがあった場合は各項目を入力し直します。
8: 購入自体を取りやめたいときはここで「キャンセル」をクリックしましょう。「送信」をクリックすると内容の確認画面へ移動します。

以下が購入直前の確認画面となります。それぞれ上記の項目に対応した内容が記載されます。右下の「注文」をクリックすると購入処理が実行され、それ以降は購入を取り消せませんので間違いがないか確認しましょう。可能であれば複数人でのダブルチェックや画面を指差しながら声に出す指差呼称を行うことをお勧めします。

購入処理が行われた直後は「ステータス」が「payment-pending」(支払い保留中)となり、処理が正常終了すると「active」に変わります。
万が一、購入失敗となった場合はメッセージとエラーコード(ステータスコード)を確認しましょう。一般的なエラーは以下の 2種類です。

  • ステータスコード 400 : 購入可能数の上限に達していて、それ以上を購入しようとした時に発生します。上限値を増やすには上限緩和申請を行う必要があります。
  • ステータスコード 500 : Insufficient capacityエラーは購入しようとしたRIの在庫がない場合に発生します。時間をおいて試してください。

なお、開設まもない AWS アカウントに対してはこのドキュメントに記載されているように一定期間、前払いなしでの購入が制限されています。急ぐ場合は一部前払いまたは全前払いでの購入を検討してください。

注記
前払いなしの リザーブドインスタンス は、予約の全期間について毎月支払いを行う契約義務に基づいています。そのため、前払いなしの リザーブドインスタンス を購入するには、請求履歴に問題がないことが必須となります。

Elasticsearch Service Reserved Instances よくあるお問い合わせ

  • 本番稼働中のインスタンスに RI を適用させたいのですが、再起動は必要ですか?
    • いいえ、RI は割引の権利であり、請求処理において考慮されるため稼働中インスタンスへは影響がありません。
  • インスタンス ID が変わった場合は無効になりますか?
    • いいえ、特定のインスタンスに紐づくものではなく、適用対象となるインスタンスが稼働していれば自動で割引が適用されます。
  • 間違えた RI を買いました。キャンセルできますか?
    • いいえ、できません。購入前に十分な確認を行いましょう。
  • 支払い方法によって性能は変わりますか?
    • いいえ、なんら違いはありません。異なるのはお支払い総額です。
  • 一度購入したら自動更新されますか?
    • いいえ、Elasticsearch Service RI には更新機能の提供がありません。継続して割引を適用させたい場合は、新たに買い直す必要があります。
  • RI を前払いなしや一部前払いで購入後、対象インスタンスを停止した場合は、時間料金が発生しなくなりますか?
    • いいえ、RI は支払い方法を問わず長期間の利用をコミットすることで料金が割り引かれるため、対象インスタンスの稼働状況を問わず RI に対する時間料金を支払う必要があります。
  • 予約名は一意であるとのことですが、期限が切れた RI の予約名を再利用できますか?
    • いいえ、アカウントで購入したすべての RI の中で一意となる必要があります。プロジェクト名などで識別したい場合は、購入年月日を加えるなどしてください。

DynamoDB Reserved Instances とは

DynamoDB には「書き込みキャパシティーユニット(WCU)」と「読み込みキャパシティーユニット(RCU)」が、リザーブドキャパシティーとして提供されています。これらは 100ユニット単位で購入することができ、指定された前払金を支払うことで期間中の時間単価が割り引かれる仕組みです。

DynamoDB Reserved Instances の料金を調べる方法

DynamoDB RI の料金はこちらのページの「読み込み/書き込み要求」の右側にある(+)アイコンをクリックすると表示される表に掲載されています。

DynamoDB Reserved Instances の注意点

リージョンによっては 3年 RI の提供がありませんので、利用開始前に料金ページで確認されることをお勧めします。
WCU と RCU それぞれ 100 個単位で購入することができますが、レプリケートされた WCU のブロックを購入することはできません。

DynamoDB Reserved Instances の購入手順

DynamoDB RI 購入画面は、DynamoDB ダッシュボード 配下にあります。
まず、RI を購入したいリージョンのダッシュボードを開いていることを確認しましょう。目的のリージョンであれば、RI 一覧画面左上にある「リザーブドキャパシティーの購入」ボタンをクリックし、購入対象選択画面へ移動します。
なお、WCU と RCU をまとめて同時に購入することはできません。
購入対象選択画面は以下のようになっています。

各項目について説明します。
1: 購入したいユニットの種類(WCU または RCU)を選択します。
2: 1年または 3年の期間を選択します。
3: 購入したいユニット数を 100 単位で入力します。
4: 購入自体を取りやめたいときはここで「キャンセル」をクリックしましょう。「注文」をクリックすると購入処理が実行され、それ以降は購入を取り消せませんので間違いがないか確認しましょう。可能であれば複数人でのダブルチェックや画面を指差しながら声に出す指差呼称を行うことをお勧めします。

DynamoDB Reserved Instances よくあるお問い合わせ

Q. どのくらい RI を買えばいいか算出する方法を教えてください
A. 今後の利用計画と現在の設定値、利用実態を次のように確認、把握されたうえでの購入をお勧めします。

1: DynamoDBダッシュボード、各テーブルを選択した際に表示される右ペイン「メトリックス」タブで当該テーブルでの読み込みおよび書き込みキャパシティーの状況を確認する。
2: 上記画面にて各テーブルに設定されているプロビジョニング済みユニット数と、消費されたユニット数に乖離がないか、想定されている消費状況であるかという点とスロットルイベントの発生状況を把握する。
3: スロットルイベントが発生していないまたは、許容範囲やリトライで解消できていると判断した場合には、実際に記録されているユニットの消費数に対して、プロビジョニング済みユニット数が適切な値となるよう調整を行ってください(現在の値が適切と判断された場合にはそのままで構いません)。

ここまでで確認したプロビジョニング済みユニット数より、十の位を切り捨てた数量でリザーブドキャパシティーを購入しても大幅な割引によるコスト削減が実現できます。
Auto Scaling を利用する前提であれば、上記とは逆に十の位を切り上げて購入される方法も考えられますが、どちらとするかは組織やプロジェクトの予算方針や想定されている利用計画に依存するものと思います。

Elemental MediaLive Reserved Instances とは

Elemental MediaLive で使用する入力、出力、アドオン機能の料金を 1年または 3年の長期利用をコミットすることで割引を得る仕組みです(5年契約については、個別に AWS へ問い合わせる必要があります)。そのため、購入後に支払い方法を含め内容を変更することはできませんのでご注意ください。また、購入後のキャンセルもできませんので購入操作は慎重に行なってください。

Elemental MediaLive Reserved Instances の料金を調べる方法

Elemental MediaLive の料金はオンデマンド、RI 含めてこちらの料金ページにまとまっています。

Elemental MediaLive Reserved Instances の注意点

Elemental MediaLive RI は入力と出力それぞれに提供されています。両方の料金に割引を適用したい場合は、入力の予約と出力の予約をそれぞれ購入する必要があります。
また、利用したいアドオン機能等でも個別に RI が提供されていますので、目的に応じた RI を購入する必要があります。

Elemental MediaLive Reserved Instances の購入手順

購入画面は以下のようになっています。

検証用アカウントでアクセスしているため、実際に Elemental MediaLive を利用している際とは若干表示内容が異なっているかもしれませんが、各項目において利用したいものをクリックしていくことで購入内容を決定するシンプルな作りですので、落ち着いて操作を行えば特に問題はないものと思います。
細かな注意点などはこちらのドキュメントで確認してください。

Elemental MediaLive Reserved Instances よくあるお問い合わせ

  • 間違えた RI を買いました。キャンセルできますか?
    • いいえ、できません。購入前に十分な確認を行いましょう。
  • 支払い方法によって性能は変わりますか?
    • いいえ、Elemental MediaLive RI は割り引かれた時間料金を支払う仕組みです。
  • 一度購入したら自動更新されますか?
    • いいえ、Elemental MediaLive RI には更新機能の提供がありません。継続して割引を適用させたい場合は、新たに買い直す必要があります。
  • RI を前払いなしや一部前払いで購入後、対象インスタンスを停止した場合は、時間料金が発生しなくなりますか?
    • いいえ、Elemental MediaLive RI は、割り引かれた時間料金を支払う以外の支払いオプションは提供されていません。また、RI は長期間の利用をコミットすることで料金が割り引かれるため、対象リソースの利用状況に関わらず RI に対する時間料金を支払う必要があります。

Elemental MediaConvert Reserved とは

1年間の利用をコミットし、決まった月額料金を支払うことで、リザーブドトランスコードスロットを購入する仕組みです。

Elemental MediaConvert Reserved の料金を調べる方法

こちらのページに料金が掲載されています。

Elemental MediaConvert Reserved の購入手順

購入画面は以下のようになっています。

入力すべき情報については、こちらのドキュメントで解説されています。
購入画面中央にある、リザーブドトランスコードスロット(RTS)計算ツールによって、必要となる RTS 数量を求めることができます。
なお、Elemental MediaConvert Reserved は、購入画面下部に記載がある通り、自動更新の有無を購入時に選択することができます。

Elemental MediaConvert Reserved の注意点

比較的新しいサービスであり、お問い合わせをいただくことがまだ少ないため、よくある質問としてご紹介できるものはありませんが、AWS Elemental MediaConvert でのキューの操作に関するドキュメントを読んで注意が必要と感じたことが 2点ありましたのでご紹介します。
1: リザーブドキューを購入し、利用したい場合は、ジョブ作成時にリザーブドキューを指定する必要があります。指定しなかった場合はオンデマンドキューとしてジョブが送信されます。
2: リザーブドキューとオンデマンドキューでは、トランスコードリソースを割り当てる方法(と、支払い方法)が異なります。
利用される場合は、あらかじめ関連ドキュメントをしっかり読みこんで適切な方法を選び、過剰なコストの発生につながらないよう注意してください。

おわりに

冒頭で触れましたように「この記事をブクマしておけばリザーブドインスタンス(RI) と SP に関する疑問は全部解決するZE!」みたいな記事を目指して書いてみましたが、日頃からお問い合わせを多くいただく項目(EC2 や SP など)は自然とボリュームが多くなり、逆に Media 系のサービスに関連する知識や理解が不足していることを痛感しました。昨今の情勢を踏まえれば今後はこれら Media 系サービスの需要も高まるものと思いますので、勉強していきます。
SP や RI は長期に渡り AWS リソースを利用していく上で活用しない手はないサービスと言えます。その活用にあたりこの記事が少しでもお役に立てれば幸いです。
なお、記載した内容は記事公開前に見直しをしていますが、誤った内容や誤字が見つかりましたらその都度、修正していきますので生暖かく見守ってください。