aws 上的 mongodb - 快速入门参考部署指南 上的 mongodb 快速入门参考部署指南...

29
AWS 上的 MongoDB 快速入门参考部署指南

Upload: vandien

Post on 10-Mar-2018

304 views

Category:

Documents


21 download

TRANSCRIPT

Page 1: AWS 上的 MongoDB - 快速入门参考部署指南 上的 MongoDB 快速入门参考部署指南 关于 Quick Start AWS 云上的 MongoDB:快速入门参 考部署 部署指南

AWS 上的 MongoDB快速入门参考部署指南

Page 2: AWS 上的 MongoDB - 快速入门参考部署指南 上的 MongoDB 快速入门参考部署指南 关于 Quick Start AWS 云上的 MongoDB:快速入门参 考部署 部署指南

AWS 上的 MongoDB 快速入门参考部署指南

AWS 上的 MongoDB: 快速入门参考部署指南Copyright © 2018 Amazon Web Services, Inc. and/or its affiliates. All rights reserved.

Amazon's trademarks and trade dress may not be used in connection with any product or service that is not Amazon's, in any mannerthat is likely to cause confusion among customers, or in any manner that disparages or discredits Amazon. All other trademarks notowned by Amazon are the property of their respective owners, who may or may not be affiliated with, connected to, or sponsored byAmazon.

Page 3: AWS 上的 MongoDB - 快速入门参考部署指南 上的 MongoDB 快速入门参考部署指南 关于 Quick Start AWS 云上的 MongoDB:快速入门参 考部署 部署指南

AWS 上的 MongoDB 快速入门参考部署指南

Table of ContentsHome ................................................................................................................................................ 1

关于 Quick Start ......................................................................................................................... 1概述 .................................................................................................................................................. 2

AWS 上的 MongoDB ................................................................................................................... 2成本和许可证 ............................................................................................................................. 2AWS Services ............................................................................................................................ 2

架构 .................................................................................................................................................. 3MongoDB 构造 ........................................................................................................................... 4性能 .......................................................................................................................................... 5

部署选项 ............................................................................................................................................ 7部署步骤 ............................................................................................................................................ 8

步骤 1.准备账户 .......................................................................................................................... 8步骤 2.启动快速入门 .................................................................................................................. 11步骤 3.连接到 MongoDB 节点 ..................................................................................................... 18

测试 MongoDB ................................................................................................................................. 20备份数据 .......................................................................................................................................... 21安全性 ............................................................................................................................................. 22

IAM ......................................................................................................................................... 22操作系统安全性 ......................................................................................................................... 22网络安全性 ............................................................................................................................... 22安全组 ..................................................................................................................................... 23数据库安全 ............................................................................................................................... 23

Resources ....................................................................................................................................... 24反馈 ................................................................................................................................................ 25文档修订 .......................................................................................................................................... 26

.............................................................................................................................................. 26

iii

Page 4: AWS 上的 MongoDB - 快速入门参考部署指南 上的 MongoDB 快速入门参考部署指南 关于 Quick Start AWS 云上的 MongoDB:快速入门参 考部署 部署指南

AWS 上的 MongoDB 快速入门参考部署指南关于 Quick Start

AWS 云上的 MongoDB:快速入门参考部署

部署指南

Vinod Shukla – AWS 快速入门团队解决方案架构师

2015 年 4 月 (上次更新时间 (p. 26):2017 年 5 月)

此快速入门参考部署指南包含在 Amazon Web Services (AWS) 云中部署 MongoDB 群集所需了解的架构注意事项和配置步骤。它讨论了使用 Amazon Elastic Compute Cloud (Amazon EC2) 和 Amazon VirtualPrivate Cloud (Amazon VPC) 等服务在 AWS 上部署 MongoDB 的最佳实践。它还提供了指向自动化 AWSCloudFormation 模板的链接,您可以将这些模板用于部署或直接启动到 AWS 账户中。

此指南面向计划在 AWS 云上实施或扩展 MongoDB 工作负载的 IT 基础设施架构师、管理员和 DevOps 专家。

为方便起见,我们提供了以下链接。启动快速入门之前,请查看本指南中讨论的架构、配置、网络安全和其他注意事项。

• 如果您拥有一个 AWS 账户,并且已经熟悉 AWS 服务和 MongoDB,您可以启动快速入门,将 MongoDB部署到 AWS 账户中的新的或现有的 Virtual Private Cloud (VPC) 中。完成部署需要约 15 分钟。如果您刚接触 AWS 或 MongoDB,请查看实施详细信息,然后按照此指南后面部分提供的分步说明 (p. 8)操作。

 

     

 • 如果您希望更深入地了解,可以查看可自动执行部署的 AWS CloudFormation 模板。您可以在启动过程中

自定义各个模板,或针对其他项目下载和扩展该模板。

 

     

关于快速入门Quick Start 是适用于 AWS 云上关键工作负载的自动化参考部署。每个快速入门都使用有关安全性和可用性的 AWS 最佳实践来启动、配置和运行在 AWS 上部署特定工作负载所需的 AWS 计算、网络、存储和其他服务。

1

Page 5: AWS 上的 MongoDB - 快速入门参考部署指南 上的 MongoDB 快速入门参考部署指南 关于 Quick Start AWS 云上的 MongoDB:快速入门参 考部署 部署指南

AWS 上的 MongoDB 快速入门参考部署指南AWS 上的 MongoDB

概述AWS 上的 MongoDB

