herokuのRailsアプリでDBをElephantSQLにしてみた
先日作成した、 Advent Calender Ranking 2020 のDBの話です。
DBはherokuのpostgres add-onを利用していたのですが、レコードの上限数(10000件)を超えてしまっていたため、数日で利用できなくなるアナウンスがありました。
VPS立てるか、mongodbに移行しちゃうかを検討していたのですが、
DBのhostingサービスってもしかしたら、あるんじゃないかと探してみたら、
そのものズバリのサービスがありました。
ElephantSQL - PostgreSQL as a Service
ElephantSQL Pricing
こんな感じで、フリーだと20MBと割と小さめのDBでしか利用できませんが、とりあえず、 Advent Calender Ranking 2020 では事足りるので、利用してみました。
sign upして、planとregionを選ぶだけで、すぐ利用できました。
Region
ちなみに、Free枠でもいくつかRegionが選べました。
今回は、herokuに合わせています(後述)。
GCPやAzureも選べますし、AWSならtokyoもok。
この辺り、自前でRDSとかGCP建てずとも20MBまでなら無料で利用できるので、お得感あります。
HerokuのRegionの調べ方
herokuは無料だとAWSのus-east-1でした。
$ heroku info | grep Region Region: us
$ heroku regions --json | jq 'map(select(.name == "us"))' [ { "country": "United States", "created_at": "2012-11-21T20:44:16Z", "description": "United States", "id": "59accabd-516d-4f0e-83e6-6e3757701145", "locale": "Virginia", "name": "us", "private_capable": false, "provider": { "name": "amazon-web-services", "region": "us-east-1" }, "updated_at": "2016-08-09T22:03:28Z" } ]
その他機能
フリープランだと、backupはコンソールから可能です。
slow queryが参照できる機能もあるのですが、設定が1ms以上になっており、フリーの場合は、ログの代わりに見てくれって感じなのかな。
あとmetricsの機能もあるようですが、フリーだと利用不可。