見出し画像

なるべく格安でwebアプリを作りたい

おはようございます。
とつまるです。

今日は一段と寒くなって…と毎年同じことを言っています。基本的には引きこもっている自分は暖房の効いた部屋でぬくぬくしています。

さて、昨日は「なるべく安く個人開発するにはどうしたらいいかな?」と考え、色々調べていました。
(DBを使ったよくあるwebアプリの想定です)

結論、VPSで全部自分で設定することです。(ちょっと面倒ですが…)

今ではAWSやGCPなど、コマンドを打たなくても(or コマンド1発で)簡単に構築できるサービスがたくさんありますが、やはり高い。

以前かんたんなwebアプリを作って、GCPのお勧め設定で全て設定したところ、5万円/月 程度かかりました。

高すぎる…

少しでも安くしようと思って設定を見直し、稼働時間を減らせるように工夫しましたが、それでも1〜2万円/月。
特に高いのはデータベースです。

これだと収益化できないものはちょっと厳しい。ということで、他の手段を探し始めました。

  • Firebase Hosting

  • HerokuのPostgreSQL

  • VPSで自分で設定

このくらいが候補になりましたが、Firebaseはクエリに時間がかかり、データ量によっては無料枠を超えてしまうのでNG(個人レベルなら超えることはなさそう)。Herokuは使えそうでしたが、ロールバック機能が利用できるのが$50/月〜でした。
(以下Herokuの価格表を載せておきます)

ちょっとお試しで使うには$5/月〜のMiniや、$9/月〜のBasicで良いかと思いますが、ロールバックの実装をバックエンドに取り入れてしまっていたのでNG。

結局はVPSか…ということで調べながら設定し、ドキュメントとスクリプトファイルにまとめました。

ちなみに、VPSであれば1,500円〜2,500円/月くらいで開発できます。

VPSではDockerのコンテナでアプリケーションを実行するので、更新作業を行うときに一時的にダウンタイムが出てしまうのがデメリットです。

ただし数十秒なので、個人開発にはそれほど影響なさそうです。

ただ、一番怖いのがMySQLコンテナを吹き飛ばしてしまうことです。

アプリケーションのコンテナは削除してしまっても、再度コンテナを作れば復活します。ただし、データを吹き飛ばしてしまうと全力土下座案件です。

ここで大事なのがバックアップと冗長化です。

現時点でまだここに手をつけれていませんが、今日対応をしていきたいと思います。コンテナを複数立てておくのか、ローカルのMySQLに入れておくのか、ダンプをとっておくのか。

メリットとデメリットをまとめて、一番汎用的に使えそうな手段でテンプレートとなるスクリプトを作成する予定です。

また、一度吹き飛ばしてみてちゃんと再生できるかもテスト用のVPSを借りて実験していきたいと思います。

勉強することは山ほどありますが、1つずつ調べてちゃんとドキュメントにまとめるようにしていきます。
(過去の自分は調べても書き残していなかったので翌日には忘れていました。)

最後まで読んでいただきありがとうございました٩( ᐛ )و

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