Alternative Architecture DOJO

オルターブースのクラウドネイティブ特化型ブログです。

Azure Reservationsのいくつかの基本的なこと(と、少しだけAzure Savings Planのこと)

こんにちは。ブログの内容に一貫性がないことでお馴染みの木本です。

みなさん、予約してますか?

というわけで、唐突ですが、今回はAzure Reservationsについて書きます。



Azure Reservationsとは?

Azure Reservationsは、1年分もしくは3年分のリソース利用をあらかじめコミット(約束)することで、そのリソースの利用料金に対して割引を受けることができる仕組みです。
製品やコミット期間によって異なりますが、従量課金の価格から最大72%の割引を受けることができます。

Azure Reservationsはマイクロソフトの公式ドキュメントやAzureポータルでは「予約」と表記されています。本記事内でも表記が混在する箇所がありますが、どちらも同じものだと思ってください。(「予約」の方が書きやすいところもあれば、「Reservations」の方が適してそうなところもありまして・・・)

azure.microsoft.com

Azure Reservationsが利用できる製品

Azure Reservationsの対象となる主な製品としては以下のようなものがあります。

  • 仮想マシン
  • App Services
  • SQL Database
  • Azure Cosmos DB
  • Azure Database
  • Azure BLOBストレージ

個人的には仮想マシンに利用されるケースが多いかなぁ、という印象があります。

learn.microsoft.com

RIって?

Azure Reservationsの話をしていると「RI」という言葉が出てくることがあり、最初のうちはこのふたつを混同してしまうことがあります。
RIというのは「Reserved Instance」の略で、Azureにおいては「Azure Reserved Virtual Machine Instances」が正式な名前です。("Virtual Machine"が"VM"になっている場合もあります。)
"Virtual Machine"と入っているように、Azure仮想マシンのコンピューティングリソース(ハードウェア部分)のコストを削減することができる仕組みのことです。

azure.microsoft.com

どのように適用される?

購入した予約は「購入時に指定した属性」と一致するリソースに自動的に適用されます。
「購入時に指定した属性」というのは、対象となる製品、予約のスコープやリージョン、サイズなどを指します。

たとえば、仮想マシンの予約を購入している場合、この予約がApp Serviceに適用されることはありません。
東日本リージョンを指定して購入した場合は西日本リージョンの仮想マシンには適用されません。
予約のスコープを「単一のサブスクリプション」にしている場合は、指定されたものとは別のAzureサブスクリプションで稼働している仮想マシンには適用されません。

また、これらの属性に一致するリソースに「自動的に適用される」ので、仮想マシンの任意のインスタンスを指定して適用することもできません。
購入した予約の属性に一致するリソースがない場合は、購入した予約は使われずに失われます。(払い損です)

learn.microsoft.com

Azure Reservationsの購入方法

Azure ReservationsはAzureポータルやAPIで購入することができます。
Azureサブスクリプションの所有者ロールもしくは予約購入者ロールを保持しているユーザーであれば購入することができますが、ライセンスプログラムによっては購入が制限されていることがあります。
もしAzureポータルやAPIから購入できない場合は、購入しているプロバイダーや代理店などにお問い合わせください。

「Azure Reservationsを使いたいんだけど、正しく購入できる自信がない・・・」という場合もあると思いますが、そういう場合はAzure Advisorからの推奨に従うと良いと思います。
過去7日、30日、60日にわたって利用状況を分析し、もっとも節約額が大きくなる買い方を推奨してくれます。(予約の購入時にも、どれが最適か表示してくれます。)

learn.microsoft.com

Azure Reservationsの返品・交換

予約を誤って購入してしまったり、リソースの利用状況が変わったりした場合は返品や交換を行うことができます。(「返品」「払戻」など公式でもいくつかの表記が混在していますが、ここではAzureポータル上の日本語表記である「返品」と記載します。)

購入していた予約が不要になった等の理由でキャンセルするのが「返品」、利用状況の変化等で別の予約に入れ替えるのが「交換」です。
交換する際には、コミット期間やスコープ、リージョン、サイズなどを変更することができます。
ただし、「仮想マシンからSQL Database」のように、異なる製品の予約に交換することはできません。

learn.microsoft.com

返品や交換にはいくつかの注意事項があります。(もしかすると、ここが一番わかりづらいかもしれません。)

返品時の注意事項

返品に際して2023年3月現在は中途解約料はかかっていませんが、将来的には12%の中途解約料がかかる可能性があります

また、返品には金額の上限があり、返金額が12か月間のローリングウインドウにおいて50,000米ドルを超えることはできません。
「12か月間のローリングウインドウ」というのは、返品を行った日からの12か月間を指します。
単純な例ですが、2023年4月に2,000米ドル相当の返品を行った場合、その後の返金額の上限が(50,000-2,000=)48,000米ドルになります。
その後の12か月間において、ほかに予約の返品が生じなければ、2024年4月には再び返金額の上限が50,000米ドルに戻ります。*1

交換時の注意事項

