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

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

亚马逊 DocumentDB 快速入门使用 Amazon CloudFormation

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

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

重要

此模板创建的 Amazon CloudFormation 堆栈会创建多个资源,包括 Amazon DocumentDB(例如,集群和实例)和亚马逊弹性计算云(例如,子网组)中的资源。

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

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

先决条件

在创建 Amazon DocumentDB 集群之前,您必须具备以下条件:

  • 默认 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 文件)。如果您需要创建密钥对,请参阅 Amazon EC2 用户指南中的使用 Amazon EC2 创建密钥对

启动 Amazon DocumentDB Amazon CloudFormation 堆栈

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

  1. 登录到 a Amazon Web Services Management Console t https://console.amazonaws.cn/

  2. 下表列出每个 Amazon Web Services 区域的 Amazon DocumentDB 堆栈模板。为 Amazon Web Services 区域 要启动堆栈的选择启动堆栈。

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

    美国西部(俄勒冈州)

    查看模板 在 Designer 中查看

    亚太地区(孟买)

    查看模板 在 Designer 中查看

    亚太地区(首尔)

    查看模板 在 Designer 中查看

    亚太地区(新加坡)

    查看模板 在 Designer 中查看

    亚太地区(悉尼)

    查看模板 在 Designer 中查看

    亚太地区(东京)

    查看模板 在 Designer 中查看

    加拿大(中部)

    查看模板 在 Designer 中查看

    欧洲地区(法兰克福)

    查看模板 在 Designer 中查看

    欧洲地区(爱尔兰)

    查看模板 在 Designer 中查看

    欧洲地区(伦敦)

    查看模板 在 Designer 中查看

    欧洲地区(巴黎)

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

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

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

    1. 从“创建堆栈”页面的右下角选择“设计器中查看”。

    2. 在控制台生成的 “ Amazon CloudFormation 设计器” 页面中,使用集成的 JSON 和 YAML 编辑器修改模板。滚动到 Resources 部分并修改它以包括 DeletionProtection,如下所示。有关使用 D Amazon CloudFormation esigner 的更多信息,请参阅什么是 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. 选择下一步以继续。

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

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

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

      • 数据库 ClusterName — 输入您的 Amazon DocumentDB 集群的名称或接受提供的名称。

        集群命名约束:

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

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

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

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

      • 数据库 InstanceClass — 从下拉列表中,为您的亚马逊文档数据库集群选择实例类。

      • 数据库 InstanceName — 输入您的 Amazon DocumentDB 实例的名称或接受提供的名称。

        实例命名约束:

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

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

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

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

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

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

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

  5. Configure stack options (配置堆栈选项) — 配置您堆栈的标签、权限和其他选项。

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

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

      注意

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

    • Advanced options (高级选项) — 您可以设置以下高级选项:

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

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

      • Rollback configuration (回滚配置) — 可选。指定要在创建和更新堆栈时监控的 CloudWatch 日志警报。 Amazon CloudFormation 如果操作突破了警报阈值,则将其回 Amazon CloudFormation 滚。

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

      • Stack creation options (堆栈创建选项) — 可选。可以指定以下选项:

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

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

        • Termination protection (终止保护) — 防止意外删除堆栈。

          注意

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

    选择下一步以继续。

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

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

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

访问 Amazon DocumentDB 集群

Amazon CloudFormation 堆栈完成后,您可以使用 Amazon EC2 实例连接到您的 Amazon DocumentDB 集群。有关使用 SSH 连接亚马逊 EC2 实例的信息,请参阅 A mazon EC2 用户指南中的连接到您的 Linux 实例

在连接之后,请参阅以下各节,其中包含有关使用 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 集群启用和禁用删除保护的更过信息,请参阅 删除保护