概要
Heroku Dyno, PostgreSQL, Redisの無料プランが10月末日から廃止になるので、開発環境のRedisを有料プランに移行した。
その際に少々ハマってしまったので、まとめておく。
開発環境
- Rails: 6.1.1.4
- Ruby: 2.7.5
- Redis: 6.2.3
Hobby_Dev と Premiumの違い
Hobby_DevではTLSの有無に関わらず接続が可能だが、PremiumでかつRedisのバージョンが6の場合は、TLS接続が必須となっている。
ただし、Heroku側で設定は自動で行ってくれているので、クライアント側ではSSLでの接続をオフにするように設定を追加するだけで良い。
サーバ(Heroku)での対応
DashboardのAddons管理ページ(<アプリケーションのダッシュボード>/resources
)から簡単にできるので省略。
クライアント(Rails)での対応
Redisインスタンスの初期設定
config/initializers
ディレクトリ直下に、redis.rb
ファイルを作成し、Redisインスタンスの設定を追加。
if Rails.env.production?
$redis =
Redis.new(
url: ENV["REDIS_URL"],
ssl_params: { verify_mode: OpenSSL::SSL::VERIFY_NONE }
)
end
Action Cableの設定
config/cable.yml
ファイル内にも、設定を追加。
production:
adapter: redis
url: <%= ENV['REDIS_URL'] %>
# ここから下を新しく追加
ssl_params:
verify_mode: <%= OpenSSL::SSL::VERIFY_NONE %>
所感
公式ドキュメントにしっかりと書いてあったので、とても助かった。 そして今までありがとうFreeプラン。フォーエバーFreeプラン。