次に交換する場合の注意点です。

交換は「既存予約の返品+新規予約の購入」というイメージで考えてください。
前述の通り、返品の際には50,000米ドルの返品金額の上限がありますが、交換に伴う既存予約の返品に関してはこの上限は適用されません
ただし、新規予約の購入金額が、既存予約の返品金額を上回っている必要があります。

これも簡単な例ですが、既存予約の返品金額が5,000米ドルだった場合、新規予約の購入金額が5,000米ドルを上回ってなければいけません。
要するに「"これだけ使う"って言ってた約束を変更するんだから、これから使うはずだった金額以上のものを買ってね」ということです。
返品金額も新規購入金額も、予約の返品・交換を行う際に画面上で確認することができます。

返品・交換ができない場合

予約の返品や交換ができない場合は、以下の点をチェックしてください。

返品や交換を行う場合は、その予約を購入したユーザーあるいはその予約に対する所有者ロールを持っているユーザーでサインインしている必要があります。Azureサブスクリプションの所有者ロールではなく、予約に対する所有者ロールが必要であることに注意してください。

また、ライセンスプログラムによっては、上記の条件を満たしたユーザーであっても返品や交換が制限されていることがあります。
当社で取り扱っているCSPの場合、お客様はご自身で予約を購入することはできますが、返品や交換は行うことができません。返品や交換が必要になった場合は、取引先のパートナーへの依頼が必要です。

2024年からの新しい交換ポリシー

そして、これがとても重要なお知らせなのですが、2024年1月1日以降に購入されるすべてのコンピューティングの予約の交換ができなくなります
2024年1月1日より前に購入されたコンピューティングの予約は、ポリシーの変更が有効になった後に1回だけ交換ができるようです。
これは、後述する「Azure Savings Plan(節約プラン)」が関係しています。

learn.microsoft.com

Azure Savings Planとは?

2022年10月に登場したAzure Savings Plan。(日本語表記では「Azure節約プラン」)
"Azureのコンピューティングサービスに対して時間単位の固定金額を支払うことを1年間または3年間コミットすることで、従量課金制価格から最大65%の割引が適用される柔軟な価格モデルです。"ということなんですが、当社でもまだ具体的に利用した実績がなく、「どういう仕組みなのかはある程度理解したものの、実際に利用するとなったら・・・」という点でなかなか理解が追いついていない、というのが正直なところです。

azure.microsoft.com

Azure Reservationsでは購入時にリージョンやサイズを指定する必要があり、その属性に一致するリソースに対して自動的に適用されるというルールがあります。(「どのように適用される?」を参照)
ただ、それでは「リソースの属性が固定されない」ケースや、「一定の利用は確実にあるけど、どれくらい使われるかが流動的で予測が難しい」ケースでは、予約を購入して利用料金を節約することが難しかったため、そのニーズに応えるために生まれた仕組みがAzure Savings Planです。

Azure ReservationsとAzure Savings Plan、どちらを選べばいい?

どのようなケースでどちらを使うかは、以下のような判断基準に基づくことになります。

  • Azure Reservations:「決まったサイズのVMが24/365で稼働している」ような、リソースの稼働が容易に予測できる場合
  • Azure Savings Plan:「稼働時間が流動的」「異なるサイズが入れ替わりで稼働する」ような、リソースがどれだけ稼働するか事前に予測することが難しい場合。

マイクロソフトからは、ワールドワイドで24時間体制の業務や事業を継続するために時間帯によってメインの稼働リージョンが変わっていく「フォロー・ザ・サン」と呼ばれる運用体制ではAzure Savings Planが最適、という説明もありました。

Azure ReservationsとAzure Savings Planの併用

Azure ReservationsとAzure Savings Planは併用することもできます。
このふたつを併用した場合、まず予約の方から先に消費され、予約が適用されなかった超過分に対して節約プランが適用されます。

Azure Savings Planを購入する時の注意点

節約プランは流動的な消費に対して適用するものなので、事前に正確な見積をすることは困難だと思われます。(マイクロソフトからもそのように説明がありました。)
また、予約と違って節約プランは一度購入すると返品できないという点も注意が必要です。
節約プランに関してもAzure Advisorから推奨を受けられますので、利用した方が良さそうだけど購入するのはちょっと怖い・・・という場合はその推奨内容に従った方が良いかもしれません。


最後までお読みいただきありがとうございます。
Azure ReservationsもAzure Savings Planもうまく使えばAzureをお得に利用できるのですが、なかなか取っつきにくいところがあるのも事実です。
この記事がAzure ReservationsやAzure Savings Planを理解する手助けになれば嬉しいです。

www.alterbooth.com

www.alterbooth.com

cloudpointer.tech

*1:Azure Reservationsは米ドルでの値付けがされていて、日本からの購入は請求時のレートによって日本円に変換されます。そのため、本記事内の価格に関する表記も米ドルに統一しています。読みづらければ日本円として見てもらっても、基本的な考え方に関する理解はかわりません。