SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

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

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

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


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

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

会員登録無料すると、続きをお読みいただけます

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

次のページ
Heroku Postgresを追加する

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
Herokuでスタート! はじめてのPaaSアプリケーション開発連載記事一覧

もっと読む

この記事の著者

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

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

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/8279 2014/12/17 20:50

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング