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

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

使用 Amazon CloudFormation 的 Amazon DocumentDB 快速入门

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

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

重要

通过该模板创建的 Amazon CloudFormation 堆栈创建了多种资源,包括 Amazon DocumentDB 中的资源(例如集群和实例)和 Amazon Elastic Compute Cloud 中的资源(例如,子网组)。

其中一些资源并非免费套餐资源。有关定价信息,请参阅 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 文件)。如果您需要创建建密钥对,请参阅《适用于 Linux 实例的 Amazon EC2 用户指南》中的使用 Amazon EC2 创建密钥对

启动 Amazon DocumentDB Amazon CloudFormation 堆栈

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

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

  2. 下表列出每个 Amazon Web Services 区域 的 Amazon DocumentDB 堆栈模板。为您要在其中启动堆栈的 Amazon Web Services 区域 选择 Launch Stack (启动堆栈)。

    区域 查看模板 在 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,如下所示。有关使用 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. 选择下一步以继续。

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

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

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

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

        集群命名约束:

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

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

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

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

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

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

        实例命名约束:

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

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

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

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

      • 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 连接到 Amazon EC2 实例的信息,请参阅《适用于 Linux 实例的 Amazon 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 集群启用和禁用删除保护的更过信息,请参阅 删除保护