手动连接 Amazon EC2 - Amazon DocumentDB

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

手动连接 Amazon EC2

下面的步骤假定您已经完成 先决条件 主题中的步骤。

步骤 1:创建 Amazon EC2 实例

在这个步骤,您将在同一区域和 Amazon VPC 中创建一个 Amazon EC2 实例,稍后您将使用这个实例配置您的 Amazon DocumentDB 集群。

  1. 从 Amazon EC2 控制台控制中,选择启动实例

    Amazon EC2 控制台上的“启动实例”部分。
  2. 名称和标签部分的名称字段中,输入名称或标识符。

  3. 亚马逊机器映像 (AMI) 下拉列表中,找到并选中 Amazon Linux 2 AMI

    “应用程序和操作系统映像”界面,已在“快速入门”部分中选择 Amazon Linux 2 AMI 选项。
  4. 实例类型下拉列表中,找到并选中 t3.micro

  5. 密钥对(登录)部分,输入现有密钥对的标识符,或选择新建密钥对

    显示“密钥对名称”字段和“创建新密钥对”选项的“密钥对”界面。

    您必须提供 Amazon EC2 密钥对。

    如果您的确有 Amazon EC2 密钥对:

    1. 选定一个密钥对,从列表中选择您的密钥对。

    2. 您必须有可用的私有密钥文件(.pem 或 .ppk 文件)才能登录 Amazon EC2 实例。

    如果您没有 Amazon EC2 密钥对:

    1. 选择新建密钥对,随后出现创建密钥对对话框。

    2. 密钥对名称字段中输入名称。

    3. 选择密钥对类型私有密钥文件格式

    4. 选择 Create key pair (创建密钥对)

    “创建密钥对”界面包含密钥对名称、类型和文件格式等字段。“创建密钥对”按钮位于右下角。
    注意

    为安全起见,我们强烈建议使用密钥对进行 EC2 实例的 SSH 和互联网连接。

  6. 网络设置部分防火墙(安全组)下,选择创建安全组选择现有安全组

    “网络设置”界面,其中显示了用于创建安全组的选项。

    如果选择现有安全组,请从通用安全组下拉列表中选择一个安全组。

    如果选择创建新的安全组,请执行以下操作:

    1. 查看所有适用于 EC2 连接的流量允许规则。

    2. 在 IP 字段中,选择我的 IP 或选择自定义,以便从 CIDR 数据块、前缀列表或安全组列表中进行选择。除非 EC2 实例位于隔离网络上,否则我们不建议使用任何地方选项,因为它允许任何 IP 地址访问 EC2 实例。

    “我的 IP”下拉列表。
  7. 摘要部分中,查看 EC2 配置,如果配置正确,选择启动实例

步骤 2:创建安全组

现在,您将在您的默认 Amazon VPC 中创建一个新安全组。该安全组demoDocDB使您能够在端口 27017( Amazon DocumentDB 的默认端口)上从 Amazon EC2 实例连接到您的 Amazon DocumentDB 集群。

  1. Amazon EC2 管理控制台上,网络和安全下,选择安全组

    Amazon DocumentDB 控制台导航窗格,在“网络和安全”下拉列表中选择了“安全组”选项。
  2. 选择 Create security group(创建安全组)。

    “创建安全组”按钮。
  3. 基本详细信息部分:

    1. 对于安全组名称,输入 demoDocDB

    2. 对于说明,输入说明。

    3. 对于 VPC,请接受使用您的默认 VPC。

  4. 入站规则部分中,选择添加规则

    1. 对于类型,请选择自定义 TCP 规则(默认值)。

    2. 对于端口范围,输入 27017

    3. 对于 Source,选择 Custom。在与其紧邻的字段中,搜索您刚才在步骤 1 中创建的安全组。您可能需要刷新浏览器以便 Amazon EC2 控制台自动填充 来源名称。

    “入站规则”部分显示了类型、协议、端口范围、来源和描述等字段。“添加规则”按钮位于左下角。
  5. 接受所有其他默认值并选择创建安全组

    “创建安全组”按钮。

步骤 3:创建 Amazon DocumentDB 集群

正在预配置 Amazon EC2 实例的同时,您将创建自己的 Amazon DocumentDB 集群。

  1. 导航至 Amazon DocumentDB 控制台并且从导航窗格中选择集群

  2. 选择创建

  3. 集群类型设置保留为默认的基于实例的集群

  4. 集群配置中,对于集群标识符,请输入唯一名称。请注意,无论如何输入,控制台都会将所有集群的名称更改为小写。

    引擎版本保留为默认值 5.0.0

  5. 对于集群存储配置,请保留 Amazon DocumentDB 标准的默认设置。

  6. 实例配置中:

    • 对于数据库实例类,选择内存优化类(包括 r 类)(这是默认值)。

      另一个实例选项是 NVMe 支持的类。要了解更多信息,请参阅NVMe 支持的实例

    • 对于实例类,请选择符合您需求的实例类型。有关实例类的更详细说明,请参阅 实例类规格

    • 对于实例数量,请选择最能反映您的需求的数量。请记住,数量越低,成本越低,集群可以管理的读/写量也越低。

    “配置”界面,其中包含集群标识符、引擎版本和实例类的默认值,并且实例数量设置为 1。
  7. 对于连接,保留默认设置:不连接到 EC2 计算资源

    注意

    连接到 EC2 计算资源时会自动为您的集群连接创建安全组。由于您已经在上一步中手动创建了这些安全组,因此应选择不连接到 EC2 计算资源,以免创建第二组安全组。

  8. 身份验证部分中,输入主要用户的用户名,然后选择自行管理。输入密码,然后确认密码。

    如果您改为选择了在 AWS Secrets Manager 中管理,请参阅 使用 Amazon DocumentDB 进行密码管理以及 AWS Secrets Manager 以了解更多信息。

  9. 选择创建集群

