AWS ElastiCache RedisからValkeyへ -移行背景や今後について-
こんにちは!RemitAidでソフトウェアエンジニアをしているnos0611です。
はじめに
弊社ではキャッシュやセッションの管理にAWS ElastiCacheを利用しており、先日Redis OSSからValkeyに移行しました。
本記事では、実際の移行手順から得られた知見、そして今後の展望について共有します。
Valkeyとは
ValkeyはRedis OSS 7.2.4をベースにしたオープンソースのインメモリデータストアです。2024年3月にRedisのライセンス変更を契機にLinux Foundationの下で発足し、AWS、Google Cloud、Oracleなどの主要企業がサポートしています。
技術的な観点から見ると、ValkeyはRedis OSSのドロップイン代替として設計されており、既存のRedisアプリケーションをコード変更なしで移行できるのが大きな特徴です。
ライセンス問題についてはここでは本筋としませんので、詳細に興味がある方はRedis社のブログやLinux Foundationの発表を調べてみてください。
Valkeyを選んだ理由
AWSの受け売りにはなりますが、ほぼ上位互換と見て問題ないようです。
1. コスト削減
- ノードベースのクラスター:約20%の料金削減
- Serverless:約33%の料金削減
変更したばかりでまだ料金には表れていないため、今後実際の料金がどうなるのか楽しみです。
2. パフォーマンスの向上
- 最大230%高いスループット
- 最大70%優れたレイテンシ
- 最大20.6%のメモリオーバーヘッド削減
3. 完全な互換性
ValkeyはRedis OSS 7.2.4との完全な後方互換性を維持しています。
AWSの今後の方向性(私見)
完全に私見になってしまいますが、現在のAWSの動向を見ると今後はValkeyを中心にサービス展開していくのではないかと予想しています。
積極的なバージョンアップ
- 2024年11月:Valkey 8.0サポート開始
- 2025年1月:Valkey 8.1サポート開始
一方で、Redis OSSの新バージョン(7.4以降)への対応は見送られています。
最新機能の追加
ElastiCache for Valkeyには次々と新機能が追加されています。
- Bloomフィルタのネイティブサポート
- 高速スケーリング
- 改善されたメモリ効率
これらの状況を見ると、AWSは明らかにValkeyに重点を置いた開発を進めていることがわかります。
移行手順
実際の移行は想像以上にシンプルでした。
以下のAWSブログに記載されている通り、マネジメントコンソールで数ステップの操作を行うだけで移行が完了しました。
(弊社ではterraformを使ったリソース管理を行っているため、確認後にソースコードを追従しました。)
Amazon ElastiCache for Valkeyの開始方法
移行時の注意点
ダウンタイムについて
AWSは「ダウンタイムなし」を謳っていますが、実際移行してみたところアプリケーションからの接続エラーのログが確認できたため、短いながらも切断が発生していたようです。
重要なシステムの場合は注意が必要になりそうです。
キャッシュデータの引き継ぎ
意外なことに、キャッシュされたデータは移行後も保持されていました。
いくらなんでもデータは消えるだろうと考えて準備をしていたのでいい意味で肩透かしをくらいました。
RemitAidにおける今後の展望
クライアントライブラリの移行
現在、アプリケーション側ではgo-redisライブラリを使用しています。
現時点ではValkeyはRedisと互換性があるため問題ありませんが、いつまで互換性が保たれるかは定かではないためvalkey専用のvalkey-goなどへの移行を行う予定です。
まとめ
ElastiCacheでのRedis OSSからValkeyへの移行は、想像以上にスムーズに実施できました。
移行のメリット
- コスト削減: 20〜33%の料金削減
- パフォーマンス向上: 最大230%のスループット向上
- 簡単な移行: シームレスな移行が可能
注意点
- 完全なダウンタイムゼロではない(数秒の接続エラーの可能性)
今後の取り組み
- valkey用のクライアントライブラリ移行
We Are Hiring!
RemitAid では一緒に働く仲間を募集しています。
興味がある方はこちらからどうぞ!
Podcast 「RemiTalk」を最近始めましたので、どんな会社なのかもっと知りたいという方は良ければ聴いてみてください! RemiTalkの文字起こしはこちら
Discussion