Deze handleiding leidt u stap voor stap door het proces om Node-RED in een AWS-omgeving aan de praat te krijgen.
Er zijn twee methoden:
Draait op de AWS Elastic Beanstalk-service (EB)
Draait op Elastic Beanstalk met hoge beschikbaarheid
Draait onder een Embedded Linux-image op AWS EC2
Draait op AWS EBS
voorwaarden
Zorg ervoor dat je een AWS-account hebt waarop Elastic Beanstalk, SQS en S3 zijn ingeschakeld
Download EB Command Line en installeer het op je lokale computer – zie link
Maak AWS-inloggegevens aan en sla deze op in een lokaal bestand (~/.aws/config of Usersusername.awsconfig) zoals hieronder weergegeven
[profiel eb-cli]
aws_access_key_id = sleutel-id
aws_secret_access_key = toegangssleutel
Een EB-omgeving opzetten
Maak een nieuwe map aan (bijvoorbeeld demoapp)
Ga naar die map
Voer `eb init` uit om een nieuw Elastic Beanstalk-project aan te maken. Kies de regio van je voorkeur en gebruik Node.js als platform. Je wordt gevraagd of je SSH wilt gebruiken. Als je hiervoor kiest, zorg er dan voor dat SSH op je computer is geïnstalleerd als je een nieuw sleutelpaar wilt genereren.
Meld je aan bij de AWS-console via een browser, selecteer ‘Identity and Access Management (IAM)’ en voeg het beleid ‘AmazonS3FullAccess’ toe aan de rol ‘aws-elasticbeanstalk-ec2-role’. OPMERKING: Dit biedt volledige toegang vanuit EBS tot S3. Je kunt dit beleid eventueel aanpassen aan je eigen beveiligingsbehoeften.
Een Node-RED-omgeving opzetten
Maak een bestand `package.json` aan met de volgende inhoud (vervang “demoapp” door de naam van je app)
{
“name”: “demoapp”,
“versie”: “1.0.0”,
“beschrijving”: “Node-RED-demo-app”,
“main”: “”,
“scripts”: {
“start”: “./node_modules/.bin/node-red -s ./settings.js”
},
“motoren”: {
“node”: “10.x”
},
“afhankelijkheden”: {
“node-red”: “1.1.x”,
“aws-sdk”: “2.4.x”,
“node-red-contrib-storage-s3”: “0.0.x”,
“wanneer”: “3.7.x”
},
“auteur”: “”,
“licentie”: “ISC”
}
Kopieer het standaard Node-RED-bestand settings.js naar de map demoapp
Bewerk het bestand settings.js om de volgende regel toe te voegen aan module.exports (stel awsRegion in op de waarde die je bij `eb init` hebt gebruikt en vervang demoapp door de naam van je app):
awsRegion: ‘eu-west-1’,
awsS3Appname: ‘demoapp’,
storageModule: require(‘node-red-contrib-storage-s3’),
Zorg ervoor dat je in de hoofdmap van de toepassing bent in de opdrachtprompt en voer de opdracht `eb create` uit; je kunt eventueel een meer unieke toepassingsnaam opgeven. Het duurt even voordat deze opdracht is uitgevoerd, maar uiteindelijk wordt er een succesmelding weergegeven.
Node-RED-toegang configureren
Node-RED is nu rechtstreeks toegankelijk via de web-URL van de applicatie. Dit is echter onveilig en werkt niet goed voor logboekregistratie. In plaats daarvan gaan we rechtstreekse toegang configureren tot de Node-RED-beheerpoort op de EC2-instance die het gebruikt.
Kies in de AWS-console “EC2” en selecteer vervolgens een beveiligingsgroep. Je ziet een lijst met beveiligingsgroepen. Selecteer een optie met de naam van je omgeving en de beschrijving “Beveiligingsgroep voor Elastic Beanstalk-omgeving”. Zodra u deze hebt geselecteerd, klikt u op “Acties” en vervolgens op ‘Inkomende instellingen bewerken’. Er verschijnt een dialoogvenster met regels. Voeg een nieuwe regel toe. Stel het type in op ‘al het verkeer’ en de bron op ‘mijn IP’. Sla de regel op.
Selecteer de EC2-instance waarop de Node-RED-toepassing draait. Kopieer het IP-adres ervan.
Voer het IP-adres in de browser in; de poort is 8081. Hierdoor krijg je direct toegang tot de Node-RED-beheerconsole.
Opmerking: Het openbare IP-adres biedt ook toegang tot de Node-RED-toepassing; het is raadzaam om ook deze toegang te verwijderen, namelijk de HTTP-regel voor poort 80.
Je Node-RED-instantie draait nu op EBS. Alle streams die je aanmaakt, worden opgeslagen in AWS S3, zodat je de omgeving kunt afbreken en de streams nog steeds toegankelijk zijn wanneer je de omgeving opnieuw implementeert.
Draait op Elastic Beanstalk met hoge beschikbaarheid
Met deze implementatieoptie beschikt u over een Node-RED-opstelling met meerdere knooppunten en een gedeeld bestandssysteem via Amazon Elastic File System (EFS). Omdat er meerdere knooppunten achter een load balancer draaien, profiteert u van hoge beschikbaarheid: als een knooppunt uitvalt, wordt het automatisch door Elastic Beanstalk vervangen.

