【render】PG::ConnectionBad: could not translate host name “xxxxx” to address: Name or service not knownが出たときの解消方法

エンジニア
エンジニア

はじめに

Renderを使用して、RubyonRailsで開発したWEBサービスのデプロイをしています。

Cloud Application Hosting for Developers | Render

以下の記事を参考にデプロイを行いました。

【完全版】Rails Renderデプロイガイド - Qiita

その中でデータベースの作成して、WebSearviceの環境変数(Environment)のDATABASE_URLにInternal Database URLを設定したが、以下のエラーが出ました。
解決方法を備忘録として記載します。

rake aborted!
PG::ConnectionBad: could not translate host name "dpg-coev4t21hbls7392mfvg-a" to address: Name or service not known

原因

原因は単純でWebSearviceのRegionと、データベースのリージョンが異なることが原因でした。

Regionは以下で確認できます。

  • WebSearviceは、「Setting > Region」
  • データベースは、「Info > Region」

解決方法

インターフェースで操作した限り、作成済みデータベースのRegionを変更する方法が見つかりませんでした。
そのため、データベースを削除して作成しなおしました。

データベースの新規作成画面で、Regionを設定する

その後、WebSearviceに環境変数(Environment)のDATABASE_URLを設定しなおすと、WebSearviceの再デプロイが自動で走り、無事にデプロイに成功しました。

終わりに

以前にも同じ事象で詰まったので、こちらに記録として残しました。

Renderは無料プランだと以下の通りデータベースは90日で削除されてしまうので、運用はずっと難しいです。
バックエンドありきのWEBサービスだとどうしても料金が発生してしまうので、どこか別のサービスを検討してもいいかもしれません。

参考記事

Error: ActiveRecord::ConnectionNotEstablished: could not translate host name "dpg-ckm5engu1l6c73f2s23g-a" to address: Name or service not known
タイトルとURLをコピーしました