Exécuter Node-RED sur Amazon Web Server - IOTROUTER
Une fois toutes les 5 minutes

Exécution de Node-RED sur Amazon Web Server

Ce guide vous guide à travers les étapes pour faire fonctionner Node-RED dans un environnement AWS.

Il existe deux méthodes :

Exécution sur AWS Elastic Beanstalk Service (EB)

Exécution sur Elastic Beanstalk avec haute disponibilité

Exécution sous une image Linux embarquée sur AWS EC2

Exécution sur AWS EBS

conditions préalables

Assurez-vous d'avoir un compte AWS avec Elastic Beanstalk, SQS et S3 activés.

Téléchargez EB en ligne de commande et installez-le sur votre machine locale - voir le lien

Créez des informations d'identification AWS et enregistrez-les dans un fichier local (~/.aws/config ou Usersusername.awsconfig) comme indiqué ci-dessous

[profil eb-cli]

aws_access_key_id = identifiant de la clé

aws_secret_access_key = clé d'accès

Créer un environnement EB

Créer un nouveau répertoire (par exemple demoapp)

cd vers ce répertoire

Exécutez eb init pour créer un nouveau projet elastic beanstalk. Choisissez votre région préférée et utilisez node.js comme plateforme. Il vous sera demandé si vous souhaitez utiliser ssh. Dans ce cas, assurez-vous que ssh est installé sur votre ordinateur si vous souhaitez générer une nouvelle paire de clés.

Connectez-vous à la console AWS sur un navigateur, choisissez Identity and Access Management (IAM) et ajoutez la politique AmazonS3FullAccess à aws-elasticbeanstalk-ec2-role.NOTE : Cette politique fournit un accès complet d'EBS à S3, vous pouvez l'ajuster pour répondre à vos propres besoins en matière de sécurité.

Créer un environnement Node-RED

Créez un fichier package.json avec le contenu suivant (remplacez “demoapp” par le nom de votre application)

{

“nom” : “demoapp”,

“version” : “1.0.0”,

“description” : “node-red demo app”,

“principal” : “”,

“scripts” : {

“start” : “./node_modules/.bin/node-red -s ./settings.js”

},

“moteurs” : {

“node” : “10.x”

},

“dépendances” : {

“node-red” : “1.1.x”,

“aws-sdk” : “2.4.x”,

“node-red-contrib-storage-s3” : “0.0.x”,

“when” : “3.7.x”

},

“auteur” : “”,

“licence” : “ISC”

}

Copier le fichier settings.js de Node-RED dans le répertoire demoapp

Modifiez le fichier settings.js pour ajouter l'entrée suivante au module.exports (réglez awsRegion sur ce qui est utilisé dans eb init et remplacez demoapp par le nom de votre application) :

awsRegion : ‘eu-west-1’,

awsS3Appname : ‘demoapp’,

storageModule : require(‘node-red-contrib-storage-s3’),

À l'invite de commande, assurez-vous d'être dans le répertoire de premier niveau de l'application et exécutez la commande eb create ; vous voudrez peut-être spécifier un nom d'application plus unique. L'exécution de cette commande sera longue, mais elle finira par aboutir.

Configurer l'accès au Node-RED

Node-RED est désormais accessible directement depuis l'url web de l'application. Cependant, cela n'est pas sécurisé et ne fonctionne pas bien pour la journalisation. A la place, nous allons configurer un accès direct au port de gestion de node-red sur l'instance ec2 qu'il utilise.