MongoDB 是一种开源 NoSQL 数据库,可为 JSON 样式的、面向文档的存储系统提供支持。它支持一个灵活的数据模型,使您能够存储任何结构的数据;还提供一组丰富的功能,包括完全索引支持、分片和复制。

利用 AWS,您能够设置基础设施以便以灵活、可扩展和经济高效的方式支持 AWS 云上的 MongoDB 部署。此参考部署将通过实现配置和部署任务的自动化来帮助您构建 MongoDB 群集。

此快速入门支持在 AWS 上自助部署 MongoDB 副本群集集 (3.2 或 3.4 版)。

成本和许可证此部署会以您选择的配置自动启动 MongoDB。运行本快速入门参考部署时,您需要支付所用的 AWS 服务的费用。使用快速入门不收取任何额外费用。费用因您部署的群集的存储和计算配置而异。

此快速入门将部署 MongoDB Community Edition 版本 3.2 或 3.4,这是依据 GNU Affero 通用公共许可证版本 3 分发的开源软件。

AWS Services此快速入门使用的核心 AWS 组件包括以下 AWS 服务。(如果您刚开始接触 AWS,请参阅 AWS 文档的“入门”部分。)

• Amazon EC2 – Amazon Elastic Compute Cloud (Amazon EC2) 服务让您可以在各种操作系统上启动虚拟机实例。您可以从现有的 Amazon 系统映像 (AMI) 中进行选择,也可以导入您自己的虚拟机映像。

• Amazon VPC - 通过 Amazon Virtual Private Cloud (Amazon VPC) 服务,您可以在 AWS 云中预配置隔离的私有部分,在自己定义的虚拟网络中启动 AWS 服务及其他资源。您可以完全掌控您的虚拟联网环境,包括选择自有的 IP 地址范围、创建子网,以及配置路由表和网络网关。

• Amazon EBS – Amazon Elastic Block Store (Amazon EBS) 在 AWS 云中提供用于 EC2 实例的持久性块级存储卷。每个 EBS 卷均会在其可用区内自动复制,以保护您免受组件故障的影响,同时提供高可用性和持久性。EBS 卷为您提供运行工作负载所需的一致的、低延迟性能。

• AWS CloudFormation – 借助 AWS CloudFormation,您可以轻松创建和管理一系列相关的 AWS 资源,并通过有序且可预测的方式对其进行配置和更新。您可以使用模板描述所需的所有 AWS 资源 (如 EC2 实例)。无需单独创建和配置资源或了解依赖项;AWS CloudFormation 可以处理所有这些事情。

• IAM – AWS Identity and Access Management (IAM) 使您能够安全地控制用户对 AWS 服务和资源的访问。借助 IAM,您可以集中管理用户、安全证书 (如访问密钥),以及控制用户可访问 AWS 资源的权限。

2

Page 6: AWS 上的 MongoDB - 快速入门参考部署指南 上的 MongoDB 快速入门参考部署指南 关于 Quick Start AWS 云上的 MongoDB:快速入门参 考部署 部署指南

AWS 上的 MongoDB 快速入门参考部署指南

架构AWS CloudFormation 提供了一种简便地创建和管理一批相关的 AWS 资源的方法,并通过有序且可预测的方式对其进行资源配置和更新。

使用默认参数为新 VPC 部署此快速入门会在 AWS 云中构建以下 MongoDB 环境。

3

Page 7: AWS 上的 MongoDB - 快速入门参考部署指南 上的 MongoDB 快速入门参考部署指南 关于 Quick Start AWS 云上的 MongoDB:快速入门参 考部署 部署指南

AWS 上的 MongoDB 快速入门参考部署指南MongoDB 构造

图 1:AWS 上的 MongoDB 的快速入门架构

  

以下 AWS 组件将作为此参考部署的一部分进行部署和配置:

• 配置有跨三个可用区的公有子网和私有子网的 VPC。*• 在公有子网中,允许私有子网中的资源 (MongoDB 实例) 进行出站 Internet 连接的 NAT 网关。(有关更多

信息,请参阅 Amazon VPC 快速入门。)*• 在公有子网中,为 Auto Scaling 组中允许入站安全外壳 (SSH) 访问的带弹性 IP 地址的堡垒主机。默认情

况下将部署一台堡垒主机,但此数目是可配置的。(有关更多信息,请参阅 Linux 堡垒主机快速入门。)*• AWS Identity and Access Management (IAM) 实例角色,具有细化控制的权限,用于访问部署过程所需的

AWS 服务。• 安全组,用于在 VPC 内实现通信并仅允许访问必需的协议和端口。• 在私有子网中,为一个可自定义的 MongoDB 群集,可以单独运行或在副本集中运行,还有可自定义的

Amazon EBS 存储。快速入门将在其他可用区中启动副本集的每个成员。不过,如果您选择的 AWS 区域不提供 3 个或更多可用区,快速入门将重复使用其中一个区域来创建第三个子网。

*您可以选择为新 VPC 启动快速入门或使用您的现有 VPC。将快速入门部署到现有 VPC 的模板将跳过 (不创建) 带有星号的组件,并提示您现有配置。

快速入门将启动私有子网中的所有 MongoDB 相关节点,以便通过使用 SSH 连接到堡垒主机来访问这些节点。部署需要堡垒主机的安全组 ID,以便能够集中控制远程访问,而不是对每个 MongoDB 实例使用远程访问 CIDR。如果您启动新 VPC 的快速入门,将为您创建堡垒安全组。如果在现有 VPC 中启动快速入门,您必须为堡垒主机创建一个安全组或使用一个已有的安全组。

MongoDB 构造下面是此参考部署中使用的一些构建块。

副本集。指一组包含相同数据的 mongod 实例。副本的用途是在某台服务器停机的情况下确保高可用性。此参考部署支持一个或三个副本集。对于三个副本集的情况,参考部署将在三个不同的可用区中启动三台服务器 (如果区域支持这样做)。在生产群集中,我们建议使用三个副本集(Primary、Secondary0、Secondary1)。

通常,所有客户端会与主节点进行交互来执行读写操作。读取操作中可以选择一个辅助节点作为首选项,而写入操作始终转到主节点并在辅助节点中实现异步复制。如果您选择辅助节点进行读取操作,请小心过期数据,因为辅助节点可能并未与主节点同步。有关如何在副本集中路由读取操作的更多信息,请参阅MongoDB 文档。

在开发环境中,您可以从单个副本集开始,然后在生产过程中移至三个副本集。图 2 显示了重复因子为 3 的MongoDB 参考部署。

4

Page 8: AWS 上的 MongoDB - 快速入门参考部署指南 上的 MongoDB 快速入门参考部署指南 关于 Quick Start AWS 云上的 MongoDB:快速入门参 考部署 部署指南

AWS 上的 MongoDB 快速入门参考部署指南性能

图 2:AWS 上具有三个副本集的 MongoDB 群集

  

如果主实例发生故障,另一个可用区中的某个辅助实例将成为新的主节点,从而确保实现自动故障转移。

分片。指跨多个节点进行数据分配。跨多个节点存储不同的数据将提高读写性能的水平扩展能力。如果您有大型数据集,单一节点可能受到 CPU 或 I/O 性能的限制。分片通过减少每个分片节点处理的操作数来消除此限制,提升总体群集性能。此快速入门未提供对分片的直接支持。相反,它提供参数 (ReplicaShardIndex)以允许将启动的副本集加入已分片的群集。有关详细信息,请参阅 MongoDB 文档。

性能注意事项参考实现提供了多种计算和存储选项。下表显示了要考虑的一些计算选项。

实例类型 vCPU 内存 (GiB) 工作负载类型

c3.4xlarge 16 55 计算优化

c3.8xlarge 32 60 计算优化

c4.8xlarge 36 60 计算优化

5

Page 9: AWS 上的 MongoDB - 快速入门参考部署指南 上的 MongoDB 快速入门参考部署指南 关于 Quick Start AWS 云上的 MongoDB:快速入门参 考部署 部署指南

AWS 上的 MongoDB 快速入门参考部署指南性能

实例类型 vCPU 内存 (GiB) 工作负载类型

r3.4xlarge 16 122 内存优化

r3.2xlarge 8 61 内存优化

r3.8xlarge 32 244 内存优化

一般而言,请考虑水平而不是垂直增加实例。水平扩展克服了单节点的限制并避免了单一故障点,可能提升群集的整体吞吐量。

对于存储,根据您的数据库要求,您可以选择更改要挂载到每个节点的存储卷。Amazon EBS 提供三种卷类型:通用型 (SSD) 卷、预置 IOPS (SSD) 卷和磁性介质卷。这些卷的性能特点和成本各不相同,您可根据应用程序的需求选择合适的存储性能和价格。所有 Amazon EBS 卷类型都提供相同的持久性快照功能,旨在实现 99.999% 的可用性。此参考部署支持通用型和预置 IOPS 存储卷。

下表显示了每种存储类型的一些性能特点。根据您的性能要求,在确定存储类型和 Amazon EBS 预置 IOPS功能 (如果选择) 之前,您可能需要对您的应用程序执行基准测试。

卷类型 通用型 (SSD) 预配置 IOPS (SSD)

存储介质 SSD 支持型 SSD 支持型

最大卷大小 16 TiB 16 TiB

最大 IOPS/卷 10000 20000

6

Page 10: AWS 上的 MongoDB - 快速入门参考部署指南 上的 MongoDB 快速入门参考部署指南 关于 Quick Start AWS 云上的 MongoDB:快速入门参 考部署 部署指南

AWS 上的 MongoDB 快速入门参考部署指南

部署选项本快速入门提供了两个部署选项:

• 将 MongoDB 部署到新 VPC (端到端部署)。此选项会构建包括 VPC、子网、NAT 网关、安全组、堡垒主机和其他基础设施组件的新 AWS 环境,然后将 MongoDB 部署到该新 VPC。

• 将 MongoDB 部署到现有 VPC。此选项会在您的现有 AWS 基础设施中预置 MongoDB。

本快速入门为这些选项提供单独的模板。您还可以配置其他设置 (例如 CIDR 块、实例类型和 MongoDB 设置),在本指南的后面会进行相关讨论。

7

Page 11: AWS 上的 MongoDB - 快速入门参考部署指南 上的 MongoDB 快速入门参考部署指南 关于 Quick Start AWS 云上的 MongoDB:快速入门参 考部署 部署指南

AWS 上的 MongoDB 快速入门参考部署指南步骤 1.准备账户

部署步骤您可以在灵活的 AWS 平台上轻松部署 MongoDB。对于希望按需设置一个可完全自定义的 MongoDB 群集的客户,将本指南可充当参考。在 AWS 上构建可扩展的按需基础设施可提供一种经济高效的解决方案,用于处理大规模计算和存储要求。利用灵活的 AWS 架构,您可以为您的环境选择最合适的网络、计算和存储基础设施。

在 AWS 上部署 MongoDB 的过程包含以下步骤。有关详细说明,请访问每个步骤的链接。

• 步骤 1.准备 AWS 账户 (p. 8)

注册一个 AWS 账户,选择一个区域,创建一个密钥对,并请求提高账户限制 (如有必要)。• 步骤 2.启动快速入门 (p. 11)

在 AWS 账户中启动 AWS CloudFormation 模板,指定参数值并创建堆栈。快速入门分别提供了端到端部署模板和部署到现有 VPC 的模板。

• 步骤 3.连接到 MongoDB 节点 (p. 18)

您通过 NAT 实例使用 SSH 连接到 MongoDB 节点,因为这些节点位于私有子网中。

步骤 1.准备 AWS 账户1. 如果您还没有 AWS 账户,请按照屏幕说明在 https://aws.amazon.com 上创建一个。 作为注册流程的一

部分,您会接到一个电话,并且需要通过手机键盘输入 PIN 码。2. 使用导航栏中的区域选择器选择要将 Magento 群集部署到 AWS 上的 AWS 区域。有关更多信息,请参

阅区域和可用区。区域分散存在,位于独立的地理区域。每个区域包含至少 2 个可用区,它们彼此独立,并通过低延迟链接相互连接。

图 3:选择 AWS 区域

8

Page 12: AWS 上的 MongoDB - 快速入门参考部署指南 上的 MongoDB 快速入门参考部署指南 关于 Quick Start AWS 云上的 MongoDB:快速入门参 考部署 部署指南

AWS 上的 MongoDB 快速入门参考部署指南步骤 1.准备账户

提示

考虑选择最接近数据中心或企业网络的区域,以减少运行于 AWS 的系统与企业网络上的系统和用户之间的网络延迟。

3. 在首选区域中创建一个密钥对。为此,在 Amazon EC2 控制台的导航窗格中,选择 Key Pairs 和 CreateKey Pair,键入名称,然后选择 Create。

图 4:创建密钥对

Amazon EC2 使用公有密钥密码术来加密和解密登录信息。要登录实例,必须创建密钥对。在 Linux上,我们使用密钥对来对 SSH 登录进行身份验证。

4. 如有必要,可针对您打算部署的 Amazon EC2 实例类型请求提高服务限制。为此,在 AWS SupportCenter 中,选择 Create Case,Service Limit Increase,EC2 instances,然后填写限制提高表中的字段。

实例数量的默认限制取决于您选择的实例类型,目前限制范围从 2 到 20 (请参阅 Amazon EC2 常见问题页面)。如果您有也使用此实例类型的现有部署,或者您计划超出此参考部署的默认限制,则需要请求提高限制。新服务限制可能需要几天才能生效。有关更多信息,请参阅 AWS 文档中的 Amazon EC2 服务限制。

9

Page 13: AWS 上的 MongoDB - 快速入门参考部署指南 上的 MongoDB 快速入门参考部署指南 关于 Quick Start AWS 云上的 MongoDB:快速入门参 考部署 部署指南

AWS 上的 MongoDB 快速入门参考部署指南步骤 1.准备账户

图 5:请求提高服务限制5. 如有必要,请针对 VPC 中的弹性 IP 地址请求提高限制。为限制类型选择 VPC,然后填写限制请求表上

的字段。6. 如有必要,请针对您可使用的 EBS 卷请求提高限制。为限制类型选择 EBS,然后填写限制请求表上的

字段。

10

Page 14: AWS 上的 MongoDB - 快速入门参考部署指南 上的 MongoDB 快速入门参考部署指南 关于 Quick Start AWS 云上的 MongoDB:快速入门参 考部署 部署指南

AWS 上的 MongoDB 快速入门参考部署指南步骤 2.启动快速入门

步骤 2.启动快速入门Note

运行本快速入门参考部署时,您需要支付所用的 AWS 服务的费用。使用本快速入门不收取任何额外费用。有关完整详细信息,请参阅您将在本快速入门中使用的每项 AWS 服务的定价页。

1. 选择以下选项之一在您的 AWS 账户中启动 AWS CloudFormation 模板。要在选择选项方面获得帮助,请参阅本指南前面的部署选项 (p. 7)。

选项 1

在 AWS 上将 MongoDB 部署到新 VPC

选项 2

在 AWS 上将 MongoDB 部署到现有 VPC

Important

如果您要将 MongoDB 部署到现有 VPC,请确保已在不同可用区中使用两个公有子网和三个私有子网设置您的 VPC。您还需要 DHCP 选项中配置的域名选项,如 Amazon VPC 文档中所述。在您启动快速入门时,系统将提示您提供您的 VPC 设置。私有子网需要其路由表中存在 NAT 网关或 NAT 实例以用于出站 Internet 连接,并且您必须创建堡垒主机及其关联的安全组以实现入站 SSH 访问。(要设置您的 VPC,可以使用 AmazonVPC 快速入门。要设置堡垒主机,请参阅 Linux 堡垒主机快速入门。如果您部署到新 VPC,快速入门将为您自动设置这些主机。)

完成每个部署大约需要 15 分钟。2. 检查显示在导航栏右上角的区域,并在必要时进行更改。默认情况下,在 美国东部(弗吉尼亚北部) 区

