Amazon DocumentDB 快速入门使用Amazon CloudFormation - Amazon DocumentDB
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

Amazon DocumentDB 快速入门使用Amazon CloudFormation

此节包含使用以下步骤和其他信息,帮助您快速入门的 Amazon DocumentDB(兼容 MongoDB)。Amazon CloudFormation. 有关 Amazon DocumentDB 的一般信息,请参阅什么是 Amazon DocumentDB(与 MongoDB 兼容)

这些说明使用Amazon CloudFormation以在您的默认 Amazon VPC 中创建集群和实例。有关自行创建这些资源的说明,请参阅Amazon DocumentDB 入门

重要

这些区域有:Amazon CloudFormation通过该模板创建的堆栈创建了多个资源,包括中的资源(例如集群和实例)和 Amazon Elastic Compute Cloud(例如,子网组)。

其中一些资源并非免费套餐资源。有关定价信息,请参阅Amazon DocumentDB 定价Amazon EC2 定价. 在完成后,您可以删除堆栈以停止产生任何费用。

此 Amazon CloudFormation 堆栈仅用于教程目的。如果您将此模板用于生产环境,建议您使用更严格的 IAM 策略和安全性。有关保护资源的信息,请参阅Amazon VPC 安全性Amazon EC2 网络和安全性.

先决条件

在创建 Amazon DocumentDB(具有 MongoDB 兼容性)集群之前,您必须具有:

  • 默认 Amazon VPC

  • 所需的 IAM 权限

所需的 IAM 权限

以下权限允许您为 Amazon CloudFormation 堆栈创建资源:

Amazon管理的策略

  • AWSCloudFormationReadOnlyAccess

  • AmazonDocDBFullAccess

其他 IAM 权限

以下策略概述了创建和删除此 Amazon CloudFormation 堆栈所需的其他权限。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iam:GetSSHPublicKey", "iam:ListSSHPublicKeys", "iam:CreateRole", "iam:CreatePolicy", "iam:PutRolePolicy", "iam:CreateInstanceProfile", "iam:AddRoleToInstanceProfile", "iam:GetAccountSummary", "iam:ListAccountAliases", "iam:GetRole", "iam:DeleteRole", "iam:RemoveRoleFromInstanceProfile", "iam:DeleteRolePolicy", "iam:DeleteInstanceProfile", "cloudformation:*Stack", "ec2:DescribeKeyPairs", "ec2:*Vpc", "ec2:DescribeInternetGateways", "ec2:*InternetGateway", "ec2:createTags", "ec2:*VpcAttribute", "ec2:DescribeRouteTables", "ec2:*RouteTable", "ec2:*Subnet", "ec2:*SecurityGroup", "ec2:AuthorizeSecurityGroupIngress", "ec2:DescribeVpcEndpoints", "ec2:*VpcEndpoint", "ec2:*SubnetAttribute", "ec2:*Route", "ec2:*Instances", "ec2:DeleteVpcEndpoints" ], "Resource": "*" }, { "Sid": "iamPassRole", "Effect": "Allow", "Action": "iam:PassRole", "Resource": "*", "Condition": { "StringEquals": { "iam:PassedToService": "rds.amazonaws.com" } } } ] }
注意

上述策略中的加粗权限仅在删除堆栈时需要:iam:DeleteRoleiam:RemoveRoleFromInstanceProfileiam:DeleteRolePolicyiam:DeleteInstanceProfileec2:DeleteVpcEndpoints。另请注意,ec2:*Vpc 授予 ec2:DeleteVpc 权限。

Amazon EC2 密钥对

在您创建 Amazon CloudFormation 堆栈的区域中,您必须具有可用的密钥对(和 PEM 文件)。如果您需要创建 key pair,请参阅使用 Amazon EC2 创建密钥对中的适用于 Linux 实例的 Amazon EC2 用户指南.

启动 Amazon DocumentDBAmazon CloudFormation堆栈

