はじめに
Render
とはHeroku
の無料枠廃止に伴い、代替案として台頭してきたPaaS
ですが、今回、PostgreSQL
の無料枠期限である3ヶ月が過ぎたので、その後の対応について考えてみました。
対応方針
1.無料枠での継続
テーブル構成がマスタのみなど、ユーザのデータを持たない設計になっている場合は素直に無料枠内に作り直すのが良いかもしれません。
Ruby on Rails
の場合ですが、ダッシュボード内、Delete Database
にて削除を実行、再度DB
を作成し、Internal Database URL
をDATABASE_URL
の値として再設定するだけで対応することができます。
2.有料枠でのアップデート
当たり前の話ですが期限内に有料枠にすることで、データをそのまま残すことができます。
Starter
で7ドル、日本円で約1000円なので、比較的低コストでアップデートすることが可能です。
インスタンスタイプ | 価格/月額 | RAM | CPU |
---|---|---|---|
Free | $0 | 制限付き | 制限付き |
Starter | $7 | 512MB | 0.5 |
Standard | $25 | 2GB | 1 |
Pro | $85 | 4GB | 2 |
Pro Plus | $175 | 8GB | 4 |
Pro Max | $225 | 16GB | 4 |
Pro Ultra | $450 | 32GB | 8 |
Custom | カスタム価格設定 | 最大512GB | 最大64 |
3.pg_dump/pg_resotreによるデータ移行
無料枠削除前に、pg_dump
を用いて既存のPostgreSQL
からデータを落としてくる方法も考えられます。
その後、pg_restore
でデータをINSERT
することでデータの維持をすることも可能なようです。
この方法について前提としているのはユーザの個人情報などではない、無関係な一般的なデータを扱う場合です。
個人情報を扱い、dumpする行為に関しては絶対NGです。諦めて削除を行うか、アップデートのみを検討してください。
4.設計の再検討
前提からの話にはなってしまいますが、WEBサーバ(APサーバ)
のみ、Render
を使用し、DB
に関してはPlanetScale
を用いる方法も検討できます。
PlanetScale
はMySQL
のマネージドサービスであり、PostgreSQL
からMySQL
に変更する必要がありますが、無料枠でも無期限で使用することができる為、代替案の一つとしても考えられるかと思います。