亚马逊AWS官方博客
Amazon DocumentDB 入门(兼容 MongoDB);第 1 部分 – 使用 Amazon EC2
Original URL: https://aws.amazon.com/blogs/database/part-1-getting-started-with-amazon-documentdb-using-amazon-ec2/
Amazon DocumentDB(兼容 MongoDB)是一款快速、可扩展、高度可用且完全托管的文档数据库服务,它支持 MongoDB 工作负载。在 Amazon DocumentDB 上,您可以使用相同的 MongoDB 3.6 应用程序代码、驱动程序和工具来运行、管理和扩展工作负载,无需关心管理底层基础设施。作为文档数据库,Amazon DocumentDB 可轻松存储、查询和索引 JSON 数据。
在本系列的第 1 部分中,本文将展示如何开始使用 Amazon DocumentDB。为此,您需要在默认 Amazon VPC 中创建一个 Amazon EC2 实例。有关创建默认 VPC 的说明,请参阅 Amazon VPC 入门。您还可以在同一默认 VPC 中,预置一个单实例 Amazon DocumentDB 集群。本文演示了如何从本地计算机 SSH 连接到 EC2 实例,以及如何使用 mongo shell 从 EC2 实例连接到集群。最后,您将学习如何对 Amazon DocumentDB 集群运行查询。完成此演练的成本不到 0.30 USD。 创建 AWS 资源时,建议您遵循AWS IAM 最佳实践。
下图显示了本演练的最终架构。
对于本演练,请使用给定区域中的默认 VPC。有关更多信息,请参阅创建 Virtual Private Cloud (VPC)。
创建两个安全组
第一步是在默认 VPC 中创建两个新的安全组。第一个安全组 (demoEC2) 允许您从本地计算机(客户端)通过 SSH 进入 EC2 实例。第二个安全组 (demoDocDB) 使您可以从EC2 实例通过端口27017(Amazon DocumentDB 的默认端口)连接到 Amazon DocumentDB 集群。请完成以下步骤:
- 在 Amazon EC2 控制台上,选择网络和安全性。
- 选择安全组。
- 选择创建安全组。 该页面提示您提供安全组名称和描述。
- 对于第一个安全组,对于安全组名称,输入demoEC2。
- 另外,还可以输入描述。
- 选择添加规则。
- 对于类型,选择SSH。端口范围将自动默认为 22。
- 对于源,选择我的 IP。 您只能从当前 IP 地址访问 demoEC2 安全组。如果您的 IP 地址更改,则必须更新安全组。
- 选择创建。 接下来,为您的 Amazon DocumentDB 集群创建第二个安全组,称为demoDocDB。
- 重复前面的步骤,执行以下更改:
- 选择创建。
创建一个 EC2 实例
下一步,在用于预置 Amazon DocumentDB 集群的同一区域和 VPC 中创建 EC2 实例。在默认 VCP 中创建 Amazon DocumentDB 集群。由于 Amazon DocumentDB 是仅针对 VPC 的服务,因此本文章演示了如何通过 SSH 进入 EC2 实例,以及如何使用 EC2 实例连接 Amazon DocumentDB 集群。请完成以下步骤:
- 在 Amazon EC2 控制台上,选择启动实例。
- 找到Amazon Linux 2 AMI,然后选择选择。
- 选择t2.micro 实例类型。
- 选择查看和启动。
- 在步骤 7:查看实例启动页面上,查看最终配置。 您还必须指定要使用刚创建的demoEC2 安全组。
- 选择编辑安全组。
- 选择选择现有安全组。
- 选择您的demoEC2组。
- 选择查看和启动。 如果选择了demoEC2 安全组,则会在此部分的底部看到添加的规则。请参见以下屏幕截图。
- 验证信息,然后选择启动。
- 在选择现有密钥对或创建新密钥对部分上,您必须提供一个 Amazon EC2 密钥对。 如果您没有 EC2 密钥对,请选择创建新密钥对,然后按照说明进行操作。您必须下载一个私钥文件(.pem 文件)。稍后在登录 EC2 实例时需要此文件。 。 如果您有 EC2 密钥对,请在选择密钥对下,从列表中选择您的密钥对。您必须已拥有可登录到 EC2 实例的私钥文件(.pem 文件)。
- 选择启动实例。
创建一个 Amazon DocumentDB 集群
在预置 EC2 实例时,启动 Amazon DocumentDB 集群。请完成以下步骤:
- 在 Amazon DocumentDB 控制台上的集群下,选择创建。
- 在创建 Amazon DocumentDB集群页面上,为实例数选择1。
这有助于最大程度地降低成本。 - 将其他设置保留为默认设置。
- 在身份验证部分中,输入用户名和密码。
您可以在稍后的步骤中,使用该用户名和密码对集群进行身份验证。 - 打开显示高级设置。
- 在网络设置部分中,对于VPC 安全组,选择 demoDocDB。
- 选择创建集群。 Amazon DocumentDB 现正在预置您的集群,完成此操作可能需要几分钟。当集群和实例状态均显示为可用时,可以连接到集群。当 Amazon DocumentDB 设置集群时,请完成剩余步骤,以连接到 Amazon DocumentDB 集群。
连接到 EC2 实例
要安装 mongo shell,您必须首先连接到 EC2 实例。安装 mongo Shell 后,您可以连接并查询 Amazon DocumentDB 集群。请完成以下步骤:
- 在 Amazon EC2 控制台上,选择创建的实例。 如果实例状态为运行,现在可以连接实例并安装 mongo shell。
- 选择连接。 连接方法有三个选项:
- 独立 SSH 客户端
- Session Manager
- EC2 实例连接(基于浏览器的SSH 连接)
本文涵盖了 EC2 实例连接和独立 SSH 客户端。EC2 实例连接是最快、通常也是最直接的选择,因为您可以通过单击基于浏览器的 SSH 连接按钮连接到 EC2 实例。如果要使用本地计算机上的 Terminal 或 PuTTY 等 SSH 客户端连接到集群,则独立 SSH 客户端是一个不错的选择。
如果您在开始本演练后更改了 IP 地址,或者稍后又回到您的操作环境,则必须更新 demoEC2 安全组入站规则,才能启用来自新 API 地址的入站流量。
EC2 实例连接
要使用基于浏览器的 SSH 连接连接到 EC2 实例,请完成以下步骤:
- 在连接到您的实例部分的连接方法中,选择EC2 实例连接(基于浏览器的 SSH 连接)。用户名将默认为“ec2-user”。
- 选择连接。
系统将打开一个命令行提示符,您可以通过它运行命令。请参见以下屏幕截图。 继续执行安装 mongo shell的步骤。
独立 SSH 客户端
要连接到独立 SSH 客户端的默认连接方法,请完成以下步骤:
- 在连接到您的实例部分的连接方法中,选择独立 SSH 客户端。
- 选择连接。
- 在连接到您的实例部分中,复制示例连接字符串。 如果您使用 macOS 作为本地计算机,请打开终端,并使用示例连接字符串连接到您的 EC2 实例。此步骤根据您的本地计算机使用方式而有所不同。有关更多信息,请参见使用 SSH 连接到您的 Linux 实例。选择连接时,必须确保下载的或较早选择的 .pem 文件具有正确的权限。对于本演练,将 .pem 文件命名为pem。以下屏幕截图显示了 EC2 实例的 .pem 以及如何在 EC2 实例上设置正确的权限。 首次连接到 EC2 实例时,必须验证主机的真实性。
- 如果一切正确,请输入yes。 现在您应该已连接到与 Amazon DocumentDB 集群位于同一区域和 VPC 中的 EC2 实例。请参见以下屏幕截图。 继续进行下一步。
安装 mongo shell
现在您可以安装 mongo shell,这是一个命令行实用工具,可用于连接和查询 Amazon DocumentDB 集群。
要在 Amazon Linux 上安装 mongo shell,请完成以下步骤。
- 创建存储库文件。在 EC2 实例的命令行上,执行以下命令:
完成后,通过执行以下命令安装mongo shell:
所有新的 Amazon DocumentDB 集群默认启用传输层安全性 (TLS)。有关更多信息,请参阅管理Amazon DocumentDB 集群 TLS设置。
- 要加密传输中的数据,请下载 Amazon DocumentDB 的 CA 证书。请参见以下代码:
现在您可以连接到 Amazon DocumentDB 集群。
连接到您的 Amazon DocumentDB 集群
- 在 Amazon Document DB 控制台上的集群下,找到您的集群。 本文使用集群docdb-2020-02-08-14-15-11。
- 选择您创建的集群。
- 复制提供的连接字符串。 省略<insertYourPassword>,以便在连接时由 mongo shell 提示您输入密码。这样就不必以明文形式输入密码。 您的连接字符串应类似于以下代码:
如果输入密码后看到 rs0:PRIMARY>提示,说明您已成功连接到 Amazon DocumentDB 集群。有关故障排除的信息,请参见Amazon DocumentDB 故障排除。
插入和查询数据
现在,您已连接到集群,您可以运行一些查询以熟悉文档数据库的使用。
要插入单个文档,请输入以下代码:
您将获得以下输出:
您可以阅读用 findOne() 命令编写的文档(因为它只返回一个文档)。请参见以下代码:
您将获得以下输出:
要执行更多查询,请考虑游戏配置文件用例。首先,将一些条目插入到名为配置文件的集合中。请参见以下代码:
您将获得以下输出:
使用 find() 命令返回个配置文件集合中的所有文档。请参见以下代码:
您将获得以下输出:
使用筛选器对单个文档进行查询。请参见以下代码:
您将获得以下输出:
游戏中的一个常见用例是查找给定用户的配置文件,并在该用户的配置文件中增加某个值。在此场景中,您希望为最活跃的游戏玩家提升技能属性。如果玩家填写了一份调查问卷,则您会把他们的得分提高 10 分。为此,请使用 findAndModify 命令。在此用例中,用户 Tim 收到并完成了调查。要给 Tim 奖励积分,请输入以下代码:
您将获得以下输出:
您可以使用以下查询来验证结果:
您将获得以下输出:
现在,您可以继续插入和查询数据。
清理
完成演练后,您可以停用 Amazon DocumentDB 集群,和停用 EC2 实例以降低成本,或者删除资源。有关更多信息,请参阅删除 Amazon DocumentDB 集群和终止实例。
小结
本文向您展示了 Amazon DocumentDB 的入门操作,包括创建 EC2 实例、安装 mongo shell、创建 Amazon DocumentDB 集群、连接到集群以及通过执行一些查询在 Amazon DocumentDB 内部轻松插入和查询 JSON 文档。有关更多信息,请参阅 Amazon DocumentDB 的提升(兼容 MongoDB)。有关最新发布和博文的更多信息,请参阅 Amazon DocumentDB(兼容 MongoDB)资源。本系列的下一篇博文展示使用 AWS Cloud9 的 Amazon DocumentDB 入门操作。