使ったことはあるものの、よく知らなかったので調べてみました
Herokuとは?
開発したWEBアプリケーションを10分程度で全世界に公開することができ、そのままサービスを本格的に運用することも可能なホスティングサービス
- Python/Java/Go/PHP/Node.JS/Ruby on Railsに対応可能
- salesforceが買収したサービス
ホスティングサービスとは?
レンタルサーバ、共有サーバのこと
その中でSaaS、PaaS、IaaS、DaaSと呼ばれるものがあり、違いはどこまでクラウドとして用意してくれているか
SaaS→PaaS→IaaSの順でシンプル⇄自由度が高い
SaaS
Software as a Serviceの略
利用者はインターネット上で利用するだけでいい
メリット:サービスが整っているので手間なく使える
無料ブログサービスなどがこれに当たる
PaaS
Platform as a Serviceの略
Herokuはこの中のひとつ
・ネットワークなどのインフラ
・OSなどのプラットフォーム
2つがすでに整った状態で利用できるのでアプリケーションの構築に集中できる
メリット:Ruby on Rails、Django、Spring、Node.jsなどで制約なくアプリを作成ができる
コンシューマ向けの凝ったアプリを作るのに向いている
IaaS
Infrastructure as a Serviceの略
AWSのEC2はこの中のひとつ
仮想サーバ、ハードディスク、ファイアーウォールを用意
サーバのスペックやOS等を選択することが出来る
メリット:自由に開発できる
Xサーバーなどのレンタルサーバー
無料CMSのWordPressを利用するために使われることもある
VPSとの違い
IaaS:料金は使った分だけ 多機能で色々凝りたいならこっち
VPS:料金は一定 機能がシンプルなので扱いやすい
DaaS
Desktop as a Serviceの略
クラウド上にデスクトップ環境を作って利用する
メリット:デスクトップ環境が低コストで簡単に利用できる
デメリット:アプリとの互換性がなかったり、大容量データの転送が遅い
#数あるPaaSの中のHerokuの特徴
デプロイが簡単
- gitのリモートリポジトリに追加してgit pushするだけでデプロイできる
アドオン追加
- 現在約150種あるアドオン(いろんな会社から提供されているHerokuで使える追加機能)をコマンドで簡単に追加出来る
アドオンの代表的なもの
- DBのPostgres
- メール配信サービスのSendGridなど
利用時の注意
一番安い$5のプランならdyno 1,000時間/月利用可能
- 必要な RAM は 1 dyno あたり 512 MB
512MBを超えるとスワップが発生しR14エラーに
スワップとは・・
ハードディスクなど補助記憶装置を利用して使用可能なメモリ容量を増やすOSの機能のこと
一時的に立ち上がっているDynoの利用時間も換算される
Dynoがクラッシュしてもアプリに影響が出ないようにしている
→Dynoに直接コマンドを実行しても直接アクセスせずに、一時的に別のDynoを立ち上げてそこにアクセスしているので
そのサーバ利用時間もカウントされている
30分アクセスがないとスリープしてしまう
次にアクセスがあったときに Dyno を起動するのでレスポンスが遅くなる(アプリケーションの内容によっては30秒待たさせることも)
UptimeRobot(無料のネットワーク監視サービス)を使い5分ごとにアクセスすることでスリープを回避出来る
https://uptimerobot.com/
↑全てのプランが有料化されたかわりに解消