第 4 步:配置 Amazon EC2 实例

连接到您的 Amazon EC2 实例将允许您安装 MongoDB Shell。安装 Mongo Shell 使您能够连接到并查询您的 Amazon DocumentDB 集群。完成以下步骤:

  1. 在 Amazon EC2 控制台上,导航到您的实例并且查看您刚才创建的实例是否正在运行。如果是,请单击实例 ID 选择实例。

    实例表列出了 Amazon EC2 控制台上的两个实例。
  2. 选择连接

    Amazon EC2 实例的实例摘要。“连接”按钮位于右上角。
  3. 连接方法有四个选项卡选项:Amazon EC2 Instance Connect、会话管理器、SSH 客户端或 EC2 Serial Console。您必须选择一个选项并遵循其说明。完成后,选择连接

    显示 EC2 Instance Connect 连接方法配置选项的界面。
注意

如果您开始这次演练后自己的 IP 地址发生变化,或者您稍后正要返回您的环境,则必须更新您的 demoEC2 安全组入站规则,以启用来自新 API 地址的入站流量。

步骤 5:安装 MongoDB Shell

您现在可以安装 MongoDB Shell,它是一个命令行实用程序,用于连接和查询 Amazon DocumentDB 集群。目前有两个版本的 MongoDB Shell:最新版本 mongosh 和先前版本 mongo Shell。

重要

低于版本 6.13.1 的 Node.js 驱动程序存在已知限制,Amazon DocumentDB 目前不支持用这种驱动程序进行 IAM 身份验证。必须升级 Node.js 驱动程序以及使用 Node.js 驱动程序的工具(例如 mongosh),以使用 Node.js 驱动程序版本 6.13.1 或更高版本。

遵循以下说明为您的操作系统安装 MongoDB Shell。

On Amazon Linux

在 Amazon Linux 上安装 MongoDB Shell

如果您使用 IAM,并且想要使用最新的 MongoDB Shell(mongosh)连接到您的 Amazon DocumentDB 集群,请按照以下步骤操作:

  1. 创建存储库文件。在您创建的 EC2 实例的命令行中,执行以下命令:

    echo -e "[mongodb-org-5.0] \nname=MongoDB Repository\nbaseurl=https://repo.mongodb.org/yum/amazon/2023/mongodb-org/5.0/x86_64/\ngpgcheck=1 \nenabled=1 \ngpgkey=https://pgp.mongodb.com/server-5.0.asc" | sudo tee /etc/yum.repos.d/mongodb-org-5.0.repo
  2. 完成后,在命令提示符处使用以下两个命令选项之一安装 mongosh:

    选项 1 – 如果您在 Amazon EC2 配置期间选择了默认的 Amazon Linux 2023,请输入以下命令:

    sudo yum install -y mongodb-mongosh-shared-openssl3

    选项 2 – 如果您在 Amazon EC2 配置期间选择了 Amazon Linux 2,请输入以下命令:

    sudo yum install -y mongodb-mongosh

如果您使用的是 IAM,则必须使用先前版本的 MongoDB Shell(5.0)连接到您的 Amazon DocumentDB 集群,请按照以下步骤操作:

  1. 创建存储库文件。在您创建的 EC2 实例的命令行中,执行以下命令:

    echo -e "[mongodb-org-5.0] \nname=MongoDB Repository\nbaseurl=https://repo.mongodb.org/yum/amazon/2023/mongodb-org/5.0/x86_64/\ngpgcheck=1 \nenabled=1 \ngpgkey=https://pgp.mongodb.com/server-5.0.asc" | sudo tee /etc/yum.repos.d/mongodb-org-5.0.repo
  2. 完成后,在命令提示符处使用以下命令选项安装 mongodb 5.0 Shell:

    sudo yum install -y mongodb-org-shell
On Ubuntu
在 Ubuntu 上安装 mongosh
  1. 导入包管理系统将使用的公有密钥。

    curl -fsSL https://pgp.mongodb.com/server-5.0.asc | sudo gpg --dearmor -o /usr/share/keyrings/mongodb-server-5.0.gpg
  2. 使用适合您的 Ubuntu 版本的命令创建用于 MongoDB 的列表文件 mongodb-org-5.0.list

    echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-5.0.gpg ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/5.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-5.0.list
  3. 使用以下命令导入并更新本地程序包数据库:

    sudo apt-get update
  4. 安装 mongosh。

    sudo apt-get install -y mongodb-mongosh

