3
0

More than 1 year has passed since last update.

ElastiCache for RedisのClusterモード(暗号化)への接続方法 Rails編

Last updated at Posted at 2023-07-31

はじめに

AWSでRedis(クラスターモードかつ暗号化)を作成した際、
接続が止まった状態でエラーログも何も出ない。。
ということで何に気を付ければいいか書いていく

サーバー内接続確認

まずは接続コマンドを入力する。
注意点として
-c クラスターモードON
--tls 暗号化転送ON
このオプションがないと延々と接続待ちになるので注意

$ redis-cli -h [エンドポイント] -p [ポート番号] -c --tls

ただし、自身のredis-cliの4.0.10をインストールしていたが、redis-cliのオプションである--tlsが使えなかった(ここで詰まった)

Unrecognized option or bad number of args for: '--tls'

なのでバージョン6をインストールする

$ sudo amazon-linux-extras install redis6

接続確認して完了

# キー"mykey"に値"Hello, Redis!"をセットする
xxx.x.x.x:6379> SET my_key "Hello, Redis!"
# キー"mykey"の値を取得する
xxx.x.x.x:6379> GET my_key
"Hello, Redis!"

アプリケーション(Rails)接続確認

使用gem

Gemfile
gem 'redis-objects', '>= 2.0.0.beta' # gem 'redis'でもok
gem 'redis-clustering' # クラスター接続用

redissはタイポではなく、暗号化認証(SSL)の場合はこのように書く。

config/initializers/redis.rb
Redis::Cluster.new(nodes: ["rediss://#{ENV["REDIS_URI"]}:#{ENV["REDIS_PORT"]}"])

まとめ

  • 暗号化してクラスターを作成した場合は結構オプションやredis-cliのコマンドが通常と異なるので気をつけないといけない(公式にも接続方法載ってる)
  • Railsによる接続もgem redis-clusteringが必要になる(gem redis-objectsだけでも出来るのか調査してもわからなかった。)

3
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
3
0