Dans la console AWS, choisissez EC2, puis un groupe de sécurité. Vous verrez une série de groupes de sécurité. Sélectionnez une option avec le nom de votre environnement et une description de “Security Group for ElasticBeanstalk Environment” (Groupe de sécurité pour l'environnement ElasticBeanstalk). Une fois l'option sélectionnée, cliquez sur Actions, puis sur Edit Inbound Settings (Modifier les paramètres de réception). Une boîte de dialogue contenant des règles s'affiche. Ajoutez une nouvelle règle. Définissez le type sur “all traffic” et la source sur “my ip”. Enregistrez la règle.

Sélectionnez l'instance EC2 qui exécute l'application node red et copiez son adresse IP.

Entrez l'adresse IP dans le navigateur et le port est 8081. Ceci fournira un accès direct à la console de gestion de node-red.

Note : L'adresse IP publique fournit également un accès à l'application node-red, il est préférable de supprimer cet accès également, à savoir la règle HTTP pour le port 80.

Votre instance Node-RED fonctionne désormais sur EBS. Tous les flux que vous créez seront enregistrés sur AWS S3 afin que vous puissiez démanteler l'environnement et que les flux soient accessibles lors du redéploiement.

Exécution sur Elastic Beanstalk avec haute disponibilité

Cette option de déploiement vous offre une configuration Node-RED à plusieurs nœuds avec un système de fichiers partagé utilisant Amazon Elastic File System (EFS). L'exécution de plusieurs nœuds derrière un équilibreur de charge permet d'obtenir une haute disponibilité : si un nœud meurt, Elastic Beanstalk le remplacera automatiquement.

Exécution de Node-RED sur Amazon Web Server

Pour commencer, clonez le dépôt ici https://github.com/guysqr/node-red-ha-on-aws et suivez les instructions simples. L'infrastructure est créée pour vous par des modèles CloudFormation, vous n'avez donc pas besoin d'avoir de grandes connaissances sur AWS pour la mettre en place.

En outre, cette option de déploiement vous permet d'exécuter Node-RED sous https et de vous connecter via Auth0 (ou vous pouvez facilement passer à l'authentification intégrée ou à n'importe quel fournisseur d'identité compatible avec Passport).

Exécution sur AWS EC2 avec Embedded Linux

Créer une image EC2 de base

Se connecter à la console AWS EC2

Cliquez sur “Lancer l'instance”

Dans la liste des AMI de démarrage rapide, sélectionnez Embedded Linux Server.

Choisissez un type d'instance - t2.micro est un bon point de départ.

Dans l'onglet Configurer le groupe de sécurité, ajoutez une nouvelle règle TCP personnalisée pour le port 1880.

Dans la dernière étape de l'audit, cliquez sur le bouton “Démarrer”.

La console vous invite à configurer un ensemble de clés SSH. Sélectionnez Créer une nouvelle paire de clés et cliquez sur Télécharger la paire de clés. Votre navigateur enregistrera le fichier .pem, qui sera ainsi conservé en toute sécurité. Enfin, cliquez sur Démarrer.

Après quelques minutes, votre instance EC2 fonctionnera. Dans la console, vous trouverez l'adresse IP de votre instance.

Fixer le nœud rouge

La tâche suivante consiste à se connecter à l'instance et à installer node.js et Node-RED.

Suivez les instructions d'AWS pour vous connecter à votre instance.

Une fois connecté, vous devez installer node.js et Node-RED

curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash -

sudo apt-get install -y nodejs build-essential

sudo npm install -g -unsafe-perm node-red

À ce stade, vous pouvez tester votre instance en exécutant node-red. NOTE : Il se peut que vous receviez des erreurs concernant les nœuds en série - ceci est normal et peut être ignoré.

Une fois que vous avez commencé, vous pouvez vous connecter à l'adresse suivante : http:// :1880/.

Pour que Node-RED démarre automatiquement lorsque votre instance redémarre, vous pouvez utiliser pm2 :

sudo npm install -g -unsafe-perm pm2

pm2 start `qui node-red` - -v

pm2 sauver

démarrage de pm2

NOTE : Cette dernière commande vous demandera d'exécuter une autre commande - assurez-vous de faire ce qu'elle vous dit.

Prochaine étape

Ce guide ne fait qu'effleurer la surface de la façon dont vous pouvez choisir de configurer vos instances pour qu'elles fonctionnent dans EC2. Node-RED est “juste” une application node.js qui expose un serveur HTTP - dans ce principe, il y a de nombreux guides en ligne disponibles pour apprendre d'autres approches possibles.

Mots-clés : Passerelle LoRa