Este guia orienta-o através das etapas para colocar o Node-RED em execução num ambiente AWS.
Existem dois métodos:
Execução no serviço AWS Elastic Beanstalk (EB)
Execução no Elastic Beanstalk com alta disponibilidade
Execução com a imagem do Linux incorporado no AWS EC2
Execução no AWS EBS
pré-requisitos
Certifique-se de que tem uma conta AWS com o Elastic Beanstalk, o SQS e o S3 activados
Descarregar a linha de comandos do EB e instalar no seu computador local - ver ligação
Crie credenciais do AWS e guarde-as num ficheiro local (~/.aws/config ou Usersusername.awsconfig), como mostrado abaixo
[perfil eb-cli]
aws_access_key_id = id da chave
aws_secret_access_key = chave de acesso
Criar um ambiente EB
Criar um novo diretório (por exemplo, demoapp)
cd para esse diretório
Execute o eb init para criar um novo projeto do elastic beanstalk. Escolha sua região preferida e use node.js como plataforma. Ser-lhe-á perguntado se pretende utilizar o ssh. Se o fizer, certifique-se de que tem o ssh instalado no seu computador se quiser gerar um novo par de chaves.
Inicie sessão na consola AWS num browser, selecione Identity and Access Management (IAM) e adicione a política AmazonS3FullAccess a aws-elasticbeanstalk-ec2-role. NOTA: Isto fornece acesso total do EBS ao S3, poderá querer ajustar esta política para satisfazer as suas próprias necessidades de segurança
Criar um ambiente Node-RED
Crie um ficheiro package.json com o seguinte conteúdo (substitua “demoapp” pelo nome da sua aplicação)
{
“nome”: “demoapp”,
“versão”: “1.0.0”,
“descrição”: “node-red demo app”,
“principal”: “”,
“scripts”: {
“start”: “./node_modules/.bin/node-red -s ./settings.js”
},
“motores”: {
“nó”: “10.x”
},
“dependências”: {
“node-red”: “1.1.x”,
“aws-sdk”: “2.4.x”,
“node-red-contrib-storage-s3”: “0.0.x”,
“quando”: “3.7.x”
},
“autor”: “”,
“licença”: “ISC”
}
Copie o ficheiro settings.js predefinido do Node-RED para o diretório demoapp
Edite o ficheiro settings.js para adicionar a seguinte entrada a module.exports (defina awsRegion para o que é utilizado no eb init e substitua demoapp pelo nome da sua aplicação):
awsRegion: ‘eu-west-1’,
awsS3Appname: ‘demoapp’,
storageModule: require(‘node-red-contrib-storage-s3’),
Na linha de comandos, certifique-se de que está no diretório de nível superior da aplicação e execute o comando eb create; poderá querer especificar um nome de aplicação mais exclusivo. Isso levará um longo tempo para ser executado, mas eventualmente retornará com sucesso.
Configurar o acesso ao Node-RED
O Node-RED pode agora ser acedido diretamente a partir do URL da aplicação. No entanto, isso é inseguro e não funciona bem para o registo. Em vez disso, configuraremos o acesso direto à porta de gerenciamento da node-red na instância ec2 que ela usa.
Na consola AWS, escolha EC2 e, em seguida, escolha um grupo de segurança. Verá um conjunto de grupos de segurança. Selecione uma opção com o nome do seu ambiente e uma descrição de “Grupo de segurança para o ambiente ElasticBeanstalk”. Depois de selecionado, clique em Acções e, em seguida, em Editar definições de entrada. É apresentada uma caixa de diálogo com regras. Adicione uma nova regra. Defina o tipo como “todo o tráfego” e a origem como “meu ip”. Salve a regra.
Selecione a instância do EC2 que executa a aplicação do nó vermelho e copie o seu endereço IP
Introduza o endereço IP no browser e a porta é 8081. Isto fornecerá acesso direto à consola de gestão do node-red.
Nota: O endereço IP público também fornece acesso à aplicação node-red, pelo que é melhor remover também este acesso, nomeadamente a regra HTTP para a porta 80.
Sua instância do Node-RED agora está sendo executada no EBS. Todos os fluxos que você criar serão salvos no AWS S3 para que você possa desmontar o ambiente e ter os fluxos acessíveis ao reimplantar.
Execução no Elastic Beanstalk com alta disponibilidade
Esta opção de implantação oferece uma configuração Node-RED de vários nós com um sistema de arquivos compartilhado usando o Amazon Elastic File System (EFS). Como executa vários nós atrás de um balanceador de carga, obtém alta disponibilidade - se um nó morrer, o Elastic Beanstalk substitui-o automaticamente.

Para começar, clone o repositório aqui https://github.com/guysqr/node-red-ha-on-aws e siga as instruções simples. A infraestrutura é criada para si através de modelos CloudFormation, pelo que não precisa de saber muito sobre o AWS para a configurar.
Além disso, essa opção de implantação permite executar o Node-RED em https e fazer login via Auth0 (ou você pode alternar facilmente para a autenticação integrada ou qualquer provedor de ID compatível com o Passport).
Execução no AWS EC2 usando Linux incorporado
Criar uma imagem EC2 de base
Iniciar sessão na consola do AWS EC2
Clique em “Iniciar Instância”
Na lista AMI de início rápido, selecione Servidor Linux incorporado
Escolha um tipo de instância - t2.micro é um bom ponto de partida
No separador Configurar grupo de segurança, adicione uma nova regra TCP personalizada para a porta 1880
Na etapa final de “Auditoria”, clique no botão “Iniciar”
A consola irá pedir-lhe para configurar um conjunto de chaves SSH. Selecione Criar um novo par de chaves e clique em Transferir par de chaves. O seu navegador irá guardar o ficheiro .pem - mantendo-o seguro. Por fim, clique em Iniciar.
Após alguns minutos, a sua instância EC2 estará a funcionar. Na consola, pode encontrar o endereço IP da sua instância.
Definir Nó-RED
A próxima tarefa é fazer login na instância e instalar o node.js e o Node-RED.
Siga as diretrizes da AWS para se ligar à sua instância.
Depois de iniciar sessão, é necessário instalar o node.js e o 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
Neste ponto, você pode testar sua instância executando node-red. NOTA: Poderá receber alguns erros relativos a nós em série - isto é esperado e pode ser ignorado.
Uma vez iniciado, pode iniciar sessão em http://
Para que o Node-RED seja iniciado automaticamente quando sua instância for reiniciada, você pode usar o pm2:
sudo npm install -g -unsafe-perm pm2
pm2 start `que nó-vermelho` - -v
pm2 guardar
arranque do pm2
NOTA: Este último comando irá pedir-lhe para executar outro comando - certifique-se de que faz o que ele diz.
Próximo passo
Este guia apenas arranha a superfície de como pode escolher configurar as suas instâncias para correr no EC2. O Node-RED é “apenas” uma aplicação node.js que expõe um servidor HTTP - neste princípio, existem muitos guias online disponíveis para aprender sobre outras abordagens possíveis.
Palavras-chave: Gateway LoRa
- iot-en



