Redis 用 Amazon ElastiCache
Redis 用 ElastiCache ユーザーガイド (API バージョン 2015-02-02)

エンジンバージョンのアップグレード

キャッシュクラスターを実現するプロトコルに準拠したソフトウェアを、ElastiCache でサポートされる新しいバージョンにアップグレードするかどうかと、アップグレードの時期を管理します。このレベルのコントロールにより、特定のバージョンとの互換性を維持する、本稼働環境にデプロイする前にアプリケーションで新しいバージョンをテストする、および独自の条件とタイムラインでバージョンのアップグレードを実行することができます。

バージョンのアップグレードは互換性のリスクがあるため、自動では実行されません。それらを自分で開始する必要があります。

クラスターまたはレプリケーショングループを変更し、新しいエンジンのバージョンを指定することで、クラスターまたはレプリケーショングループに対するエンジンのバージョンのアップグレードを開始します。詳細については、以下を参照してください。

重要

  • より新しいエンジンバージョンにアップグレードできますが、以前のエンジンバージョンにダウングレードすることはできません。以前のエンジンバージョンを使用する場合は、既存のクラスターを削除し、新たにそれを以前のエンジンバージョンで作成する必要があります。

  • エンジンのバージョニングは、パッチの適用方法をできる限り制御できるように設計されています。ただし、ElastiCache には、システムまたはキャッシュソフトウェアに重大なセキュリティ脆弱性が発生する可能性が低い場合に、お客様に代わってクラスターにパッチを適用するための権限あります。

  • Redis 用 ElastiCache では Redis (クラスターモードが無効) および Redis (クラスターモードが有効) をサポートしていません。

  • Redis 用 Amazon ElastiCache エンジンのアップグレードプロセスは、既存のデータをベストエフォートで保持するように設計されており、Redis レプリケーションが正常に実行される必要があります。

  • エンジンをアップグレードすると、Redis (クラスターモードが無効) から Redis (クラスターモードが有効) に直接アップグレードすることはできません。次の手順では、Redis (クラスターモードが無効) から Redis (クラスターモードが有効) にアップグレードする方法について説明します。

    Redis (クラスターモードが無効) から Redis (クラスターモードが有効) にエンジンバージョンをアップグレードするには

    1. Redis (クラスターモードが無効) クラスターまたはレプリケーショングループのバックアップを取ります。詳細については、「手動バックアップの作成」を参照してください。

    2. バックアップを使用して、1 つのシャード (ノードグループ) を持つ Redis (クラスターモードが有効) クラスターを作成してシードします。新しいエンジンのバージョンを指定し、クラスターまたはレプリケーショングループの作成時にクラスターモードを有効にします。詳細については、「外部で作成されたバックアップによる新しいクラスターのシード」を参照してください。

    3. 古い Redis (クラスターモードが無効) クラスター またはレプリケーショングループを削除します。詳細については、「クラスターの削除」または「レプリケーショングループの削除」を参照してください。

    4. 新しい Redis (クラスターモードが有効) クラスターまたはレプリケーショングループを、必要なシャード (ノードグループ) の数に合わせてスケールします。詳細については、「Redis (クラスターモードが有効) クラスターのスケーリング」を参照してください。

  • 単一の Redis クラスターや、マルチ AZ が無効になっているクラスターの場合、「Redis スナップショットを作成するのに十分なメモリがあることの確認」で説明されているように、Redis 用に十分なメモリを確保することをお勧めします。このような場合、プライマリはアップグレードプロセスの実行中、リクエストに対応できません。

  • マルチ AZ が有効になっている Redis クラスターの場合、書き込みの受信トラフィックが少ない期間中にエンジンのアップグレードを予定することもお勧めします。Redis 5.0.5 以降にアップグレードする場合は、アップグレードプロセス中も、プライマリクラスターで引き続きサービスリクエストを利用できます。Redis 5.0.4 以前にアップグレードする場合は、DNS 更新に関連する数秒間の短い中断が発生する場合があります。

    複数のシャードを含むクラスターおよびレプリケーショングループは、次のように処理され、パッチが当てられます。

    • すべてのシャードは並行して処理されます。シャードでは、いつでも 1 つのアップグレードオペレーションのみが実行されます。

    • 各シャードでは、プライマリが処理される前にすべてのレプリカが処理されます。シャードにレプリカが少ない場合、他のシャードのレプリカが処理を終了する前に、そのシャードのプライマリが処理されることがあります。

    • すべてのシャード間で、プライマリノードはシリーズで処理されます。一度にアップグレードできるプライマリノードは 1 つだけです。

  • 現在のクラスターまたはレプリケーショングループで暗号化が有効になっている場合、暗号化をサポートしていないエンジンバージョン (3.2.6 から 3.2.10 など) にアップグレードすることはできません。

エンジンバージョンのアップグレード方法

クラスターまたはレプリケーショングループのバージョンアップは、ElastiCache コンソール、AWS CLI、または ElastiCache API を使用して、より新しいエンジンバージョンを指定することで開始します。詳細については、以下のトピックを参照してください。

クラスターおよびレプリケーショングループを変更する方法
クラスター レプリケーショングループ
AWS マネジメントコンソール の使用 AWS マネジメントコンソール の使用
AWS CLI の使用 AWS CLI の使用
ElastiCache API の使用 ElastiCache API の使用

ブロックされた Redis エンジンのアップグレードの解決

以下の表に示すように、保留中のスケールアップオペレーションがある場合、Redis エンジンのアップグレードオペレーションはブロックされます。

保留中のオペレーション ブロックされたオペレーション
スケールアップ 即時のエンジンのアップグレード
エンジンのアップグレード 即時のスケールアップ
スケールアップとエンジンのアップグレード 即時のスケールアップ
即時のエンジンのアップグレード

ブロックされた Redis エンジンのアップグレードを解決するには

  • 次のいずれかを行ってください。

    • [すぐに適用] チェックボックスをオフにすることで、Redis エンジンのアップグレードオペレーションを次のメンテナンスウィンドウに予定します。

      CLI では、--no-apply-immediately を使用します。API では、ApplyImmediately=false を使用します。

    • Redis のエンジンアップグレードオペレーションを実行する次のメンテナンス期間 (またはその後) まで待ちます。

    • [すぐに適用] チェックボックスをオンにすることで、Redis のスケールアップオペレーションをこのクラスターの変更に追加します。

      CLI では、--apply-immediately を使用します。API では、ApplyImmediately=true を使用します。

      このアプローチにより、エンジンのアップグレードがすぐに実行されて、次のメンテナンスウィンドウ中のエンジンのアップグレードはキャンセルされます。