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

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

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

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

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

重要

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

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

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

先决条件

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

  • 默认 Amazon VPC

  • 所需的 IAM 权限。

所需IAM权限

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

AWS 托管策略

  • AWSCloudFormationReadOnlyAccess

  • AmazonDocDBFullAccess

其他 IAM 权限

以下策略概述了创建和删除此 AWS 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 权限。

亚马逊EC2密钥对

在要创建 AWS CloudFormation 堆栈的区域中,您必须有可用的密钥对(和PEM文件)。如果您需要创建密钥对,请参阅亚马逊EC2用户指南EC2中的使用亚马逊创建密钥对

启动亚马逊 Documen AWS CloudFormation tDB 堆栈

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

  1. 登录到 a AWS Management Console t https://console.aws.amazon.com/

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

    区域 查看模板 在 Designer 中查看 发布
    美国东部(俄亥俄州) 查看模板 在 Designer 中查看 Orange button labeled "Launch Stack" with an arrow icon.
    美国东部(弗吉尼亚州北部) 查看模板 在 Designer 中查看

    Orange button labeled "Launch Stack" with an arrow icon.

    美国西部(俄勒冈州)

    查看模板 在 Designer 中查看 Orange button labeled "Launch Stack" with an arrow icon.

    亚太地区(孟买)

    查看模板 在 Designer 中查看 Orange button labeled "Launch Stack" with an arrow icon.

    亚太地区(首尔)

    查看模板 在 Designer 中查看 Orange button labeled "Launch Stack" with an arrow icon.

    亚太地区(新加坡)

    查看模板 在 Designer 中查看 Orange button labeled "Launch Stack" with an arrow icon.

    亚太地区(悉尼)

    查看模板 在 Designer 中查看 Orange button labeled "Launch Stack" with an arrow icon.

    Asia Pacific (Tokyo)

    查看模板 在 Designer 中查看 Orange button labeled "Launch Stack" with an arrow icon.

    加拿大(中部)

    查看模板 在 Designer 中查看 Orange button labeled "Launch Stack" with an arrow icon.

    欧洲地区(法兰克福)

    查看模板 在 Designer 中查看 Orange button labeled "Launch Stack" with an arrow icon.

    欧洲地区(爱尔兰)

    查看模板 在 Designer 中查看 Orange button labeled "Launch Stack" with an arrow icon.

    欧洲地区(伦敦)

    查看模板 在 Designer 中查看 Orange button labeled "Launch Stack" with an arrow icon.

    欧洲地区(巴黎)

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

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

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

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

    2. 在控制台生成的 D AWS CloudFormation esigner 页面中,使用集成版JSON和YAML编辑器修改模板。滚动到 Resources 部分并修改它以包括 DeletionProtection,如下所示。有关使用 D AWS CloudFormation esigner 的更多信息,请参阅什么是 AWS 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 (创建堆栈) ( Cloud icon with arrow pointing to it, representing cloud upload or storage. ) 以保存更改并创建启用这些更改的堆栈。

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

    5. 选择下一步以继续。

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

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

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

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

        集群命名约束:

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

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

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

        • 每个区域的亚马逊RDS、Neptune 和 Amazon DocumentDB 的所有集群都必须是唯一 AWS 账户的。

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

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

        实例命名约束:

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

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

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

        • 每个区域的亚马逊RDS、Neptune 和 Amazon DocumentDB 上的所有实例都必须是唯一 AWS 账户的。

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

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

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

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

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

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

      注意

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

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

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

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

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

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

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

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

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

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

          注意

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

    选择下一步以继续。

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

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

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

访问亚马逊 DocumentDB 集群

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

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

终止保护和删除保护

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

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

  • 删除保护 —Amazon DocumentDB 还提供对集群启用删除保护的能力。如果用户试图删除启用了删除保护的 Amazon DocumentDB 集群,则删除失败,集群保持不变。启用删除保护后,可防止意外删除 Amazon DocumentDB AWS Management Console AWS CLI、和。 CloudFormation有关对 Amazon DocumentDB 集群启用和禁用删除保护的更过信息,请参阅 删除保护