Om aan de slag te gaan, kloon je de repository hier: https://github.com/guysqr/node-red-ha-on-aws en volg je de eenvoudige instructies. De infrastructuur wordt voor je aangemaakt door middel van CloudFormation-sjablonen, dus je hoeft niet veel van AWS te weten om alles in te stellen.
Bovendien kun je met deze implementatieoptie Node-RED via https draaien en inloggen via Auth0 (of je kunt eenvoudig overschakelen naar de ingebouwde authenticatie of een willekeurige Passport-compatibele ID-provider).
Draait op AWS EC2 met behulp van Embedded Linux
Maak een basis-EC2-image aan
Meld je aan bij de AWS EC2-console
Klik op “Instance starten”
Selecteer ‘Embedded Linux Server’ in de lijst met AMI’s voor snelle start
Kies een instancetype – t2.micro is een goed begin
Voeg op het tabblad ‘Beveiligingsgroep configureren’ een nieuwe aangepaste TCP-regel toe voor poort 1880
Klik in de laatste stap, “Audit”, op de knop “Start”
De console vraagt je om een set SSH-sleutels in te stellen. Selecteer ‘Een nieuw sleutelpaar aanmaken’ en klik op ‘Sleutelpaar downloaden’. Je browser slaat het .pem-bestand op – bewaar het op een veilige plek. Klik ten slotte op ‘Start’.
Na een paar minuten is je EC2-instantie actief. In de console kun je het IP-adres van je instantie vinden.
Node-RED instellen
De volgende stap is om in te loggen op de instance en Node.js en Node-RED te installeren.
Volg de AWS-richtlijnen om verbinding te maken met uw instance.
Zodra je bent ingelogd, moet je Node.js en Node-RED installeren
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
Nu kun je je instantie testen door `node-red` uit te voeren. OPMERKING: Mogelijk krijg je enkele foutmeldingen met betrekking tot seriële knooppunten – dit is normaal en kan worden genegeerd.
Zodra het programma is gestart, kun je inloggen op http://
Om Node-RED automatisch te laten starten wanneer je instance opnieuw opstart, kun je pm2 gebruiken:
sudo npm install -g –unsafe-perm pm2
pm2 start `which node-red` — -v
pm2 opslaan
pm2 opstarten
OPMERKING: Bij dit laatste commando wordt je gevraagd om nog een commando uit te voeren – zorg ervoor dat je de instructies opvolgt.
Volgende stap
Deze handleiding geeft slechts een globaal overzicht van de manieren waarop je je instances kunt configureren om op EC2 te draaien. Node-RED is “slechts” een Node.js-toepassing die een HTTP-server beschikbaar stelt – in dit verband zijn er tal van online handleidingen beschikbaar om meer te weten te komen over andere mogelijke benaderingen.
Trefwoorden: LoRa gateway



