亚马逊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一个好的开始。
模板主要解决的问题:
注:为节约成本,此模板所启用的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需要高可用,使用模板(支持中国区)
(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,复制以下地址(如果海外区也一样)
4. 点击“下一步”,看到如下界面,再次点击“下一步”。
5. 勾选“我确认,AWS CloudFormation可能创建IAM资源”。
6. 最后一步点击“创建”,自动生成如下所有资源。
当模板点击创建完成之后,您只需要上传服务器代码以及配置所需要的数据库引擎,比如MySQL。
如果用到其它AWS服务,比如Amazon S3存储、Amazon ElastiCache缓存服务,也基于此模板之上继续创建资源,本文将不再阐述。
注意:当应用进入到生产系统时,可以修改安全组和数据库路由指向,只让前端应用可以访问数据库,以“最小权限”为原则。
作者介绍:
毛郸榕
亚马逊AWS解决方案架构师,负责基于AWS的云计算方案架构的咨询和设计,同时致力于AWS云服务在国内的应用和推广,毕业于北京航空航天大学云计算专业,硕士,毕业后直接加入亚马逊AWS中国。在大规模后台架构、自动化运维等方面有着丰富的实践经验。目前在集中精力学习新一代无服务器架构设计。