[章番号]: インフラ・デプロイ設計書
このテンプレートの使い方
このファイルは、アプリケーションを稼働させるためのインフラ構成と、CI/CDパイプラインによるデプロイ戦略を定義するためのテンプレートです。 IaC (Infrastructure as Code) の方針や、デプロイメントフローを明確にします。 詳しい使い方は「設計仕様の書き方ガイド」を参照してください。
1. はじめに
1.1. 目的
2. インフラ構成図
2.1. 本番環境
graph TD
subgraph "Internet"
DNS[Route 53]
end
subgraph "AWS Cloud"
LB[ALB]
subgraph "Auto Scaling Group"
direction LR
App1[EC2 / App]
App2[EC2 / App]
App3[...]
end
DB[(RDS / PostgreSQL)]
Cache[(ElastiCache / Redis)]
end
DNS --> LB
LB --> App1
LB --> App2
LB --> App3
App1 --> DB
App2 --> DB
App3 --> DB
App1 --> Cache
App2 --> Cache
App3 --> Cache
2.2. ステージング環境
3. インフラストラクチャ管理
- 管理ツール: Terraform
- 方針: Infrastructure as Code (IaC) を徹底し、インフラ構成をコードで管理する。手動でのインフラ変更は原則として禁止する。
- リポジトリ: https://github.com/example/infra
4. CI/CDパイプライン設計
4.1. パイプライン全体像
graph TD
A[開発者がコードをPush] --> B{GitHub Actions}
B --> C[1. ビルド]
B --> D[2. テスト]
D --> E[3. Dockerイメージ作成 & Push to ECR]
E --> F[4. Staging環境へデプロイ]
F --> G[手動承認]
G --> H[5. Production環境へデプロイ]
4.2. 使用ツール
- CI/CDプラットフォーム: GitHub Actions
- コンテナレジストリ: Amazon ECR
4.3. ブランチ戦略との連携
feature/*ブランチ: ビルドとテストのみ実行。mainブランチ: ビルド、テスト後、Staging環境へ自動デプロイ。Gitタグ (v*): Stagingでの承認後、Production環境へデプロイ。
5. デプロイ戦略
- 戦略名: Blue/Greenデプロイメント
- 手順:
- 新しいバージョン用の環境(Green)を構築。
- Green環境に新しいアプリケーションをデプロイ。
- テスト用のトラフィックをGreen環境に流し、動作確認。
- 問題がなければ、ロードバランサーでトラフィックを完全にGreen環境に切り替え。
- 旧環境(Blue)は一定期間保持し、問題発生時のロールバック先として利用する。
6. ロールバック手順
- トリガー:
- 監視システムでのクリティカルなアラート発報。
- スモークテストの失敗。
- 手順:
- ロードバランサーのトラフィックを、即座に旧環境(Blue)に切り戻す。
- 問題の原因調査を開始する。