AWS CloudFormation Get Started

CloudFormation 是AWS的一款管理服务,用来集中式快速地创建AWS配套资源。

概念


模板

CloudFormation 模板是一个文本文件,其格式符合 JSON 格式标准。您可使用任何扩展名(如.json.template.txt)保存这些文件。AWS CloudFormation 使用这些模板作为用于构建您的 AWS 资源的蓝图。

堆栈

在您使用 AWS CloudFormation 时,可将相关资源作为一个称为“堆栈”的单元进行管理。换句话说,您可通过创建、更新和删除堆栈来创建、更新和删除一系列资源。堆栈中的所有资源均由堆栈的 AWS CloudFormation 模板定义。

运行流程图


create-stack-diagram.png

特性


  1. 对待所有AWS服务为资源对象,都是可以聚合和配置的
  2. 可以添加初始化脚本,有一定的EC2内部操作能力

实践


我们来使用CloudFormation简单创建一个EC2,从一个超级简单的DEMO开始,一看就懂。

{
  "AWSTemplateFormatVersion" : "2010-09-09",
  "Description" : "Create a EC2",
  "Resources" : {
    "Instance1" : {
      "Type": "AWS::EC2::Instance",
      "Properties": {
        "ImageId" : "ami-2d39803a",
        "InstanceType": "t2.micro",
        "KeyName": "wow"
      }
    }
  }

针对不同的字段解释一下,

  • AWSTemplateFormatVersion(可选):模板格式版本, 规定了模板的格式,类似html的doctype。目前仅有一个版本可选,就是2010-09-09
  • Description(可选):关于该模板的描述,经实践无法输入中文,会在亚马逊网页描述中出现??这样的乱码。
  • Resources(必须):资源,声明堆栈需要的AWS资源,其构造模板一般有逻辑ID,资源类型, 资源属性组成。
    • 逻辑ID:逻辑 ID 必须为字母数字 (A-Za-z0-9),并且在模板中具有唯一性。比如上面的instance1
    • 资源类型(Type):资源类型标识您正在声明的资源的类型,比如上面声明需要一个EC2资源,AWS::EC2::Instance
    • 资源属性(Properties):声明资源相关的附加属性,比如上面我们为创建的EC2声明了需要的镜像ami-2d38703a,对应AWS官方的Ubutnu镜像。还有就是指定了instance的类型是t2.micro,和keypair的名字,不然这个instance就无法通过ssh登录了。

怎么使用呢

你可以通过AWS的面板一步步按照提示完成CloudFormation堆栈的创建,这里我暂时下如何通过AWS CLI创建堆栈

$ aws cloudformation create-stack --stack-name test --template-body file:///path-to-your-json

然后它会返回一个堆栈的ID回来

{
    "StackId": "arn:aws:cloudformation:us-east-1:363457891727:stack/test/5069cf50-586d-11e6-a89f-50d5cd26c2d2"
}

你可以通过查看是否有新增的实例被创建处理

aws ec2 describe-instances --query="Reservations[0].Instances[*].{InstanceId:InstanceId}"

最后,我们小小体验了下CloudFormation后,还需要把它销毁掉,以免意外计费

aws cloudformation delete-stack --stack-name="arn:aws:cloudformation:us-east-1:363457891727:stack/test/5069cf50-586d-11e6-a89f-50d5cd26c2d2"

这个不会返回个啥😉

最后给一个大一点的例子

官方给出的WordPress安装脚本, https://s3-external-1.amazonaws.com/cloudformation-templates-us-east-1/WordPress_Single_Instance.template

提示一下,这里面使用了一个AWS资源AWS::CloudFormation::Init,这个东西可以给Instance描述一些instance启动后配置和部署的信息元数据,这个需要一个cfn的软件扫描这些信息才能实现安装和部署,具体可以参照EC2资源属性里面的UserData字段。并且,这个软件不是所有的镜像AMI都自带,你可以看到这个CloudFormation脚本里面的镜像都是Amazon Linux,亚马逊定制过的Linux发行版。

总结


CloudFormation使用JSON的格式将AWS资源使用文本的形式描述,这样可以很方便的对AWS基础设施进行版本管理。但是由于JSON的天生问题,无法添加注释导致脚本很有可能非常难度,难以开发维护。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,456评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,370评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,337评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,583评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,596评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,572评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,936评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,595评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,850评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,601评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,685评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,371评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,951评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,934评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,167评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,636评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,411评论 2 342

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,585评论 18 139
  • https://aws.amazon.com/cn/s3/faqs/#sia_anchor Amazon Simp...
    守望者_1065阅读 8,211评论 0 5
  • 笔者作为AWS官方认证的早期通过者,已经拿到了AWS的助理级解决方案架构师、开发者认证,系统管理员认证。这几年也陆...
    无敌西瓜黄博文阅读 15,843评论 1 48
  • 曾以为要拿奖学金,要拿比赛奖项才是很棒的人。这是我在高中时对棒的定义。 但现在,上了大学,对棒的定义越来越宽容,越...
    汐情阅读 157评论 3 2
  • 感赏今天早上坚持进行晨跑,五点半醒来后,又眯了一会儿。六点的闹钟响了之后,很困,起不来,再继续睡。六点半还是用意志...
    旦子阅读 121评论 0 1