チュートリアル: AL2023 での Redis 6 から Valkey への移行 - Amazon Linux 2023

チュートリアル: AL2023 での Redis 6 から Valkey への移行

次のドキュメントでは、AL2023 での Redis 6 から Valkey への移行の主な側面について説明します。

Redis 6 のサポートタイムライン

Redis 6 は 2026 年 1 月 31 日にサポート終了 (EOL) となります。この日付が過ぎると、Redis 6 は Redis プロジェクトから更新プログラムやセキュリティパッチを受信しなくなります。継続的なサポートとセキュリティ更新を確実に受け取るために、2026 年 1 月より前に Valkey に移行することを強くお勧めします。

Redis バージョンのサポートタイムラインの詳細については、Redis のサポート終了スケジュールに関するドキュメントを参照してください。

Valkey の概要

Valkey は Redis 7 のオープンソースフォークであり、Linux Foundation によって管理されています。Redis オープンソースソフトウェア (OSS) バージョン 2.x~7.2.x と完全に互換性があります。Valkey は、使い慣れた Redis API と機能を維持する一方で、以下のいくつかの機能強化を提供します。

  • マルチスレッドによるパフォーマンスの向上。

  • メモリ効率の向上 (特にクラスターモードで)。

  • デュアルチャネルレプリケーションによるデータ整合性の向上。

移行の計画とタイムライン

Redis 6 がサポート終了 (EOL) となる 2026 年 1 月 31 日より前に Redis 6 から Valkey に移行することを強くお勧めします。この移行には手動介入が必要であり、自動ではありません。

Amazon Linux では、Redis に依存するアプリケーションの機能、サポート、セキュリティ更新を継続的に確保するために、この移行を推奨しています。

移行のオプションとステップ

デプロイ要件と運用ニーズに基づいて、Valkey への 3 つの移行パスを提案します。

オプション 1: 新しいインスタンスのインストール

新しいデプロイの場合、またはデータ移行が必要ない場合:

  1. Valkey をインストールします。

    [ec2-user ~]$ sudo dnf install valkey
  2. Valkey を起動します。

    [ec2-user ~]$ sudo systemctl start valkey
  3. (オプション) 起動時に Valkey を有効にします。

    [ec2-user ~]$ sudo systemctl enable valkey
  4. インストールを確認します。

    [ec2-user ~]$ valkey-cli info server [ec2-user ~]$ valkey-cli ping

オプション 2: インプレース置換

データ永続性が不要な既存のインスタンスの場合:

  1. Redis 6 を停止します。

    [ec2-user ~]$ sudo systemctl stop redis6
  2. Valkey をインストールします。

    [ec2-user ~]$ sudo dnf install valkey
  3. (オプション) Valkey で Redis 6 設定を使用します。

    [ec2-user ~]$ sudo cp /etc/redis6/redis6.conf /etc/valkey/valkey.conf [ec2-user ~]$ sudo cp /etc/valkey/valkey.conf /etc/valkey/valkey.conf.backup [ec2-user ~]$ sudo chown valkey:root /etc/valkey/valkey.conf [ec2-user ~]$ sudo sed -i 's|^dir\s.*|dir /var/lib/valkey|g' /etc/valkey/valkey.conf
  4. (オプション) Valkey で Redis 6 センチネル設定ファイルを使用します。

    [ec2-user ~]$ sudo cp /etc/redis6/sentinel.conf /etc/valkey/sentinel.conf [ec2-user ~]$ sudo chown valkey:root /etc/valkey/sentinel.conf
  5. Valkey を起動します。

    [ec2-user ~]$ sudo systemctl start valkey
  6. (オプション) 起動時に Valkey を有効にします。

    [ec2-user ~]$ sudo systemctl enable valkey
  7. Valkey のインストールを確認します。

    [ec2-user ~]$ valkey-cli info server [ec2-user ~]$ valkey-cli ping
  8. Redis 6 を削除します。

    [ec2-user ~]$ sudo dnf remove redis6

オプション 3: データ移行

このオプションを使用すると、Redis 6 と Valkey の両方を同時に実行できます。

  1. Redis 6 を削除せずに Valkey をインストールします。

    [ec2-user ~]$ sudo dnf install valkey
  2. (オプション) Valkey で Redis 6 設定を使用します。

    [ec2-user ~]$ sudo cp /etc/redis6/redis6.conf /etc/valkey/valkey.conf [ec2-user ~]$ sudo cp /etc/valkey/valkey.conf /etc/valkey/valkey.conf.backup [ec2-user ~]$ sudo chown valkey:root /etc/valkey/valkey.conf [ec2-user ~]$ sudo sed -i 's|^dir\s.*|dir /var/lib/valkey|g' /etc/valkey/valkey.conf
  3. (オプション) Valkey で Redis 6 センチネル設定ファイルを使用します。

    [ec2-user ~]$ sudo cp /etc/redis6/sentinel.conf /etc/valkey/sentinel.conf [ec2-user ~]$ sudo chown valkey:root /etc/valkey/sentinel.conf
  4. Valkey 設定を変更します。

    Redis 6 との競合を避けるために、/etc/valkey/valkey.conf を編集して「port」ディレクティブを別の値 (6380 など) に設定します。

  5. Valkey を起動します。

    [ec2-user ~]$ sudo systemctl start valkey
  6. (オプション) 起動時に Valkey を有効にします。

    [ec2-user ~]$ sudo systemctl enable valkey
  7. Valkey のインストールを確認します。

    [ec2-user ~]$ valkey-cli -p port info server [ec2-user ~]$ valkey-cli -p port ping
    注記

    port を、設定したポート番号に置き換えます。

  8. データを移行します。

    これで、レプリケーションまたは手動データ転送方法を使用して、Redis 6 から Valkey にデータを移行できます。

  9. アプリケーション設定を更新します。

    Valkey ポートを使用するようにアプリケーションを段階的に更新します。

  10. Redis 6 を削除します。

    すべてのデータとアプリケーションを移行したら、Redis 6 を停止して削除できます。

    [ec2-user ~]$ sudo systemctl stop redis6 [ec2-user ~]$ sudo dnf remove redis6
注記

本番環境システムに変更を実装する前に、テスト環境で移行プロセスを検証することを強くお勧めします。

Valkey の詳細については、以下を参照してください。