亚马逊AWS官方博客

一键搞定云端网络环境,让您轻松迁移至AWS!

一键搞定云端网络环境,让您轻松迁移至AWS!

知识补充:什么是AWS CloudFormation?

AWS CloudFormation 模板是一个文本文件,其格式符合 JSON 格式标准。您可使用任何扩展名(如.json、.template 或 .txt)保存这些文件。AWS CloudFormation可帮助您对AWS资源进行建模和设置,包括EC2实例、RDS实例、Auto Scaling Group、Elastic Load Balancing以及整个AWS VPC的网络环境。点击部署模板,成功创建堆栈之后,AWS 资源将正常运行。点击删除模板,所有堆栈中涉及到的资源将都删除。详细参考

http://docs.aws.amazon.com/zh_cn/AWSCloudFormation/latest/UserGuide/Welcome.html

注:此文章所用的AWS CloudFormation模板适合:

(1)由于项目紧急,您在一两天内就想上线,将资源部署在AWS平台上,之后再花时间学习AWS服务与功能。

(2)您想基于AWS实现自动化基础设施部署,比如快速实现开发 / 测试 / 生产环境,这个模板是您学习AWS一个好的开始。

模板下载:

AWS中国区模板:

https://s3.cn-north-1.amazonaws.com.cn/danrong-share/external/aws-template-bjs-addELB-V3.txt

AWS海外区模板:

https://s3.cn-north-1.amazonaws.com.cn/danrong-share/external/aws-template-global-addELB-V3.txt

注:为节约成本,此模板所启用的EC2配置很低,为t2.small。

模板主要解决的问题:

(1)启动VPC,网段为10.40.0.0/16(当然,模板可以自定义IP地址范围)。自动启动6个子网

Public Subnet 1(子网范围10.40.1.0/24)

Public Subnet 2(子网范围10.40.2.0/24)

Private Subnet 1(子网范围10.40.3.0/24)

Private Subnet 2(子网范围10.40.4.0/24)

Private DB Subnet 1(子网范围10.40.5.0/24)

Private DB Subnet 2(子网范围10.40.6.0/24)

打开DNS解析和主机名功能。

(2)启动2个路由表,添加规则Public Route table指向IGW,Private Route table指向NAT Instance。

(3)启动互联网网关IGW,并附加到VPC上。

(4)启动一台Nginx Based AMI作为Web Server,并申请弹性IP、Role(这里的权限是admin)绑定到这台EC2。

(注意:如果客户需要Apache HTTP,只需要把模板中的注释去掉换一下即可)

(5)启动一台NAT Instance作为网络地址转换。如果NAT需要高可用,使用模板(支持中国区)

https://s3.cn-north-1.amazonaws.com.cn/danrong-share/external/nat_monitor_cn.template

(6)启动一台Bastion Host,作为跳板控制,配置所需安全组。

(7)启动Web Server安全组,配置HTTP/22、SSH/22、ICMP/All

(8)启动NAT instance安全组,入站配置Private Subnet子网(只有Private Subnet内的EC2可以访问)。

(9)启动ELB作为负载均衡,启用跨AZ,设置对应所需安全组,添加HTTP/80监听器,健康检查等功能。

此模板启动的资源以及部署图

模板如何使用?

1.       打开AWS EC2服务,创建一个密钥对,比如awskey(用于SSH远程登录虚拟机)

2.       点击AWS CloudFormation服务

3.       点击“创建堆栈”,指定 Amazon S3 模板 URL,复制以下地址(如果海外区也一样)

https://s3.cn-north-1.amazonaws.com.cn/danrong-share/external/aws-template-bjs-addELB-V3.txt

4.       点击“下一步”,看到如下界面,再次点击“下一步”。

5.       勾选“我确认,AWS CloudFormation可能创建IAM资源”。

6.       最后一步点击“创建”,自动生成如下所有资源。

当模板点击创建完成之后,您只需要上传服务器代码以及配置所需要的数据库引擎,比如MySQL。

如果用到其它AWS服务,比如Amazon S3存储、Amazon ElastiCache缓存服务,也基于此模板之上继续创建资源,本文将不再阐述。

注意:当应用进入到生产系统时,可以修改安全组和数据库路由指向,只让前端应用可以访问数据库,以“最小权限”为原则。

作者介绍:

毛郸榕

亚马逊AWS解决方案架构师,负责基于AWS的云计算方案架构的咨询和设计,同时致力于AWS云服务在国内的应用和推广,毕业于北京航空航天大学云计算专业,硕士,毕业后直接加入亚马逊AWS中国。在大规模后台架构、自动化运维等方面有着丰富的实践经验。目前在集中精力学习新一代无服务器架构设计。