フラミナル

考え方や調べたことを書き殴ります。IT技術系記事多め

GCP MemoryStore for RedisのFQDN/IPアドレスについて

f:id:lirlia:20210917222504p:plain

MemoryStore for Redisを起動するとIPアドレスが発行されます。

クラウド使ってる勢からすると障害が起きて切り替わるようなDBへのアクセスはFQDNがいいわけです。 アプリケーション側でIP切り替えるの嫌ですからね。

で、MemoryStore for RedisでFQDNが使えるのか?(internal DNSで)を確認したところ「FQDNは使えないが、発行されたIPアドレスは常に固定だよ」という回答をGoogleからいただくことができました。

ただし以下の場合はIPが変わるようです。

  • インスタンスを削除した場合
  • 接続モードを切り替える時

要するにメンテナンスによる フェイルオーバー等では同じIPで再接続できます。

※コンソールで確認できるIPは RedisのIPではなく、内部ロードバランサーのIPとのこと

ちなみにここでFQDN使わせてくれーという要望が2019年にすでに上がってる模様。 https://issuetracker.google.com/issues/136084984

この辺AWSと違うなあと感じました(終)

※AWSならほぼFQDN指定だし、顧客要望あげたらすぐ作られそう

試してみる

keyにaaaという値を入れた状態でコマンド実行し、裏ではgcloud redis instances failover example-1 --data-protection-mode=force-data-lossでRedisを強制フェールオーバーする。

すると結果は以下の通り

$ while true; do echo "$(date "+%M:%S") $(redis-cli -h 192.168.0.4 get key)";sleep 1; done

24:26 aaa
24:27 aaa
24:28 aaa
24:29 aaa
24:30 aaa
24:31 aaa
24:32 aaa
24:33 aaa
24:34 aaa
24:50 aaa
24:51 aaa 👈 処理が止まった
25:07 aaa 👈 処理が再開された
25:08 aaa
25:09 aaa
25:10 aaa
25:11 aaa

16秒ほどダウンタイムがありますがフェールオーバーしても同一IPのまま通信ができることがわかりました。