Heroku Postgresとは
Heroku Postgresは、Heroku社自らが提供するHeroku Add-onの1つです。
Heroku Postgresは、オープンソースRDBMS「PostgreSQL」がSaaS形態で提供されているものでDBaaS(DataBase as a Service)と呼ばれることもあります。 サービスですので、Heroku Postgresサーバ自体の運用保守は事業者(Heroku社)に任せることができるほか、事業者の提供する便利なユーティリティツールを利用することもできます。
また、Heroku社は自社内にPostgreSQLのコミッタを抱えており、本家PostgreSQL自体のバージョンアップに対するHeroku Postgresの追従度はかなり高いです。 以前にはセキュリティパッチの適用が、PostgreSQL公式リリースのアナウンスとほとんど同時に行われたこともありました。
2014年現在、Heroku Postgresには以下のプランがあります。
名称 | メモリ | ストレージ | 接続数 | 価格/月 |
---|---|---|---|---|
Hobby Dev | 共有 | 10,000行 | 20 | 無料 |
Hobby Basic | 共有 | 10,000,000行 | 20 | $9 |
Standard 0 | 1GB | 64GB | 120 | $50 |
Premium 0 | $200 | |||
Standard 2 | 3.5GB | 256GB | 400 | $200 |
Premium 2 | $350 | |||
Standard 4 | 15GB | 512GB | 500 | $750 |
Premium 4 | $1,200 | |||
Standard 6 | 60GB | 512GB | 500 | $2,000 |
Premium 6 | $3,500 | |||
Standard 7 | 120GB | 1TB | 500 | $3,500 |
Premium 7 | $6,000 |
Hobby Dev、Hobby Basicは開発用のプランです。 この2つだけは、複数のユーザでDBを共有するマルチテナントモデルでの提供となっています。 挿入可能な行数にも制限があるので、実運用での使用は推奨されていません。 あくまで開発用途で使用するためのものと位置づけられています。
Standard 0以降のプランはシングルテナントであり、契約ユーザごとに専用のDBサーバ(コンテナ)が用意されます。
表にあるとおり、プランの番号が大きくなるほど、メモリ、ストレージ、接続数などのスペックが高くなります。 公式にはアナウンスされていませんが、CPUスペックもプランに応じて高くなっているので、価格差はそのまま性能差であると捉えて差し支えありません。
StandardプランとPremiumプランの違いは以下の3点です。
- High Availabilityオプション
- ストレージ暗号化
- (Heroku Postgres独自機能の)ロールバック可能な時間の長さ
High Availabilityオプションはいわゆるホットスタンバイ構成です。 レプリケーションDBが常に更新されており、障害時には自動的に切り替わります。
ストレージ暗号化は文字どおり保存時にデータを暗号化します。
最後のロールバックは、データベースを指定の時間の状態に戻す機能のことです(RDBで一般にいわれるロールバックとは全く別物であることに注意してください)。
Standardプランでは60分、Premiumプランでは7日間、の期間内の任意の時間の状態にデータベースを復元できます。 ただ、適切にバックアップを取得していれば、この機能を使う場面はほとんどないような気もしています[1]。
結局のところ、Premiumプランを選択するか否かは、High Availabilityオプションが必要かどうかによると思います。
[1] 実際に必要な場面に遭遇したときに、この機能を用いて適切な回復処理が行えるかどうかは疑問です。最低限のシミュレーションをあらかじめ行っておく必要があるでしょう。