在 aws 上部署使用 mongodb 的 Node js 应用程序

2024-01-06

我对亚马逊网络服务和弹性豆茎很陌生。

虽然很多人说它简单易用,但我想说这是一个非常主观的说法。对于像我这样刚接触云托管和虚拟专用服务器的人来说,我相信学习曲线与必须“艰难地”学习的人没有太大不同。

我正在开发一个nodejs网站,它使用expressjs作为核心框架,使用MongoDB作为数据库。我的雇主希望我们使用 AWS。现在这就是问题开始的地方。

我已经能够在弹性豆茎上设置环境,甚至上传应用程序并且环境启动,但没有任何效果。

我遇到的第一个问题是,尽管我成功地设置了环境,但我几乎不知道所有配置的含义,而且我的头在旋转。 AWS 官方文档对此没有多大帮助。

其次,我不知道如何让它与 MongoDB 一起使用,在仪表板上我看到的唯一选项是 Amazon RDS,并且我搜索的任何解释对于像我这样的新手来说都相当复杂。

有谁有链接到我可以得到所有这一切的简单解释的地方,或者有人可以简单地解释如何做到这一点?

PS:我创建的AWS环境是运行Node.js的64位Amazon Linux 2014.03 v1.0.6

EDIT:我收到错误 502 网关错误。该应用程序在前端 nginx 代理后面运行。


AWS 在配置服务器和应用程序方面更先进一些,因此它会令人困惑也就不足为奇了。大多数时候,文档也没有多大帮助。 Amazon 引导您使用他们的 RDS / nosql (DynamoDB)。您可以在 AMI 市场中添加许多不同类型的数据库,但我发现这些数据库太昂贵且不必要。

对于以下情况,ssh进入您的 EC2 实例ssh -i <your .pem key> [email protected] /cdn-cgi/l/email-protection(应该看起来类似)

对于 AWS 上的 MongoDB:

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

参考:gist https://gist.github.com/jordancalder/6817ef9bf045f1262eab

你可以运行mongo在当前的 ssh 会话中确保其正常运行。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 aws 上部署使用 mongodb 的 Node js 应用程序 的相关文章

随机推荐