Amazon ElastiCache for Redis エンジンのバージョンをアップグレードしようと思います。
解決策
注: AWS コマンドラインインターフェイス (AWS CLI) コマンドの実行中にエラーが発生した場合は、「AWS CLI で発生したエラーのトラブルシューティング」を参照してください。また、AWS CLI の最新バージョンを使用していることを確認してください。
アップグレードの準備をする
アップグレードをスケジュールする
エンジンのアップグレードプロセスが開始されると、ElastiCache は次のアクションを実行します。
- 新しいエンジンバージョンを使用して、既存のノードごとに新しいノードセットを起動する
- 現在のプライマリノードから新しいプライマリノードにすべてのデータをコピーする
- 新しいリードレプリカを新しいプライマリノードと同期する
- 新しいノードを指すように DNS エントリを更新する
- 古いノードを削除する
エンジンのアップグレードが完了するまでにかかる時間は、次の要因によって変動する場合があります。
- クラスター内のデータの量や種類
- ネットワーク接続
- 受信トラフィックや読み取りレート
アップグレードプロセス中、クラスターはすべての読み取りとほとんどの書き込みに使用できます。書き込みのインバウンドトラフィックが少ない時間帯にエンジンのアップグレードをスケジュールすることをおすすめします。
Redis エンジンバージョン 5.0.5 以降では、アップグレードに必要なダウンタイムは最小限に抑えられます。アップグレード中、クラスターは読み取り可能です。クラスターは、フェイルオーバー操作中を除き (数秒で完了します)、アップグレード中のほとんどの期間で書き込みが可能です。
5.0.5 より前の Redis エンジンバージョンでは、DNS 伝播中のフェイルオーバー時間が長くなる可能性があります。フェイルオーバーの所要時間は 30 秒から 1 分です。
クラスターのバックアップを作成する
エンジンをアップグレードするとデータが新しいノードに複製されるため、必ずデータをバックアップしてください。クラスターの書き込みトラフィックが多い場合や、バックアップ用に十分なリザーブドメモリがない場合は、バックアップが失敗してデータが失われる可能性があります。
予期しないデータ損失を防ぐために、アップグレードを開始する前に Redis クラスターをバックアップすることをおすすめします。アップグレード中にデータが失われた場合は、バックアップから新しいクラスターを作成します。
注: ElastiCache は、新しいノードを指すように DNS エントリを自動的に更新するマネージドサービスです。
エンジンバージョンをアップグレードする
Redis のエンジンバージョンをアップグレードするには、次の手順を実行します。
- Redis クラスターまたはレプリケーショングループを手動でバックアップします。
- ElastiCache クラスターまたはレプリケーショングループを変更し、新しいエンジンバージョンを選択します。
詳細については、「自分で設計したクラスターを使用する際のアップグレードに関する考慮事項」を参照してください。