EC2 手动连接 Amazon - Amazon DocumentDB

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

EC2 手动连接 Amazon

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

步骤 1:创建亚马逊 EC2 实例

在本步骤中,您将在同一地区和 Amazon VPC 中创建一个亚马逊 EC2 实例,稍后将使用该实例来配置您的 Amazon DocumentDB 集群。

  1. 在 Amazon EC2 控制台上,选择启动实例

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

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

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

    实例类型界面显示了在下拉列表中选择的 t3.micro 选项。
  5. 密钥对(登录)部分,输入现有密钥对的标识符,或选择新建密钥对

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

    您必须提供 Amazon EC2 密钥对。

    如果你有 Amazon EC2 密钥对:

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

    2. 您必须已经拥有私钥文件(.pem 或.ppk 文件)才能登录您的亚马逊实例。 EC2

    如果您没有 Amazon EC2 密钥对:

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

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

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

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

    创建密钥对接口,其中包含密钥对名称、类型和文件格式字段。创建密钥对(Create key pair)按钮位于右下角。
    注意

    出于安全考虑,我们强烈建议使用密钥对与您的 EC2 实例进行 SSH 和互联网连接。

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

    显示创建安全组选项的网络设置界面。

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

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

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

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

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

    显示 EC2 配置的摘要部分。查看命令、取消和启动实例选项位于底部。

步骤 2:创建安全组

现在,您将在您的默认 Amazon VPC 中创建一个新安全组。安全组demoDocDB允许您通过端口 27017(亚马逊文档数据库的默认端口)从您的亚马逊实例连接到您的亚马逊文档数据库集群。 EC2

  1. Amazon EC2 管理控制台的 “网络和安全” 下,选择 “安全组”。

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

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

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

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

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

    基本详细信息部分,包含安全组名称、描述和 VPC 字段。
  4. 入站规则部分中,选择添加规则

    1. 对于 Type(类型),选择 Custom TCP Rule(自定义 TCP 规则)

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

    3. 对于目标类型,选择自定义。在其旁边的字段中,搜索您在步骤 1 中刚刚创建的安全组。您可能需要刷新浏览器才能让 Amazon EC2 控制台自动填充源名称。

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

    “创建安全组” 按钮。

步骤 3:创建 Amazon DocumentDB 集群

在配置亚马逊 EC2 实例的同时,您将创建自己的亚马逊文档数据库集群。

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

    突出显示了 “集群” 选项的 Amazon DocumentDB 控制台导航窗格。
  2. 选择创建

    用于创建新的 Amazon DocumentDB 集群的 “创建” 按钮。
  3. 将 “集群类型” 设置保留为默认值 “基于实例的集群”。

    选择了 “基于实例的集群” 选项的集群类型接口。
  4. 对于实例数,选择1。这将使成本最小化。保留其他设置的默认值。

    配置接口,集群标识符、引擎版本和实例类的默认值,实例数量设置为 1。
  5. 对于 “连接”,保留默认设置 “不连接到 EC2 计算资源”。

    选中 “不连接到 EC2 计算资源” 选项的连接接口。
    注意

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

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

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

    突出显示了 “托管在 AWS Secrets Manager ” 选项下的身份验证类型选择,并描述了两种身份验证类型。
  7. 选择创建集群

    “显示高级设置” 切换按钮已启用,位于估算的每小时费用提醒下方。

步骤 4:连接到您的亚马逊 EC2 实例

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

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

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

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

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

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

第 5 步:安装 MongoDB 命令行管理程序

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

重要

NodeJS 驱动程序存在已知限制,使用 IAM 身份进行身份验证亚马逊文档数据库目前不支持这些驱动程序。该限制包括最新的 MongoDB 外壳 mongosh。要支持使用亚马逊 DocumentDB 进行 IAM 身份验证,我们建议使用 MongoDB 5.0 外壳。一旦限制解决后,就可以更新 NodeJS 驱动程序支持。

按照以下说明为您的操作系统安装 MongoDB 外壳。

On Amazon Linux

在亚马逊 Linux 上安装 MongoDB 外壳

如果您没有使用 IAM,而是想使用最新的 MongoDB 外壳 (mongosh) 连接到您的亚马逊 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 — 如果您在亚马逊 EC2 配置期间选择了默认 Amazon Linux 2023,请输入以下命令:

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

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

    sudo yum install -y mongodb-mongosh

如果您使用的是 IAM,则必须使用先前版本的 MongoDB 外壳 (5.0) 才能连接到您的亚马逊 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 连接到亚马逊 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 实例。