域中启动模板。3. 在 Select Template 页面上,保留模板 URL 的默认设置,然后选择 Next。4. 在 Specify Details 页面上,更改堆栈名称 (如果需要)。审查模板的参数。为需要输入的参数提供值。对

于所有其他参数,请审查默认设置并根据需要进行自定义。完成审查并自定义参数后,选择 Next。

下面的表格分别列举并描述了两个部署选项的参数:

• 用于将 MongoDB 部署到新 VPC 的参数 (p. 11)• 用于将 MongoDB 部署到现有 VPC 的参数 (p. 14)

选项 1:用于将 MongoDB 部署到新 VPC 的参数

查看模板

网络配置:

参数标签 参数名称 默认值 说明

可用区 AvailabilityZones 需需需需 要用于 VPC 中的子网的可用区的列表。本快

11

Page 15: AWS 上的 MongoDB - 快速入门参考部署指南 上的 MongoDB 快速入门参考部署指南 关于 Quick Start AWS 云上的 MongoDB:快速入门参 考部署 部署指南

AWS 上的 MongoDB 快速入门参考部署指南步骤 2.启动快速入门

参数标签 参数名称 默认值 说明速入门会保留您指定的逻辑顺序。此部署使用2 个或 3 个可用区。完成选择后,请确保可用区数量参数与您的选择一致。

可用区数量 NumberOfAZs 需需需需 要在 VPC 中使用的可用区的数量 (2 个或 3个)。此数量必须与您在可用区参数中的选择一致;否则,部署将失败,而且会发生 AWSCloudFormation 模板验证错误。(请注意,某些区域仅提供 1 个或 2 个可用区。)

VPC CIDR VPCCIDR 10.0.0.0/16 要创建的 VPC 的 CIDR块。

私有子网 1 CIDR PrivateSubnet1CIDR 10.0.0.0/19 可用区 1 中的私有子网的 CIDR 块。

私有子网 2 CIDR PrivateSubnet2CIDR 10.0.32.0/19 可用区 2 中的私有子网的 CIDR 块。

私有子网 3 CIDR PrivateSubnet3CIDR 10.0.64.0/19 可用区 3 中的私有子网的 CIDR 块。

公有子网 1 CIDR PublicSubnet1CIDR 10.0.128.0/20 可用区 1 中的公有子网的 CIDR 块。

公有子网 2 CIDR PublicSubnet2CIDR 10.0.144.0/20 可用区 2 中的公有子网的 CIDR 块。

公有子网 3 CIDR PublicSubnet3CIDR 10.0.160.0/20 可用区 3 中的公有子网的 CIDR 块。

允许的防御主机外部访问 CIDR

RemoteAccessCIDR 需需需需 允许对堡垒主机进行外部 SSH 访问的 CIDRIP 范围。我们建议您将此值设置为受信任的 IP范围。例如,您可能希望仅对公司网络授予软件的访问权限。

安全配置:

12

Page 16: AWS 上的 MongoDB - 快速入门参考部署指南 上的 MongoDB 快速入门参考部署指南 关于 Quick Start AWS 云上的 MongoDB:快速入门参 考部署 部署指南

AWS 上的 MongoDB 快速入门参考部署指南步骤 2.启动快速入门

参数标签 参数名称 默认值 说明

密钥名称 KeyPairName 需需需需 公有/私有密钥对,使您能够在实例启动后安全地与它连接。创建AWS 账户时,这是您在首选区域中创建的密钥对。

Linux 防御主机配置:

参数标签 参数名称 默认值 说明

防御 AMI 操作系统 BastionAMIOS Amazon-Linux-HVM 本防御主机实例使用AMI 的 Linux 发行版。您可以选择 AmazonLinux、CentOS 或Ubuntu Server。如果您选择的是 CentOS,请确保已订阅 AWSMarketplace 中的CentOS AMI。

防御实例类型 BastionInstanceType t2.micro 防御主机实例的 EC2实例类型。

防御主机数 NumBastionHosts 1 要创建的堡垒主机数量(1-4 个)。Auto Scaling将确保您始终具有该数量的堡垒主机处于运行中。

MongoDB 数据库配置:

参数标签 参数名称 默认值 说明

群集副本集计数 ClusterReplicaSetCount 1 副本集成员的数量。选择 1 或 3。

IOPS Iops 100 如果选择了 io1 卷类型,此设置为 EBS 卷的 IOPS,否则将忽略此设置。

MongoDB 版本 MongoDBVersion 3.4 将部署的 MongoDB 的版本。您可以选择版本3.2 或 3.4。

MongoDB 管理员用户名

MongoDBAdminUsername管理员 MongoDB 管理账户的用户名。

13

Page 17: AWS 上的 MongoDB - 快速入门参考部署指南 上的 MongoDB 快速入门参考部署指南 关于 Quick Start AWS 云上的 MongoDB:快速入门参 考部署 部署指南

AWS 上的 MongoDB 快速入门参考部署指南步骤 2.启动快速入门

参数标签 参数名称 默认值 说明

MongoDB 管理员密码 MongoDBAdminPassword需需需需 您的 MongoDB 数据库密码。您可以输入由以下字符组成的 8-32 个字符的字符串:[A-Za-z0-9_@-]。

节点实例类型 NodeInstanceType m4.large MongoDB 节点的 EC2实例类型。

副本分区索引 ReplicaShardIndex 0 此副本集的分区索引。有关分区索引的信息,请参阅 MongoDB 文档。

