Déployer Node.JS sur une instance EC2 Linux Amazon AWS
AWS (Amazon Web Services) est l'hébergeur le plus utilisé par les startups grâce à sa "scalabilité" et ses coûts.
La première année, Amazon vous offre une instance sans débourser le moindre sous.
Vous aurez besoin de votre carte bleue.
Je vous invite à suivre la vidéo (32min) pour savoir comment créer une application Node.JS sur AWS. Et pour celles et ceux qui préfèrent l'écrit, j'ai ajouté les instructions écrites et les sources à la suite.
Création d'une instance EC2
- Aller sur ce lien et créer un compte
- Préparer votre carte bleue
- Préparer votre téléphone pour la confirmation par SMS
- Les 2 seront vérifiés. Attention, si vous dépassez le quota, votre carte bleue sera débitée. A 85% d'utilisation de votre quota, chaque mois, vous serez prévenu.e et vous pourrez couper votre instance avant qu'il ne soit trop tard.
- Si vous voulez plus de détails sur les autres parties, regardez la vidéo où j'explique les possibilités de paramétrages dont on a pas besoin pour ce que l'on veut faire
- Mac/Linux : sudo chmod 600 <nom_clé>.pem
- Windows : chmod 600 <nom_clé>.pem
- ssh -i "<nom_clé>.pem" ec2-user@<public-ip-server>.<instance_location>.compute.amazonaws.com
Installer Node.JS sur EC2
- Vous êtes maintenant connecté.e à un serveur linux vide. Il va falloir tout installer.
- On va installer le strict minimum mais vous pourriez installer Apache ou NGINX, un serveur de base de données (MariaDB, MongoDB, etc...), des outils de monitoring de serveur, etc...
- sudo yum update -y
- Mise à jour votre repository yum
- curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.37.2/install.sh | bash
- Installation de la version 0.37.2 de NVM (allez sur la documentation officielle de NVM pour avoir la dernière version)
- Copier/coller la commande affichée dans la console après l'installation pour installer NVM sur votre système
- nvm install 15
- Pour installer la version 15 de Node
- sudo iptables -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT
- sudo iptables -A INPUT -i eth0 -p tcp --dport 8080 -j ACCEPT
- sudo iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080
- Ces 3 commandes ouvrent les ports 80 puis 8080 du serveur et redirige le port 8080 vers le port 80. Le port 8080 sera celui où résidera l'application Node.JS, le port 80 est le port par défaut utiliser par les navigateur. C'est le port du protocole HTTP. Pour le HTTPS, c'est le port 443.
- vim index.js
- Tapez "A" pour pouvoir écrire dans le fichier et coller le code de cette page en vous assurant de changer le port 3000 par 8080. Puis faire "Echap" et les caractères ":wq" puis Entrée pour enregistrer (w - write) et quitter (q - quit) le fichier.
- node index.js
- Si ça ne fonctionne pas, mettez un commentaire sur la vidéo, dans ce post ou envoyez moi un email
- npm i -g pm2
- pm2 index.js --name mon_app
Partie 2 : Installer une application React/Node via Github sur AWS
Pour avoir accès à la partie 2 :
- avec la vidéo (1h17)
- Déployer Node.JS et React sur le même serveur
- Utiliser Github pour le déploiement
- et le code final
Vous pouvez créer un compte de membre gratuit.
Sources :