FASTAPI構成

System Architecture

System Architecture

Frontend · Backend · Database — AWS Infrastructure

🌐 Client
👤
User / Browser
HTTPSリクエスト発行
React SPA
HTTPS
☁️ Frontend Layer — AWS
🌍
CloudFront
CDN・グローバルエッジ配信
SSL終端・キャッシュ制御
WAF統合・DDoS保護
CDN SSL WAF
🪣
S3
静的アセット格納
HTML / JS / CSS / 画像
バージョニング・暗号化
Static Origin
API Call (HTTPS/JSON)
⚙️ Backend Layer — AWS
🐳
ECS Fargate
FastAPI コンテナ実行
サーバーレス・オートスケール
メインAPI処理ロジック
FastAPI Docker Auto Scale
λ
Lambda
非同期・イベント処理
バッチ・Webhook受信
軽量ユーティリティ関数
Async Event Batch
🗺️
ALB / API GW
ロードバランシング
Fargate / Lambda ルーティング
ヘルスチェック
Routing LB
SQLAlchemy / Alembic
🔧 ORM / Migration Layer
🧬
SQLAlchemy
ORM・コネクションプール管理
非同期対応 (asyncpg)
クエリ構築・セッション管理
ORM Async
🔄
Alembic
DBスキーマバージョン管理
マイグレーション自動生成
ロールバック対応
Migration Schema
TCP/5432 (PostgreSQL)
🗄️ Database Layer — AWS
🌅
Aurora PostgreSQL
マネージドRDB・高可用性
Writer / Reader エンドポイント
自動フェイルオーバー・バックアップ
Data API 対応
Writer Reader Multi-AZ

📡 処理フロー

▸ 通常リクエスト (画面表示)

Browser
ユーザーがURLにアクセス。HTTPSリクエストを送信。
CloudFront
エッジロケーションでリクエスト受信。SSL終端キャッシュHITなら即返却。
S3
キャッシュMISSの場合、S3からHTML/JS/CSSを取得しCloudFrontへ返却。ブラウザにSPAが配信される。
Browser → ALB
SPAがAPI呼び出し。ALB (Application Load Balancer) がリクエストを受け取る。
ECS Fargate
FastAPIコンテナが処理。認証・ビジネスロジック・バリデーション実行。
SQLAlchemy
ORMを通じてAurora PostgreSQLへクエリ発行。Writerエンドポイント(書込) / Readerエンドポイント(読込)を使い分け。
Aurora PG
SQLを実行しレスポンスデータをFastAPIに返却。FastAPI → ALB → Browserへとレスポンスが戻る。

▸ 非同期・バッチ処理 (Lambda)

Trigger
SQS・EventBridge・S3イベント・APIコールなどからLambdaが起動。
Lambda
メール送信・画像処理・外部API連携などの非同期タスクを実行。
Aurora PG
必要に応じてDBアクセス。Data APIまたはVPC内SQLAlchemy経由で接続。

▸ DBマイグレーション (Alembic)

CI/CD Pipeline
デプロイ時または手動で alembic upgrade head を実行。
Alembic
マイグレーションスクリプトを順次適用。バージョン管理でロールバックも可能。
Aurora PG
スキーマ変更(テーブル追加・カラム変更等)をWriterエンドポイントへ適用。

💡 ポイント
Read/Write分離 — Aurora ReaderエンドポイントをSQLAlchemyの読み取りセッションに向け、スループットを最大化。
スケール戦略 — 同期APIはFargate (コンテナスケール)、非同期・イベント処理はLambda (ゼロスケール) で役割分担。
セキュリティ — Fargate・LambdaはVPC内プライベートサブネット配置。Aurora への直接外部アクセス不可。Secrets Managerで認証情報管理。

Don`t copy text!