はじめに
Google Cloud のインメモリデータベースサービスである Memorystore for Redis は、Google Cloud におけるキャッシュや高速なデータストアとして利用されてきました。
2024年に Redis のライセンス体系が変更されたことを受け、オープンソースのフォークである Valkey が登場しました。
Google Cloud ではこの動きに対応し、2025年4月に Memorystore for Valkey を GA しています。
本記事では、Valkey 登場の経緯や Redis と Valkey の比較を踏まえて、選択のポイントについて考察します。
Valkey 登場の経緯
Redis のライセンス変更
もともと、Redis は BSD-3 ライセンスという OSS のライセンスで提供されていました。しかし、2024年3月に Redis 社は、バージョン7.4以降の Redis を RSALv2 および SSPLv1 のデュアルライセンスとすることを発表しました。
これにより、AWS や Google Cloud といったクラウドベンダーは Redis を無償で利用することができなくなり、これまでどおりにサービスとして提供することが困難になりました。※Redis 7.2以前のバージョンには適用されない
オープンソースのフォーク Valkey の登場
このライセンス変更を受け、Linux Foundation を中心に、AWS、Google Cloud、Oracle などの主要なクラウドベンダーも協力し、Redis 7.2.4 をベースとしたオープンソースのフォーク Valkey を立ち上げました。
Valkeyは、Redisとの後方互換性を維持しつつ、コミュニティ主導で開発を継続することを目的としています。将来的には、よりスケーラブルなクラスタリング機能や新しいデータ型などの機能追加が計画されています。
Memorystore における選択肢
現在、Google Cloud の Memorystore では、Redis 互換のサービスとして以下の選択肢があります。
サービス名 | ベース | クラスタモード | 特徴 |
---|---|---|---|
Memorystore for Redis | Redis | 非対応 | スタンドアロン構成。小〜中規模向け。旧来の BSD ライセンス版 Redis がベース。提供されている Redis 最新バージョンは 7.2。 |
Memorystore for Redis Cluster | Redis | 対応 | Redis 公式のクラスタモード。大規模向け。旧来のBSD ライセンス版 Redis がベース。提供されている Redis バージョンは 7.0。 |
Memorystore for Valkey | Valkey | 対応/無効化可能 | Valkey ベース。オープンソースでコミュニティ開発。Redis 7.2 と互換性があり、ライセンス変更の流れから Google Cloud において新機能の実装が進んでいる。 |
Redis と Valkey の比較
Memorystore for Redis と Memorystore for Valkey は、どちらも Redis をベースとしているため、コマンドレベルでの基本的な互換性は担保されています。
しかし、パフォーマンスや構成の柔軟性、そして将来性において差異が存在します。
構成の差異
比較項目 | Memorystore for Redis | Memorystore for Redis Cluster | Memorystore for Valkey |
---|---|---|---|
エンジン | Redis 3.0、4.0、5.0、6.x、7.0、7.2 | Redis 7.0 | Valkey 7.2、8.0 (Redis 7.2と互換) |
構成 | スタンドアロン (Primary, Replica) | クラスター (シャード / Primary, Replica) | クラスター (シャード / Primary, Replica) |
クラスターモード | 該当なし | 有効のみ | 有効 または 無効 (1シャード構成) |
スケーリング | 垂直 (ノードサイズ)、リードレプリカ | 水平 (シャード), 垂直 (ノード) | 水平 (シャード), 垂直 (ノード) |
レプリケーション | クロスゾーン | クロスゾーンレ、クロスリージョン | クロスゾーン、クロスリージョン |
SLA | 99.9% | 99.99%※マルチゾーン展開 | 99.99%※マルチゾーン展開 |
各構成のアーキテクチャは以下のとおりです。
Memorystore for Redis (リードレプリカ利用)
https://cloud.google.com/memorystore/docs/redis/redis-tiers?hl=ja
Memorystore for Redis Cluster
https://cloud.google.com/memorystore/docs/cluster/memorystore-for-redis-cluster-overview?hl=ja
Memorystore for Valkey (クラスターモード有効)
https://cloud.google.com/memorystore/docs/valkey/ha-and-replicas?hl=en
Memorystore for Valkey (クラスターモード無効)
https://cloud.google.com/memorystore/docs/valkey/ha-and-replicas?hl=en
アーキテクチャには、大きく分けてスタンドアロンとクラスターの2種類があります。
スタンドアロン構成は、単一のプライマリノードと、その複製であるリードレプリカで成り立ちます。対してクラスター構成は、シャードという単位の中にプライマリノードとレプリカノードが作られます。シャードを追加する水平スケーリングによってプライマリノード自体をスケールさせることが可能で、マルチゾーンで構成した場合の SLA もクラスターの方が高くなります。
そして、このクラスター構成において Redis Cluster と Valkey の間に重要な違いがあります。
Valkey はクラスターモードを無効 (1シャード構成) にすることが可能で、これにより、クラスターモードではないスタンドアロンの Redis インスタンス (Memorystore for Redis 等) から移行する際に、最小限の変更で済むというメリットがあります。
既存機能への追従
Memorystore for Valkey は、後発のサービスでありながら、既存の Redis 向けサービスで提供されていたエンタープライズ向けの主要な周辺機能に追従しています。
- クラスター構成とシングル (スタンドアロン) 構成の双方を提供
- メンテナンスウインドウをサポート
- Private Service Connect (PSC) に対応
- AI/ML活用で注目されるベクトル検索機能をサポート
Valkey による新機能
Google Cloudは、主要クラウドプラットフォームの中で最初にValkey 8.0をフルマネージドサービスとして提供しました。Valkey 8.0 は、Valkey 7.2 同様に Redis 7.2 と互換性を持ちながらコミュニティによってフォーマンス、信頼性、レプリケーション、オブザーバビリティ、効率性という5つの主要項目で大幅な機能強化がなされています。
- Memorystore for Redis Cluster と比較して、マイクロ秒のレイテンシで最大2倍の QPS (秒間クエリ数)を実現
- パフォーマンスを向上させる非同期 I/O スレッド処理
- クラスタスケーリング操作の信頼性向上
- メイン辞書へのキーのエンベディングによるメモリ効率の向上
- 軽量なクラスタメッセージを使用した Pub/Sub の効率改善
費用
インスタンスの課金体系としては、プロビジョニングされたインスタンスの容量に応じて課金されます。容量あたりの時間単価では、スタンドアロンの Memorystore for Redis が最も安価となります。クラスター構成の Memorystore for Redis Cluster と Memorystore for Valkey については、利用料観点で差異はありませんが、QPS を考慮すると実質的なコストパフォーマンスでは Valkey に優位性があります。
https://cloud.google.com/memorystore/docs/redis/pricing?hl=ja
https://cloud.google.com/memorystore/cluster/pricing?hl=en
https://cloud.google.com/memorystore/valkey/pricing?hl=ja
開発モデルと今後の展望
Memorystore for Redis のベースとなっているオープンソース版 Redis は、BSD ライセンスで利用できるバージョンです。
上述のとおり、クラウドベンダーが Redis 7.4 以降を採用することは難しくなっています。
このため、今後は Google Cloud としても Memorystore for Valkey に向けての新機能拡充に力を入れる方向に進んでいくと考えられます。
選択のポイント
Memorystore における Redis や Valkey の今後を踏まえると、プロジェクトの状況によって以下のポイントで選択するのが良いと考えています。
- 新規プロジェクト開始時
- コスト最優先で、高いパフォーマンスが不要な小〜中規模システムの場合
- Memorystore for Redis を選択
- 高いパフォーマンスや将来的なスケーラビリティを重視する場合
- Memorystore for Valkey を選択 (クラスターモードの有無は別途検討)
- コスト最優先で、高いパフォーマンスが不要な小〜中規模システムの場合
- 既存システム移行時
- 移行元がスタンドアロン構成の Redis の場合
- コストを維持・削減したい場合、Memorystore for Redis を選択
- パフォーマンスを向上させたい場合、Memorystore for Valkey (クラスターモード無効) を選択
- 移行元がクラスター構成の Redis の場合
- 特別な理由がない限り、Memorystore for Valkey (クラスターモード有効) を選択
- 移行元がスタンドアロン構成の Redis の場合
おわりに
本記事では、Redis のライセンス変更に伴って誕生した Valkey についての経緯を振り返り、Google Cloud の Memorystore における比較や選択のポイントを考察しました。