支援対象地域:札幌、仙台、関東、愛知、関西、広島、福岡


はじめに

PaaSの一種であり、今後ますますニーズが高まってくると思われるHerokuについて簡単にご紹介したいと思います。これからの開発環境として注目されているものなので、基本的な知識だけでも頭にいれておくと今後役立つことでしょう。

Herokuとは

Webアプリケーションの構築から保守、スケールの拡張などの運用作業までができるクラウドサービスで、Salesforce社の製品の1つです。Python/Java/Go/PHP/Node.JS/Ruby on Railsなどのプログラミングやフレームワークに対応可能であり、PaaSに分類されるためネットワーク類のインフラやOSなどのプラットフォームが整った状態で利用できます。ほぼインフラ初心者でも構築/運用できる手軽さもあり、Herokuを利用することで開発に集中できます。下記のものをクリック一つで稼働させることが可能です。

  • サーバー
  • OS
  • データベース
  • プログラミング言語の実行環境

特徴

拡張機能が豊富

現在約150種あるアドオン(いろんな会社から提供されているHerokuで使える追加機能)をコマンドで簡単に追加できます。SSLやメール配信などのWebアプリケーションで頻繁に利用される機能がアドオンとして提供されています。それによって、開発者はアプリケーション開発に集中することができ、開発全体の精度や速度を高められます。例を挙げると下記のようなものがあります。

  • Heroku Postgres:Heroku PostgresはPostgresSQLのHeroku版です。無料版のHobby Dev、月$50のStandard 0といった安価なものから高性能のものまで多くのプランが用意されています。オープンソースデータベースのPostgreSQLは個人の開発でよく利用されるのでHerokuでも利用できるようになるのは大きな利点です。
  • SendGrid:問い合わせを頂いた方へのサンクスメールなど、アプリケーションからメールを送信する機能を持つアドオンです。無料のスタータープランでも、月に12,000件のメールを配信することが出来ます
  • NewRelic:運用しているWebアプリケーションのパフォーマンスの監視をするためのアドオンです。見やすいダッシュボードでパフォーマンスを確認出来るほか、特定のしきい値を超えた場合に警告メールを送信させることも出来ます。
  • Cloudinary:ユーザーのプロフィール画像や、FAQで使用する画面のスクリーンショットなど、Webアプリケーションで使用する画像を管理するサービスです。

デプロイが簡単

HerokuはGitと呼ばれるサービスを利用してデプロイを行います。Gitでリモートレポジトリに追加してgit push行うことでデプロイすることができます。

運用のための機能が豊富

スケールアウト(システム全体の処理能力の変更)は最初からの設計する必要があったりするのですが、Herokuを使用する場合はその必要がほとんどありません。処理能力の変更やサーバー台数の変更などはHerokuのサイト上から簡単に行うことができますし、コマンドラインやターミナルから実行する事も可能です。またHerokuが提供する機能には、開発に利用する機能の他にも、ログの確認やパフォーマンスのモニタリング、データベースのバックアップといった運用をサポートする機能も含まれています。

Herokuを使用する際の注意点

  • 未認証アカウントの場合:無料 dyno 時間は 550 時間/月まで
  • クレジットカード登録をした場合:無料 dyno 時間としてさらに 450 時間/月が付与 = 1,000時間/月利用可能
  • 必要な RAM は 1 dyno あたり 512 MB

512MBを超えるとエラーになる

512MBを超えるとハードディスクなど補助記憶装置を利用して使用可能なメモリ容量を増やすOSの機能(スワップ)が発生してしまいエラーが発生します。

Dynoの利用時間も換算される

HerokuではDynoがクラッシュしてもアプリに影響が出ないような構造になっていますが、Dynoに直接コマンドを実行しても直接アクセスせずに、一時的に別のDynoを立ち上げてそこにアクセスしている状況になるのでそのときのサーバ利用時間もカウントされています。

30分でスリープ

Herokuで利用できるサーバーは30分間アクセスがない場合は自動的にスリープ状態になります。そのためスリープ後に利用するときはそのときにDyno を起動するのでレスポンスが遅くなります(アプリケーションの内容によっては30秒以上掛かることも)。

まとめ

いかがでしたでしょうか。今回は簡単に説明しましたが、Herokuは基本的に無料で利用できます。実際に個人で開発した際にHerokuを利用すればさらに理解を深められますので、この機会に触れしっかりと学習してみるのがいいかもしれません。