マネージドサービス部 佐竹です。
Amazon ElastiCache リザーブドノードが「サイズの柔軟性」の提供を開始したという嬉しいお知らせがあります。また、合わせて2024年10月8日にアナウンスのあった「Amazon ElastiCache for Valkey」についても触れます。
はじめに
2024年10月1日より、Amazon ElastiCache のリザーブドノードも、やっとのこと「柔軟性」の提供を開始しました。
以下がその告知となる AWS 公式ブログの日本語版です。
EC2 と RDS の RI の柔軟性について
EC2 のリザーブドインスタンス (RI) では2017年3月に同様の「柔軟性(Size Flexibility)」がリリースされています。
また、RDS のリザーブド DB インスタンス (RI) も2017年10月に「Instance Size Flexibility」がリリースされています。
このように、EC2 と RDS では既に7年目より柔軟性が提供されていたため、もう ElastiCache では対応しないものだと勝手に思い込んでいたのですが、ついに機能対応してくれました。
正規化係数と柔軟性
では「柔軟性」とは何か?について簡単に説明します。
また現在、EC2 のコスト最適化には Savings Plans が利用されることが多いため、 RDS を用いて説明します。
まずは「正規化係数」です。これはインスタンスサイズによって予め決定されているものです。
以下がその一覧です。RDS のほうが詳細のため、RDS の一覧を利用しています。
| インスタンスサイズ | 正規化係数 |
|---|---|
| nano | 0.25 |
| micro | 0.5 |
| small | 1 |
| medium | 2 |
| large | 4 |
| xlarge | 8 |
| 2xlarge | 16 |
| 3xlarge | 24 |
| 4xlarge | 32 |
| 6xlarge | 48 |
| 8xlarge | 64 |
| 9xlarge | 72 |
| 10xlarge | 80 |
| 12xlarge | 96 |
| 16xlarge | 128 |
| 18xlarge | 144 |
| 24xlarge | 192 |
| 32xlarge | 256 |
| 48xlarge | 384 |
| 56xlarge | 448 |
| 112xlarge | 896 |
仮に db.r6g.large の RI を1つ購入したとすると「係数4」の RI を保持しているということになります。これは1つ上のサイズであり「係数8」の db.r6g.xlarge の「半分」に相当するため、db.r6g.xlarge の利用料の半分をカバーすることが可能になります。
これがどういう時に役立つかというと、例えば db.r6g.large の Amazon Aurora インスタンスを1台運用しており、同時に db.r6g.large の RI を1台購入しているとします。時間が経過し、本 Aurora を db.r6g.xlarge へとアップグレードすることになりました。
このとき、「柔軟性がある」Amazon Aurora 等の製品のおいては db.r6g.large の RI は db.r6g.xlarge の利用料の「半分」をカバーしてくれるため、RI が無駄になることはありません。追って db.r6g.large の RI をもう1台購入することで、db.r6g.xlarge の利用料を RI でフルカバーすることも可能です。
この「柔軟性」が ElastiCache にも適用されることになったので、嬉しいアップデートということになります。
推奨に関する注意点
合わせて RI の Recommendations (推奨)について補足します。
本説明については以下のブログ「質問8. RDS の購入推奨の台数が多く表示されますが何故ですか?」においても少々触れていますので、そこから引用します。
柔軟性は、後述する表の通り「正規化係数」によって計算されます。そのため、例えば 1台の db.r5.24xlarge (係数=192) の Amazon Aurora は、48台の db.r5.large (係数 = 4)の推奨と表記されます。この結果、推奨の台数が多く見えることがあります。
柔軟性のある製品では、正規化係数に応じて推奨が計算されます。これにより、「そのインスタンスファミリーの最も小さいインスタンスタイプ(サイズ)」で推奨が表示されるという仕様となるため、実際のインスタンスの数と推奨の数が一致しない場合があります。
柔軟性によりもたらされたメリット
弊社では、ElastiCache リザーブドノード(RN)を長らく運用していたのですが、少々都合がつかずに一部の RN が未使用の状態が続いていました。

このように、コスト削減効果がマイナス=赤字(RN を買わないほうが良かった状況)になってしまっている RN が存在していました。
具体的には ElastiCache RN「cache.t4g.medium」×3台分(正規化係数が6)が常に余っており、マイナスでした。
ですが、10月1日から柔軟性に対応したことで、ElastiCache RN の使用率が急激に回復しました。

