Amazon ElastiCache for Redis ノードタイプを変更すると、オプションが使用できない、変更が有効にならない、またはエラーメッセージが表示されます。この問題を解決するには、どうすればよいですか?
簡単な説明
Redis ノードタイプを変更する際に問題が発生する一般的な理由は次のとおりです。
- ターゲットノードタイプのメモリが不足しています。
- 容量が不足しています。
- 伸縮自在なネットワークインターフェースが不十分です。
- 指定されたノードタイプは、アベイラビリティゾーンでは利用できません。
- Redis Engine バージョンは対象のノードタイプをサポートしていません。
- ApplyImmediately パラメータが false に設定されています。
- ノード使用率が高いです。
解決方法
注: ElastiCache イベントと AWS CloudTrail を使用して、詳細なインサイトを得たり、関連するエラーメッセージを確認したりできます。
ターゲットノードタイプのメモリが不足しています
新しいノードタイプが、すべてのデータと必要な Redis オーバーヘッドを収容するのに十分な大きさであることを確認してください。Amazon CloudWatch は、Amazon ElastiCache の下で Redis メトリクスを提供します。BytesUsedForCache メトリクスに表示されている現在の合計メモリ使用量が、ターゲットノードタイプの最大キャパシティを下回っていることを確認します。
BytesUsedForCache メトリクスがターゲットノードタイプの最大容量を上回っている場合、次のエラーメッセージが表示されます。
Failed to scale down to cache node type Replication Group <replication_group_name> because the node has insufficient memory. Please select a different node type or reduce current memory usage and retry.
注: デフォルトでは、各キャッシュノードのメモリの 25% は非データ使用とバックグラウンド書き込み用に予約されています。この量は、予約メモリパーセントパラメータで設定されます。この予約メモリは、キャッシュデータに使用される最大メモリを 25% 削減します。これは、データに使用できるメモリの量が少ないことを意味します。予約メモリの量を変更して、キャッシュデータに使用できる最大メモリを変更できます。デフォルトのパラメータグループは変更できないため、この変更にはカスタムパラメータグループを作成する必要があります。ただし、予約メモリのパーセンテージを 0 に設定すると、スナップショットなどの一部のクラスター操作が失敗する可能性があります。
キャッシュデータサイズとメモリ使用量の手順については、「ElastiCache クラスターをスケールダウンできないのはなぜですか?」を参照してください。
容量が不十分です
InsufficientCacheClusterCapacity エラーは、Amazon ElastiCache が特定のアベイラビリティゾーンからリクエストされた数のインスタンスを割り当てることができないことを示します。このエラーの解決方法については、「エラーメッセージ: InsufficientCacheClusterCapacity」を参照してください。
エラスティックネットワークインターフェイスが不十分です
十分なエラスティックネットワークインターフェイスの容量があることを確認してください。必要に応じて、Service Quotasを使用して制限を増やします。詳細については、「AWS リージョンで制限に達した場合、より多くの Elastic Network Interface を利用できるようにするにはどうすればよいですか?」を参照してください。
指定されたノードタイプはアベイラビリティゾーンでは利用できません
指定したアベイラビリティゾーンでサポートされていないノードタイプを使用すると、次のInvalidParameterValue エラーメッセージが表示されます。
Specified node type <node_type> is not available in AZ <availability_zone>
利用可能なノードタイプの手順については、「ElastiCache クラスターをスケールダウンできないのはなぜですか?」を参照してください。
Redis Engine バージョンはターゲットノードタイプをサポートしていません
一部のノードタイプでは、より高いバージョンの Redis エンジンが必要です。詳細については、「サポートされるノードタイプ」を参照してください。
ノードタイプにアップグレードする前に、Redis Engine のバージョンをアップグレードしてください。
ApplyImmediately パラメータが false に設定されています
ApplyImmediately パラメーターが false に設定されている場合、レプリケーショングループ内のノードに対する変更は、次回のメンテナンス再起動または次回の障害再起動のいずれか最初に発生した時点で適用されます。変更が即時に行われる必要がある場合は、このパラメーターを true に設定します。
注: ノードタイプの変更にかかる時間は、ノードタイプとクラスター内のデータ量によって異なります。クラスターへのトラフィックが最も少ないときにアップグレードを実行するのがベストプラクティスです。
ヘビーノード使用率
変更中にクラスターに負荷がかかると、ElastiCache ワークフローに干渉する可能性があります。データトラフィックが少ない時間帯にノードの変更を開始するのがベストプラクティスです。