有关在您的 Ubuntu 系统上安装早期版本的 MongoDB 的信息,请参阅在 Ubuntu 中安装 MongoDB Community Edition

On other operating systems

要在其他操作系统上安装 mongo Shell,请参阅 MongoDB 文档中的安装 MongoDB Community Edition

步骤 6:管理 Amazon DocumentDB TLS

用以下代码下载 Amazon DocumentDB 的 CA 证书:wget https://truststore.pki.rds.amazonaws.com/global/global-bundle.pem

注意

传输层安全性协议 (TLS)默认对所有新的 Amazon DocumentDB 集群启用。有关更多信息,请参阅管理 Amazon DocumentDB Cluster TLS 设置

步骤 7:连接到 Amazon DocumentDB 集群

  1. 在 Amazon DocumentDB 数据库控制台上的集群下,定位您的集群。通过单击该集群的集群标识符,选择您创建的集群。

    Amazon DocumentDB 集群列表显示了包含主实例详细信息的区域集群。
  2. 连接和安全选项卡中,在连接方框中找到使用 mongo Shell 连接到此集群

    集群连接设置,突出显示的 MongoDB 连接字符串用于使用 mongo Shell 连接到 Amazon DocumentDB 集群。

    复制所提供的连接字符串,并将其粘贴到您的终端中。

    对其进行以下更改:

    1. 确保字符串中的用户名正确。

    2. 省略 <insertYourPassword> 从而 mongo Shell 在您连接时提示您输入密码。

    3. 可选:如果您使用的是 IAM 身份验证,或者使用的是先前版本的 MongoDB Shell,请按以下方式修改您的连接字符串:

      mongo --ssl --host mydocdbcluster.cluster-cozt4xr9xv9b.us-east-1.docdb.amazonaws.com:27017 --sslCAFile global-bundle.pem --username SampleUser1 --password

      mydocdbcluster.cluster-cozt4xr9xv9b.us-east-1 替换为您的集群中的相同信息。

  3. 在您的终端中按回车。现在,系统将提示您输入密码。输入您的密码。

  4. 当输入密码并可以看到 rs0 [direct: primary] <env-name>> 提示时,您已成功连接到您的 Amazon DocumentDB 集群。

连接时遇到问题? 参见 Amazon DocumentDB 故障排除

步骤 8:插入和查询数据

现在,您已连接到自己的集群,您可以运行几个查询来熟悉如何使用文档数据库。

  1. 要插入单个文档,请输入以下内容:

    db.collection.insertOne({"hello":"DocumentDB"})

    您会得到以下输出:

    { acknowledged: true, insertedId: ObjectId('673657216bdf6258466b128c') }
  2. 您可以读取您用 findOne() 命令编写过的文档(因为它只返回单个文档)。输入以下:

    db.collection.findOne()

    您会得到以下输出:

    { "_id" : ObjectId("5e401fe56056fda7321fbd67"), "hello" : "DocumentDB" }
  3. 要执行若干更多查询,请考虑游戏个人资料用例。首先,将几个条目插入标题为 profiles 的集合。输入以下:

    db.profiles.insertMany([{ _id: 1, name: 'Matt', status: 'active', level: 12, score: 202 }, { _id: 2, name: 'Frank', status: 'inactive', level: 2, score: 9 }, { _id: 3, name: 'Karen', status: 'active', level: 7, score: 87 }, { _id: 4, name: 'Katie', status: 'active', level: 3, score: 27 } ])

    您会得到以下输出:

    { acknowledged: true, insertedIds: { '0': 1, '1': 2, '2': 3, '3': 4 } }
  4. 使用 find() 命令返回个人资料集合中的所有文档。输入以下:

    db.profiles.find()

    您将获得将与您在步骤 3 中已键入数据匹配的输出。

  5. 利用筛选器对单个文档使用查询。输入以下:

    db.profiles.find({name: "Katie"})

    您会得到以下输出:

    { "_id" : 4, "name" : "Katie", "status": "active", "level": 3, "score":27}
  6. 现在,让我们尝试查找个人资料并使用 findAndModify 命令修改它。我们将用以下代码向用户 Matt 给予额外的 10 分:

    db.profiles.findAndModify({ query: { name: "Matt", status: "active"}, update: { $inc: { score: 10 } } })

    你得到以下输出(请注意,他的分数尚未增加):

    { [{_id : 1, name : 'Matt', status: 'active', level: 12, score: 202}]
  7. 你可以借助以下查询验证他的分数是否已变化:

    db.profiles.find({name: "Matt"})

    您会得到以下输出:

    { "_id" : 1, "name" : "Matt", "status" : "active", "level" : 12, "score" : 212 }

步骤 9:探索

恭喜您!您已成功完成 Amazon DocumentDB 快速入门指南。

接下来做什么? 了解如何充分利用这款强大的数据库及其热门功能:

注意

为了节省成本,您可以停用您的 Amazon DocumentDB 集群以降低成本,也可以删除该集群。默认情况下,在 30 分钟无活动后,您的AWS Cloud9 环境将终止底层 Amazon EC2 实例。