はじめに
ElastiCache(Redis) のパラメータグループについてまとめました。
Memcached は触ってないので、今回は対象外です。
追加でわかったことがあれば追記します。
記事目安...5分
ElastiCache(Redis) パラメータグループとは?
ElastiCache 上にデプロイされた Redis の設定(=パラメータ) をAWS上で管理するリソースです。
RDS のパラメータグループとほぼ同じイメージです。
パラメータグループのパラメータ値を変更すると、アタッチされている ElastiCache 上にデプロイ中の Redis の設定情報が書き換わります。
あくまで、ElastiCache の設定情報を管理するわけではありません。
従って、ElastiCache の設定変更はマネコン やCLI で実施、Redis の設定変更はパラメータグループで実施するイメージです。(厳密にいえば、パラメータグループもマネコンや CLIで変更しますが。)
参考: https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/ParameterGroups.html
パラメータグループの全体像
パラメータグループの全体像を図にすると以下のようなイメージです。
大きく3段階に分かれるので、上から紹介していきます。
①デフォルトかカスタムかで分かれる
まず、パラメータグループは大きく2種類に大きく分かれます。
- デフォルトパラメータグループ
- カスタムパラメータグループ
デフォルトパラメータグループ
デフォルトパラメータグループは AWS により最初から用意されているパラメータグループです。
パラメータ値の変更やパラメータグループの削除はできません。
You cannot modify or delete the default parameter groups.
引用元: https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/ParameterGroups.Management.html
カスタムパラメータグループ
一方、カスタムパラメータグループは、ユーザが作成するパラメータグループです。
こちらはパラメータ値の変更, パラメータグループの削除どちらも制限なく実行できます。
比較表
デフォルトPG | カスタムPG | |
---|---|---|
作成者 | AWS | ユーザ |
パラメータ変更 | × | 〇 |
PGの削除 | × | 〇 |
②Redis のバージョンごとに分かれる
デフォルトとカスタム両パラメータグループは、さらに 各 Redis のバージョンごとにも分かれます。
パラメータグループで指定したバージョンと ElastiCache Redis のバージョンが合致していないとアタッチはできないのでご注意ください。
③ノード用かクラスタ―用かで分かれる
各パラメータグループは、Redis バージョンが同じでも、さらに以下2種類に分かれます。
- ノード用パラメータグループ
- クラスター用パラメータグループ
どちらをアタッチするかは、「クラスタモード」を有効にするか否かで決定します。
有効の場合、クラスター用パラメータグループをアタッチします。
なお、両パラメータグループの違いは以下パラメータの値のみとなります(※)。
どうやらこのパラメータ値で制御しているようです。
パラメータ項目 | クラスター用PGの値 | ノード用PGの値 |
---|---|---|
cluster-enabled | yes | no |
※ CLI による出力 × diff コマンド で確認しました。
管理されるパラメータはどのような種類に分かれているのか?
パラメータグループで管理されるパラメータについても補足します。
ややこしいことにパラメータも2種類に分かれます。
- Genearal Parameters
- NodeType Specific Parameters
Genearal Parameters は全てのノードタイプで共通のパラメータです。
NodeType Specific Parameters は、特定のノードタイプでしか使えないパラメータです。
Tips
AWS CLI でパラメータグループのパラメータを取得する
■ 実行環境
$ aws --version aws-cli/2.1.23 Python/3.7.3 Linux/4.19.128-microsoft-standard exe/x86_64.ubuntu.20 prompt/off
Case1. 指定したパラメータグループの Genearal Parameters を抜き出す
以下コマンドで指定したパラメータグループの Genearal Parameters を抜き出せます。
$ PG_NAME=<パラメータグループの名前> # e.g. default.redis6.x.cluster.on $ Delimiter=<区切り文字> # e.g. ,
$ aws elasticache describe-cache-parameters \ --cache-parameter-group-name ${PG_NAME} \ --query "Parameters[].[ParameterName,ParameterValue,Description,Source,DataType,AllowedValues,IsModifiable,MinimumEngineVersion,ChangeType]" \ --output text | \ tr "\t" ${Delimiter}
Case2. 指定したパラメータグループの NodeType Specific Parameters を抜き出す
CLI で NodeType Specific Parameters を抜き出す方法は、調べた限りでは分かりませんでした orz
マネコンから取得する必要があります。
もし、やり方を知っている人いたらコメントください。
まとめ
一応ざっくりまとめです。
- ElastiCache のパラメータグループは、①デフォルトか否か、②Redis バージョン、③クラスター用かノード用かで分かれる
- パラメータグループのパラメータも、Genearal Parameters と NodeType Specific Parameters で分かれる
- CLI では Genearal Parameters しか抜き出せない(たぶん)
以上です!
追加でわかったことあればまた記述します。
菅谷 歩 (記事一覧)