コマンド1つでDBをアプリに追加できるのもPaaSの魅力! Heroku Postgresの使い方

CodeZine / 2014年11月25日 14時0分

 前回はHerokuにアプリケーションをデプロイし、実際に動かすところまでを解説しました。今回はそこにリレーショナルデータベース(Heroku Postgres)を使用するアプリケーションを追加してみます。

■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] 実際に必要な場面に遭遇したときに、この機能を用いて適切な回復処理が行えるかどうかは疑問です。最低限のシミュレーションをあらかじめ行っておく必要があるでしょう。



CodeZine

トピックスRSS

ランキング