本节介绍如何启动和配置 Amazon DocumentDBAmazon CloudFormation堆栈。

  1. https://console.amazonaws.cn/ 处登录 Amazon Web Services Management Console。

  2. 下表列出了每种堆栈模板的 Amazon DocumentDB 堆栈模板。Amazon Web Services 区域. 选择启动堆栈(对于 )Amazon Web Services 区域要在中启动堆栈。

    区域 查看模板 在 Designer 中查看 启动
    美国东部(俄亥俄) 查看模板 在 Designer 中查看
    美国东部(弗吉尼亚北部) 查看模板 在 Designer 中查看

    美国西部(俄勒冈)

    查看模板 在 Designer 中查看

    亚太地区(孟买)

    查看模板 在 Designer 中查看

    亚太地区(首尔)

    查看模板 在 Designer 中查看

    亚太地区(新加坡)

    查看模板 在 Designer 中查看

    亚太地区(悉尼)

    查看模板 在 Designer 中查看

    亚太地区(东京)

    查看模板 在 Designer 中查看

    加拿大(中部)

    查看模板 在 Designer 中查看

    欧洲(法兰克福)

    查看模板 在 Designer 中查看

    欧洲(爱尔兰)

    查看模板 在 Designer 中查看

    欧洲(伦敦)

    查看模板 在 Designer 中查看

    欧洲(巴黎)

    查看模板 在 Designer 中查看
  3. 创建堆栈— 描述您选择的 Amazon DocumentDB 模板。每个堆栈都基于一个模板(一个 JSON 或 YAML 文件)其中包含有关Amazon要包含在堆栈中的资源。由于您选择从上面提供的模板启动堆栈,因此您的模板已被配置为针对Amazon Web Services 区域你选择了。

    当你启动Amazon CloudFormation堆栈,删除保护对于 Amazon DocumentDB 集群,在默认情况下处于禁用状态。如果要为集群启用删除保护,请完成以下步骤。否则,请选择 Next (下一步) 以继续执行下一步。

    要为 Amazon DocumentDB 集群启用删除保护,请执行以下操作

    1. 选择在 Designer 中查看来自创建堆栈页.

    2. 在控制台生成的 Amazon CloudFormation 设计器页面中,使用集成的 JSON 和 YAML 编辑器修改模板。滚动到 Resources 部分并修改它以包括 DeletionProtection,如下所示。有关使用 Amazon CloudFormation 设计器的更多信息,请参阅什么是 Amazon CloudFormation 设计器?

      JSON:

      "Resources": { "DBCluster": { "Type": "AWS::DocDB::DBCluster", "DeletionPolicy": "Delete", "Properties": { "DBClusterIdentifier": { "Ref": "DBClusterName" }, "MasterUsername": { "Ref": "MasterUser" }, "MasterUserPassword": { "Ref": "MasterPassword" }, "DeletionProtection": "true" } },

      YAML:

      Resources: DBCluster: Type: 'AWS::DocDB::DBCluster' DeletionPolicy: Delete Properties: DBClusterIdentifier: !Ref DBClusterName MasterUsername: !Ref MasterUser MasterUserPassword: !Ref MasterPassword DeletionProtection: 'true'
    3. 从页面左上角选择 Create Stack (创建堆栈) ( ) 以保存更改并创建启用这些更改的堆栈。

    4. 保存更改后,您将被重定向到 Create stack (创建堆栈) 页面。

    5. 选择 Next(下一步)以继续。

  4. 指定堆栈信息— 输入模板的堆栈名称和参数。参数在模板中定义,并允许您在创建或更新堆栈时输入自定义值。

    • Stack name (堆栈名称) 下,输入堆栈的名称或接受提供的名称。堆栈名称可以包括字母(A-Z 和 a—z)、数字 (0—9) 和破折号 (—)。

    • Parameters (参数) 下,输入以下详细信息:

      • dbCluster 名称— 输入 Amazon DocumentDB 集群的名称或接受提供的名称。

        集群命名约束:

        • 长度为 [1-63] 个字母、数字或连字符。

        • 第一个字符必须是字母。

        • 不能以连字符结束或包含两个连续连字符。

        • 对于每个 Amazon RDS、Neptune 和 Amazon DocumentDB 中的所有集群必须是唯一的Amazon Web Services 账户每个区域的数字。

      • DBInstanceClass— 从下拉列表中,为 Amazon DocumentDB 集群选择实例类。

      • dbInstancName— 输入 Amazon DocumentDB 实例的名称或接受提供的名称。

        实例命名约束:

        • 长度为 [1-63] 个字母、数字或连字符。

        • 第一个字符必须是字母。

        • 不能以连字符结束或包含两个连续连字符。

        • 对于每个 Amazon RDS、Neptune 和 Amazon DocumentDB 中的所有实例必须是唯一的Amazon Web Services 账户每个区域的数字。

      • MasterPassword— 数据库管理员帐户密码。

      • MasterUser— 数据库管理员帐户的用户名。MasterUser 必须以字母开头,且只能包含字母数字字符。

    选择 Next (下一步) 以保存您的更改并继续。

  5. 配置堆栈选项— 配置堆栈的标签、权限和其他选项。

    • 标签— 指定要应用于堆栈中资源的标签(键值)对。您可以为每个堆栈添加最多 50 个唯一标签。

    • Permissions (权限)— 可选。选择 IAM 角色以明确定义如何Amazon CloudFormation可以在堆栈中创建、修改或删除资源。如果您不选择角色,Amazon CloudFormation 会根据您的用户凭证使用权限。在指定服务角色之前,请确保您具有传递该角色的权限 (iam:PassRole)。iam:PassRole 权限指定您可以使用哪些角色。

      注意

      在您指定服务角色后,Amazon CloudFormation 始终对在该堆栈上执行的所有操作使用该角色。拥有对此堆栈执行操作的权限的其他用户将可以使用该角色,即使他们无权传递该角色也是如此。如果该角色包含用户不应具有的权限,则您可能无意中提升了用户的权限。确保该角色授予最低权限

    • 高级选项— 您可以设置以下高级选项:

      • Stack policy (堆栈策略)— 可选。定义在堆栈更新期间要防止意外更新的资源。默认情况下,堆栈更新期间所有资源都可更新。

        您可以直接以 JSON 形式输入堆栈策略,也可以上传包含堆栈策略的 JSON 文件。有关更多信息,请参阅防止更新堆栈资源

      • 回滚配置— 可选。为的指定 CloudWatch Logs 警报Amazon CloudFormation以监控创建和更新堆栈的时间。如果操作违反警报阈值,Amazon CloudFormation 将其回滚。

      • 通知选项— 可选。指定简单通知系统 (SNS) 的主题。

      • 堆栈创建选项— 可选。可以指定以下选项:

        • Rollback on failure (失败时回滚)— 如果堆栈创建失败,是否应回滚堆栈。

        • 超时— 堆栈创建超时之前的分钟数。

        • 终止保护— 防止意外删除堆栈。

          注意

          Amazon CloudFormationAmazon DocumentDB 删除保护概念不同。有关更多信息,请参阅终止保护和删除保护

    选择 Next(下一步)以继续。

  6. 回顾 <stack-name>— 审核您的堆栈模板、详细信息和配置选项。您还可以在页面底部打开 quick-create link (快速创建链接),以创建与此页面具有相同基本配置的堆栈。

    • 选择 Create (创建) 以创建堆栈。

    • 或者,您也可以选择 Create change set (创建更改集)。更改集是对在创建堆栈之前如何配置此堆栈的预览。这允许您在执行更改集之前检查各种配置。

访问 Amazon DocumentDB 集群

一旦Amazon CloudFormation堆栈已完成,您可以使用 Amazon EC2 实例连接到您的 Amazon DocumentDB 集群。有关使用 SSH 连接到 Amazon EC2 实例的信息,请参阅连接到 Linux 实例中的适用于 Linux 实例的 Amazon EC2 用户指南.

连接后,请参阅以下各节,其中包含了有关使用 Amazon DocumentDB 的信息。

终止保护和删除保护

启用删除保护和终止保护是 Amazon DocumentDB 的最佳实践。CloudFormation 终止保护与 Amazon DocumentDB 删除保护功能截然不同。

  • 终止保护— 您可以通过为 CloudFormation 堆栈启用终止保护来防止堆栈被意外删除。如果用户尝试删除已为其启用终止保护的堆栈,则删除操作会失败,并且堆栈将保持不变。默认情况下,当您使用 CloudFormation 创建堆栈时,终止保护处于禁用状态。可在创建堆栈时对其启用终止保护。有关更多信息,请参阅设置 Amazon CloudFormation 堆栈选项

  • 删除保护Amazon DocumentDB 还提供了对集群启用删除保护的功能。如果用户尝试删除已为其启用删除保护的 Amazon DocumentDB 集群,则删除将失败,并且集群保持不变。启用删除保护时,可防止从 Amazon DocumentDB 意外删除。Amazon Web Services Management Console、Amazon CLI和 CloudFormation。有关为 Amazon DocumentDB 集群启用和禁用删除保护的更多信息,请参阅。删除保护.