クラウドプラットフォーム「Heroku」の活用
herokuの基本機能
Herokuが基本機能として無料で提供している機能は大きく以下の3つです。
- Webアプリケーションサーバーの1プロセス(dyno)
- PostgreSQLのデータ領域 5MB
- 基本的なログ確認機能
Herokuでは、Webアプリケーションを動作させるために必要となる実行プロセス数を増減させる事で、システムをスケールさせる事ができるような仕組みになっています。この1プロセスの単位をHerokuでは「dyno」と呼んでいて、1dynoを無料で提供しています。ちなみにこの1dynoのメモリ使用量は最大300MBまでとなっています。
また、データベースの機能として、共有サーバーで稼働するPostgreSQLのデータ容量5MBも無料で提供しています。
最後にログ確認機能ですが、こちらはHerokuで稼働させているWebアプリケーションのログ以外に、Webサーバーのログやルーティングのログなど、開発者が開発する上で必要となるログを確認できます。基本機能としては、直近の100行を確認できるようになっていますが、有料のアドオンを利用すれば、リアルタイムにログを追跡する事などが可能となります。
シンプルなWebアプリケーションであれば、十分なスペックが基本機能として提供されていると考えてよいでしょう。
他にも無料で提供されているアドオン機能がいくつかありますが、こちらについては次回で紹介します。
追加機能(有料)
Webアプリケーションの機能拡張や、アクセス数の増加に伴い1dynoで処理しきれなくなると、dynoを拡張する必要があります。この拡張は、HerokuのWeb画面からレンジ切り替えの操作をするだけで、簡単に処理能力を拡大したり縮小したりできます。拡張時の料金は、1dynoの追加で$0.05/時となります。
仮に1ヶ月5dynoをフル(24時間31日)で利用した場合、$144(日本円換算で12,000円)程度となります。
利用料金にはネットワーク設備の使用料金や容易なスケーリング機能、容易なデプロイ機能、さらにテクニカルサポートの料金が含まれています。自分自身で実現すると膨大なコストが発生する事は容易に想像できますので、これらを鑑みると比較的安価だと言えるのではないでしょうか。
遅延処理を行う、DelayedJobなどのバックグラウンドのジョブについても同様で、1バックグラウンドプロセス(Herokuではworkerと呼んでいる)あたり $0.05/時で追加可能となっています。
最後にデータベースについてですが、基本機能として提供されているPostgreSQL(共有サーバー型)の容量追加は 20GBまでなら $15/月 です。
Webアプリケーションの規模が大きくなると、データベースのCPU/メモリリソースを占有したくなりますが、そのような時のために、データベースを専用サーバーとして利用するプランも用意されています。
表1:専用データベースサーバーの利用価格テーブル
プラン | ronin | fugu | ika | zilla | baku | mecha |
---|---|---|---|---|---|---|
接続コネクション数 | 16 | 20 | 50 | 100 | 200 | 400 |
メモリ | 1.7GB | 1.7GB | 7.5GB | 17.0GB | 34.0GB | 68.0GB |
CPU※ | 1 ECU | 5 ECU | 4 ECU | 6.5 ECU | 13 ECU | 26 ECU |
月額料金 | $ 200 | $ 400 | $ 800 | $ 1600 | $ 3200 | $ 6400 |
※1ECUは、1.0-1.2GHz 2007 Opteronまたは2007 XeonプロセッサのCPU能力と同等の能力 |
上記の専用データベースサーバーのストレージ容量については、いずれも最大で2TBという制限があります。
Herokuが提供する追加機能以外にも、基本機能で提供されているアドオン同様、有料のアドオンも複数提供されていますが、こちらについては次回で紹介します。