Executando o Node-RED no Amazon Web Server

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.

Executando o Node-RED no Amazon Web Server

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:// :1880/.

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

About Me
e87d0ef219292bb40d6f120e7d321bcb?s=150&d=mp&r=g
More Posts