卷大小 VolumeSize 400 要挂载到 MongoDB 节点的 Amazon EBS (数据) 卷的大小 (以 GiB 为单位)。

卷类型 VolumeType gp2 要挂载到 MongoDB节点 (gp2 或 io1) 的Amazon EBS (数据) 卷的卷类型。

AWS 快速入门配置:

参数标签 参数名称 默认值 说明

快速入门 S3 存储桶名称

QSS3BucketName quickstart-reference 安装快速入门模板和脚本的 S3 存储桶。如果您决定自定义或扩展快速入门以供您自己使用,请使用此参数来指定您为快速入门资产的副本创建的 S3 存储桶名称。存储桶名称可以包含数字、小写字母、大写字母和连字符,但不得以连字符开头或结尾。

快速入门 S3 键前缀 QSS3KeyPrefix mongodb/latest/ S3 键名称前缀,用于模拟快速入门资产的副本的文件夹 (如果您决定自定义或扩展快速入门以供您自己使用)。此前缀可以包含数字、小写字母、大写字母、连字符和正斜杠。它不赢以连字符 (-) 开头或结尾。

14

Page 18: AWS 上的 MongoDB - 快速入门参考部署指南 上的 MongoDB 快速入门参考部署指南 关于 Quick Start AWS 云上的 MongoDB:快速入门参 考部署 部署指南

AWS 上的 MongoDB 快速入门参考部署指南步骤 2.启动快速入门

选项 2:用于将 MongoDB 部署到现有 VPC 的参数

查看模板

网络配置:

参数标签 参数名称 默认值 说明

VPC VPC 需需需需 要将 MongoDB群集部署到的现有 VPC 的 ID (例如,vpc-0343606e)。

主节点子网 PrimaryNodeSubnet 需需需需 要将主 MongoDB节点部署到的 VPC中现有子网的 ID(例如,subnet-a0246dcd)。

Secondary0 节点子网 Secondary0NodeSubnet 需需需需 要将副本集中第一个辅助 MongoDB 节点部署到的 VPC 中现有子网的 ID。有关预期置放的更多信息,请参阅架构 (p. 3)部分。

Secondary1 节点子网 Secondary1NodeSubnet 需需需需 要将副本集中第二个辅助 MongoDB 节点部署到的 VPC 中现有子网的 ID。有关预期置放的更多信息,请参阅架构 (p. 3)部分。

堡垒安全组 ID BastionSecurityGroupID 需需需需 现有 VPC 中防御安全组的 ID (例如sg-7f16e910)。

安全配置:

参数标签 参数名称 默认值 说明

密钥名称 KeyPairName 需需需需 公有/私有密钥对,使您能够在实例启动后安全地与它连接。创建AWS 账户时,这是您在首选区域中创建的密钥对。

MongoDB 数据库配置:

15

Page 19: AWS 上的 MongoDB - 快速入门参考部署指南 上的 MongoDB 快速入门参考部署指南 关于 Quick Start AWS 云上的 MongoDB:快速入门参 考部署 部署指南

AWS 上的 MongoDB 快速入门参考部署指南步骤 2.启动快速入门

参数标签 参数名称 默认值 说明

群集副本集计数 ClusterReplicaSetCount 1 副本集成员的数量。选择 1 或 3。

Iops Iops 100 如果选择了 io1 卷类型,此设置为 EBS 卷的 IOPS,否则将忽略此设置。

MongoDB 版本 MongoDBVersion 3.4 将部署的 MongoDB 的版本。您可以选择版本3.2 或 3.4。

MongoDB 管理员用户名

MongoDBAdminUsername管理员 MongoDB 管理账户的用户名。

MongoDB 管理员密码 MongoDBAdminPassword需需需需 您的 MongoDB 数据库密码。您可以输入由以下字符组成的 8-32 个字符的字符串:[A-Za-z0-9_@-]。

节点实例类型 NodeInstanceType m4.large MongoDB 节点的 EC2实例类型。

副本分区索引 ReplicaShardIndex 0 此副本集的分区索引。有关分区索引的信息,请参阅 MongoDB 文档

卷大小 VolumeSize 400 要挂载到 MongoDB 节点的 Amazon EBS (数据) 卷的大小 (以 GiB 为单位)。

卷类型 VolumeType gp2 要挂载到 MongoDB节点 (gp2 或 io1) 的Amazon EBS (数据) 卷的卷类型。

AWS 快速入门配置:

16

Page 20: AWS 上的 MongoDB - 快速入门参考部署指南 上的 MongoDB 快速入门参考部署指南 关于 Quick Start AWS 云上的 MongoDB:快速入门参 考部署 部署指南

AWS 上的 MongoDB 快速入门参考部署指南步骤 2.启动快速入门

参数标签 参数名称 默认值 说明

快速入门 S3 存储桶名称

QSS3BucketName quickstart-reference 安装快速入门模板和脚本的 S3 存储桶。如果您决定自定义或扩展快速入门以供您自己使用,请使用此参数来指定您为快速入门资产的副本创建的 S3 存储桶名称。存储桶名称可以包含数字、小写字母、大写字母和连字符,但不得以连字符开头或结尾。

快速入门 S3 键前缀 QSS3KeyPrefix mongodb/latest/ S3 键名称前缀,用于模拟快速入门资产的副本的文件夹 (如果您决定自定义或扩展快速入门以供您自己使用)。此前缀可以包含数字、小写字母、大写字母、连字符和正斜杠。它不赢以连字符 (-) 开头或结尾。

