dackdive's blog

新米webエンジニアによる技術ブログ。JavaScript(React), Salesforce, Python など

「実践Heroku データベース編 Webinar」のメモ

https://developer.salesforce.com/events/webinars/JP-Heroku2015-database
見ました。メモ。

アジェンダ

  • 前回のおさらい
  • Heroku Postgres の概要
    • 便利なアドオンの紹介
  • Heroku Redisの紹介


前回のおさらい

  • Heroku とは?
    • Dyno(ダイノ)
      • アプリ本体が動くところ
    • Heroku Postgres/Redis (DB)
    • Heroku addons
  • Git によるデプロイ
  • Dyno の種類


Heroku Postgres の概要

  • PostgreSQL: オープンソースのリレーショナル型データベース
    • 現在、機能的には MySQL と同等
    • 日本だとエンプラ向けに人気ある
      • NTT にはコミッターがいるらしい。この方
  • データベース管理者が不要
  • 冗長化構成 (Premium プラン)
  • 便利な拡張機能
  • Free の Hobby でも 10000行までOK
  • 実際に稼働している Heroku アプリケーションのデータベースを参照するには以下のコマンド
heroku pg:psql --app *** DATABASE

※ コマンドは Heroku Postgres のページからも確認できる

f:id:dackdive:20151216171544p:plain

  • psql\? と打つとヘルプが出る。便利
  • Postgres に関するコマンドは heroku pg から始まる。ヘルプは heroku help pg


Heroku の拡張機能

Heroku Postgres のプランによって使えるものとそうでないものがあるので気をつけよう。
Heroku Postgres - Add-ons - Heroku Elements

また、以下アドオン名の下に貼られているリンクは私がググって勝手に貼っつけたものです。

PG Backups

https://devcenter.heroku.com/articles/heroku-postgres-backups

# バックアップ作成
$ heroku pg:backups capture (略)

# リストア
$ heroku pg:backups restore (略)
Follower

https://devcenter.heroku.com/articles/heroku-postgres-follower-databases

  • リアルタイムに本番データのバックアップを取り、すぐに切り替えることができるようなホットスタンバイレプリケーションを作る
  • Heroku Postgres 本体のプラン変更の時に使うとアプリのダウンタイムなしでプラン移行ができる(?)
    • Follower 有効にしておいて
    • 本体落とす前に Follower に切り替えて
    • 本体のプランを変更して
    • 元に戻す
    • 的な?
Metrics

ここの話?
https://devcenter.heroku.com/articles/heroku-postgres-metrics-logs

  • ダッシュボードで most time consuming, slowest execution time とか見れてた

アドオンと関係なさそうだけど、クエリチューニングのヒントを表示する heroku pg:diagnose が便利そうだった。
https://devcenter.heroku.com/articles/heroku-postgresql#pg-diagnose

Dataclips

https://devcenter.heroku.com/articles/dataclips

  • ダッシュボードから SQL 実行
  • 結果を Excel, CSV, JSON 形式でエクスポートできる
    • JSON についてはURL末尾に .json つけるだけでOK
    • 結果をURLでシェアできる


Heroku Redis の紹介


感想

Heroku Postgres すごいの一言。
あと、ダッシュボードでできることは基本的にすべて CLI からもできるようになってるのは素晴らしい。