これは余っていた ElastiCache RN「cache.t4g.medium」×3台分(正規化係数が6)がその柔軟性により「cache.t4g.small」にも適用されるようになったからです。
9月末までは、「Buy 5 cache.t4g.small Reserved Instances」という推奨が存在していたのですが、これが10月になると推奨から消失し、自動的に RN「cache.t4g.medium」がそれをカバーしてくれるようになったのです。
ここで「あれ?」と思われた方。そう、ちょっとおかしいのです。
「cache.t4g.small」の正規化係数は「1」です。5台の推奨はつまり「係数5」です。余っている ElastiCache RN「cache.t4g.medium」×3台分(係数が6)に対して「係数5」が推奨、となると今もなお「係数1」は余ります。余りがあって無駄が出ている、ということは RN の使用率が 100% にならないはずです。しかし、先の画面キャプチャでは「100%」で表示されていました。
Cost Explorer の表示に問題が残っている状態
結論として、2024年10月15日現在もなお、マネジメントコンソールの Cost Explorer は表示が正しくされません。表示が誤っている状態ですが、これについては AWS に修正を依頼しています。
具体的には、Utilization report(使用率)の表示が正しくないようです。

最下部「cache.t4g.medium」の使用率は 100% ですが、「Reservation hours unused」が「-936表記」となってしまっています。他の RN も使用率は 100% ではないのにも関わらず、全ての使用率を鑑みて表示されるグラフの使用率は、100% となってしまっています。
というわけで、正しく状況を把握するためにも、Utilizations report の修正が待ち望まれます*1。
ElastiCache for Valkey のリリースと RN の Valkey への対応
では次に ElastiCache for Valkey についてです。このリリースも ElastiCache リザーブドノードに関しては重要なアップデートであり、このアップデートを受けて AWS は公開済のブログに「ElastiCache for Valkeyの公開に伴い、シナリオを更新しました。」という注記を行い、本文への追記を行っています。
さて、2024年10月8日に「Amazon ElastiCache and Amazon MemoryDB announce support for Valkey」というブログが投稿されました。
Amazon ElastiCache と Amazon MemoryDB において、Valkey 7.2 への対応とリリース発表のアナウンスがされました。本機能は既に東京リージョンでもご利用が可能で、同時にリザーブドノードも提供されています。

以下は上記 AWS ブログからの引用とその日本語訳です。
With today’s launch, AWS is making Valkey accessible to more customers. ElastiCache Serverless for Valkey is priced 33% lower than ElastiCache Serverless for Redis OSS, and node-based ElastiCache for Valkey is priced 20% lower than other node-based ElastiCache engines. The minimum cache size for ElastiCache Serverless for Valkey is 100MB compared to 1 GB for ElastiCache Serverless for Redis OSS. With these pricing changes, customers can now start using Valkey quickly and at a lower price. For example, customers can create a cache using ElastiCache Serverless for Valkey in under a minute, priced as low as $6 per month. Additionally, customers who are using ElastiCache reserved nodes can easily switch from ElastiCache for Redis OSS to ElastiCache for Valkey, and retain their existing discounted reserved node rates across all node sizes within the same family.
[日本語訳]
本日のリリースにより、AWS は Valkey をより多くのお客様にご利用いただけるようになります。ElastiCache Serverless for Valkey の価格は ElastiCache Serverless for Redis OSS よりも 33% 安く、ノードベースの ElastiCache for Valkey は他のノードベースの ElastiCache エンジンよりも 20% 安くなっています。ElastiCache Serverless for Valkey の最小キャッシュサイズは 100 MB であるのに対し、ElastiCache Serverless for Redis OSS は 1 GB です。これらの価格変更により、お客様は Valkey を迅速かつ低価格で使い始めることができます。たとえば、お客様は ElastiCache Serverless for Valkey を使用して 1 分以内にキャッシュを作成でき、価格は月額 6 ドルと低価格です。さらに、ElastiCache 予約ノードを使用しているお客様は、ElastiCache for Redis OSS から ElastiCache for Valkey に簡単に切り替えることができ、同じファミリー内のすべてのノードサイズで既存の割引予約ノード料金を維持できます。
上記引用の通り、サーバレスへの対応でのコスト最適化や、さらに利便性においても Redis OSS より Valkey が優れていると言えるでしょう。
そもそも Valkey とは何か?
ここから、そもそも Valkey とは何なのかについても解説します。
2024年3月20日、Redis 社が Redis 7.4 以降のライセンスを、RSALv2 と SSPLv1 のデュアルライセンスに変更することを発表しました。残念ながら、このライセンス変更により Redis の商用利用は従来よりもかなり厳しくなってしまいました。
このため、特にクラウドサービスのプロバイダー(つまり AWS 等)が Redis をベースとしたマネージドサービスを提供することが厳しい状況となっています。この状況を受け、Redis コミュニティの一部は、より自由なライセンスのもとで開発を進めるべく Valkey を立ち上げています。
Valkey は、Redis と高い互換性を持つ一方で、コミュニティ主導で開発が進められているため、より柔軟な機能拡張が期待されています。AWS もこの動きにいち早く対応しており、ElastiCache を直ぐに Valkey に対応させるなど、Valkey の普及を後押ししている状況です。
これは AWS 公式ドキュメントを読んで頂ければより理解できる通りなのですが、「Upgrading reserved nodes from Redis OSS to Valkey」という内容として以下が記載されています。こちらも引用と共に翻訳しています。
With the launch of Valkey in ElastiCache, you can now apply your Redis OSS reserved node discount to the Valkey cache engine. You can upgrade from Redis OSS to Valkey while still benefitting from existing contracts and reservations. In addition to being able to apply your benefits within the cache node family and engine, you can even receive more incremental value. Valkey is priced at a 20% discount relative to Redis OSS, and with reserved node flexibility, you can use your Redis OSS reserved nodes to cover 20% more running Valkey nodes.
[日本語訳]
Amazon ElastiCacheにValkeyが導入されたことで、Redis OSSのリザーブドノードの割引をValkeyキャッシュエンジンにも適用できるようになりました。既存の契約や予約をそのままに、Redis OSSからValkeyへアップグレードすることができます。このアップグレードにより、キャッシュノードファミリやエンジン内でのみ適用されていた割引を、さらに拡大して利用できるようになります。ValkeyはRedis OSSに比べて20%割引された価格設定となっており、リザーブドノードの柔軟性を活用することで、既存のRedis OSSリザーブドノードで20%多くのValkeyノードを運用することが可能になります。
ということで、ElastiCache は早期に Valkey への対応を済ませており、さらに Valkey の リザーブドノードまで実装・提供している状況です。
ElastiCache for Valkey では正規化係数も 20% オフ
ノードベースの ElastiCache for Valkey は 20% 安価であるということを先の引用でご説明しました。
それと同様に、ElastiCache for Valkey のリザーブドノードも 20% オフとなっています。
また以下は AWS 公式ドキュメントからの引用です。
| Node size | Normalized units (Redis OSS, Memcached) |
Normalized units (Valkey) |
|---|---|---|
| micro | 0.5 | 0.4 |
| small | 1 | 0.8 |
| medium | 2 | 1.6 |
| large | 4 | 3.2 |
| xlarge | 8 | 6.4 |
| 2xlarge | 16 | 12.8 |
| 4xlarge | 32 | 25.6 |
| 6xlarge | 48 | 38.4 |
| 8xlarge | 64 | 51.2 |
| 10xlarge | 80 | 64 |
| 12xlarge | 96 | 76.8 |
| 16xlarge | 128 | 102.4 |
| 24xlarge | 192 | 153.6 |
この正規化係数の通り、Valkey のリザーブドノードは Redis OSS に比べて 20% 安くなっています。ただこの一覧表には少しの注意が必要です。
Valkey のリザーブドノードが Redis OSS のそれによってカバーされるという AWS ドキュメントの意図は、既存の Redis OSS リザーブドノードを「無駄にしない」ための案内です。
先に記載した通り、Valkey のリザーブドノードは既に提供が開始されていますので、Valkey Cache には Valkey のリザーブドノードを適用すれば良いとなります。
ですが Redis OSS を Valkey へと切り替える場合においては、既存の Redis OSS リザーブドノードが無駄になってしまう可能性がある状況も考えられます。それが可能な限り無駄とならないよう、AWS は既存の Redis OSS リザーブドノードに Valkey への柔軟性を同時に提供してくれていると考えると良いでしょう。
この更なる追加の Valkey へのリザーブドノードの柔軟性により、既存の Redis OSS リザーブドノードを無駄にせず、Valkey にアップグレードすることでさらにコストを削減ができるというメリットが AWS からのメッセージである、と私は受け取っています。
ということで、ここまでが追加となる ElastiCache の Valkey 対応についての解説でした。
まとめ
本ブログでは、ElastiCache リザーブドノードが「サイズの柔軟性」の提供を開始した旨について記載しました。
また現時点では Cost Explorer の表示には少々不可解な点が見られる部分もフォローしました。これは後程修正されると思われます2024年10月28日時点で修正を確認しました。
もしかするとこちらと同じように、10月1日から自動的に RN の使用率が回復したというエンドユーザ様もいらっしゃるかもしれません。また、柔軟性によりもう少し「攻めた買い方」もできそうです*2。
加えて ElastiCache の Valkey への対応についても解説しました。Valkey への移行において、既存の Redis OSS リザーブドノードが無駄にならないよう、Redis OSS と Valkey Cache 間にも 20% オフとなる柔軟性(ある種の互換性)が提供されているのは注目に値します。
解説は以上です。
では、またお会いしましょう。
*1:この修正が完了してからブログを記述しようと待っていたのですが、なかなか修正が完了しないため先にブログを公開しました。そしてその間に、Valkey がリリースされたた状況です
*2:例えば、柔軟性を最大限に利用するため可能な限り ElastiCache の稼働インスタンスファミリーを一律に合わせることで、RN の未使用時間を減らすというような工夫も可能です
佐竹 陽一 (Yoichi Satake) エンジニアブログの記事一覧はコチラ
セキュリティサービス部所属。AWS資格全冠。2010年1月からAWSを業務利用してきています。主な表彰歴 2021-2022 AWS Ambassadors/2020-2025 Japan AWS Top Engineers/2020-2025 All Certifications Engineers。AWSのコスト削減やマルチアカウント管理と運用を得意としています。