使用CloudFormation模板自动化AWS基础设施的部署
步骤 1:进入 CloudFormation 控制台并选择创建方式
-
打开 AWS 控制台,进入
CloudFormation
页面。 -
点击左侧菜单中的 “堆栈”,然后点击 “创建堆栈”。
-
在弹出的选项中,选择 “使用基础架构编辑器构建”(如图所示),点击右下角的【下一步】。
步骤 2:在基础设施编辑器中配置资源
-
系统将跳转到 Infrastructure Composer(基础设施编辑器) 页面。
-
点击左上方的 模板 标签页,可以查看底部自动生成的 CloudFormation YAML 模板。
-
此模板默认包含:
-
一个基于 Amazon Linux 2 的 EC2 实例;
-
一个安全组;
-
三个参数(实例类型、AMI ID、IP 地址段)可自定义。
-
下面这个是官方给的一个http网站的模板
AWSTemplateFormatVersion: 2010-09-09
Description: CloudFormation Template for WebServer with Security Group and EC2 InstanceParameters:
LatestAmiId:
Description: The latest Amazon Linux 2 AMI from the Parameter Store
Type: 'AWS::SSM::Parameter::Value<AWS::EC2::Image::Id>'
Default: '/aws/service/ami-amazon-linux-latest/amzn2-ami-hvm-x86_64-gp2'InstanceType:
Description: WebServer EC2 instance type
Type: String
Default: t2.micro
AllowedValues:
- t3.micro
- t2.micro
ConstraintDescription: must be a valid EC2 instance type.
MyIP:
Description: Your IP address in CIDR format (e.g. 203.0.113.1/32).
Type: String
MinLength: '9'
MaxLength: '18'
Default: 0.0.0.0/0
AllowedPattern: '^(\d{1,3}\.){3}\d{1,3}\/\d{1,2}$'
ConstraintDescription: must be a valid IP CIDR range of the form x.x.x.x/x.Resources:
WebServerSecurityGroup:
Type: AWS::EC2::SecurityGroup
Properties:
GroupDescription: Allow HTTP access via my IP address
SecurityGroupIngress:
- IpProtocol: tcp
FromPort: '80'
ToPort: '80'
CidrIp: !Ref MyIPWebServer:
Type: AWS::EC2::Instance
Properties:
ImageId: !Ref LatestAmiId
InstanceType: !Ref InstanceType
SecurityGroupIds:
- !Ref WebServerSecurityGroup
UserData: !Base64 |
#!/bin/bash
yum update -y
yum install -y httpd
systemctl start httpd
systemctl enable httpd
echo "<html><body><h1>Hello World!</h1></body></html>
步骤 3:保存模板并继续创建堆栈
-
点击右上角【创建模板】,系统会将模板上传到 Amazon S3。
-
在弹出的窗口中,选择默认生成的存储桶名称,点击【确认并继续访问 CloudFormation】。
步骤 4:填写堆栈基本信息
-
进入 CloudFormation 创建堆栈流程。
-
输入堆栈名称(例如:
test
)。 -
确认参数内容(可以修改默认值):
-
EC2 实例类型(默认
t2.micro
); -
最新的 AMI ID 路径;
-
安全组 IP 范围(默认开放所有:
0.0.0.0/0
,如需限制可设置具体 CIDR)。
-
点击【下一步】。
步骤 5:配置高级选项(可选)
在此页面你可以:
-
添加标签(用于识别资源);
-
选择 IAM 角色(如果你已有执行权限的角色);
-
配置堆栈失败时的回滚行为;
-
指定 SNS 通知、堆栈策略、保护选项等。
如果不需要额外配置,保持默认设置即可,点击【下一步】。
步骤 6:确认并创建堆栈
-
在“查看并创建”页面中核对所有信息。
-
确认模板 URL、堆栈名称和参数设置是否正确。
-
滚动至底部,点击【提交】以启动创建流程。
步骤 7:监控堆栈创建过程
-
页面跳转后会显示堆栈状态为
CREATE_IN_PROGRESS
。 -
几分钟后刷新页面,状态变为
CREATE_COMPLETE
,表示堆栈已成功创建。 -
在“事件”标签页可查看各个资源的部署进度。
成功创建后包含的资源
通过这个堆栈,我们成功创建了:
-
一个 EC2 实例;
-
一个安全组(默认开启 22/80/443 端口);
-
可选的输出资源信息和参数设置。
八、查看输出并访问网站
-
切换至「输出」页签,复制
WebsiteURL
的值。 -
使用浏览器访问该链接,即可看到页面内容:
页面结果: