定額月1500円で擬似 Heroku (PaaS) をVPSで実装しよう!

私はとにかくインフラに時間を割きたくありません。しかし、サービスを開発するのに避けては通れません。インフラは考えなければいけないことが多いのです。セキュリティ、アーキテクト構成、トラフィック、などなど(知ってる言葉並べてるだけ)。そのような人のために PaaS である Heroku というものがあります。Heroku では面倒なインフラの設定諸々不要です。Github と連携し、リポジトリとブランチを選択しそのままデプロイして公開することができる。

ただし、サービスを複数稼働するにはインスタンスを追加で起動しなければ行けないため値段が高くなります。さらに、Heroku は個人開発する場合(Private Spacesを使用しない)に選べるリージョンがアメリカとヨーロッパだけです。これが割とレイテンシがあり、200msは無駄にかかります。これだと個人開発するにも公開してから遅いサービスを公開することになります。ではどうすれば良いのか。AWS, GCP を使用すればリージョン問題は解決できます。面倒なインフラは、Elastic Beanstalk という AWS 製の PaaS が存在します。

AWS, GCP 良いのですが、Qiita, 技術ブログなどでは、それらのサービスを使用した時の失敗談がよく話題になります。俗にいうクラウド破産というものです。これは、従量課金制の特徴でトラフィックや使用容量が少ないうちは安く済みますが、実装内容によっては無駄にトラフィックが大きくなってしまい多額の請求が発生してしまうというものです。この問題は、開発者の実装にもよりますが、イタズラの可能性もなくは無いです。多額の請求に怯えるのは知識が無い人なのかもしれませんが、私はこの破産が怖いのです。

よって、以下の条件でサービス環境を整えることにしました。

・インフラにかける時間は最小
・1 インスタンスで複数のサービス並行稼働
・Github のブランチから簡単デプロイ
・リージョンは東京
・月定額制
・スケールしなくていい

以上条件により、私は以下の結論に至りました。

・Conoha で、VPSサーバー(月900円)とDB サーバー(月500円)を借りる
・VPS サーバー上で PaaS を再現する
・VPS サーバーで簡単なセキュリティを設定する
・VPS サーバーと DB サーバーをプライベートネットワークで接続する
・Github のブランチをそのままデプロイする

上記を満せば、VPS サーバー1つで複数のサービスを公開することが可能です。
Heroku で 200 ms ほど時間がかかったサービスが上記条件だと 15 ms という結果になりました。これは Heroku のインスタンスが非力(無料だと)であることと、やはりリージョンだと思います。これでたくさんサービスを開発していきたいと思います。

世の中何がヒットするのかは、誰も知りえません。
個人開発では、ヒットするまでいかに最小コストでサービスを開発できるかが、開発を続けられる条件でもあります。
いつかいずれかのサービスがヒットしたその時に、新しいサービス環境を整える事にしましょう。
まずは、最小コストでたくさんサービス公開することが先決なのかもしれません。

次の記事で VPS で PaaS の実装方法を公開します。

参考

https://jp.heroku.com/

https://qiita.com/itkr/items/745d54c781badc148bb9

スポンサードリンク