はじめに
『Scrum Room』というWebサービスを個人開発し、公開しましたので、
どのようなPaaSを使って、構成したかや背景などをまとめておきます。
なお、『Scrum Room』については、こちらにまとめていますので、
スクラム開発実践者は参考にしてみてください。
構成図
フロントエンド
- フロントエンドは、Nextjsを用いて実装しています。
- デプロイ先は、Vercel です。
- NextjsとVercelは非常に相性が良いので、デプロイで詰まる部分はほとんどありませんでした。
- そもそもNextjsの開発元がVercelっぽいので、当然のことでしょう。
- なお、コンソール画面の動きは遅いです。たまに動いているのかな?と不安になること多々。また、画面の構成もよくわからないです。
バックエンド
- バックエンドは、Nestjsを用いて実装しています。
- デプロイ先は、Renderです。
- バックエンドもVercelにデプロイしたかったのですが、VercelはWebServiceをフリーでは提供していないので、別のPaaSを探した結果Renderにしました。
- ORMは、prismaを使用しています。
- データベースはMongoDBですが、特にNoSQLということを意識せず利用することができます。
- コンソール画面に関しては、特に違和感はなかったです。
データベース
- データベースは、MongoDB Atlasを使用しています。
- VercelかRenderで用意したかったのですが、DBを準備するとなると概ね有償版に切り替えないといけないので、フリーで使用できるものとしてMongoDB Atlasを採用しました。
- なお、MongoDB Atlasも実質はAWS等に構築しているっぽいです。
監視
- バックエンドのRenderは、15分ほどアクセスがないとスリープ状態になるため、定期的に死活監視としてリクエストを投げる必要がありました。
- こちらは、appmillというサービスを利用させていただいています。
- 最大100URLまではお試しプランで利用できるようです。