LoginSignup
1
0

More than 1 year has passed since last update.

送信中の暗号化をtrueにしたredisにsidekiqから接続する

Posted at

前提

sidekiqを導入するにあたり、privateネットワーク内ではあるがアプリとredis間の通信を暗号化しようとなった。
それにあたりredisへの接続ができない問題に当たったのでその修正を覚書

※ redisにはElastiCache for redisを利用

結果

以下のように設定した上で以下を環境変数から注入

REDIS_URL=rediss://aaa.aaa.aaa.0000.apne1.cache.amazonaws.com:6379
REDIS_AUTH_TOKEN=****
# config/initializers/sidekiq.rb
Sidekiq.configure_client do |config|
  config.redis = {
    url: ENV.fetch("REDIS_URL") { "redis://127.0.0.1:6379" },
    password: ENV.fetch("REDIS_AUTH_TOKEN") { nil },
  }
end

Sidekiq.configure_server do |config|
  config.redis = {
    url: ENV.fetch("REDIS_URL") { "redis://127.0.0.1:6379" },
    password: ENV.fetch("REDIS_AUTH_TOKEN") { nil },
  }
end

つまづきポイント

  • 本番の環境では通信を暗号化したいがローカルでは暗号化せずさっと実装したい
    • passwordのデフォルトをnilにすることでローカルでは非暗号化で対応可能
    • 本番では rediss:// に指定する

うまくいかなかったケース

redisでパスワードなしで接続しようとした

Redis::TimeoutError: Connection timed out が発生
何故なのかはいまいちわからないですがタイムアウト扱い
port同じなので認証エラーとかになるのかなと思ったらタイムアウトでした

rediss指定でパスワード追加していない

Redis::CommandError: NOAUTH Authentication required. が発生

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