method_missing(*)

Heroku RedisのプランをHobby DevからPremiumに移行する

2022-08-30 (Tue)

概要

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プラン。

参考文献