読者です 読者をやめる 読者になる 読者になる

exfreeterのブログ

一念発起した。今日から頑張る。元ニートでもやれる。

VPSかPaaSか(個人Webサービスの場合)

プログラミング Heroku VPS

最近、生活費は受託で稼いでいるのですが、それ以外に自分プロジェクトとして色々やってます。
主にWebサービスとiPhoneアプリの開発なんですが、けっこう気分的に乗っているので、ガンガン作っていきたいと思ってます。

サーバーを用意するのは精神的ハードルが高い

ガンガン作っていくのは良いんですが、自分のサービスやアプリを公開するとなると、どうしてもサーバーが必要になりますよね。
もちろん、オフラインだけで完結するスマホアプリとか既存のAPIを叩くだけのWebサービスとかもたくさんありますが、サーバーとの連携なしという縛りがあると、どうしてもアイデアの幅が制限されてしまいます...。

で、「よし、じゃあサーバー用意しよう」となるわけですが、これがけっこうハードル高いんですよね。(僕だけでしょうか?)
アプリケーション部分はそれなりに作れますが、インフラ部分は受託での経験がほとんどないので、精神的なハードルが高いんです。
もちろん、インフラエンジニアを雇うなんて出来ませんから、自分でやることになります。

現実的な選択肢としてはVPSかPaaS

何とか精神的ハードルはクリアしたとして、個人がサーバーを用意する場合には現実的な選択肢はVPSかPaaSの二択かと思います。

専用サーバーは論外ですし、AWS等のクラウドもコスト的に厳しいんですよね...。
個人ではなく法人が何か新しいサービスを始めるならAWSは最高だと思いますが、個人だと若干コスト的に厳しい気がします。(お金に困ってない方は別ですが)

サーバの知識があるならVPS、なければPaaS

じゃあ、VPSとPaaSどっちにするのかってところですが、これは場合によるかなと。
コスト的に優位なのはVPSなので、サーバ管理の知識がすでにそれなりにあるならVPSで良いと思います。

ただ、僕みたいにサーバ管理の知識が乏しい場合はPaaSがオススメかなと。
僕が想定しているPaaSはHerokuなのですが、ここは無料で幾つでもアプリを公開出来ますし、公開までがとにかく簡単です。
Herokuの使い方まとめ(←僕が先日書いた記事です。)

個人で何かを作る場合、モチベーションの維持が最大の課題になるため、「作りたい!」と思ってから公開までの日数が空けば空くほど挫折率が飛躍的に高まる傾向にあるので、余計な時間をかけないというのは大事かなと。
物凄く当たり前というか、誰でも分かってる結論になってしまって申し訳ないですが、サーバの知識がある人はVPS、ない人はPaaSってのが良いのかなと思います。
ただ、Herokuの場合は例外があって、

  • けっこうDBの容量が必要
  • Webサーバを止めずに定期処理をゴニョゴニョやりたい
  • けっこうメモリが欲しい

このどれかでも当てはまるならPaaS(というかHeroku)は高くつくので、VPSかなと思います。

DBに関しては、無料で使える容量がけっこう厳しいんですよね。
MySQLだと5MBまでです...。

定期処理に関しては、Webサーバを止めてしまえば無料で出来ます。
ざっくり言うと、Herokuは1プロセス(Web Dyno/Worker Dyno)までは無料で使うことが出来るんですが、これ正確にはWebとWorker合わせて1ヶ月あたり750時間までが無料という意味なんですね。
で、Webサーバーとして使うWeb Dynoをずーっと動かし続けると1ヶ月で720時間使っちゃいますよね。
ということは、Worker Dynoは30時間しか使えなくなるんですよ...。
あくまでもWebとWorkerが合計で月750時間まで無料ってことなので、Webを常時動かしつつWorkerも定期的に走らせ続けるみたいな芸当は厳しいんです(特に31日まである月とかは)。

メモリに関しては、Herokuは1台あたり512MBなので、メモリ一杯欲しいっていうサービスには厳しいですね。
これを2台にするだけで月2500円くらい行っちゃいます...。

ごちゃごちゃ書いて結論がぼやけてしまいましたが、個人で何か作るなら基本的にはPaaSで良いと思います。
上に書いたような理由があるか、サーバー知識に自信のある人はVPSで。
以上です。