自分で設計した Amazon ElastiCache クラスターでスケールダウンできない問題を解決したいと考えています。
解決策
自分で設計したクラスターをスケールダウンできない場合は、次の点を確認してください。
キャッシュデータサイズ
すべての ElastiCache ノードには Redis エンジン専用に予約されたメモリ量があり、新しいノードタイプにはキャッシュデータを保存するための十分なメモリがない場合があります。例えば、cache.m5.xlarge ノードタイプには 12.93 GiB のストレージがあります。デフォルトでは、ElastiCache は fullsync やスナップショットの作成などの管理タスク用に合計メモリの 25% を予約します。この量を変更するには、reserved-memory-percentパラメーターを更新します。ノードタイプとストレージ量の一覧については、「Amazon ElastiCache の料金表」を参照してください。
used\ _memory ノードパラメータと maxmemory ノードパラメータのメモリ使用量を確認するには、info memory コマンドを使用します。
**注:**info memory コマンドでは、メモリが GB 単位で表示されます。Amazon ElastiCache の料金表では、メモリが GiB 単位で表示されています。
test.xm4oz6.ng.0001.use1.cache.amazonaws.com:6379> info memory
# Memory
used_memory:5579416
used_memory_human:5.32M
used_memory_rss:11218944
used_memory_rss_human:10.70M
used_memory_peak:5856480
used_memory_peak_human:5.59M
maxmemory:10418941287
maxmemory_human:9.70G
ノードで使用可能なメモリ不足を解決するには、キャッシュデータを減らすか、容量の大きいノードタイプを選択します。
使用可能なノードタイプ
**注:**AWS コマンドラインインターフェイス (AWS CLI) コマンドの実行中にエラーが発生した場合は、「AWS CLI エラーのトラブルシューティング」を参照してください。また、AWS CLI の最新バージョンを使用していることを確認してください。
スケールアップおよびスケールダウンの際に現在のノードタイプから選択できるノードタイプについて判断するには、ListAllowedNodeTypeModifications API を実行します。
独自に設計した Redis クラスターでスケーリングできる利用可能なノードタイプを確認するには、ListAllowedNodeTypeModifications コマンドを実行します。
$aws elasticache list-allowed-node-type-modifications --replication-group-id checkout-cache-test
{
"ScaleUpModifications": [
"cache.r4.16xlarge",
"cache.r5.12xlarge",
"cache.r5.24xlarge",
"cache.r5.4xlarge"
],
"ScaleDownModifications": [
"cache.m3.2xlarge",
"cache.m3.large",
"cache.m3.medium",
"cache.m3.xlarge",
"cache.m4.2xlarge",
"cache.m4.4xlarge",
"cache.m4.large",
"cache.m4.xlarge",
"cache.r3.2xlarge",
"cache.r3.large",
"cache.r3.xlarge",
"cache.r4.2xlarge",
"cache.r4.large",
"cache.r4.xlarge",
"cache.t2.medium",
"cache.t2.micro",
"cache.t2.small",
"cache.t3.medium",
"cache.t3.micro",
"cache.t3.small"
]
}
**注:**小さいノードタイプへのスケーリングにかかる時間は、ノードタイプと現在のキャッシュクラスターのデータ量によって異なります。
関連情報
Managing reserved memory
Scaling down Redis cache clusters (AWS CLI)