ボクココ

個人開発に関するテックブログ

Heroku の DBバックアップを定期的に行う

最近はHerokuのアドオンがまた増えてきていて、そういう新しいアドオンをチェックするのも一興だ。最近はCIツーリなんかもアドオンで無料でできたりする。無料だと月100件までだけど、本番環境ならそれでも十分な気がする。

今回はアドオンの中でも標準的な Heroku Postgres のお話。基本的にはドキュメントを読めばいいのだが、いかんせん英語なもので苦手な方には中々苦労することだろう。

Heroku Postgres は無料で2つバックアップを保存することができる。2つ以上バックアップした場合は古い順から消えていく仕組み。ただデフォルトでは自分でコマンド叩くなりWebインタフェースからバックアップしたりとマニュアルなことが必要。これを自動化させよう。

これもドキュメントに普通に書いてあるので、その通りにやろう。

heroku pg:backups schedule --at '02:00 Asia/Tokyo' DATABASE_URL

これで毎晩朝2時にバックアップがスケジューリングされた。これで問題が起きた時はバックアップからデータを復旧させられる。

Heroku Postgres のTIPs

Dataclips

面白いこととして、 Dataclips 機能というものがある。これはデータのレポート機能といってもいい。ユーザー数など、定期的に情報を取得したいもので、他の人でも把握したいようなデータの場合、簡単なSQLを書いておくことでURLにアクセスする度に最新データが取ってこれる仕組みだ。

これで例えばビジネス側の人に今ユーザー数どんくらい?って言われた時にDataclipsのURLを渡すだけで最新情報が取ってこれるようになる。

もちろんcountだけじゃなくて実際のデータもインポートできるので、よくあるSQLアクセスの定期的なものは Dataclipに保存しておくと便利。

DaaS

Heroku Postgres は Database as a Service だ。これは別にHerokuアプリじゃなきゃ使えないというわけではなく、例えば EC2やその他のサーバーのアプリのDBをHeroku Postgres にすることも可能であるということだ。てことでHerokuの2つのアプリが1つのPostgres を参照することも可能。

この事実を案外知らなかった人は多いのではないだろうか。これらをうまく使えば運用は劇的に楽になるはずだ。ちなみにHeroku postgres を使えば1万行まで無料で使える!

もう自前でDBを持つ時代ではないことは明らかだ。