Implementación de una aplicación node js que usa mongo db en aws

Soy bastante nuevo en los servicios web de Amazon y el beanstalk elástico.

Aunque mucha gente dice que es simple y fácil de usar, yo diría que es una afirmación muy subjetiva. Para alguien como yo que es nuevo en el alojamiento en la nube y en los servidores privados virtuales, creo que la curva de aprendizaje no es muy diferente de alguien que tendría que aprender a hacerlo “de la manera más difícil”.

Estoy desarrollando un sitio web de nodejs que usa expressjs como su marco central y MongoDB como su base de datos. Mi empleador quiere que usemos AWS. Ahora ahí es donde comienza el problema.

He podido configurar un entorno en beanstalk elástico e incluso cargar la aplicación y el entorno comenzó, pero nada funciona.

El primer problema que tengo es que, a medida que configuro el entorno con éxito, no tengo ni idea de lo que significan todas las configuraciones y mi cabeza está girando. La documentación oficial de AWS no ayuda mucho allí.

En segundo lugar, no sé cómo hacer que funcione con MongoDB, en el panel de control, la única opción que veo es Amazon RDS y cualquier explicación que haya buscado es bastante complicada para un novato como yo.

¿Alguien tiene un enlace a algún lugar donde pueda obtener una explicación simple de todo esto o alguien puede explicar cómo hacerlo?

PD: el entorno AWS que creé es un 64bit Amazon Linux 2014.03 v1.0.6 ejecutando Node.js

EDITAR: Estoy recibiendo el error 502 Bad Gateway. La aplicación se ejecuta detrás de un proxy nginx frente a frente.

AWS es un poco más avanzado en lo que puede hacer con la configuración de sus servidores y aplicaciones, por lo que no es de extrañar que pueda ser confuso. La mayoría de las veces, los documentos tampoco hacen mucho para ayudar. Amazon lo dirige a usar su RDS / nosql (DynamoDB). Puede agregar muchos tipos diferentes de bases de datos en el mercado AMI, pero me parece que son demasiado caros e innecesarios.

Para lo siguiente, ssh en su instancia de EC2 ssh -i ec2-user@ec2-xx-xx-xx-xx.us-west-2.compute.amazonaws.com (debería verse similar a eso)

Para MongoDB en 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 

Referencia: gist

Puede ejecutar mongo en su sesión ssh actual para asegurarse de que se está ejecutando correctamente.