コンテンツにスキップ

[章番号]: インフラ・デプロイ設計書

このテンプレートの使い方

このファイルは、アプリケーションを稼働させるためのインフラ構成と、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デプロイメント
  • 手順:
    1. 新しいバージョン用の環境(Green)を構築。
    2. Green環境に新しいアプリケーションをデプロイ。
    3. テスト用のトラフィックをGreen環境に流し、動作確認。
    4. 問題がなければ、ロードバランサーでトラフィックを完全にGreen環境に切り替え。
    5. 旧環境(Blue)は一定期間保持し、問題発生時のロールバック先として利用する。

6. ロールバック手順

  • トリガー:
    • 監視システムでのクリティカルなアラート発報。
    • スモークテストの失敗。
  • 手順:
    1. ロードバランサーのトラフィックを、即座に旧環境(Blue)に切り戻す。
    2. 問題の原因調査を開始する。

7. 関連する要件