自分の作ったものをデプロイして公開しようと思っても、何を使って公開したらいいのか迷いますよね。
AWSやGCPなどのクラウドも浮かぶけど、個人でやるならもうちょっと敷居の低いものにしたい、料金が安いものを使いたい・・・なんてことが浮かぶはずです。
そこで今回はHerokuとVPSに焦点を当ててどちらを使ったらいいのか?ということを書いていきたいと思います。
- HerokuとVPSの料金・自由度を比較
- どちらを使えばいいのか?
これからアプリケーションを公開したいと考えている場合は、どちらを使えばいいのか参考にしてみてください。
HerokuとVPSの比較
Heroku | VPS | |
---|---|---|
種別 | Paas | VPS |
難易度 | 易しい | ちょっとだけ難しい |
自由度 | VPSよりはない | 自由度は高い |
PaasとVPSの違いがなんとなく分かっていれば、HerokuとVPSの違いも同じようなものです。少しずつ違いを見ていきましょう。
HerokuはPaaS
このPaaSっていうやつはアプリケーションの実行環境を用意してくれるので、自分でWebサーバーなどをコマンドでインストールしたりして環境を構築する必要がないです。
アプリケーションをアップロードして、必要な設定をすれば公開することができます。
VPSは逆に自分でそういった環境を作っていく必要があるので、PaaSであるHerokuの方が公開までの操作は単純ですね。
Herokuでのデプロイの流れ
Herokuで公開する場合は、実行環境が用意されるのでアプリケーションをアップロードして少し設定すれば動いてくれます。
何のフレームワークで作られたアプリケーションかにもよりますが、例えばLaravelであれば以下のような流れで公開可能。
- Procfileの作成
- Herokuでアプリケーションの作成(プッシュ先)
- Laravel暗号化の鍵設定
- Herokuへアプリケーションをプッシュ
Herokuスターターガイドを見れば何となくその流れがわかるんじゃないかなと思います。Laravel以外にももちろんいろんなフレームワークのアプリケーションをデプロイできますよ。
自由度はVPSの方が高い
Herokuと比べるとVPSの方が自由度は高いです。Herokuは最初からある程度実行環境が決まっていてデプロイは簡単だけど、自由度は低いです。逆にVPSは実行環境から自分で構築するので自由度は高い。
VPSの場合は自分で以下のようなことを考えて、それぞれインストールして設定する必要があります。
- Webサーバーは何を使うのか?(Apache or Nginx or ・・・)
- データベースは何を使うのか?(Postgres or MySQL or ・・・)
- ・・・
VPSでアプリケーションを公開する場合は、基本的にコマンドでNginxなどのWebサーバーをインストールして設定するなどアプリケーションが動く環境を自分で作る必要があります。
慣れていないとちょっと苦戦する作業になるはずですが、もしあなたがエンジニアであればVPSは勉強にもなるので良いですよ。OSやWebサーバー、データベースなど全て自分で選択できます。
VPSの方が難しい
HerokuとVPSどちらも使ったことがあるんですが、VPSの方が難しいかなと思います。というのもVPSの場合は自分でWebサーバーやデータベースをコマンドでインストールして設定する必要があるので。
Herokuの場合はアドオンを使って使いたいデータベースなどを追加して使うことができます。アドオンを追加するだけで使えるので、結構簡単です。
HerokuとVPSの料金を比較
Herokuは前は無料で使えていた時期もありましたが、今では有料じゃないと使えません。VPSもお金がかかりますね。
Herokuの料金
- Eco・Basic・・・$5〜/月
- プロダクション・・・$25~/月
- アドバンスド・・・$250~/月
- エンタープライズ・・・カスタム価格
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があるけど、一番安いHerokuのプランと一番安いVPSのプランを比べるとHerokuの方が安くなる場合が多いです。(安さを求めるなら安く使えるWebarena Indigoがおすすめです。)
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を推します。