HerokuとVPSを比較!どちらを使って開発・デプロイすればいいのか確認しよう。

作ったものをHerokuかVPSで公開するか迷っているんだけどどっちにしたらいいんだろう?

自分の作ったものをデプロイして公開しようと思っても、何を使って公開したらいいのか迷いますよね。

AWSやGCPなどのクラウドも浮かぶけど、個人でやるならもうちょっと敷居の低いものにしたい、料金が安いものを使いたい・・・なんてことが浮かぶはずです。

そこで今回はHerokuとVPSに焦点を当ててどちらを使ったらいいのか?ということを書いていきたいと思います。

記事の内容
  • HerokuとVPSの料金・自由度を比較
  • どちらを使えばいいのか?

    これからアプリケーションを公開したいと考えている場合は、どちらを使えばいいのか参考にしてみてください。

    HerokuとVPSについて見ていこう。

    HerokuとVPSの比較

    HerokuVPS
    種別PaasVPS
    難易度易しいちょっとだけ難しい
    自由度VPSよりはない自由度は高い

    やっぱり違いはあるんだね。
    そうだね、そもそもPaasであるHerokuとVPSは使い方が結構違うよ。

    PaasとVPSの違いがなんとなく分かっていれば、HerokuとVPSの違いも同じようなものです。少しずつ違いを見ていきましょう。

    HerokuはPaaS

    HerokuはPaaS?PaaSってなんだ?
    PaaSはPlatform as a Serviceの略だよ。

    このPaaSっていうやつはアプリケーションの実行環境を用意してくれるので、自分でWebサーバーなどをコマンドでインストールしたりして環境を構築する必要がないです。

    アプリケーションをアップロードして、必要な設定をすれば公開することができます。

    VPSは逆に自分でそういった環境を作っていく必要があるので、PaaSであるHerokuの方が公開までの操作は単純ですね。

    Herokuでのデプロイの流れ

    Herokuで公開する場合は、実行環境が用意されるのでアプリケーションをアップロードして少し設定すれば動いてくれます。

    何のフレームワークで作られたアプリケーションかにもよりますが、例えばLaravelであれば以下のような流れで公開可能。

    Herokuへのデプロイの流れ(Laravel)
    1. Procfileの作成
    2. Herokuでアプリケーションの作成(プッシュ先)
    3. Laravel暗号化の鍵設定
    4. Herokuへアプリケーションをプッシュ

    なるほど、VPSよりHerokuの方が環境を用意するのは簡単そうだね。
    そうだね、自分で色々インストールして構築する必要がないからね。

    Herokuスターターガイドを見れば何となくその流れがわかるんじゃないかなと思います。Laravel以外にももちろんいろんなフレームワークのアプリケーションをデプロイできますよ。

    自由度はVPSの方が高い

    Herokuと比べるとVPSの方が自由度は高いです。Herokuは最初からある程度実行環境が決まっていてデプロイは簡単だけど、自由度は低いです。逆にVPSは実行環境から自分で構築するので自由度は高い。

    VPSの自由度が高いってどれぐらいなんだろう?
    VPSの場合はWebサーバーやデータベースなど自分でインストールして作っていく必要があるよ。

    VPSの場合は自分で以下のようなことを考えて、それぞれインストールして設定する必要があります。

    VPSを使う上で考えること
    • Webサーバーは何を使うのか?(Apache or Nginx or ・・・)
    • データベースは何を使うのか?(Postgres or MySQL or ・・・)
    • ・・・

    VPSは自分で色々インストールして設定する必要があるのね。
    そうだね、逆にHerokuは諸々用意してくれるよ。

    VPSでアプリケーションを公開する場合は、基本的にコマンドでNginxなどのWebサーバーをインストールして設定するなどアプリケーションが動く環境を自分で作る必要があります。

    慣れていないとちょっと苦戦する作業になるはずですが、もしあなたがエンジニアであればVPSは勉強にもなるので良いですよ。OSやWebサーバー、データベースなど全て自分で選択できます。

    VPSの方が難しい

    HerokuとVPSどちらも使ったことがあるんですが、VPSの方が難しいかなと思います。というのもVPSの場合は自分でWebサーバーやデータベースをコマンドでインストールして設定する必要があるので。

    Herokuの場合はアドオンを使って使いたいデータベースなどを追加して使うことができます。アドオンを追加するだけで使えるので、結構簡単です。

      HerokuとVPSの料金を比較

      Herokuは前は無料で使えていた時期もありましたが、今では有料じゃないと使えません。VPSもお金がかかりますね。

      Herokuの料金

      • Eco・Basic・・・$5〜/月
      • プロダクション・・・$25~/月
      • アドバンスド・・・$250~/月
      • エンタープライズ・・・カスタム価格

      最安で5$っていうところか。
      そうだね、無料では使えない。

      Herokuは前は無料で使えていたけど、今は有料じゃないと使えないから注意しましょう。

      VPSの料金

      VPSにはいくつかあるけど、エックスサーバーVPSの料金プランを見てみるとこんな感じです。

      プラン2GBプラン4GBプラン8GBプラン16GBプラン32GBプラン64GB
      月額1ヶ月:1150円/月
      12ヶ月:900円/月
      24ヶ月:870円/月
      36ヶ月:830円/月
      1ヶ月:2,200円/月
      12ヶ月:1,800円/月
      24ヶ月:1,750円/月
      36ヶ月:1,700円/月
      1ヶ月:4,400円/月
      12ヶ月:3,600円/月
      24ヶ月:3,400円/月
      36ヶ月:3,201円/月
      1ヶ月:9,750円/月
      12ヶ月:7,800円/月
      24ヶ月:7,500円/月
      36ヶ月:7,200円/月
      1ヶ月:22,100円/月
      12ヶ月:19,500円/月
      24ヶ月:19,000円/月
      36ヶ月:18,500円/月
      1ヶ月:44,200円/月
      12ヶ月:39,000円/月
      24ヶ月:38,500円/月
      36ヶ月:38,000円/月
      初期費用0円0円0円0円0円0円

      VPSはメモリやスペックで料金が変わるのね。
      そうだね、メモリ○GBで月額いくらみたいな料金体系だよ。

      いろんなVPSがあるけど、一番安いHerokuのプランと一番安いVPSのプランを比べるとHerokuの方が安くなる場合が多いです。(安さを求めるなら安く使えるWebarena Indigoがおすすめです。)

      HerokuとVPSどちらにデプロイするのが良いのか?

      結局知りたいところはHerokuとVPSどちらを使えばいいのか?というところでしょう。簡単に書くと自分の見解としてはこうです。

      HerokuとVPS
      • 簡単にデプロイしたいならHeroku
      • 自分で環境を構築したいならVPS
      デプロイの簡単さで選ぶならHerokuか。
      うん、逆に自分で色々やりたいならVPSがいいよ。

      どちらかを迷っているなら個人的にはVPSをお勧めします。自分でOSは選べるし、Webサーバーやデータベースも好きなものをインストールして使うことができます。

      コマンドでインストールして設定していく必要はあるけど、好きな環境を作れるのが素敵。(VPSいじるとWebサーバーからアプリーケーションサーバー繋いで動かしてっていう勉強にもなります。)

      簡単にデプロイしたいならHeroku

      さっきもちょろっと書いたけど、HerokuはPaaSなので最初からある程度アプリケーションを公開する環境が整っています。

      なので、できるだけ簡単に作成したアプリケーションを公開したい!というのであればHerokuの方が良いでしょう。

      自分で環境を構築したいならVPS

      自分でデプロイするアプリケーションが動く環境を作りたいならVPSがおすすめです。自分の好きな環境を作ってアプリケーションを動かすことができます。

      難易度的にはVPSの方が難しいけど、もし君がエンジニアであるならVPSを使うとサーバー周りのちょっとした勉強になりますよ。Dockerなんかもインストールして使うことができます。

      まとめ

      HerokuとVPSどちらを使ったらいいのかな?という点で少し書いてみました。

      自分自身どちらも使ったことがあるけど、VPSの方が自分で色々構築できて分かりやすいし良いかな・・・というところです。

      Herokuは無料プランが健在であればよかったんですけどね、、有料となるとVPS使うのがいいんじゃないかな。もちろんVPSだとサーバー周りの知識は多少必要になるから、そういうのをしたくないっていう人はHerokuを推します。