Heroku
AWS
サーバー
Webサービス
個人開発

個人開発者向けサーバ環境の選び方まとめ(heroku,aws,firebaseなどなど)

この記事の目的

個人開発におけるサーバ選びって実はコスパやら何やら考えると結構難しいかなと思っています。企業と違ってなにかあった場合、自分で対応しないといけないし、コスパも自腹なので気になる。しかも中途半端に大きいサービスだと適切なプランがないなどなど。そういった個人開発特有のサーバの選び方を仲間とちょっと話したのでまとめてみた。

ちなみにこの記事はどんどん皆からの意見で更新していって個人開発する人がここをみればサーバ選びに困らない状態にしたいので編集リクエスト、意見どんどんください。定期的に更新します。

個人開発特有の悩み

サーバ管理を常に自分で見ないといけない

会社と違ってインフラ担当がいないのでなにかサーバのトラブルが起こったら自分で対応しないといけません。AWSやherokuはそのへんもまるってみてくれるのでその辺の管理コストも計算に入れると良さそう。

正直最初は安くすませたい→最初安くてスケーリングできるのを見つけたい

正直サービスを軽い気持ちでパン!と出したいという場合もかなり多いはず。それなのに月数千円かかるとかだと正直個人開発だと躊躇する人も多いのでは?理想は最初は月数百円、そこからもし大きくなったらスケーリングしたい。そのスケーリングも乗り換えはしたくないと言う人が殆どのはず。

サーバの選択肢

heroku

herokuの魅力はインフラ周りのことを詳しく知らなくても動かせること。デプロイもスムーズ。ただ東京にリージョンがないのでそれがどれくらい表示速度に影響しているのかは分からない。最小構成だと700円とかで動かせる。(独自ドメインでなかったら無料でも)

https://jp.heroku.com/home

【使った人の声】

・herokuのautoscaling便利なんですが、performance dyno以上かprivate spaceでないと使えないので個人開発だと余程のアクセスがないと出番がない
・Herokuも東京リージョンは無かったと思いますけど、書き込みがかなり多いとかリアルタイム性が求められるとかじゃなければCDNとか使えば十分そう
・無料だとauto scalingはできないけど、ほとんどの場合手動スケーリングで間に合うような気も。

VPS

最もコスパを考えるとこれにたどり着く。ただ自分でlinuxを使って設定しないといけないのとなにか起こった際に対処しないといけないので学習コスト、運用コストは高い。ただ複数のサービスを10とか20動かすなら1つ借りて突っ込めばいいのでかなりコスパは良くなる。かなりサービス作りたい人は考えたほうが良いかも。代表的なのはさくらとかなのかな?

https://vps.sakura.ad.jp/

【使った人の声】

・さくらVPSはDigitalOceanに比べると大分古い感じだったんですが、「ブリッジ接続」というのでVPSのLANとクラウドを接続できるようになったので、固定部分はVPSで安価に、スケールさせたい時はクラウドでみたいな構成が取りやすくなりました。

firebase

結構以外だったんだけど最近firebaseでサーバレスな構成をする人が多い気がする。結構無料の範囲が広いし、websocketを使いたいならRealtime Database、認証もつけることができてたしかに便利。

https://firebase.google.com/pricing/?hl=ja

スクリーンショット 2018-04-03 8.58.18.png

こんな感じで結構無料範囲広い。

https://firebase.google.com/?hl=ja

【使った人の声】

  • 認証機能を実装しやすい
  • 認可とvalidationもruleでまあ問題なく実装できる
  • websocketでの共同編集が簡単に実装できる

とかの理由でfirebase使い始めました。

AWS

スケーラブルなサーバー。大きくなるとココに移行する所が多いんじゃないでしょうか?ただ設定がけっこう大変だし、課金形態が複雑で結構コントロールするのに苦労する。

https://aws.amazon.com/jp/

GCE

https://cloud.google.com/compute/?hl=ja

【料金について】
https://cloud.google.com/compute/pricing?hl=ja

【使っている人の声】

・永久無料枠があるのでプロジェクトごとにGoogleアカウント作って1サーバー1アプリケーションでやっています。

IBM cloud

無料プランがあったの意外だった。意外と手厚い。

https://www.ibm.com/cloud-computing/bluemix/ja/pricing

【使っている人の声】

・CloudFoundryベースのPaaSやKubernetesを前提にしたコンテナ環境を無料で使えるので私はそこそこ好きです。

Microsoft Azure

https://azure.microsoft.com/ja-jp/

料金プランは下記で無料からも始められる。

https://azure.microsoft.com/ja-jp/offers/ms-azr-0044p/

【使っている人の声】

・コードを投げ入れたらすぐに動かしたい場合は Azure Web Apps、仮想マシンを立ち上げたいなら Azure Virtual Machines、RDB は SQLDB,Azure Database for PostgreSQL, MySQL. NoSQLを選ぶならCosmosDBって感じで一通り揃っています。

ConoHa

https://www.conoha.jp/

情報募集中

考えないといけないこと

rubyは結構限定される

phpが使えるサーバは多いんだけどrubyは少ないなあというイメージ。おそらくwordpressでの用途がレンタルサーバの主な用途のためだと思われる。サーバの選択肢を広げたいならそもそもphpで作るのもありかも。

herokuのリージョンに東京がない

リージョンが遠いのがどれくらいパフォーマンスに影響するのかは分からないですがherokuのリージョンに東京がないのでその分日本だとパフォーマンスは落ちそう。チャットなどリアルタイム性が求められるものに関してはそこの部分だけfirebaseに置き換えるのはあり。

サイト内検索を実装するか?

単語の名寄せ(「見積り」と「見積もり」のどっちもひっかかるようにする)をして検索するなどを導入したい場合、もしそのサービスに検索関連の機能がないと違うサービスに繋がないといけない。検索をつける、そしてそれをスケーラブルにしたい場合でできるだけ同一サービス内で抑えたい場合はAWSなどを考えたほうが良いかも。AWSだとCloudSearchやElasticSearch、herokuだとElasticsearchやSolrなど検索機能が用意されている。

パターン別のサーバの選び方

たくさんサービス作る系でコスパ重視

複数作る場合はアプリごとの課金ではないVPSを借りて全部突っ込むのがコスパは最強。ただし、linuxの知識や管理コストはかかる。

インフラのことを何も考えたくないならheroku

全て任せたい人は最初herokuで大きくなったらawsに移行がよさそう。リアルタイム性が求められる部分だけfirebaseで実装するのもあり。

認証なども簡単に実装したい、アプリなども共通で開発したい場合はfirebaseもあり

認証周りが結構firebase好評だなというイメージ。あと、アプリに展開する場合はアプリで使う機能を色々提供しているので便利そう。firebaseは無料範囲が結構広いのも魅力。