5. 在 Options 页面上,您可以为堆栈中的资源指定标签 (键/值对) 并设置高级选项。在完成此操作后,选择Next。

6. 在 Review 页面上,查看并确认模板设置。选择 Capabilities 下的复选框,以确认模板将创建 IAM 资源。

7. 选择 Create 以部署堆栈。8. 监控堆栈的状态。当状态为 CREATE_COMPLETE 时 (如图 6 所示),表示 MongoDB 群集已准备就

绪。

17

Page 21: AWS 上的 MongoDB - 快速入门参考部署指南 上的 MongoDB 快速入门参考部署指南 关于 Quick Start AWS 云上的 MongoDB:快速入门参 考部署 部署指南

AWS 上的 MongoDB 快速入门参考部署指南步骤 3.连接到 MongoDB 节点

图 6:成功创建 MongoDB 群集

步骤 3.连接到 MongoDB 节点当 AWS CloudFormation 模板成功创建堆栈后,所有 MongoDB 节点都将通过您的 AWS 账户中已安装的软件运行。要连接到任一 MongoDB 节点,请使用 SSH 连接到堡垒主机实例。在 Amazon EC2 控制台中,选择该实例,然后选择 Connect。

18

Page 22: AWS 上的 MongoDB - 快速入门参考部署指南 上的 MongoDB 快速入门参考部署指南 关于 Quick Start AWS 云上的 MongoDB:快速入门参 考部署 部署指南

AWS 上的 MongoDB 快速入门参考部署指南步骤 3.连接到 MongoDB 节点

图 7:连接到 MongoDB 节点

使用 SSH 连接到堡垒主机实例后,您可以通过类似的方式连接到任何 MongoDB 节点 (选择节点,然后选择Connect 以查找 SSH 命令)。

重要提示

您需要私有密钥 (.pem) 文件才能连接到 MongoDB 节点。将私有密钥 (.pem) 文件复制到堡垒主机实例中;例如:

scp –i mykey.pem mykey.pem ec2-user@Bastion-public-ip:/home/ec2-user/mykey.pem

请注意,所有 MongoDB 节点均通过 IAM 角色来启动,该角色为节点授予创建和删除 Amazon DynamoDB表、访问 Amazon Simple Storage Service (Amazon S3)、创建和删除 Amazon EC2 实例等权限。您可以使用 IAM 控制台修改该策略。有关 IAM 角色的好处的详细信息,请参阅 AWS 文档中的使用 IAM 角色向Amazon EC2 上运行的应用程序委托权限。

19

Page 23: AWS 上的 MongoDB - 快速入门参考部署指南 上的 MongoDB 快速入门参考部署指南 关于 Quick Start AWS 云上的 MongoDB:快速入门参 考部署 部署指南

AWS 上的 MongoDB 快速入门参考部署指南

测试 MongoDB在 AWS CloudFormation 模板成功完成后,系统将在每个主副本集节点上运行一个 mongod 实例。要验证系统并确认配置,请按照以下步骤操作:

1. 使用 SSH 登录到快速入门模板创建的主实例之一。2. 从终端设备运行以下命令:

mongouse admindb.auth("admin", "YourAdminPassword")rs.printReplicationInfo()rs.status()

3. 验证 mongo shell 是否连接到默认 TCP 端口 (27017) 上的本地主机以及输出是否反映了您为快速入门模板指定的配置。

有关测试 MongoDB 服务器的更多信息,请参阅 MongoDB 文档。

20

Page 24: AWS 上的 MongoDB - 快速入门参考部署指南 上的 MongoDB 快速入门参考部署指南 关于 Quick Start AWS 云上的 MongoDB:快速入门参 考部署 部署指南

AWS 上的 MongoDB 快速入门参考部署指南

备份数据对于备份,我们建议使用 Amazon S3 保留 MongoDB 数据的副本。Amazon S3 以冗余方式跨多个设施在多个设备上存储数据元,允许多个不同的客户端或应用程序线程同时对这些数据元进行读或写操作。您可以使用存储在 Amazon S3 中的冗余数据快速、可靠地恢复实例或应用程序故障。

有关其他备份策略,请参阅 MongoDB 文档。

21

Page 25: AWS 上的 MongoDB - 快速入门参考部署指南 上的 MongoDB 快速入门参考部署指南 关于 Quick Start AWS 云上的 MongoDB:快速入门参 考部署 部署指南

AWS 上的 MongoDB 快速入门参考部署指南IAM

安全性AWS 云提供了一种可扩展且非常可靠的平台,能够使客户快速安全地部署应用程序和数据。

当您在 AWS 基础设施上构建系统时,AWS 和您如何共同分担安全责任。此共享模式能够减轻您的操作负担,因为 AWS 运行、管理并控制着从主机运行系统、虚拟化层次到服务运行设备物理安全性的组件。而您负责管理来宾操作系统 (包括更新和安全补丁)、其他关联应用程序以及 AWS 提供的安全组防火墙的配置。有关 AWS 安全性的更多信息,请访问 AWS 安全中心。

AWS Identity and Access Management (IAM)此解决方案利用具有最小的特权访问权限的 IAM 角色。不必也不建议在预配置的实例上存储 SSH 密钥、私有密钥或访问密钥。

操作系统安全性要访问群集节点上的根用户,只能使用在部署过程中指定的 SSH 密钥。AWS 不会存储这些 SSH 密钥,因此,如果您丢失了您的 SSH 密钥,您就失去了这些实例的访问权限。

