AWS ECS Fargateで設計したAi-meshiの本番インフラ ― BFF構成とセキュリティ設計
個人開発「Ai-meshi」の本番インフラ構成図です。AIレシピアプリを「動くもの」で終わらせず、実際に独自ドメインで公開・運用するところまでを一人で構築しました。 【構成のポイント】 ・BFF構成:フロント(Next.js)用とAPI(Rails)用にALBを分離。Next.jsのサーバー側をBFFとして使い、Rails APIが返す認証トークンをHttpOnly Cookieで扱うことで、ブラウザのJavaScriptからトークンに触れさせず、XSSによる漏えいリスクを下げています。 ・コンテナ運用:Next.jsとRails APIをそれぞれECS Fargateサービスとして分離。HTTPS通信はALB+ACMで終端し、画像はActive Storage経由でS3に保存しています。 ・ネットワーク/セキュリティ:ECSタスクの通信はALBのセキュリティグループからのみ、RDS(MySQL)はprivate subnetに置きRails ECSのセキュリティグループからのみ許可するなど、経路を最小限に絞っています。 ・CI/CD:mainブランチへのpushを起点に、GitHub ActionsでDockerイメージのECR push〜ECSデプロイまでを自動化しています。 「機能を作る」だけでなく、認証・ネットワーク・セキュリティ・デプロイまで含めて、安全に運用できる形を意識して設計しました。

