チェックリスト
AWS アカウント & アクセス
| エリア | チェック項目 | 詳細要件 | 内容 / 理由 | 受入基準 | ステータス | 記録値 / 備考 |
|---|---|---|---|---|---|---|
| アカウント | AWS Account ID | 有効な AWS Account ID を共有する必要があります | IAM ロールの作成、請求の所有者、タグ付け、Terraform バックエンドへのアクセスに必要です | Account ID が正確で、請求が有効、アクセス可能であること | ||
| リージョン | AWS リージョンの選択 | EKS、EC2、VPC、ACM、ElastiCache、Amazon MQ をサポートするリージョン | サービスによってはリージョンが制限されている場合があり、未サポートのリージョンではデプロイメントが失敗します | AWS コンソールでリージョンが確認でき、すべての必要なサービスをサポートしていること | ||
| CLI | AWS CLI の設定 | AWS CLI で認証済みの IAM ユーザー | Terraform/Terragrunt のデプロイメントにはプログラムからのアクセスが必要です | aws sts get-caller-identity が想定されるアカウントを返すこと | ||
| IAM | デプロイメント権限 | 管理者 IAM 権限 | デプロイメントは EC2、EKS、IAM、S3、ACM、Route 53、MQ、ElastiCache、CloudWatch にまたがります | IAM ポリシーが必要なサービスに対して作成/更新/削除を許可していること |
サービスクォータ
| エリア | チェック項目 | 詳細要件 | 内容 / 理由 | 受入基準 | ステータス | 記録値 / 備考 |
|---|---|---|---|---|---|---|
| EC2 | オンデマンド vCPU クォータ | オンデマンド Standard(A、C、D、H、I、M、R、T、Z)インスタンスのクォータが最低 100〜150 vCPU | オートスケーリング、r6a インスタンス、Karpenter には高い vCPU 余裕が必要です | Service Quotas コンソールでクォータ増加が承認されていること | ||
| EC2 | インスタンスファミリの利用可能性 | C、M、R ファミリのインスタンスがリージョンで利用可能 | ワークロードにはコンピューティング、メモリ、データベース最適化ノードが必要です | EC2 コンソールでインスタンスファミリが表示され、選択可能であること | ||
| EKS | EKS クラスタークォータ | 必要な環境デプロイメントに基づき、少なくとも 1 つの EKS クラスターが許可されていること | クォータが不十分な場合、クラスター作成がブロックされます | クォータ >= 1 クラスター | ||
| VPC | NAT ゲートウェイクォータ | AZ あたり 1 つの NAT ゲートウェイ(推奨:3 つ) | プライベートサブネットには送信インターネットアクセスが必要です | クォータ >= AZ 数 | ||
| ネットワーキング | エラスティック IP クォータ | NAT ゲートウェイ用のエラスティック IP が利用可能 | 各 NAT ゲートウェイは 1 つのエラスティック IP を消費します | エラスティック IP クォータが AZ 数に対して十分であること | ||
| ElastiCache | ElastiCache クォータ | Redis クラスター用に最低 2 ノード(cache.t3.micro、Redis 7.0) | ENABLE_AWS_SERVICES=true の場合に必要です | クォータ >= 2 ノード | ||
| Amazon MQ | Amazon MQ クォータ | RabbitMQ 用に最低 1 つのブローカー(mq.m5.large、RabbitMQ 3.13) | ENABLE_AWS_SERVICES=true の場合に必要です | クォータ >= 1 ブローカー |
ドメイン & SSL
| エリア | チェック項目 | 詳細要件 | 内容 / 理由 | 受入基準 | ステータス | 記録値 / 備考 |
|---|---|---|---|---|---|---|
| ドメイン | フロントエンドドメイン | Web フロントエンド用のパブリックドメイン(例:app.example.com) | ALB ルーティングと SSL ターミネーションに使用します | ドメインが解決し、所有権が確認されていること | ||
| ドメイン | バックエンド API ドメイン | FastAPI バックエンド用のパブリックドメイン(例:api.example.com) | API アクセスと TLS に必要です | ドメインが文書化され、承認されていること | ||
| ドメイン | Automator サービスドメイン | Automator サービス用のパブリックドメイン(例:automations.example.com) | API アクセスと TLS に必要です | ドメインが文書化され、承認されていること | ||
| ドメイン | Supabase サービスドメイン | Supabase Cloud を使用しない場合 — Supabase 用のパブリックドメイン(例:supabase.example.com) | Supabase をセルフホスティングする場合に API アクセスと TLS に必要です | ドメインが文書化され、承認されていること | ||
| 証明書 | ACM 証明書 | デプロイメントリージョンでワイルドカードまたは個別の ACM 証明書が作成されていること | ALB での TLS ターミネーションには有効な ACM 証明書が必要です | 証明書が ISSUED 状態で、デプロイメントと同じ AWS リージョンにあること |
ネットワーキング
| エリア | チェック項目 | 詳細要件 | 内容 / 理由 | 受入基準 | ステータス | 記録値 / 備考 |
|---|---|---|---|---|---|---|
| VPC | VPC 戦略 | 既存の VPC を確認するか、新しい VPC の作成を承認する | 分離、ルーティング、セキュリティの境界を定義します | VPC ID または CIDR ブロックが承認されていること | ||
| CIDR | CIDR プランニング | CIDR がオンプレミスまたは他の VPC と重複していないこと | CIDR の重複はルーティングと VPN 接続を破損します | CIDR が既存のネットワークと照合確認されていること | ||
| サブネット | パブリックサブネット | ALB と NAT ゲートウェイ用の AZ ごとのパブリックサブネット | イングレスおよびエグレストラフィックに必要です | サブネットにタグ付けされ、ルーティング可能であること | ||
| サブネット | プライベートサブネット | EKS ワーカーノード用の AZ ごとのプライベートサブネット | ワークロードがインターネットに直接公開されないようにします | サブネットがマッピングされ、NAT ゲートウェイ経由で到達可能であること | ||
| エグレス | 送信アクセス | ワーカーノードからの送信ポート 80、443、53 が許可されていること | コンテナイメージのプル、AWS API 呼び出し、DNS 解決に必要です | ファイアウォール/セキュリティグループルールが検証されていること |
サービス設定
| エリア | チェック項目 | 詳細要件 | 内容 / 理由 | 受入基準 | ステータス | 記録値 / 備考 |
|---|---|---|---|---|---|---|
| Supabase | Supabase 有効化 | セルフホスト Supabase(ENABLE_SUPABASE=true)または Supabase Cloud を確認する | DB プロビジョニング、シークレット、イングレス、ネットワーキング設定に影響します | 判断が文書化され、対応する ENABLE_* フラグがデプロイメントで設定されていること | ||
| AWS サービス | Redis の使用 | AWS ElastiCache Redis(ENABLE_AWS_SERVICES=true)または外部 Redis を確認する | 高可用性、コスト、ネットワーキング設計に影響します | 判断が文書化されていること | ||
| AWS サービス | RabbitMQ の使用 | Amazon MQ(ENABLE_AWS_SERVICES=true)または外部 RabbitMQ を確認する | メッセージングの信頼性と HA に影響します | 判断が文書化されていること | ||
| ロードバランサー | ALB コントローラー | AWS Load Balancer Controller が有効(ENABLE_ALB_CONTROLLER=true、デフォルト) | Kubernetes アノテーションからの ALB イングレスプロビジョニングに必要です | コントローラーポッドが infrastructure 名前空間で稼働していること |
オートスケーリング
| エリア | チェック項目 | 詳細要件 | 内容 / 理由 | 受入基準 | ステータス | 記録値 / 備考 |
|---|---|---|---|---|---|---|
| Karpenter | Karpenter のインストール | EKS モジュールを介して Karpenter コントローラーがデプロイされていること | 動的ノードプロビジョニングを処理します。マネージドノードグループのオートスケーリングを置き換えます | Karpenter ポッドが専用ノードグループで正常に稼働していること | ||
| Karpenter | Spot 戦略 | ノードクラスごとの Spot とオンデマンドの使用が定義されていること | 安定性を維持しながらコストを最適化します。Spot 中断ハンドリングを有効にする必要があります | Spot インスタンスを使用する場合、SQS 経由の中断ハンドリングが有効であること | ||
| KEDA | Pod オートスケーリング | KEDA が Helm チャートでインストールされていること(keda 名前空間) | CPU/メモリのしきい値に基づく動的 Pod スケーリングを処理します | KEDA オペレーターポッドが正常に稼働し、すべてのサービスに ScaledObjects が適用されていること |
ストレージ
| エリア | チェック項目 | 詳細要件 | 内容 / 理由 | 受入基準 | ステータス | 記録値 / 備考 |
|---|---|---|---|---|---|---|
| EBS | EBS CSI ドライバー | EBS CSI ドライバーがインストールされていること(kube-system 名前空間) | StorageClass を介した動的永続ボリュームプロビジョニングに必要です | ドライバーポッドが正常に稼働し、PVC が正常にプロビジョニングされていること |
セキュリティ
| エリア | チェック項目 | 詳細要件 | 内容 / 理由 | 受入基準 | ステータス | 記録値 / 備考 |
|---|---|---|---|---|---|---|
| 暗号化 | 静止時の暗号化 | EBS ボリューム、S3 ステートバケット、Redis の暗号化が有効であること | すべてのストレージレイヤーで敏感なデータを静止時に保護します | 各サービスの暗号化が AWS コンソールで確認されていること | ||
| 暗号化 | 伝送時の暗号化 | すべての外部および内部サービス通信で TLS が強制されていること | 伝送中のデータ傍受を防止します | HTTPS エンドポイントが検証され、Redis transit_encryption_enabled = true であること | ||
| 監査 | 監査ログ | CloudTrail、VPC Flow Logs、Kubernetes 監査ログが有効であること | インシデント調査、コンプライアンス、監査に必要です | ログが CloudWatch / S3 で表示され、照会可能であること |
デプロイメント
| エリア | チェック項目 | 詳細要件 | 内容 / 理由 | 受入基準 | ステータス | 記録値 / 備考 |
|---|---|---|---|---|---|---|
| スケジュール | デプロイメントウィンドウ | デプロイメント日時ウィンドウが顧客によって承認されていること | 検証および必要に応じたロールバックのために顧客チームの都合が確保されます | 書面による確認が received されていること |
署印
| エリア | チェック項目 | 詳細要件 | 内容 / 理由 | 受入基準 | ステータス | 記録値 / 備考 |
|---|---|---|---|---|---|---|
| 承認 | 顧客承認 | 顧客が費用見積もり、範囲、デプロイメント計画を正式に承認すること | インフラストラクチャがプロビジョニングされる前に正式な稼働承認が必要です | メールまたは署印済み文書による承認が received されていること |
サービス有効化 / 無効化フラグリファレンス
デプロイメント前に顧客と各フラグの目的の値を確認してください。| 環境変数 | デフォルト | 効果 |
|---|---|---|
ENABLE_SUPABASE | false | セルフホスト Supabase スタック(Kong、Auth、Storage、Studio)をデプロイする |
ENABLE_CNPG | false | CloudNativePG オペレーターをデプロイする(セルフホスト Supabase DB の前提条件) |
ENABLE_HA_SUPABASE_DB | false | CloudNativePG を介した HA PostgreSQL クラスターをデプロイする(Supabase の前提条件) |
ENABLE_AWS_SERVICES | false | ElastiCache Redis と Amazon MQ RabbitMQ をプロビジョニングする |
ENABLE_ALB_CONTROLLER | true | AWS Load Balancer Controller をデプロイする |
ENABLE_SIGNOZ | false | SigNoz 可観測性プラットフォーム + k8s-infra エージェントをデプロイする |
記録値のまとめ
デプロイメント前に顧客から収集した最終値を記録します。| パラメータ | 値 |
|---|---|
| AWS Account ID | |
| AWS リージョン | |
| VPC CIDR | |
| アベイラビリティゾーン | |
| フロントエンドドメイン | |
| API ドメイン | |
| Automator ドメイン | |
| Supabase ドメイン(セルフホストの場合) | |
| SigNoz ドメイン(有効な場合) | |
| ACM 証明書 ARN | |
| Supabase モード | Cloud / Self-hosted |
| Redis | ElastiCache / External |
| RabbitMQ | Amazon MQ / External |
| デプロイメント日 / ウィンドウ | |
| 顧客承認リファレンス |