我们用CloudFormation(执行版)创建一个VPC环境
大家好,
我是系统解决方案部SRE团队的冈崎。
上次,我想介绍一下“CloudFormation”的简单使用方法。
这次,我想根据上次填写的模板文件实际构建一个 VPC。
创建堆栈
首先,登录到您的开发服务器并注册将执行 CloudFormation 的用户的 API 密钥,如下所示。
[root@localhost ~]# aws configure AWS 访问密钥 ID [****************XXXX]: AWS 秘密访问密钥 [************ ****XXXX]:默认区域名称 [ap-northeast-1]:默认输出格式 [XXXX]:
如果您没有 aws 命令,请按如下方式安装。
[root@localhost ~]# yum install epel-release [root@localhost ~]# yum install python-pip [root@localhost ~]# pip install awscli
确认上次创建的vpc.yml存在后,我们立即使用以下命令构建VPC。
[root@localhost ~]# ls -l Total 4 -rw-r--r--.1 root root 1713 Mar 22 06:20 vpc.yml [root@localhost ~]# aws cloudformation create-stack \ > --堆栈名称 vpc \ > --region ap-northeast-1 \ > --template-body file://./vpc.yml
执行后,如果显示没有任何错误,则创建过程将继续进行,如下所示。
arn:aws:cloudformation:ap-northeast-1:189461266018:stack/vpc/7b29dce0-4c70-11e9-8b3c-0ee87e6fb924
您可以使用以下命令检查状态。
如果显示“CREATE_COMPLETE”,则资源已完成。
aws cloudformation 描述堆栈 --stack-name vpc STACKS 2019-03-28T02:12:32.683Z False False arn:aws:cloudformation:ap-northeast-1:189461266018:stack/vpc/f23007a0-50fe-11e9-88b0- 0e819627e6da vpc CREATE_COMPLETE DRIFTINFORMATION NOT_CHECKED 参数 PublicSubnetCider 10.31.0.0/24 参数 ProjectCode 测试参数 VPCCider 10.31.0.0/16
我们来检查一下各个资源是否构建完成。
具有指定标识符的 VPC 和子网已创建,没有任何问题。
删除资源
现在,我想删除我这次创建的所有资源。
如果您想手动删除资源,则需要转到每个资源屏幕并删除每个资源,但
可以从单个控制台删除使用 CloudFormation 创建的资源。
返回开发服务器并发出以下命令。
[root@localhost ~]# aws cloudformation delete-stack --stack-name vpc
现在,我们来检查删除的进度,
执行下面的命令,如果显示“DELETE_IN_PROGRESS”,则表示删除正在进行中。
[root@localhost ~]# aws cloudformation 描述堆栈 --stack-name vpc STACKS 2019-03-28T02:12:32.683Z 2019-03-28T02:20:53.902Z False False arn:aws:cloudformation:ap-northeast -1:189461266018:stack/vpc/f23007a0-50fe-11e9-88b0-0e819627e6da vpc DELETE_IN_PROGRESS DRIFTINFORMATION NOT_CHECKED 参数 PublicSubnetCider 10.31.0.0/24 参数 ProjectCode 测试参数 VPCCider 10.3 1.0 .0/16
堆栈删除完成后,将出现以下错误输出。
[root@localhost ~]# aws cloudformation describe-stacks --stack-name vpc 调用DescribeStacks 操作时发生错误 (ValidationError): id vpc 的堆栈不存在
现在,我们来检查一下删除是否真正完成。
我已经确认VPC已经消失。
解释
以下是每个命令的解释。
# aws cloudformation create-stack \ ↑ 声明使用 cloudformation 与 aws cloudformation 命令 create stack 和 create-stack,delete-stack 删除 > --stack-name vpc \ ↑ stack-name [name] 设置堆栈名称 > -- Region ap-northeast-1 \ ↑ --region [region] 设置要创建资源的区域 > --template-body file://./vpc.yml ↑ --template-body [文件 URL] 指定模板文件的 URL
这样,您就可以用最少的命令创建VPC。
除此之外,如果想改变上次设置的Parameters的值,可以这样写。
# aws cloudformation create-stack \ > --stack-name vpc \ > --region ap-northeast-1 \ > --template-body file://./vpc.yml > --parameters \ > ParameterKey=ProjectCode, ParameterValue=test-beyondjapan \ > ParameterKey=VPCCider,ParameterValue="10.23.0.0/16" \ > ParameterKey=PublicSubnetCider,ParameterValue="10.23.0.0/24"
您可以在parameters中声明各个参数的用途,并在ParameterKey中指定参数ID,在ParameterValue中指定参数值。
概括
这次,我们能够从控制台创建和删除堆栈和每个资源。
这样,您就可以使用CloudFormation轻松创建和删除AWS资源。
上一次和这次我们只讲了创建VPC,但下次我们会介绍创建EC2等实用内容,所以请也尝试使用它.