Files
nexus/wiki/concepts/ECS-Deploy-Runner.md

1.9 KiB
Raw Blame History

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 RunnerEDR是运行在 AWS ECS 上的 Docker 容器,负责在跨账号 Terraform 部署流水线中执行 terraform planterraform apply 命令。它是流水线的实际执行单元。

How It Works

  1. 触发Jenkins托管在 Shared-Account)检测到模块目录中的 cross-account.json 标记文件
  2. 启动ECS Deploy Runner 在 Shared Account 的 ECS 集群中启动
  3. Assume Role:通过 Assume Role 获取两个目标账号 IAM 角色的临时凭证:
    • [[TF-State-Bucket-Accessor]]:读取目标账号的 Terraform 状态文件
    • [[Cross-account-ECS-Deploy-Runner-Role]]:在目标账号中执行资源部署
  4. 执行:运行 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