Heroku 運用検討

More than 1 year has passed since last update.

*この記事は編集中で、随時更新しています。

本記事では、WebサービスをHerokuで運用するときの運用コストなどを、サービス運営者向けにまとめています。


サービス体系/料金プラン

Herokuでは、Dynoと呼ばれる単位ごとに料金を従量課金制で支払うことになっています。1 Dynoとは、説明は省略しますがざっくり言うと「サーバー1台分」のようなものだと思ってください。なので、例えばひとつのwebサービスを運用しようと思うなら、最低でもサーバー1台必要なので、1 Dyno分の料金をその使用量に応じて支払うと言うことになります。以下に、現行のDyno1台に対して1ヶ月まるまる使用したときにかかる料金(表内では/dyno/monthと記載しています)とDynoの性能を、料金プランごとにまとめました。日割りでかかかる料金は各値を30で割ったくらいの値になります。

Free
Hobby
Standard (1xと2xがある)
performance (MとLがある)

料金
無料
$7/dyno/month
1x: \$25/dyno/month
2x: $50/dyno/month
M: \$250/dyno/month
L: $500/dyno/month

プロセスタイプ
2個
10個
制限なし
制限なし

常時起動
30分間アクセスがないとsleep
O
O
O

スケールアウト
X
X
O
O

メモリ(RAM)
512MB
512MB
1x: 512MB
2x: 1GB
M: 2.5GB
L: 14GB

(ref)


  • Standard 1xまでは、1 Dynoに割り当てられるメモリは512MB


無料枠は全アプリケーション合計で月1000時間まで

現在(2016/06/01-)の料金体系では、Freeプランだと1アカウントあたりすべてのアプリケーションやアドオンを含めて1000時間までが無料枠となります(ref)。なので、例えば開発環境用と本番環境用で2つDynoを稼働していて、さらにnewrelicのアドオンを使用していると、その3つの使用時間の合計が1000時間になるまでが無料となります。よって、例えばwebアプリケーションを運用していてひと月常時稼働させようとすると、まず本番環境用のDynoだけで


  • 24時間 x 30(日) = 720時間

ぶんを消費します。またFreeプランで常時稼働するためには上記の表にある30分sleep制限を回避するスクリプトなどを含める必要があるので、それもHerokuで設定するとすると(もちろん自前でも設定できます)Freeプランで常時稼働サービスを作るとするとざっくり1環境分までなら運用可能ということになります。


アドオンの料金プラン

Herokuでは通常の料金プランで利用できるサービスに加えてアドオンを追加することでサービスの機能を拡張することができます。アドオンには有料のものと無料のものがありますが、運用の際に導入を検討する可能性が高そうなアドオンの概要と料金プランを以下にまとめます。


SSL

Herokuで公開したアプリケーションには、デフォルトでhttps://xxxxx.herokuapp.com/というURLが割り当てられ、そこからアプリケーションにアクセスします。このURLは先頭が(httpでなく)httpsとなっていますが、これは説明は省略しますがざっくり言うと「安全な」通信が行なわれるということを意味します。しかし実際にサービスを運用するときには、このデフォルトのURLではなく独自に他サービスで取得したドメインを使うのが普通です。Herokuでは独自のドメインさえ持っていれば、どの料金プランでも無料でデフォルトのURLから独自のhttpで始まるURLに置き換えて公開することが可能ですが、SSLアドオンを利用することで、Hobby以上の有料プランであればhttpsで始まる独自URLも無料で設定することができます (ref)。


開発者向け


履歴

[2016/09/22] 全有料プランでSSL利用が無料に。SSL Is Now Included on All Paid Dynos

[2016/06/01] 無料枠が全アプリケーション合計で月1000時間までに変更。Announcing Heroku Free SSL Beta and Flexible Dyno Hours