亚马逊AWS官方博客
Amazon DocumentDB(兼容MongoDB)教程第三部分——使用 Robo 3T
Original URL: https://aws.amazon.com/cn/blogs/database/part-3-getting-started-with-amazon-documentdb-using-robo-3t/
Amazon DocumentDB(兼容MongoDB)是一项快速、可扩展、高可用性的全托管文档数据库服务,可支持MongoDB工作负载。您可以直接使用与MongoDB 3.6相同的应用程序代码、驱动程序及工具,实现在Amazon DocumentDB上运行、管理与扩展工作负载,且完全不必管理底层基础设施。作为一个文档数据库,Amazon DocumentDB使得存储、查询和索引 JSON 数据变得简单。
在本系列文章的第三篇中,我们将介绍如何上手使用Amazon Document DB与Robo 3T(原名Robomongo)。Robo 3T是一款轻量化、开源、以shell为中心的跨平台图形用户界面工具,专门用于管理各类MongoDB工作负载。Robo 3T能够帮助我们创建数据库、集合、添加用户、文档、使用自动补齐功能执行一次性查询并通过GUI界面显示结果,进而极大提升生产效率。
在本文的演练中,我们将在VPC中创建一个单实例Amazon DocumentDB集群,在该VPC内另外创建一个EC2 Linux虚拟机,并在两者之间建立SSH隧道,使用Robo 3T接入该集群,并使用本地计算机向其发送几项查询。下图所示,为本次演练的最终架构。
创建Amazon DocumentDB集群
您可以使用AWS命令行界面(AWS CLI)或者AWS管理控制台创建Amazon DocumentDB集群。如果您已经拥有集群,可以直接跳过这一步。
使用AWS CLI创建集群
要使用AWS CLI以默认配置创建集群,请在Linux、MacOS及Unix系统上使用以下代码:
在Windows平台上,请使用以下代码:
在控制台上创建集群
要在控制台上以默认设置创建集群,请完成以下步骤:
- 在Amazon DocumentDB控制台的Clusters下,选择Create。
- 在Create Amazon DocumentDB cluster页面中的Number of instances部分,选择1以尽可能压低成本。
- 其他设置可直接保留默认选项。
- 在Authentication部分,输入用户名及密码。
- 选择Create cluster。
- 为集群的安全组启用入站连接。 要向集群安全组添加入站连接,我们需要:
- a. 登录至AWS管理控制台,而后在https://console.aws.amazon.com/ec2/上打开Amazon EC2控制台。
- b. 在主窗口中的Resources部分,选择Security groups。
- c. 从安全组列表当中选定您在创建集群时使用的安全组(大多数情况下为default安全组),而后选中该安全组名称左侧的勾选框。
- d. 在Actions菜单中,选择Edit inbound rules,而后选择或输入具体规则。
- Type(类型)——从列表中选择向网络流量开放的协议。
- Protocol(协议)——从列表当中选择协议类型。
- Port Range(端口范围)——对于自定义规则,请输入端口号或端口范围。请确保输入的端口号或范围,包含您在创建集群时所指定的端口(默认为27017)。
- Source(源)——指定可传入您实例的流量。从列表中选择要放行的流量源。如果您选择Custom,则需要以CIDR表示形式指定单一IP地址或者一组IP地址范围(例如203.0.113.5/32)。
- Description(描述)——输入此项规则的描述。
- 在规则创建完成之后,选择Save进行保存。
启动EC2实例
Amazon DocumentDB集群会被部署在Amazon Virtual Private Cloud(Amazon VPC)当中。我们可以通过Amazon Elastic Compute Cloud(Amazon EC2)实例或者部署在同一Amazon VPC中的其他AWS服务,直接访问这些Amazon DocumentDB集群。要使用Robo 3T从客户端计算机(Windows、MacOS或Linux)接入集群,首先需要一个与Amazon DocumentDB集群处于同一VPC及安全组的Linux EC2实例。在后续演练步骤中,我们将具体了解如何创建一条由本地笔记本电脑通过EC2实例接入集群的SSH隧道。您可以直接使用与集群处于同一VPC及安全组的现有EC2实例,也可以在集群所在VPC及安全组内创建新的免费Linux EC2实例。关于更多详细信息,请参阅Amazon EC2 Linux实例入门教程。
使用Robo 3T进行连接
如果您还没有部署Robo 3T,请首先点击此处完成下载。截至本文撰写时,最新Robo 3T为1.3版本。如果您已经部署有Robo 3T,可以直接跳过此部分。
- 打开Robo 3T并选择Create。
- 从集群处复制集群终端节点。
- 在Connection选项卡中,输入集群终端节点信息。
- 在Authentication选项卡中,输入集群的身份验证信息。请务必使用“test”或“testdb”等自定义数据库名称。对于还没有创建数据库的DocumentDB集群,我们无法直接使用“admin”(默认设置)数据库名称。只有在完成首个数据库的创建之后,我们才能修改连接信息来使用“admin”数据库。
- 在SSH选项卡中,选中“Use SSH tunnel”的复选框,而后添加我们EC2实例的SSH地址、用户名与私钥/密码。SSH地址即您EC2实例的公共DNS。如果您使用私钥创建EC2实例,请保证在Robo 3T SSH隧道当中使用相同的密钥。您可以从AWS EC2控制台处获取SSH地址、用户名与私钥。如果您使用的是Linux/MacOS客户端计算机,可能需要使用以下命令以变更私钥权限:
- 在SSL选项卡中,添加Amazon DocumentDB证书。
- 选择Advanced Options。
- 在Invalid Hostnames部分,选择Allowed。 我们可以使用以下命令下载证书:
如果您还没有wget,也可以直接通过网络浏览器访问URL并直接下载证书。
- 要测试此连接,请选择Test。 测试结果将显示在Diagnostic窗口当中。
- 选择Close。
- 选择Save。
- 选定您的集群并选择Connect。
- 在集群对应下拉菜单的Collections下,选择Create Collection。
- 选择Insert Document并插入一个文档。
- 通过Robo 3T运行您的第一项Amazon DocumentDB查询。
关于Robo 3T功能的更多详细信息,请参阅项目GitHub repo。
资源清理
在完成本轮演练之后,您可以关停Amazon DocumentDB集群,或者将其彻底删除,借此节约资源成本。
总结
在本文中,我们了解了如何使用Robo 3T接入Amazon DocumentDB集群。在Robo 3T与Amazon DocumentDB集群之间建立连接之后,我们即可进一步创建数据库、集合与索引;插入文档;并通过工具对集群发起查询。关于更多高级功能,例如就地查询编辑、MongoDB上的SQL查询、可视化查询构建器、聚合编辑器以及schema浏览器等,请参阅Studio 3T发布的相关说明。
关于本地计算机如何开始使用Amazon DocumentDB的更多详细信息,请参阅 Amazon DocumentDB(兼容MongoDB)教程第一部分——使用Amazon EC2 以及 Amazon DocumentDB(兼容MongoDB)教程第二部分——使用AWS Cloud9。关于新近发布的更多说明及博文,请参阅Amazon DocumentDB (兼容MongoDB) 资源汇总。
本篇作者