title, type, tags, sources, last_updated
| title |
type |
tags |
sources |
last_updated |
| ECS Deploy Runner |
concept |
| Terraform |
| ECS |
| Deployment |
| IaC |
| Docker |
| CI/CD |
|
| ctp-topic-16-cross-account-terraform-modules.md |
|
2026-05-15 |
Overview
ECS Deploy Runner(EDR)是运行在 AWS ECS 上的 Docker 容器,负责在跨账号 Terraform 部署流水线中执行 terraform plan 和 terraform apply 命令。它是流水线的实际执行单元。
How It Works
- 触发:Jenkins(托管在 Shared-Account)检测到模块目录中的
cross-account.json 标记文件
- 启动:ECS Deploy Runner 在 Shared Account 的 ECS 集群中启动
- Assume Role:通过 Assume Role 获取两个目标账号 IAM 角色的临时凭证:
[[TF-State-Bucket-Accessor]]:读取目标账号的 Terraform 状态文件
[[Cross-account-ECS-Deploy-Runner-Role]]:在目标账号中执行资源部署
- 执行:运行 Terraform CLI 命令完成部署
Key Characteristics
- 容器化:运行在 Docker 容器中,环境一致性好
- 按需启动:每次部署触发一次容器启动,无长期占用
- 临时凭证:通过 Assume Role 获取的短期凭证,最小化密钥暴露时间
- 与 Terragrunt 配合:Terragrunt HCL 文件配置角色切换逻辑
Local vs CI/CD Difference
| 环境 |
角色处理 |
| 本地开发 |
Terragrunt 自动处理角色切换,无需手动 Assume Role |
| Jenkins CI/CD |
EDR 通过 Assume Role 获取两个专用角色的临时凭证 |
Relationships