CodeRoadMap
首页路线题库资源库文章社区
CodeRoadMap

程序员的学习成长路线图。内容免费开放,登录后可同步路线图与课时进度。

由 程序员柏风 独立维护 · 关于作者

学习

  • 路线图
  • 课程
  • 面试题
  • 文章
  • 我

更多

  • 资源
  • 社区
  • 关于作者
  • 内容说明

© 2026 CodeRoadMap

津ICP备2026012044号-1·津公网安备12011002026155号·coderoadmap@126.com
AWS CloudFormation 入门/课时/资源声明
RawBlame
课时目录12 节

AWS CloudFormation 入门

  1. 01CloudFormation 是什么
  2. 02模板结构
  3. 03资源声明
  4. 04参数与映射
  5. 05Stack 生命周期
  6. 06嵌套 Stack
  7. 07Drift 检测
  8. 08CloudFormation vs Terraform
  9. 09SAM 与 Lambda
  10. 10与 AWS CDK 关系
  11. 11失败回滚
  12. 12综合练习

资源声明

EC2、SecurityGroup、RDS 资源块示例。

35 分钟

资源声明

Resources 中每个条目由 Type(AWS 资源类型)与 Properties(API 参数)组成。CloudFormation 按依赖关系排序创建;显式 DependsOn 可覆盖默认顺序。

学习目标

  • 声明 SecurityGroup、EC2、RDS 资源块
  • 用 !Ref / !GetAtt 串联资源
  • 对照 aws-vpc、aws-ec2、aws-rds

VPC 与安全组片段

Resources:
  LabVpc:
    Type: AWS::EC2::VPC
    Properties:
      CidrBlock: 10.0.0.0/16
      Tags:
        - Key: Name
          Value: coderoadmap-lab

  AppSecurityGroup:
    Type: AWS::EC2::SecurityGroup
    Properties:
      GroupDescription: CodeRoadMap app SG
      VpcId: !Ref LabVpc
      SecurityGroupIngress:
        - IpProtocol: tcp
          FromPort: 8080
          ToPort: 8080
          CidrIp: 10.0.0.0/16

与 tf-aws 中 aws_vpc、aws_security_group 参数一一对应。

EC2 实例

  AppInstance:
    Type: AWS::EC2::Instance
    Properties:
      ImageId: ami-0abcdef1234567890   # 替换为目标 Region 的 AMI
      InstanceType: t3.micro
      SecurityGroupIds:
        - !Ref AppSecurityGroup
      Tags:
        - Key: Name
          Value: coderoadmap-app

ImageId 因 Region 而异;生产模板应配合 Mappings 或 SSM Parameter(见 cf-parameters)。

RDS MySQL(简化)

  DbSubnetGroup:
    Type: AWS::RDS::DBSubnetGroup
    Properties:
      DBSubnetGroupDescription: lab subnets
      SubnetIds:
        - !Ref PrivateSubnet1
        - !Ref PrivateSubnet2

  LabDatabase:
    Type: AWS::RDS::DBInstance
    Properties:
      Engine: mysql
      DBInstanceClass: db.t3.micro
      AllocatedStorage: 20
      MasterUsername: admin
      MasterUserPassword: !Ref DbPassword    # 应来自 Parameter,勿硬编码
      VPCSecurityGroups:
        - !Ref DbSecurityGroup
      DBSubnetGroupName: !Ref DbSubnetGroup

CodeRoadMap backend 连接串格式同 tf-practice 的 RDS output。

练习

  • 为 RDS 增加 DeletionPolicy: Snapshot(实验栈可省略)
  • 画出 LabVpc → SG → EC2 的依赖箭头
  • 对照 TF 的 aws_db_instance,列出 3 个同名 Properties
  • 小结

    Type + Properties = 云 API 对象的 YAML 声明。 下一课参数与映射。

    加载本节练习…
    ← 上一课模板结构下一课 →参数与映射