Valkeyとは
- オープンソースのインメモリ型キーバリューストアで、Redisをフォークした製品。
- 2024年3月、Redisのライセンス変更(従来のBSDライセンスから商用利用制限のあるライセンスへの変更)を受け、コミュニティ主導でフォークされたもの。
- Linux Foundationを中心に、AWS、Google Cloud、Oracleなど主要クラウドベンダーが採用・サポートしている。
Redisとの違い
-
Redisとの違い
- コードベースはほぼ同一だが、Redisに含まれる名称やブランド部分がValkeyに置き換えられている点が大きな違い。
- Redisと互換性があり、APIやデータフォーマットも同一のため、既存のRedis用クライアントやライブラリがそのまま利用可能。
利用メリット
-
コスト削減
- ElastiCache for Valkeyは、Redis版と比較して料金が低く設定されている。
-
API互換性
- Redis OSSと同一のAPI・データフォーマットを保持しているため、コードやアーキテクチャの大幅な変更が不要。
-
クラウド最適化
- AWSが積極的にサポートすることで、セキュリティ、運用の信頼性、可用性が確保される。
-
将来性
- 今後、Valkey独自の機能強化や最適化(例:マルチコア対応、メモリ効率改善)により、さらに高性能なキャッシュとして活用できる可能性がある。
アップグレード手順
-
事前準備
- 現在のElastiCache for Redis OSSキャッシュのスナップショットを取得し、バックアップを確保する。
- Redis用のカスタムパラメータグループを使用している場合、同じ静的パラメータ値を保持するValkey用パラメータグループを準備する。
-
アップグレードのトリガー
-
AWS CLIまたはコンソールから、既存のRedis OSSレプリケーショングループに対して、以下のように
modify-replication-group
コマンドを実行し、--engine
パラメータにvalkey
、--engine-version
に希望するバージョン(例: 8.0)を指定する。aws elasticache modify-replication-group \ --replication-group-id myReplGroup \ --engine valkey \ --engine-version 8.0 \ --apply-immediately
-
カスタムパラメータグループを利用している場合は、
--cache-parameter-group-name
オプションも指定する。 -
サーバーレスキャッシュの場合は、以下のように
modify-serverless-cache
コマンドを使用してアップグレードをトリガーする。aws elasticache modify-serverless-cache \ --serverless-cache-name myCache \ --engine valkey \ --major-engine-version 7
-
-
移行完了の確認
- ElastiCacheコンソールまたはAWS CLIで、キャッシュのエンジンが「Valkey」に変更され、ステータスが「available」になっていることを確認する。
- アプリケーション側でGET/SET操作等の接続テストを実施し、データがそのまま保持されていることを確認する。
参考文献
-
AWS公式ブログ
- 「Amazon ElastiCache for Valkeyの開始方法」
https://aws.amazon.com/jp/blogs/news/get-started-with-amazon-elasticache-for-valkey/
- 「Amazon ElastiCache for Valkeyの開始方法」
-
AWS公式ドキュメント
- 「Redis から Valkey へのクロスエンジンアップグレード OSSをトリガーする方法」
https://docs.aws.amazon.com/ja_jp/AmazonElastiCache/latest/dg/VersionManagement.HowTo.cross-engine-upgrade.html
- 「Redis から Valkey へのクロスエンジンアップグレード OSSをトリガーする方法」
-
Zenn記事
- 「自社サービスのCacheをRedis->Valkey移行してみた」
https://zenn.dev/shogo_b/articles/395a28c0ad46b4
- 「自社サービスのCacheをRedis->Valkey移行してみた」