MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Distribuzione di un'app node js che utilizza mongo db su aws

AWS è un po' più avanzato in ciò che puoi fare con la configurazione di server e applicazioni, quindi non c'è da meravigliarsi se può creare confusione. La maggior parte delle volte, anche i documenti non fanno molto per aiutare. Amazon ti guida a utilizzare il loro RDS / nosql (DynamoDB). Puoi aggiungere molti tipi diversi di database nel mercato AMI, ma trovo che questi siano troppo costosi e non necessari.

Per quanto segue, ssh into your EC2 instance ssh -i <your .pem key> [email protected] (dovrebbe essere simile a quello)

Per MongoDB su AWS:

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", ATTR{bdi/read_ahead_kb}="16"' | sudo tee -a /etc/udev/rules.d/85-ebs.rules

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

Riferimento:gist

Puoi eseguire mongo nella tua sessione ssh corrente per assicurarti che funzioni correttamente.