Amazon DocumentDB使用 的 快速入门AWS CloudFormation
本部分包含有助于您快速开始使用 Amazon DocumentDB(与 MongoDB 兼容) 使用 AWS CloudFormation. 有关 Amazon DocumentDB,参见 什么是 Amazon DocumentDB(与 MongoDB 兼容)
这些说明使用 AWS CloudFormation 在默认情况下创建群集和实例的模板 Amazon VPC. 有关自行创建这些资源的说明,请参阅Amazon DocumentDB 入门.
重要
TheThethe AWS CloudFormation 由此模板创建的堆栈创建多个资源,包括 Amazon DocumentDB (例如,群集和实例)和 Amazon Elastic Compute Cloud (例如,子网组)。
其中一些资源并非免费套餐资源。有关定价信息,请参阅 Amazon DocumentDB 定价 和 Amazon EC2 定价. 在完成后,您可以删除堆栈以停止产生任何费用。
此 AWS CloudFormation 堆栈仅用于教程目的。如果您将此模板用于生产环境,建议您使用更严格的 IAM 策略和安全性。有关保护资源的信息,请参阅 Amazon VPC 安全 和 Amazon EC2 网络和安全.
Prerequisites
在创建 Amazon DocumentDB(与 MongoDB 兼容)集群之前,您必须具有:
一个默认 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:PassRole",
"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": "*"
}
]
}
注意
前面策略中的粗体权限仅需要删除堆栈: iam:DeleteRole
, iam:RemoveRoleFromInstanceProfile
, iam:DeleteRolePolicy
, iam:DeleteInstanceProfile
,和 ec2:DeleteVpcEndpoints
…另请注意 ec2:*Vpc
津贴 ec2:DeleteVpc
权限。
Amazon EC2 Key Pair
在您创建 AWS CloudFormation 堆栈的区域中,您必须具有可用的密钥对(和 PEM 文件)。如果需要创建密钥对,请参阅 使用 Amazon EC2 在 Amazon EC2 用户指南(适用于 Linux 实例).
启动 Amazon DocumentDB AWS CloudFormation 堆栈
本节介绍如何启动和配置 Amazon DocumentDB AWS CloudFormation 堆栈。
在 AWS 管理控制台 登录 。https://console.aws.amazon.com/.
下表列出了每个 AWS 区域的 Amazon DocumentDB 堆栈模板。选择 启动堆栈 对于要在中启动堆栈的AWS区域。
Region 视图 模板 在 Designer 中查看 启动 美国东部(俄亥俄州) 视图 模板 在 Designer 中查看 美国东部(弗吉尼亚北部) 视图 模板 在 Designer 中查看 美国西部(俄勒冈)
视图 模板 在 Designer 中查看 亚太地区(孟买)
视图 模板 在 Designer 中查看 亚太区域(首尔)
视图 模板 在 Designer 中查看 亚太区域(新加坡)
视图 模板 在 Designer 中查看 亚太区域(悉尼)
视图 模板 在 Designer 中查看 亚太区域(东京)
视图 模板 在 Designer 中查看 加拿大 (中部)
视图 模板 在 Designer 中查看 欧洲(法兰克福)
视图 模板 在 Designer 中查看 欧洲(爱尔兰)
视图 模板 在 Designer 中查看 欧洲(伦敦)
视图 模板 在 Designer 中查看 欧洲(巴黎)
视图 模板 在 Designer 中查看 创建堆栈 — 描述 Amazon DocumentDB 您选择的模板。每个堆栈都基于模板 — JSON或YAML文件 — 包含要在堆栈中包含的AWS资源的配置。由于您选择从上面提供的模板启动堆栈,因此您的模板已被配置为针对您选择的 AWS 区域创建 Amazon DocumentDB 堆栈。
当您启动 AWS CloudFormation 堆栈, 删除保护 对于您的 Amazon DocumentDB 默认情况下,群集处于禁用状态。如果要为集群启用删除保护,请完成以下步骤。否则,请选择 下一步 继续下一步。
要为 Amazon DocumentDB 集群启用删除保护,请执行以下操作:
选择 在设计器中查看 从右下角的 创建堆栈 第页。
在控制台生成的 AWS CloudFormation 设计器页面中,使用集成的 JSON 和 YAML 编辑器修改模板。滚动到
Resources
并将其修改为DeletionProtection
,如下所示。有关使用 AWS CloudFormation 设计师,参见 什么是 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'
选择 创建堆栈 ( )从页面左上角保存更改并创建一个已启用这些更改的堆栈。
保存更改后,将重定向到 创建堆栈 第页。
选择 下一步 继续。
指定堆栈详细信息 — 输入模板的堆栈名称和参数。参数在模板中定义,并允许您在创建或更新堆栈时输入自定义值。
下方 堆栈名称,输入您的堆栈名称或接受提供的名称。堆栈名称可以包括字母(A—Z和A—z)、数字(0—9)和破折号(—)。
下方 参数,输入以下详情:
DB群集名称 — 为您的 Amazon DocumentDB 群集或接受提供的名称。
集群命名约束:
长度为 [1—63] 个字母、数字或连字符。
第一个字符必须是字母。
不能以连字符结束或包含两个连续连字符
对于所有群集都必须是唯一的 Amazon RDS, Neptune,和 Amazon DocumentDB PERAWS账户,每个地区。
DBInstancEclass — 从下拉列表中选择您的 Amazon DocumentDB 群集。
DBInstancEname — 为您的 Amazon DocumentDB 实例或接受提供的名称。
实例命名约束:
长度为 [1—63] 个字母、数字或连字符。
第一个字符必须是字母。
不能以连字符结束或包含两个连续连字符
对于所有实例,必须是唯一的 Amazon RDS, Neptune,和 Amazon DocumentDB PERAWS账户,每个地区。
主密码 — 数据库管理员帐户密码。
主用户 — 数据库管理员帐户用户名。MasterUser 必须以字母开头,且只能包含字母数字字符。
选择 **下一步** 保存您的更改并继续。
配置堆栈选项 — 配置堆栈的标记、权限和其他选项。
标签 — 指定标记(key-value)对,应用于您的堆栈中的资源。您可以为每个堆栈添加最多 50 个唯一标签。
权限 — 可选。选择 IAM 明确定义方式的角色 AWS CloudFormation 可以在堆栈中创建、修改或删除资源。如果您不选择角色,AWS CloudFormation 会根据您的用户凭证使用权限。在指定服务角色之前,请确保您具有传递该角色的权限 (
iam:PassRole
). TheThetheiam:PassRole
权限指定您可以使用哪个角色。注意
在您指定服务角色后,AWS CloudFormation 始终对在该堆栈上执行的所有操作使用该角色。拥有对此堆栈执行操作的权限的其他用户将可以使用该角色,即使他们无权传递该角色也是如此。如果该角色包含用户不应具有的权限,则您可能无意中提升了用户的权限。确保角色授予 最低权限。.
高级选项 — 您可以设置以下高级选项:
堆栈策略 — 可选。定义在堆栈更新期间要防止意外更新的资源。默认情况下,堆栈更新期间所有资源都可更新。
您可以直接以 JSON 形式输入堆栈策略,也可以上传包含堆栈策略的 JSON 文件。有关详细信息,请参阅 防止更新堆栈资源.
回滚配置 — 可选。指定 CloudWatch Logs 警报 AWS CloudFormation 创建和更新堆栈时要监控的内容。如果操作违反警报阈值,AWS CloudFormation 将其回滚。
通知选项 — 可选。指定简单通知系统 (SNS) 的主题。
堆栈创建选项 — 可选。可以指定以下选项:
故障回滚 — 如果堆栈创建失败,是否应该回滚堆栈。
超时 —堆栈创建之前的分钟数。
终止保护 — 防止堆栈意外删除。
注意
AWS CloudFormation 终止保护与 Amazon DocumentDB 的删除保护概念不同。有关更多信息,请参阅 终止保护和删除保护.
选择 **下一步** 继续。
查看<stack-name> — 查看您的堆栈模板、详细信息和配置选项。您也可以打开 快速创建链接 在页面底部,创建与此一个基本配置相同的堆栈。
选择 创建 创建堆栈。
或者,您可以选择 创建更改集. 更改集是对在创建堆栈之前如何配置此堆栈的预览。这允许您在执行更改集之前检查各种配置。
访问 Amazon DocumentDB 集群
一旦 AWS CloudFormation 堆栈已完成,您可以使用 Amazon EC2 与您的 Amazon DocumentDB 群集。有关连接到AN的信息 Amazon EC2 使用SSH的实例,请参阅 连接到Linux实例 在 Amazon EC2 用户指南(适用于 Linux 实例).
在连接之后,请参阅以下各节,其中包含有关使用 的信息。Amazon DocumentDB.
终止保护和删除保护
启用删除保护和终止保护是 Amazon DocumentDB 最佳做法。CloudFormation 终止保护与 Amazon DocumentDB 删除保护功能截然不同。
终止保护 — 您可以通过启用CloudFormation堆栈的终止保护来防止堆栈被意外删除。如果用户尝试删除已为其启用终止保护的堆栈,则删除操作会失败,并且堆栈将保持不变。默认情况下,当您使用 CloudFormation 创建堆栈时,终止保护处于禁用状态。可在创建堆栈时对其启用终止保护。有关详细信息,请参阅 设置 AWS CloudFormation 堆栈选项.
删除保护 — Amazon DocumentDB 还可以为群集启用删除保护。如果用户尝试删除已启用删除保护的 Amazon DocumentDB 集群,则删除将失败,并且集群保持不变。删除保护,启用时,防止意外删除从 Amazon DocumentDB AWS 管理控制台, AWS CLI和CloudFormation。有关为 Amazon DocumentDB 集群启用和禁用删除保护的更多信息,请参阅。删除保护.