AWS formation(自动配置AWS资源)

当开发使用AWS服务搭建起了一个webserver,如果我们要将该应用部署到其他可用区,我们就可以使用AWS formation服务完成快速申请配置AWS资源的操作。

通过加载S3上编辑好的配置模板,我们可以一直点击下一步即可配置好我们运行所需的基本资源(DynamoDB S3 EC2 SNS等)。

AWS CloudFormation 为您提供了一种通用语言(JSON)来描述和预配置您的云环境中的所有基础设施资源。CloudFormation 使您可以跨所有地区和账户使用简单的文本文件以自动化的安全方式为您的应用程序需要的所有资源建模并对其进行预配置。该文件是您的云环境的单一信任源。

文档地址:
https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html

AWS 的文档实在是太长了,所以举个申请S3 存储桶的配置介绍。S3的位置与使用Formation建立堆栈位置一致。

1 创建堆栈

1.1 从控制台进入AWS formation服务,左上角有一个创建堆栈

这里写图片描述

1.2 第二步选择将模板上传到S3

模板内容如下,将其存储为s3.template,这个模板只是单纯建立一个S3存储桶

{
    "AWSTemplateFormatVersion": "2010-09-09",
    "Resources": {
        "S3Bucket": {
            "Type": "AWS::S3::Bucket",
            "Properties": {
                "AccessControl": "Private",
                "BucketName":"formations3test123"
           }
        }
    }
}

关于各种资源配置链接:
https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket.html
点击第二项上传 下一步
这里写图片描述

1.3 输入相关信息

输入你堆栈的名字(显示在你控制台的中堆栈名字) 下一步
输入标签,即 你可以用标签来表示你堆栈中用了哪些资源,我们设置个S3标签来提醒s3的桶名。(其他暂时不选)下一步 审核没问题了 点击下一步。

1.4 查看运行状态

这里写图片描述
当看到控制台状态位create_complete时 说明资源已经创建完成了。
我们到S3控制台去看也可以看到相应的桶被建立了起来。

1.5 删除堆栈

如果你将堆栈删除 也将会删除堆栈申请的资源。

1.6 如果要配置其他资源

如果要同时配置S3和DynamoDB可以在Resources同级添加相应S3资源即可。
文中配置都是比较简单的配置,像DynamoDB的自动扩容和配置就很复杂,请参考官方文档实现。

DynamoDB配置:

{
    "AWSTemplateFormatVersion": "2010-09-09",
    "Resources": {
        "testtable" : {
                    "Type" : "AWS::DynamoDB::Table",
                    "Properties" : {
                        "AttributeDefinitions": [
                            {
                              "AttributeName": "userid",
                              "AttributeType": "S" },
                            {
                              "AttributeName": "_id",
                              "AttributeType": "S" }
                          ],
                          "TableName": "messages_helloworld",
                          "KeySchema": [
                            {
                              "AttributeName": "userid",
                              "KeyType": "HASH" },
                            {
                              "AttributeName": "_id",
                              "KeyType": "RANGE" }
                          ],
                          "ProvisionedThroughput": {
                            "ReadCapacityUnits": 10,
                            "WriteCapacityUnits": 10 }
                      }
                }
    }
}

猜你喜欢

转载自blog.csdn.net/m0_37263637/article/details/80695334
AWS