Help us understand the problem. What is going on with this article?

Herokuのメリット、デメリット

More than 1 year has passed since last update.

メリット

メンテナンスコストがほぼゼロ

  • ほぼ何もしなくても勝手に動いてくれます。
  • 個人的な体感値だとAWSでEC2やロードバランサで環境を組んだ場合と比べると1:100ぐらいの手間無し感です。

デプロイがコマンド一発

  • デプロイは基本的にgit push heroku masterでHerokuにpushするだけです。(Railsのマイグレーションを行う場合はheroku run rake db:migrateも必要)
  • 自分でデプロイスクリプトを頑張って書かなくてもいいので楽です。

スケールアウトがコマンド一発、もしくはGUIで非エンジニアでも操作可能

  • Herokuはdynoという独自のWebサーバプロセスの単位で操作するのですが、heroku ps:scale web=3でプロセス数を変更出来ます。
    • Herokuサイト上のダッシュボードからバーをスライドさせる事によって1〜100までdyno数を変更する事も可能です。

リリースのバージョン管理を勝手にやってくれる

  • heroku releasesというコマンドを打つと下記のように直近のリリース一覧が表示されます。
=== APP-NAME Releases
v50  Deploy 45de3e3  xxxxxxxxxx@gmail.com  2014/11/25 17:37:55 (~ 27m ago)
v49  Deploy ff3082d  xxxxxxxxxx@gmail.com  2014/11/25 16:49:20 (~ 1h ago)
v48  Deploy 0508f80  xxxxxxxxxx@gmail.com  2014/11/25 14:05:57 (~ 3h ago)
v47  Deploy cfed7f8  xxxxxxxxxx@gmail.com  2014/11/25 13:44:55 (~ 4h ago)
v46  Deploy e847a65  xxxxxxxxxx@gmail.com  2014/11/25 12:27:30 (~ 5h ago)
v45  Deploy 0848019  xxxxxxxxxx@gmail.com  2014/11/25 12:14:57 (~ 5h ago)
v44  Deploy 5a5b056  xxxxxxxxxx@gmail.com  2014/11/25 11:56:16 (~ 6h ago)
v
  • ロールバックもコマンド一発で、上記の場合はheroku rollback v49と打つと最新の1つ前のバージョンまでロールバックしてくれます。(ロールバックのロールバックも可能らしいです。)

DBのバックアップもアドオンを入れると自動的に取ってくれる

  • PG Backups というアドオンを入れると日次、週次のバックアップを自動的に取る事が可能です。
  • heroku pgbackupsコマンドで下記のようにバックアップ一覧表示、heroku pgbackups:restore DATABASE_URL a009でバックアップからデータをリストア、これもコマンド一発で操作出来ます。
ID    Backup Time                Status                                Size     Database
----  -------------------------  ------------------------------------  -------  ------------
a001  2014/11/11 03:00.12 +0000  Finished @ 2014/11/11 03:00.15 +0000  21.9KB   DATABASE_URL
a008  2014/11/18 05:22.53 +0000  Finished @ 2014/11/18 05:22.58 +0000  23.3KB   DATABASE_URL
a009  2014/11/19 04:57.28 +0000  Finished @ 2014/11/19 04:57.33 +0000  23.3KB   DATABASE_URL
a010  2014/11/20 05:57.49 +0000  Finished @ 2014/11/20 05:57.53 +0000  23.3KB   DATABASE_URL
a011  2014/11/21 06:10.54 +0000  Finished @ 2014/11/21 06:10.59 +0000  26.7KB   DATABASE_URL

アドオンが豊富

Heroku Add-ons

  • Herokuは他のサービスをアドオンとして追加出来るので、パフォーマンスチェック、エラー通知、メール配信、MongoDBやRedis等のデータストアなどを簡単に連携させる事が出来ます。

ステージング環境が無料で複数作れる

  • 基本的にはステージング用に新しいHerokuアプリを作って、そっちにデプロイするだけなので、簡単にステージング環境を作れます。
  • Herokuは無料の範囲内で使えばアクセス数などに関わらず無料で使えるので、費用を掛けずにステージング用、デモ用、プレビュー用など、色々な用途別にステージング環境を作る事が出来ます。(さすがに無駄に作りまくったら怒られると思いますがw)
  • プロダクション環境があれば、当然ステージング環境も必要になりますが、AWSで自前で構築した場合、ステージング環境にはプロダクション環境とほぼ同等の環境が必要になるため、約2倍の費用が掛かってしまいます。Herokuなら無料で複数のステージング環境が作れます。(個人的にはこれがAWSで自己構築する場合とHerokuを比較した際の一番のHerokuオススメ理由です)

※追記:Herokuのアプリケーションはクレジットカードを登録済みであれば最大100個まで作成出来るようです。(カード未登録は最大5個)
source: https://devcenter.heroku.com/articles/account-management#application-limit

デメリット

東京リージョンに対応していない

  • これだけです。本当にこれさえあればHeroku一択と胸を張って勧められます。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした