适合第一次简单配置。
连接EC2并进入root权限模式
1-创建EC2实例
修改实例选择安全群组:Networking->Change Security Groups
配置所属安全群组入站规则:
SSH; HTTP; HTTPS
2-连接EC2云主机
Connect->勾选EC2
3-进入root权限下 [5]
# Linux
sudo passwd root
su root
安装MongoDB Server
3-安装
3.1-创建MongoDB3.0安装文件
注意此处用到的名词为:mongodb, mongod,mongo。同时,保持在root权限下安装(会避免麻烦,虽然部分语句加sudo字段可以运行成功)。
# Linux
vi /etc/yum.repos.d/mongodb-org-3.0.repo
进入文件,添加如下代码并保存退出:[13]
[mongodb-org-3.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/amazon/2013.03/mongodb-org/3.0/x86_64/
gpgcheck=0
enabled=1
3.2-安装并启动MongoDB服务
# Linux
sudo yum install -y mongodb-org
启动服务
# Linux
sudo service mongod start
配置开机自启动
# Linux
sudo chkconfig mongod on
测试MongDB服务,此步骤结束一个简单的MongoDB服务已经被配置安装完成。
# Linux
mongo
配置用户登录访问
4-用户登录
4.1-添加用户信息
进入到数据库admin,添加用户登录名称和密码。配置用户登录权限。[13]
# mongo
use admin
# mongo
db.createUser(
{
user: "${user_name}",
pwd: "${userpassword}",
roles: [ { role: "${privileges}", db: "${database_name}" } ]
}
)
权限"userAdminAnyDatabase"表示CUID;权限”readWrite“表示写与读。[13]
上面代码块中的代码是示例代码,下面是一个真实的例子:
# mongo
db.createUser(
{
user: "lcy",
pwd: "123",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
}
)
4.2-开启用户登录验证
进入服务配置文件并修改security字段。
# Linux
vi /etc/mongod.conf
一下字段注意空格(否则重启服务时会报错,如果出现错误见引用[12])
security:
authorization: "enabled"
4.3-重启服务
# Linux
service mongod restart
配置远程访问
配置远程访问
5-远程访问
5.1-修改配置文件
# Linux
vi /etc/mongod.conf
修改配置文件中bindIp为0.0.0.1,使得修改后的配置在任何Ip地址下可以访问此实例下的MongoDB服务(也可以按照引用[9]中的字段配置:127.0.0.0.1, ${pubilc_ip_EC2_instance},目前没有尝试):
bindIp: 0.0.0.1
5.2-修改防火墙
开启27017端口:[11]
# Linux
iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 27017 -j ACCEPT
5.3-重启服务
# Linux
service mongod restart
测试连接
6-测试
6.1-方法一:EC2主机中测试 [11]
# Linux
# mongo ${public_ip_EC2_instance}:27017
mongo 54.29.87.01:27017
6.2-方法二:python连接MongoDB服务
# python
# package importing
import pymongo
from pymongo import MongoClient
# connect the service
client = MongoClient()
# client = MongoClient("mongodb://${user_name}:${user_passwd}@${public_ip_EC2_instance}:27017")
client = MongoClient("mongodb://chenyang:123@50.15.93.96:27017")
拓展阅读:
1-部署MongoDB涉及的服务:
Amazon EC2:“Amazon Elastic Compute Cloud(Amazon EC2)服务使您能够使用各种操作系统启动虚拟机实例。您可以选择现有的亚马逊机器映像(AMI)或导入自己的虚拟机映像。
用途:AWS web服务器 和 Mongodb服务的载体”[1]
Amazon VPC: “亚马逊虚拟私有云(Amazon VPC)服务允许您配置AWS云的专用隔离部分,以便在您定义的虚拟网络中启动AWS服务和其他资源。您可以完全控制虚拟网络环境,包括选择您自己的IP地址范围,创建子网以及配置路由表和网关。
用途 : 构建mongodb 网络” [1]
Amazon EBS: "Amazon Elastic Block Store(Amazon EBS)提供持久性块级存储卷,以用于AWS Cloud中的EC2实例。每个EBS卷都会在其可用区域内自动复制,以防止组件发生故障,从而提供高可用性和持久性。EBS卷提供运行工作负载所需的一致性和低延迟性能。
用途:mongodb存储" [1]
AWS CloudFormation:“AWS CloudFormation为您提供了一种创建和管理相关AWS资源集合的简便方法,并以有序且可预测的方式提供和更新它们。
用途:根据配置,调用资源进行自动化创建服务。”[1]
IAM:“AWS身份和访问管理(IAM)使您能够安全地控制对用户的AWS服务和资源的访问。借助IAM,您可以从中央位置管理用户,安全证书(如访问密钥)以及控制哪些AWS资源用户可以访问的权限。“[1]
2-Linux修改文件
Insert键(或者按字母i键)->修改文件->Esc键+:wq
"
:w 保存文件但不退出
:w! 强制保存,不退出
:wq 保存文件退出
:wq! 保存文件退出
" [4]
3-用户配置新建数据库
见引用[8]。另外引用[7]中说明了使用用户登录远程访问的具体步骤。
4-一些在安装时可能遇到的错误(目前没有遇到)
见引用:[6], [10]
5-可参考的部分相关代码
见引用:[2], [3]
推荐阅读:
[1] 'AWS mongodb部署(官方推荐实现)', CSDN, Apirl 2018, Avaliable at: AWS mongodb部署(官方推荐实现)_Andy Tools-CSDN博客_aws mongodb
[2] 'Centos 安装MongoDB', cnblog, Apirl 2020, Avaliable at: Centos 安装MongoDB - Hackerman - 博客园
[3] '在亚马逊amazon的AWS上安装Node和MongoDB服务器', CSDN, February 2016, Avaliable at: 在亚马逊amazon的AWS上安装Node和MongoDB服务器_weixin_34275734的博客-CSDN博客
[4] 'linux修改文件内容如何保存退出', CSDN, October 2021, Avaliable at: linux修改文件内容如何保存退出_m0_55289425的博客-CSDN博客_linux修改文件后怎么保存退出
[5] '在aws ec2上使用root用户登录', cnblog, October 2017, Avaliable at: 在aws ec2上使用root用户登录 - 绅士也疯狂 - 博客园
[6] ' MongoDB报错 Failed to connect 127.0.0.1:27017 Mongo运行错误 ', cnblog, November 2016, Avaliable at: 1.MongoDB报错 Failed to connect 127.0.0.1:27017 Mongo运行错误 - WWSASUKE - 博客园
[7] '从python配置并连接到远程mongodb', CSDN, August 2020, Avaliable at: 从python配置并连接到远程mongodb_weixin_26749889的博客-CSDN博客
[8] ' mongodb创建数据库用户名和密码_mongodb给数据库创建用户密码', CSDN, January 2021, Avaliable at: mongodb创建数据库用户名和密码_mongodb给数据库创建用户密码_林桂鑫的博客-CSDN博客
[9] ' mongodb 可视化_远程连接云服务器上的MongoDB-配置', CSDN, December 2020, Avaliable at: mongodb 可视化_远程连接云服务器上的MongoDB-配置_weixin_39783915的博客-CSDN博客
[10] ' MongoDB报错: Failed to start mongod.service: Unit mongodb.service is masked', 简书, May 2019, Avaliable at: MongoDB报错: Failed to start mongod.service: Unit mongodb.service is masked - 简书
[11] 'mongodb远程连接配置', cnblog, July 2017, Avaliable at: mongodb远程连接配置 - 今孝 - 博客园
[12] ' mongodb开启安全认证后无法启动', CSDN, June 2019, Avaliable at: mongodb开启安全认证后无法启动_weixin_33922670的博客-CSDN博客
[13] '8 Simple steps to install MongoDB with authentication on EC2 AMI Linux', Solution Analysts, Avaliable at: 8 Simple steps to install MongoDB with authentication on EC2 AMI Linux - Solution Analysts