LoginSignup
0
0

More than 5 years have passed since last update.

ElastiCacheのノード名にまつわる落とし穴

Posted at

ElastiCache for Redisのprimaryノードのメンテナンス対応で経験した問題について書いていきます。

あらすじ

ElastiCache for Redis(クラスタ有効、primary * 1, replica *1)のノードメンテナンス時のお知らせ

primaryが対象だったため手動対応しよう

multi-az無効にする

replicaをprimaryに昇格

元のprimaryと同名のノードを追加...出来ない...

よくあるprimaryノードがメンテナンス対象の場合の対応だと思いますが、ElastiCache for Redisのクラスター名の制限により元のprimaryと同名のノードが追加出来ない事象に遭遇しました。

詳細

そもそもElastiCache for Redisのクラスター名の制限とは?

AWSのドキュメントには以下のように書かれています。

1~20 文字の英数字またはハイフンを使用する必要があります。
先頭は文字にする必要があります。
連続する 2 つのハイフンを含めることはできません。
末尾をハイフンすることはできません。

https://docs.aws.amazon.com/ja_jp/AmazonElastiCache/latest/red-ug/GettingStarted.CreateCluster.html

これはあくまでクラスター名の制限です。
ドキュメントにクラスターの命名上の制約とあります。
つまり、qiita-elasticache-00(20文字)のクラスターの作成は可能です。

そのqiita-elasticache-00のクラスター名でreplica * 1としてクラスターを作成します。
※クラスター有効/無効はどちらでも構いません

すると作成されたprimayとreplicaのノード名は以下のようになります。
・primaryノード:qiita-elasticache-00-001(24文字)
・replicaノード:qiita-elasticache-00-002(24文字)

$ aws elasticache describe-cache-clusters --query 'CacheClusters[].CacheClusterId'
[
    "qiita-elasticache-00-001",
    "qiita-elasticache-00-002"
]

では、一度multi-azを無効化しreplicaノード(qiita-elasticache-00-002)を消して、再度同名(qiita-elasticache-00-002)のノードを追加出来るかやってみます!

すると以下のようなエラーが発生し、replicaノードを追加することが出来ません。

スクリーンショット 2019-04-04 13.57.11.png

コンソールからクラスターを作成した場合は20文字より多い文字数のノードが作成出来たにも関わらず
このようなエラーが発生します

これが私がハマった罠でした...

このあとAWSへのサポートへ問い合わせしましたが、残念ながらそういう仕様だそうです

結論

クラスター名は20文字まで可能ですが-00Xがノードに付与されることを考慮して、16文字以下にしましょう

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0