ElastiCache for Valkey の新機能、耐久性の変更が可能になったので試してみた

ElastiCache for Valkey の新機能、耐久性の変更が可能になったので試してみた

Amazon ElastiCache for Valkey で、既存クラスターの耐久性を作り直さずに変更できるようになりました。Valkey 9.0 で試すと、有効化・無効化はフェイルオーバーを伴って約14分半〜約20分かかり、非同期から同期への変更は available のまま短時間で終わりました。
2026.10.30

はじめに

ElastiCache for Valkey に、既存のノードベースクラスターでも耐久性を有効化・無効化できるようになるアップデートがありました。

https://aws.amazon.com/jp/about-aws/whats-new/2026/10/elasticache-changing-durability/

従来、ノードベースクラスターの耐久性は作成時のみ指定でき、既存クラスターでは変更できませんでした。

この記事では、クラスターモード有効の Valkey 9.0 クラスターで耐久性を無効・同期・非同期に切り替え、変更ごとの所要時間、変更中の Status、フェイルオーバーの有無を確かめました。

変更の前提条件

既存クラスターの耐久性を変更するには、次の条件を満たす必要があります。

  • Valkey 9.0 以上
  • クラスターモード有効
  • Multi-AZ 有効で、シャードあたりレプリカが1以上
  • 転送中の暗号化(TLS)が有効
  • インスタンスファミリーが R8g、R7g、R6g、M8g、M7g、M6g、C8gn、C7gn のいずれか
  • Global Datastore に含まれていない

変更時の注意事項

  • 耐久性の変更は、ほかの設定変更と同時には行えません。
  • 変更はノードの置き換えを伴い、シャードごとにプライマリの切り替えか自動フェイルオーバーが起きます。変更中もクラスターはトラフィックを処理しますが、クライアントの接続は一時的に切れることがあります。

https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/Durability.ChangingDurability.html

https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/Durability.Limitations.html

検証方法

検証環境

項目 値
リージョン ap-northeast-1(東京)
エンジン Valkey 9.0
ノードタイプ cache.m6g.large
構成 クラスターモード有効、1シャード、レプリカ1(ap-northeast-1a と ap-northeast-1c)
Multi-AZ / 自動フェイルオーバー 有効 / 有効
転送中の暗号化 有効
データ 検証用のキー3件以下
変更を実行したクライアント 同じ VPC の EC2 上の AWS CLI 2.38.0

変更と確認のコマンド

変更は無効 → 同期 → 無効 → 非同期 → 同期の順に、前の変更の完了を待ってから行いました。同期へ変更したときのコマンドと応答を示します。無効・非同期へ変更するときは、--durability の値だけを変えました。--query は、応答の Status、Durability、EffectiveDurability を確認するためのものです。

aws elasticache modify-replication-group \
  --replication-group-id my-valkey-cluster \
  --durability sync \
  --apply-immediately \
  --query 'ReplicationGroup.[Status,Durability,EffectiveDurability]' --output text
modifying	disabled	disabled

変更中の状態は、次のコマンドを約10秒間隔で実行し、時刻と変更開始からの経過秒を付けて記録しました。出力の列は左から、Status、Durability、EffectiveDurability、MultiAZ、ノード数、シャードの Status です。

aws elasticache describe-replication-groups \
  --replication-group-id my-valkey-cluster \
  --query 'ReplicationGroups[0].[Status,Durability,EffectiveDurability,MultiAZ,length(MemberClusters),NodeGroups[0].Status]' \
  --output text

計測結果

所要時間は、変更コマンドの実行から、Status が available で、かつ Durability と EffectiveDurability が要求した値(無効は値なし)になった最初の記録までの経過時間です。記録の間隔(約10秒)分の誤差を含み、各値は1回の測定です。

変更 所要 変更中の Status フェイルオーバーのイベント
無効 → 同期 約20分(1226秒) modifying 1回
同期 → 無効 約14分半(872秒) modifying 1回
無効 → 非同期 約20分(1195秒) modifying 1回
非同期 → 同期 約20秒 available のまま なし

最初の変更の開始(02:00:55)から非同期 → 同期の完了(03:05:18)までに、レプリケーショングループには次のイベントが記録されました。時刻は UTC です。

2026-10-28T02:15:34.565000+00:00	Failover to replica node my-valkey-cluster-0001-001 completed
2026-10-28T02:30:57.668000+00:00	Failover to replica node my-valkey-cluster-0001-001 completed
2026-10-28T02:59:09.082000+00:00	Failover to replica node my-valkey-cluster-0001-001 completed
2026-10-28T03:05:13.990000+00:00	Successfully updated the durability setting to sync.

フェイルオーバーの3行は耐久性を有効化・無効化した3回の変更に1回ずつ対応し、03:05:13 の行は非同期 → 同期の変更に対応します。

非同期 → 同期の変更直後から同期になるまでの記録では、Status はすべて available でした。

03:04:56 +1s available	async	async	enabled	2	available
03:05:07 +11s available	async	async	enabled	2	available
03:05:18 +22s available	sync	sync	enabled	2	available

まとめ

既存クラスターの耐久性を、クラスターを作り直さずに変更できました。変更中もクラスターはトラフィックを処理し続けます。

耐久性を有効化する変更と無効化する変更は、完了まで今回の環境で1回あたり約14分半〜約20分かかり、その途中で1回フェイルオーバーが起きました。フェイルオーバーの瞬間はクライアントの接続が切れることがあるので、有効化・無効化は、接続断をリトライや再接続で吸収できるワークロードであることが前提になります。

非同期から同期への変更は約20秒で、フェイルオーバーもありませんでした。

設計時から要件が変わり、耐久性の変更が必要になった場合は、今回のアップデートをご活用ください。

この記事をシェアする

AWSのお困り事はクラスメソッドへ

関連記事