大学時代の友人と3人で、とあるWEBサービスを作ることになったので、
設計するついでにシステム構成を晒したいと思います。
※本記事は本WEBサービスの設計情報となるため、内容が変更・更新されることがあります。
要件定義
- AWSを利用したシステム構成で、運用費を可能な限り安くする
- 可能な限りサーバーレス構成で、フルマネージドなサービスを活用する
- 固定費のかかるサービスは利用しない
- 運用費は抑えるが、サイトのレスポンスは妥協せずサクサク動作させる
- 落ちない・止まらない構成を実現する
- メンテナンス不要な構成を実現する
- アプリケーションコードはPythonで書く
システム構成
※こちらの記事で紹介されているdraw.ioを利用して作図しています。
フロントアプリはHerokuにホスティング+バックエンドはAPIGW+Lambda
構成のポイント
- Herokuの無料dynoにPythonの軽量フレームワークであるFlaskアプリをデプロイする
- 静的コンテンツのレスポンス速度向上のため、無料のCloudFlareを導入する。
- FaceBookと連携してユーザの友達関係を使った表示制御を想定する
- Herokuに乗せるフロントアプリからAPI呼び出しを行い、バックエンドの処理と連携する
- ユーザのファイルをHeroku経由でS3にアップロードする。
- プロジェクトを実施するのに必要なファイルはGoogleDriveなどのリンク情報を登録する想定。