Esta guía te guía a través de los pasos para conseguir que Node-RED funcione en un entorno AWS.
Existen dos métodos:
Ejecución en AWS Elastic Beanstalk Service (EB)
Ejecución en Elastic Beanstalk con alta disponibilidad
Ejecutando bajo imagen Ubuntu en AWS EC2
Ejecución en AWS EBS
requisitos previos
Asegúrese de que dispone de una cuenta de AWS con Elastic Beanstalk, SQS y S3 habilitados.
Descargue la línea de comandos EB e instálela en su equipo local - véase el enlace
Crea las credenciales de AWS y guárdalas en un archivo local (~/.aws/config o Usersusername.awsconfig) como se muestra a continuación
[perfil eb-cli]
aws_access_key_id = id clave
aws_secret_access_key = clave de acceso
Crear un entorno EB
Crear un nuevo directorio (por ejemplo, demoapp)
cd a ese directorio
Ejecuta eb init para crear un nuevo proyecto elastic beanstalk. Elige tu región preferida y usa node.js como plataforma. Se te preguntará si quieres usar ssh. Si lo haces, asegúrate de tener ssh instalado en tu ordenador si quieres generar un nuevo par de claves.
Inicia sesión en la consola de AWS en un navegador, elige Identity and Access Management (IAM) y añade la política AmazonS3FullAccess a aws-elasticbeanstalk-ec2-role.NOTA: Esto proporciona acceso completo de EBS a S3, es posible que desees ajustar esta política para satisfacer tus propias necesidades de seguridad.
Crear un entorno Node-RED
Cree un archivo package.json con el siguiente contenido (sustituya "demoapp" por el nombre de su aplicación)
{
"name": "demoapp",
"version": "1.0.0",
"description": "node-red demo app",
"principal": "",
"scripts": {
"start": "./node_modules/.bin/node-red -s ./settings.js"
},
"motores": {
"nodo": "10.x"
},
"dependencias": {
"node-red": "1.1.x",
"aws-sdk": "2.4.x",
"node-red-contrib-storage-s3": "0.0.x",
"cuando": "3.7.x"
},
"autor": "",
"licencia": "ISC"
}
Copie el archivo settings.js predeterminado de Node-RED en el directorio demoapp
Edita el archivo settings.js para añadir la siguiente entrada a module.exports (establece awsRegion a lo que se utiliza en eb init y sustituye demoapp por el nombre de tu aplicación):
awsRegion: 'eu-west-1',
awsS3Appname: 'demoapp',
storageModule: require('node-red-contrib-storage-s3'),
En la línea de comandos, asegúrese de que se encuentra en el directorio de nivel superior de la aplicación y ejecute el comando eb create; es posible que desee especificar un nombre de aplicación más exclusivo. Esto tardará mucho tiempo en ejecutarse, pero finalmente volverá con éxito.
Configurar el acceso a Node-RED
Ahora se puede acceder a Node-RED directamente desde la url web de la aplicación. Sin embargo, esto es inseguro y no funciona bien para el registro. En su lugar, configuraremos el acceso directo al puerto de gestión de node-red en la instancia ec2 que utiliza.
En la consola de AWS, seleccione EC2 y, a continuación, elija un grupo de seguridad. Verás un conjunto de grupos de seguridad. Seleccione una opción con el nombre de su entorno y una descripción de "Grupo de seguridad para el entorno ElasticBeanstalk". Una vez seleccionado, haz clic en Acciones y, a continuación, en Editar configuración de entrada. Aparecerá un cuadro de diálogo con reglas. Añada una nueva regla. Establezca el tipo como "todo el tráfico" y el origen como "mi ip". Guarde la regla.
Seleccione la instancia EC2 que ejecuta la aplicación nodo rojo.Copie su dirección IP
Introduzca la dirección IP en el navegador y el puerto es 8081. Esto proporcionará acceso directo a la consola de gestión de node-red.
Nota: La dirección IP pública también proporciona acceso a la aplicación nodo-rojo, es mejor eliminar este acceso también, a saber, la regla HTTP para el puerto 80.
Su instancia Node-RED se ejecuta ahora en EBS. Todas las secuencias que cree se guardarán en AWS S3 para que pueda desmontar el entorno y tener las secuencias accesibles cuando vuelva a realizar la implementación.
Ejecución en Elastic Beanstalk con alta disponibilidad
Esta opción de despliegue le proporciona una configuración Node-RED multinodo con un sistema de archivos compartido que utiliza Amazon Elastic File System (EFS). Como ejecuta varios nodos detrás de un balanceador de carga, obtiene una alta disponibilidad: si un nodo muere, Elastic Beanstalk lo sustituirá automáticamente.

Para empezar, clona el repositorio aquí https://github.com/guysqr/node-red-ha-on-aws y sigue las sencillas instrucciones. La infraestructura se crea para ti mediante plantillas de CloudFormation, por lo que no necesitas saber mucho sobre AWS para configurarla.
Además, esta opción de despliegue le permite ejecutar Node-RED bajo https e iniciar sesión a través de Auth0 (o puede cambiar fácilmente a la autenticación integrada o a cualquier proveedor de ID compatible con Passport).
Ejecución en AWS EC2 con Ubuntu
Crear una imagen EC2 base
Inicie sesión en la consola de AWS EC2
Haga clic en "Lanzar Instancia"
En la lista de AMI de inicio rápido, seleccione Ubuntu Server
Elija un tipo de instancia - t2.micro es un buen punto de partida
En la pestaña Configurar grupo de seguridad, añada una nueva regla TCP personalizada para el puerto 1880
En el último paso de "Auditoría", haga clic en el botón "Iniciar".
La consola le pedirá que configure un conjunto de claves SSH. Seleccione Crear un nuevo par de claves y haga clic en Descargar par de claves. Tu navegador guardará el archivo .pem, manteniéndolo a salvo. Por último, haz clic en Iniciar.
Después de unos minutos, su instancia EC2 estará funcionando. En la consola, puede encontrar la dirección IP de su instancia.
Establecer Nodo-RED
La siguiente tarea es iniciar sesión en la instancia e instalar node.js y Node-RED.
Siga las directrices de AWS para conectarse a su instancia.
Una vez conectado, tienes que instalar node.js y 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
En este punto, puede probar su instancia ejecutando node-red. NOTA: Es posible que reciba algunos errores relacionados con los nodos en serie.
Una vez iniciada, puedes conectarte en http://
Para que Node-RED se inicie automáticamente cuando se reinicie su instancia, puede utilizar pm2:
sudo npm install -g -unsafe-perm pm2
pm2 start `que nodo-rojo` - -v
pm2 guardar
pm2 puesta en marcha
NOTA: Este último comando le pedirá que ejecute otro comando - asegúrese de hacer lo que dice.
Siguiente paso
Esta guía sólo araña la superficie de cómo se puede optar por configurar sus instancias para ejecutar en EC2. Node-RED es "sólo" una aplicación node.js que expone un servidor HTTP - en este principio hay muchas guías en línea disponibles para aprender acerca de otros enfoques posibles.
Palabras clave: Pasarela LoRa


