综合练习
最小 VPC+EC2 Stack 模板编写。
40 分钟
综合练习
用 CloudFormation 描述 最小 VPC + 公网子网 + EC2 + SecurityGroup 实验栈,并与 terraform-essentials 的 TF 练习 对照。不要求真实长期运行;重点在 可 review 的 YAML 与 Stack 生命周期。
学习目标
- 完成 dev 环境最小网络 + 计算模板
- 用 Outputs 暴露实例 ID / 公网 IP(若有 EIP)
- 串联 aws-essentials → CFN → TF → Helm 路线
任务清单
template.yaml:Parameters(Environment、InstanceType)- Resources:
AWS::EC2::VPC、Subnet、InternetGateway、RouteTable(可简化单 AZ) AppSecurityGroup:仅开放 22/8080 来自你的 IP 或实验 CIDRAWS::EC2::Instance:!FindInMap选 Region AMI- Outputs:
InstanceId、可选PublicIp
验收 YAML 骨架
AWSTemplateFormatVersion: '2010-09-09'
Description: CodeRoadMap 最小 VPC+EC2 Lab
Parameters:
Environment:
Type: String
Default: dev
Resources:
LabVpc:
Type: AWS::EC2::VPC
Properties:
CidrBlock: 10.0.0.0/16
Tags:
- Key: Name
Value: !Sub 'coderoadmap-${Environment}'
# PublicSubnet、IGW、Route、AppSecurityGroup、AppInstance …
Outputs:
InstanceId:
Value: !Ref AppInstance
StackName:
Value: !Ref AWS::StackName
部署:
aws cloudformation deploy \
--template-file template.yaml \
--stack-name coderoadmap-cfn-lab \
--parameter-overrides Environment=dev \
--capabilities CAPABILITY_IAM
实验结束 delete-stack,对照 aws-cost。
与全栈路线关系
aws-essentials(认服务)→ cloudformation-essentials(本练习:YAML Stack)
↓
terraform-essentials(生产推荐:同拓扑 .tf + plan/apply)
↓
helm-gitops-essentials + github-actions-essentials
可选加分
- 拆 Nested Stack:network.yaml + compute.yaml
- 故意 Console 改 SG,跑 detect-stack-drift