Service の前段に ALB をはさむ • インフラコストは増えるが、Connection Draining など ALB の機能が使えるメリットを優先 Public subnet Private subnet ALB Proxy Service (Nginx) ALB Front Service (Next.js) ALB API Service (Apollo Server)
JIRA yyy JIRA zzz create create create ALB Proxy Service (Nginx) ALB Front Service (Next.js) ALB API Service (Apollo Server) 環境構築 ALB Proxy Service (Nginx) ALB Front Service (Next.js) ALB API Service (Apollo Server) 環境構築 ALB Proxy Service (Nginx) ALB Front Service (Next.js) ALB API Service (Apollo Server) 環境構築 stg merge ALB Proxy Service (Nginx) ALB Front Service (Next.js) ALB API Service (Apollo Server) Proxy Service (Nginx) Front Service (Next.js) ALB API Service (Apollo Server) リリース main merge ALB Proxy Service (Nginx) ALB Front Service (Next.js) ALB API Service (Apollo Server) Proxy Service (Nginx) Front Service (Next.js) ALB API Service (Apollo Server) リリース ステージング環境 本番環境 ブランチが削除されたら 環境をすべて削除 Blue / Green Deployment
Service (Nginx) ALB Front Service (Next.js) ALB API Service (Apollo Server) Proxy Service (Nginx) ALB Front Service (Next.js) ALB API Service (Apollo Server) CloudFormation ①待機系の更新 Main Listener Test Listener ②疎通確認 ③切り替え
CircleCI でデプロイパイプラインを構築 • 必要な AWS リソースは CloudFormation 経由でデプロイ • ECS の Blue / Green Deployment 部分のみ、CodeDeploy に任せる 19 ALB Proxy Service (Nginx) ALB Front Service (Next.js) ALB API Service (Apollo Server) Proxy Service (Nginx) Front Service (Next.js) API Service (Apollo Server) CloudFormation ①リソースの初期構築は CloudFormation で実施 CodeDeploy CodeDeploy CodeDeploy ②CodeDeployで 切り替え ②CodeDeployで 切り替え ②CodeDeployで 切り替え
• パラメータだけ変えれば動くようにしている 31 Public subnet Private subnet ALB Proxy Service (Nginx) ALB Front Service (Next.js) ALB API Service (Apollo Server) CloudFormation
コスト削減、リソース消費の抑制のため最⼩構成に変更 43 Public subnet Private subnet ALB Proxy Service (Nginx) ALB Front Service (Next.js) ALB API Service (Apollo Server) CloudFormation
feature/zzz Developer Developer Developer JIRA xxx JIRA yyy JIRA zzz create create create ALB Proxy Service (Nginx) ALB Front Service (Next.js) ALB API Service (Apollo Server) 環境構築 ALB Proxy Service (Nginx) ALB Front Service (Next.js) ALB API Service (Apollo Server) 環境構築 ALB Proxy Service (Nginx) ALB Front Service (Next.js) ALB API Service (Apollo Server) 環境構築 stg merge ALB Proxy Service (Nginx) ALB Front Service (Next.js) ALB API Service (Apollo Server) Proxy Service (Nginx) Front Service (Next.js) ALB API Service (Apollo Server) リリース main merge ALB Proxy Service (Nginx) ALB Front Service (Next.js) ALB API Service (Apollo Server) Proxy Service (Nginx) Front Service (Next.js) ALB API Service (Apollo Server) リリース ステージング環境 本番環境 ブランチが削除されたら 環境をすべて削除 Blue / Green Deployment Feature 環境⾃動⽣成 Blue / Green Deployment