Pm2 e Aws Auto scaling
Carlos Rodrigues
IT Solutions Architect
Who I'm?
Carlos Rodrigues
Solutions Architect / DevOps / SRE
carlos.rodrigues@fcnuvem.com.br
Stateless
PM2
Autoscaling Aws
Em computação, um protocolo sem estado (do inglês stateless) é um protocolo de comunicação que considera cada requisição como uma transação independente que não está relacionada a qualquer requisição anterior, de forma que a comunicação consista de pares de requisição e resposta independentes.
Restart do server em caso de erro.
Cluster mode
pm2 plus
#!/bin/bash -ex
curl "https://carlosrodriguesjunior.github.io/node-high-cpu/hello-world-server.js" > /home/ec2-user/hello-world-server.js
sudo chmod 755 /home/ec2-user/hello-world-server.js
sudo yum install -y gcc-c++ make
sudo curl -sL https://rpm.nodesource.com/setup_11.x | sudo -E bash -
sudo yum install nodejs -y
sudo npm i pm2 -g
sudo pm2 link d6uu9vvzm87u8tl 8ob9i5pqu9n2mtw node-app
sudo pm2 start /home/ec2-user/hello-world-server.js -i max --name "node-app"
const port = 80
require('http')
.createServer((req, res) => {
console.log('url:', req.url)
console.log('now we will slow down and block and consume CPU...')
for (var i=0; i< 9000000; i++) {}
res.end('hello world')
})
.listen(port, (error)=>{
console.log(`server is running on ${port}`)
});
siege -u http://3.231.161.169 -d1 -r200 -c140 -t60S
pm2 start hello-world-server.js - fork mode
siege -u http://3.231.161.169 -d1 -r200 -c140 -t60S
pm2 start -i 2 hello-world-server.js - cluster mode
siege -u http://3.231.161.169 -d1 -r200 -c140 -t120S
siege -u http://3.231.161.169 -d1 -r200 -c140 -t120S
siege -u http://elb-nodejs-1179591485.us-east-1.elb.amazonaws.com/ -d1 -r200 -c140 -t60S
Carlos Rodrigues
carlos.rodrigues@fcnuvem.com.br