Amazon ElastiCache Redis ノードで使用可能なメモリが、「Amazon ElastiCache の料金」に示されている値より常に小さいです。これはなぜですか?
解決方法
ElastiCache の料金ページには、サポートされているノードタイプごとに使用可能なメモリ (GiB 単位) が表示されます。ただし、デフォルトのパラメータグループでは、メモリの割合がバックアップおよびフェイルオーバーオペレーション用に予約されています。Redis バージョンが 2.8.22 より前の場合、合計メモリの 50% を予約することをお勧めします。Redis バージョン 2.8.22 以降では、合計メモリの 25% を予約することをお勧めします。これを規制するパラメータは、reserved-memory (2017 年 3 月 16 日より前に ElastiCache を使い始めたお客様の場合) または reserved-memory-percent (2017 年 3 月 16 日以降に ElastiCache を使い始めたお客様) です。
たとえば、デフォルトのパラメータグループにある cache.t3.micro ノードタイプを使用するクラスターには、合計 0.5 GiB のメモリがあります。reserved-memory-percent パラメータにより、このメモリの 25% が予約されます。したがって、このノードで使用可能なメモリは 0.375 GiB です。
ElastiCache Redis ノードで使用可能なメモリの確認方法:
1. redis-cli ツールまたは選択した別のツールを使用してクラスターに接続します。redis-cli ツールの使用については、「Redis クラスターまたはレプリケーショングループに接続する (Linux)」を参照してください。
2. info memory コマンドを実行し、maxmemory 値を確認します。次の出力例は、IP アドレス 172.31.35.93 の Redis サーバーに接続された redis-cli を使用して生成されました。
172.31.35.93:6379> info memory
# Memory
maxmemory:402653184
注意: maxmemory 値はバイト単位です。402653184 バイトは 0.375 GiB に相当します。Redis エンジンは、バイトまたは MB を使用してメモリを表します。AWS ドキュメントでは、GiB を使用してメモリを表します。これら 2 つの単位の差はごくわずかで、小さい数字であるためほとんど違いはありませんが、その差はノードメモリのサイズに基づいて指数関数的に大きくなります。選択したオンライン計算ツールを使用して、これらの単位を変換できます。
関連情報
予約メモリの管理