如何在 Elastic Beanstalk 中安装 mongodb?

Posted

技术标签:

【中文标题】如何在 Elastic Beanstalk 中安装 mongodb?【英文标题】:How to install mongodb in Elastic Beanstalk? 【发布时间】:2014-08-30 11:24:55 【问题描述】:

我正在尝试使用 mongodb 设置 Elastic Beanstalk。我从这个link 得到了解决方案。 但这对我不起作用。我正在使用“64 位 Amazon Linux 2014.03 v1.0.4。”。当我尝试使用链接的解决方案安装 mongodb 时,它会停止实例并显示以下错误。

Error: failed to connect to [localhost:27017]
at null.<anonymous> (/var/app/current/node_modules/mongoose/node_modules/mongodb/lib/mongodb/connection/server.js:546:74)
at EventEmitter.emit (events.js:106:17)
at null.<anonymous> (/var/app/current/node_modules/mongoose/node_modules/mongodb/lib/mongodb/connection/connection_pool.js:150:15)
at EventEmitter.emit (events.js:98:17)
at Socket.<anonymous> (/var/app/current/node_modules/mongoose/node_modules/mongodb/lib/mongodb/connection/connection.js:533:10)
at Socket.EventEmitter.emit (events.js:95:17)
at net.js:440:14
at process._tickCallback (node.js:415:13)

我按照说明将内容放入 aws.config 文件中。请帮忙。

【问题讨论】:

我也有同样的问题。这对我来说效果不佳。 根据提供的链接,日志说什么?您收到的错误表明 mongo 服务器未运行,或者如果运行,则无法通过其默认端口 (27017:tcp) 访问它 不要链接到另一个答案并说“我用过这个”。首先,您没有链接到答案,而是链接到了问题。这个问题将来可能会得到更多的答案,在这种情况下,我们将不知道你在说哪个答案。其次,答案,或者它的问题,将来可能会改变甚至被删除,在这种情况下,我们也不知道具体尝试了什么。因此,将您尝试使用的任何代码复制到您自己的问题中(但仍链接到您最初获取代码的位置)。 为什么不在对应的答案下问?你拥有所有必要的声誉。 @FinalContest 请看我的问题,我提到了链接,对于那里给出的解决方案,我收到了错误。 【参考方案1】:

我必须这样做足够多次才能创建一个gist,所以我可以快速再次这样做。

首先,通过 ssh 进入您的 AWS EC2 实例 (ssh -i ec2-user@)

从这里开始,几乎是复制/粘贴:

echo "[MongoDB]
name=MongoDB Repository
baseurl=http://downloads-distro.mongodb.org/repo/redhat/os/x86_64
gpgcheck=0
enabled=1" | sudo tee -a /etc/yum.repos.d/mongodb.repo

sudo yum install -y mongodb-org-server mongodb-org-shell mongodb-org-tools

sudo mkdir /data /log /journal

//Mount partitions -- Find available ones for /data /log /journal
sudo mkfs.ext4 /dev/xvdf
sudo mkfs.ext4 /dev/xvdg
sudo mkfs.ext4 /dev/xvdh

echo '/dev/xvdf /data ext4 defaults,auto,noatime,noexec 0 0
/dev/xvdg /journal ext4 defaults,auto,noatime,noexec 0 0
/dev/xvdh /log ext4 defaults,auto,noatime,noexec 0 0' | sudo tee -a /etc/fstab

sudo mount /data
sudo mount /journal
sudo mount /log

sudo chown mongod:mongod /data /journal /log

sudo ln -s /journal /data/journal

nano /etc/mongod.conf
//Change to 
dbpath = /data
logpath = /log/mongod.log

sudo nano /etc/security/limits.conf

现在将文件内容填写到:

* soft nofile 64000
* hard nofile 64000
* soft nproc 32000
* hard nproc 32000

现在更改此文件:

sudo nano /etc/security/limits.d/90-nproc.conf

内容:

* soft nproc 32000
* hard nproc 32000

sudo blockdev --setra 32 /dev/xvdf

echo 'ACTION=="add", KERNEL=="xvdf", ATTRbdi/read_ahead_kb="16"' | sudo tee -a /etc/udev/rules.d/85-ebs.rules

别忘了启动守护进程:

//Run persistent
mongod --fork --logpath /var/log/mongodb/mongod.log

【讨论】:

以上是关于如何在 Elastic Beanstalk 中安装 mongodb?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Elastic Beanstalk 多容器 Docker 环境中安装 composer 依赖项

在 Elastic Beanstalk 中安装/设置 Mongos

如何在 Elastic Beanstalk 上安装 matplotlib

如何在 AWS elastic-beanstalk 中更改我的 python 版本

如何让Elastic Beanstalk nginx支持的代理服务器从HTTP自动重定向到HTTPS?

将 SSL 证书配置到 SINGLE Elastic Beanstalk TOMCAT 实例