ALB 配下の ECS Service の物理名変更は新旧並行稼働で段階移行する
AWS
Terraform
ECS
インフラ
デプロイ
知識
判断
運用
Terraform のリソースアドレスだけを変える場合は moved block で state を引き継げるが、ECS Service の name やターゲットグループ名など、provider 上で再作成が必要な属性の変更は moved block では無停止化できない。単純な置換 apply は旧サービスの停止と新サービスの起動順がトラフィック切替と噛み合わず、一時的な 5xx を発生させる可能性がある。
ALB 配下のサービスを物理名ごと変える場合は、追加・切替・削除を分ける。まず新しい task family、ターゲットグループ、ECS Service を旧系と並行して作り、新サービスが desired count と ALB health check を満たすまで旧 listener を維持する。次に listener を新ターゲットグループへ切り替え、疎通、エラー率、レイテンシ、ログ・メトリクスの新しい service tag を確認する。この段階では旧系を残し、listener を戻すだけでロールバックできるようにする。安定確認後の別 apply で旧 ECS Service、旧ターゲットグループ、旧 task family 参照、監視・デプロイスクリプト上の旧名を削除する。
移行期間中のデプロイ処理がサービス名から task family を導出している場合は、新旧両方の対応関係を明示する。新サービスだけをデプロイ対象にすると、切替前にトラフィックを受ける旧サービスへ最新コードが届かない。削除を切替と同じ apply に混ぜると、依存グラフ上で旧サービス停止が listener 更新より先行する余地があるため、安全性を優先する本番移行では分離する。