ElastiCache for RedisをValkeyへ移行しました
ENECHANGE株式会社 / Saya
メンバー / バックエンドエンジニア / 従業員規模: 101名〜300名 / エンジニア組織: 11名〜50名
| ツールの利用規模 | ツールの利用開始時期 | 事業形態 |
|---|---|---|
| 10名以下 | 2025年4月 | B to B B to C |
| ツールの利用規模 | 10名以下 |
|---|---|
| ツールの利用開始時期 | 2025年4月 |
| 事業形態 | B to B B to C |
アーキテクチャ
導入の背景・解決したかった問題
導入背景
ツール導入前の課題
- チーム目標としてインフラコスト削減が設定されており、費用対効果の高い施策を選定していました。
- Redis6.2のEOLが近づいており、バージョンアップが必要でした。
当時の状況
- インフラはAWS上で構築されており、Terraformで管理していました。
- キャッシュやメッセージブローカーとして、ElastiCache for Redis6.2をオンデマンドノードで使用していました。
- アプリケーションは Python + Django で構築しており、ライブラリに redis-py や django-redis、Celery を使用していました。
選定理由
1. インフラコストが削減できる
ElastiCache for Valkeyの場合、 ElastiCache for Redisに比べて、オンデマンドノードで20%、サーバレスで33%のコスト削減 ができます。
2. 移行コストが低い
ValkeyはRedis7.2からフォークされたOSSであり互換性があるため、RedisURLや既存コマンドがそのまま使え、コード修正が最小限に抑えられると判断しました。
3. 移行リスクが低い
AWS ElastiCacheの構成によってはダウンタイムなしで移行できます。 また、Redisと互換性があるため、移行後の障害リスクも低いと判断しました。
4. パフォーマンスが向上する
Valkey 8.0ではI/Oスレッディングが強化されており、 スループットやレイテンシーの向上が見込めました。
導入の成果
どのような成果が得られたか
1. インフラコストを削減できた
AWS公式価格に基づき約20%のコスト削減を実現しました。 本番環境での運用期間がまだ短いため、今後、実際の請求額でも効果を検証していく予定です。
2. アプリケーションコードの変更は不要だった
redis-pyやdjango-redis、Celeryの設定変更なしで移行でき、Terraformの変更のみで完了しました。
3. 移行後も安定稼働している
運用開始後、接続エラーやパフォーマンス劣化などの障害は発生していません。
導入時の苦労・悩み
1. インフラ構成の変更が必要だった
私たちのプロダクトでは、レプリケーショングループがないシングルノード構成のElastiCache for Redisを運用していました。
しかし、Valkeyへの移行はレプリケーショングループ構成が前提となっているため、まずはレプリケーショングループの作成を実施しました。
今回の移行目的は インフラコストの削減 であったため、レプリカノードは追加せずに シングルノード構成のまま運用を継続 しています。
ElastiCacheの料金はノード数に応じて課金される仕組みのため、レプリケーショングループを作成しても、ノード数が変わらなければインフラコストは増加しません。
2. Terraform Providerのバージョンアップが必要だった
当時のTerraformは AWS Provider v4を使用しており、Valkeyに対応してませんでした。
そのため、Valkeyへの移行前にProviderをv5へバージョンアップする必要がありました。
導入に向けた社内への説明
上長・チームへの説明
事業部内でインフラコストを削減するという目標が掲げられていたため、「移行コストが低く、インフラコストを削減できる」という説明で納得してもらえました。
活用方法
プロダクトの構成は、Python + Django + Celery で、Valkeyを以下の用途で使用しています。
- Celeryのブローカー
- Celeryのバックエンド
- Djangoのキャッシュバックエンド
よく使う機能
基本的なキーバリュー操作
ツールの良い点
- インフラコストを削減できる
- 移行コストが低い
- パフォーマンスが向上する
ツールの課題点
- ElastiCacheでレプリケーショングループがないシングルノード構成の場合は、まずレプリケーショングループの作成が必要
- ElastiCacheの場合、ValkeyからRedisには戻せない
- Redis7.4以上の場合、Valkeyとの互換性がないため、移行コストが大きくなる可能性がある
ツールを検討されている方へ
RedisからValkeyへの移行は、費用対効果が高いインフラコスト削減施策としておすすめです。
特にRedisのEOL対応が必要なタイミングで、Valkeyへの移行を検討されてはいかがでしょうか。
今後の展望
- RedisライブラリからValkeyライブラリへの移行を実施予定です。
(redis-py → valkey-py、django-redis → django-valkey) - Valkey9がリリースされたら、バージョンアップを実施予定です。
- AWSがリリースしたRust製のValkeyクライアント Valkey GLIDE の導入を検討しています。
ENECHANGE株式会社 / Saya
メンバー / バックエンドエンジニア / 従業員規模: 101名〜300名 / エンジニア組織: 11名〜50名
ENECHANGE株式会社 / Saya
メンバー / バックエンドエンジニア / 従業員規模: 101名〜300名 / エンジニア組織: 11名〜50名
レビューしているツール
目次
- アーキテクチャ
- 導入の背景・解決したかった問題
- 活用方法