您需要负责操作系统补丁,并且应定期执行。

网络安全性此解决方案的默认网络安全设置遵循 AWS 安全最佳实践。预置的 MongoDB 实例部署在私有子网中,可通过三种方式进行访问:

• 使用 SSH 终端连接到堡垒主机实例。• 通过您在 MongoDBServerAccessSecurityGroup 安全组中可能拥有或您可使用安全组启动的 AWS 资

源 (如 Amazon EC2)。您可在此安全组中包含您的应用程序实例。• 通过在 MongoDBServerSecurityGroup 中包含新规则以允许从已知 IP 块 CIDR 访问您的数据库。例

如,您可添加在数据中心中启用 VLAN 10.50.10.0/24 的入站规则以通过 VPN 或 AWS Direct Connect 进行连接。

22

Page 26: AWS 上的 MongoDB - 快速入门参考部署指南 上的 MongoDB 快速入门参考部署指南 关于 Quick Start AWS 云上的 MongoDB:快速入门参 考部署 部署指南

AWS 上的 MongoDB 快速入门参考部署指南安全组

图 8:将入站规则添加到安全组

安全组安全组 起着防火墙的作用,可控制一个或多个实例的流量。在您启动实例时,将一个或多个安全组与该实例相关联。为每个安全组添加规则,规定流入或流出其关联实例的流量。您可以随时修改安全组的规则。新规则会自动应用于与该安全组相关联的所有实例。

本快速入门将创建三个安全组:

• MongoDBServerSecurityGroup 用于为堡垒主机授予对 MongoDB 实例的端口 22 的访问权限。• MongoDBServersSecurityGroup 用于 mongodb 实例之间的通信:数据库端口和 SSH 端口上的主实

例和副本实例。• MongoDBServerAccessSecurityGroup 向 EC2 实例提供对您为数据库侦听器设置的端口上的数据库

的访问权限。

在快速入门部署后,您将负责维护这些安全组并包含或排除规则。

数据库安全该解决方案将设置一个具有指定管理员用户名 (默认为“admin”) 和管理员密码的新的根用户。不允许未经授权访问数据库。此外,还在副本集节点之间设置了内部密钥文件身份验证。

23

Page 27: AWS 上的 MongoDB - 快速入门参考部署指南 上的 MongoDB 快速入门参考部署指南 关于 Quick Start AWS 云上的 MongoDB:快速入门参 考部署 部署指南

AWS 上的 MongoDB 快速入门参考部署指南

其他资源AWS 服务

• 入门• AWS CloudFormation• Amazon EC2:

• 用户指南• 区域和可用区• 密钥对• 实例存储• 常见问题

• Amazon EBS:• 概述• 卷类型

• AWS Identity and Access Management:• 用户指南• IAM 角色的优势

• VPC• AWS 安全中心

MongoDB

• MongoDB on AWS: Guidelines and Best Practices• MongoDB 文档• MongoDB 生产说明• MongoDB 安全核对清单• MongoDB Atlas 文档• MongoDB 架构指南• MongoDB 的性能最佳实践• MongoDB 多数据中心部署• 测试 MongoDB 服务器• MongoDB 备份方法• mongodump 参考

其他快速入门参考部署

• AWS Quick Start 主页• Amazon VPC 快速入门• Linux 堡垒主机快速入门

24

Page 28: AWS 上的 MongoDB - 快速入门参考部署指南 上的 MongoDB 快速入门参考部署指南 关于 Quick Start AWS 云上的 MongoDB:快速入门参 考部署 部署指南

AWS 上的 MongoDB 快速入门参考部署指南

给我们发送反馈您可以访问我们的 GitHub 存储库以下载此快速入门的模板和脚本、发布您的反馈并与他人共享您的自定义项。

25

Page 29: AWS 上的 MongoDB - 快速入门参考部署指南 上的 MongoDB 快速入门参考部署指南 关于 Quick Start AWS 云上的 MongoDB:快速入门参 考部署 部署指南

AWS 上的 MongoDB 快速入门参考部署指南

文档修订日期 改变 位置

2017 年 5 月 日 将 MongoDB 升级到了版本 3.4;删除了分片配置;更新了安全组且添加了数据库安全;更新了参数

模板、架构 (p. 3)以及整个指南中的更改

2016 年 8 月 日 更新了模板,以更改默认实例类型和添加可用区参数

模板更新和对参数表 (p. 11)的更改

2015 年 4 月 日 初次发布 –

版权声明本部署指南文档仅用于参考。本文档代表截至其发行之日的 AWS 的最新产品服务和实践,如有变更,恕不另行通知。客户负责对此文件的信息以及对 AWS 的产品或服务的任何使用进行自我独立的评估,每项产品或服务均按“原样”提供,无任何类型的保证,不管是明示还是暗示。本文档不形成 AWS、其附属公司、供应商或许可方的任何保证、表示、合同承诺、条件或担保。AWS 对其客户承担的责任和义务受 AWS 协议制约,本文档不是 AWS 与客户直接的协议的一部分,也不构成对该协议的修改。

本指南随附的软件已在 Apache 许可证版本 2.0 (“许可证”) 下获得许可。除非符合许可证要求,否则您可能不得使用本文件。许可证的副本位于 http://aws.amazon.com/apache2.0/ 或此文件随附的“license”文件中。本准则“按原样”分发,无任何明示或暗示的保证或条件。请参阅许可证以了解在许可证下特定语言的适用权限和限制。

26