用途:使用 AWS CloudFormation 模板创建可投产的 EC2 基础设施,覆盖 EC2 实例(按需与 SPOT)、安全组、IAM 角色、应用负载均衡器(ALB)、模板结构、参数、输出与跨堆栈引用。
主要能力:定义模板参数(使用 AWS::EC2::InstanceType、AWS::SSM::Parameter::Value 等类型做校验与下拉选择);创建安全组入站/出站规则;定义 IAM 角色与实例配置文件并遵循最小权限;启动 EC2 实例并配置镜像、实例类型、密钥、安全组、实例配置文件和 UserData;创建 ALB、目标组与监听器;定义输出并导出以支持跨堆栈引用。
使用方式:按步骤编写模板,使用 aws cloudformation validate-template --template-body file://template.yaml 校验;生产更新建议先创建变更集再执行:aws cloudformation create-change-set --stack-name my-ec2-stack --template-body file://template.yaml --change-set-type CREATE,审核后 aws cloudformation execute-change-set --change-set-name <change-set-name>。
适用场景:需要以模板化方式部署 EC2 及配套网络、安全与负载均衡资源;支持跨 AZ 高可用、SPOT 实例用于可中断工作负载、CloudWatch 告警、EBS gp3 存储等实践建议。
限制:每个 CloudFormation 堆栈最多 500 个资源,每个 VPC 最多 500 个安全组;实例类型可用性随区域/AZ 变化;EC2 运行、EBS 按 GB-月、ALB 按小时+LCU、未关联弹性 IP 按小时计费;密钥对丢失不可恢复,实例配置文件角色创建后不可更改,IMDSv1 存在安全风险应使用 IMDSv2,SPOT 实例可能提前 2 分钟通知终止。具体命令与模板片段以资料为准。