Shoeisha Technology Media

CodeZine(コードジン)

記事種別から探す

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

Herokuでスタート! はじめてのPaaSアプリケーション開発 第3回

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2014/11/25 14:00

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


  • LINEで送る
  • このエントリーをはてなブックマークに追加

著者プロフィール

  • 小西 俊司(コニシ シュンジ)

    株式会社Giveryに所属するエンジニア。CODEプロジェクトというエンジニアの成長を促進するプラットフォーム開発のテックリード。Herokuも使った新しいプロダクトを今秋リリース予定。

バックナンバー

連載:Herokuでスタート! はじめてのPaaSアプリケーション開発
All contents copyright © 2005-2018 Shoeisha Co., Ltd. All rights reserved. ver.1.5