- Generate a key pair
- Create an AWS EC2 Instance
- Edit Security Group network rules
- Add Elastic IP and associate it to EC2 Instance
- Install Node
sudo yum install gcc-c++ openssl-devel make
wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.31.0/install.sh | bash
- close ssh connection or terminal
nvm install [version]
node --version
- Install MongoDB
name=MongoDB Repository baseurl=https://repo.mongodb.org/yum/amazon/2013.03/mongodb-org/3.2/x86_64/ gpgcheck=1 enabled=1 gpgkey=https://www.mongodb.org/static/pgp/server-3.2.asc" | sudo tee -a /etc/yum.repos.d/mongodb-org-3.2.repo```
sudo yum -y update && sudo yum install -y mongodb-org-server \ mongodb-org-shell mongodb-org-tools
sudo chkconfig mongod on
sudo service mongod start
- Install Git
sudo yum install git
- Clone the repository
- Install dependencies
npm install
- Install PM2 globally
npm install pm2 -g
- Add app to pm2 (forever run):
pm2 start [PATH_TO_APP.js] --watch --name="NAME"
- Redirect request on port 80 to 3000
sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3000
- (optional) Add this running PM2 app to https://app.keymetrics.io
Some tips: https://blog.codeship.com/running-mean-web-application-docker-containers-aws/
Using Docker: https://blog.codeship.com/running-mean-web-application-docker-containers-aws/
Further improvement: https://aws.amazon.com/pt/blogs/devops/automatically-deploy-from-github-using-aws-codedeploy/