Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
273 views
in Technique[技术] by (71.8m points)

node.js - How to install mongodb in Elastic Beanstalk?

I'm trying to setup an Elastic Beanstalk with mongodb. I got a solution from this link. But it is not working for me. I'm using " 64-bit Amazon Linux 2014.03 v1.0.4.". When I'm trying to install mongodb using the solution of the link, it stops the instance with the following error.

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)

I followed the instruction and put the content in aws.config file as told. Please help.

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

I've had to do this enough times to create a gist so I can quickly do it again.

First, ssh into your AWS EC2 instance (ssh -i ec2-user@)

From here on, it's pretty much copy/paste:

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

Now fill in the contents of the file to:

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

Now change this file:

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

with contents:

* soft nproc 32000
* hard nproc 32000

sudo blockdev --setra 32 /dev/xvdf

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

And don't forget to start the daemon process:

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

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...