システムのインフラとして何を選択するか問題

サービスを作って公開しよう!としたときに、そのサービスを動かすサーバーをどこに置くべきか?という問題が発生します。

最近だとAWS(Amazon Web Services)を使うスタートアップが多いと思いますが、個人で作ったシステムを置く場所としてはどうでしょうか?

インフラの選択肢

そもそも選択肢としてどのようなものがあるのでしょうか?個人で使えそうなものを中心にざっと説明してみます。

SaaS系サービス

Salesforceなどのアプリケーション層まで提供するサービスです。カスタマイズすることでシステムが作れますが、どちらかというと企業の社内システムやECサービスなどの「型」があるシステムに使われるイメージがありますね。ここでは対象外にします。

クラウド(PaaS/IaaS)系サービス

Amazon Web Servicesではサーバーのインスタンスを使えたり、ストレージやデータベース、ロードバランサーなどの部品ごとに契約して必要なインフラを構築できます。

インスタンスを追加したり上位のものに変更したりすることで、比較的柔軟にインフラの増強や削減ができます。一時的にアクセスが大幅に増えるゲームなどのサービスで特に役立つシステムですね。またハードウェアの故障などの影響も少ないことがメリットです。

料金は従量課金になるので、サーバーやネットワークの資源を使えば使うほどコストがかさみます。

BaaS系サービス

スマホのアプリがメインで、バックエンドのサーバーが必要になる場合は、GoogleのFirebaseという選択肢もあります。

モバイルアプリに必要なFacebookログインやメッセージ、ストレージなどの機能が提供されているので、アプリの開発に専念できるというメリットがあります。Googleのサービスは過去の経験上、閉鎖されるリスクがありますが、アプリを作る場合はありだと思います。

ホスティング系サービス

さくらインターネットなどのサーバーをレンタルしてシステムを用意するモデルです。物理サーバーを1つ借りたり、仮想サーバー(VPS)を借りたりすることができます。

仮想サーバーの場合は同じ物理サーバーのリソースを他の人と共有するので、サービスによっては他の人が大量にサーバーのCPUやメモリを使うと自分のサービスの処理が遅くなるという影響が出る場合があります。最近は資源を仮想サーバーごとに割り当てるので影響はあまりないと思いますが。

一般的に固定課金のところが多く、AWSなどと比べて動的に資源を割り振れない代わりに値段も安いところが多いイメージです。

ハウジング系サービス

これは場所だけを借りて自社サーバーを置くパターンですね。インターネットデータセンター(iDC)などにラックを用意してもらって、自社のサーバーを置いておきます。

サーバーを準備しなくてはいけないのですが、電源や空調などのインフラについては何も考えなくていいので、特殊なサーバーを使ったり社内規約上物理サーバーが必要な企業などに使われるイメージです。

サーバールーム

自分で全部用意する方法です。場所を借りてネットの回線を引いて、サーバーを24時間365日動かしつづけます。

自分でサーバーを用意する費用がかかりますし、ネットの回線や電気代もかかるのですが、ある程度の性能が必要なサーバーを複数台使う場合は全体の値段を節約できます。

で、何を選べばいいか?

要件によって違うとは思いますが、ホスティングでサーバーを借りて構築するのが一番安く済むのでおすすめです。最初はどのぐらいアクセスがあるかもわからないので、小さく始めましょう。

ある程度利用者やデータ量が増えてホスティングではどうしようもなくなってきたらAWSや自宅にサーバーを置くのをおすすめします。

自宅サーバーで一番コスパよく構築するなら、下記のような感じで作るのがオススメです。興味がある人がいれば改めて詳しく説明したいと思います。

・PCパーツを買って一番コスパの良い部品で自作PCを作る
・Linux(CentOS)をインストール
・自宅で24時間365日、起動しっぱなしにする
・回線はNURO光の固定IPプランを使う
・ドメインも自分で買う(muumuuドメインなどで)
・Cloudflareの無料プランに入ってDNS設定をする

サーバーの構築はサービスを作るのとは関係ないところなので、手間をかけたくないという1点でAWSを選んでいる人も多いと思います。AWSは構築がラクなのですが、その分料金に上乗せされているとも言えます。
毎月の運用コストがかかってくるところなので、自分のできる範囲で手間をかけてコストを抑えるのがおすすめです。

私はサービスを作ったときに自宅サーバーから始めたのですが、PCを組むのも楽しいですし、セットアップの大変さやトラブル対応も含めて一通り経験を積めるのは大きいと思います。機会があれば是非チャレンジしてみてください。


この記事が気に入ったらサポートをしてみませんか?