Анимация наведения

Запуск Node-RED на Amazon Web Server

В этом руководстве вы узнаете, как запустить Node-RED в среде AWS.

Существует два метода:

Работа на службе AWS Elastic Beanstalk Service (EB)

Работа на Elastic Beanstalk с высокой доступностью

Запуск образа Ubuntu на AWS EC2

Работа на AWS EBS

предварительные условия

Убедитесь, что у вас есть учетная запись AWS с включенными Elastic Beanstalk, SQS и S3.

Загрузите командную строку EB и установите на локальную машину - см. ссылку

Создайте учетные данные AWS и сохраните их в локальном файле (~/.aws/config или Usersusername.awsconfig), как показано ниже

[профиль eb-cli]

aws_access_key_id = идентификатор ключа

aws_secret_access_key = ключ доступа

Создайте среду EB

Создайте новый каталог (например, demoapp).

перейдите в эту директорию

Запустите eb init, чтобы создать новый проект elastic beanstalk. Выберите предпочтительный регион и используйте node.js в качестве платформы. Вас спросят, хотите ли вы использовать ssh. В этом случае убедитесь, что на вашем компьютере установлен ssh, если вы хотите сгенерировать новую пару ключей.

Войдите в консоль AWS через браузер, выберите Identity and Access Management (IAM) и добавьте политику AmazonS3FullAccess в aws-elasticbeanstalk-ec2-role. ПРИМЕЧАНИЕ: Это обеспечивает полный доступ из EBS к S3, вы можете настроить эту политику в соответствии с вашими потребностями безопасности.

Создайте среду Node-RED

Создайте файл package.json со следующим содержимым (замените "demoapp" на название вашего приложения)

{

"name": "demoapp",

"Версия": "1.0.0",

"Описание": "node-red demo app",

"main": "",

"scripts": {

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

},

"engines": {

"node": "10.x"

},

"dependencies": {

"node-red": "1.1.x",

"aws-sdk": "2.4.x",

"node-red-contrib-storage-s3": "0.0.x",

"когда": "3.7.x"

},

"author": "",

"Лицензия": "ISC".

}

Скопируйте стандартный файл Node-RED settings.js в каталог demoapp

Отредактируйте файл settings.js и добавьте следующую запись в module.exports (установите awsRegion на тот, который используется в eb init, и замените demoapp на название вашего приложения):

awsRegion: 'eu-west-1',

awsS3Appname: 'demoapp',

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

В командной строке убедитесь, что вы находитесь в каталоге верхнего уровня приложения, и выполните команду eb create; возможно, вам захочется указать более уникальное имя приложения. Выполнение команды займет много времени, но в конце концов завершится успешно.

Настройте доступ к Node-RED

Теперь доступ к Node-RED можно получить непосредственно через веб-адрес приложения. Однако это небезопасно и не очень подходит для ведения логов. Вместо этого мы настроим прямой доступ к порту управления node-red на используемом им экземпляре ec2.

В консоли AWS выберите EC2, а затем выберите группу безопасности. Вы увидите набор групп безопасности. Выберите вариант с именем вашей среды и описанием "Группа безопасности для среды ElasticBeanstalk". После выбора нажмите Actions (Действия), а затем Edit Inbound Settings (Редактировать входящие параметры). Появится диалоговое окно с правилами. Добавьте новое правило. Установите тип на "весь трафик" и источник на "мой ip". Сохраните правило.

Выберите экземпляр EC2, на котором запущено приложение node red. Скопируйте его IP-адрес.

Введите в браузере IP-адрес и порт 8081. Это обеспечит прямой доступ к консоли управления node-red.

Примечание: Публичный IP-адрес также предоставляет доступ к приложению node-red, поэтому лучше удалить и этот доступ, а именно правило HTTP для порта 80.

Ваш экземпляр Node-RED теперь работает на EBS. Все созданные вами потоки будут сохранены в AWS S3, чтобы вы могли снести среду и получить доступ к потокам при повторном развертывании.

Работа на Elastic Beanstalk с высокой доступностью

Этот вариант развертывания позволяет создать многоузловую систему Node-RED с общей файловой системой, использующей Amazon Elastic File System (EFS). Поскольку несколько узлов работают за балансировщиком нагрузки, вы получаете высокую доступность - если узел умирает, Elastic Beanstalk автоматически его заменит.

Запуск Node-RED на Amazon Web Server

To get started, clone the repository here https://github.com/guysqr/node-red-ha-on-aws and follow the simple instructions. The infrastructure is created for you by CloudFormation templates, so you don’t need to know much about AWS to set it up.

Additionally, this deployment option enables you to run Node-RED under https and log in via Auth0 (or you can easily switch to built-in authentication or any Passport-compatible ID provider).

Running on AWS EC2 using Ubuntu

Create a base EC2 image

Log in to the AWS EC2 console

Click “Launch Instance”

In the Quick Start AMI list, select Ubuntu Server

Choose an instance type – t2.micro is a good place to start

On the Configure Security Group tab, add a new Custom TCP Rule for port 1880

In the final “Audit” step, click the “Start” button

The console will prompt you to configure a set of SSH keys. Select Create a new key pair and click Download key pair. Your browser will save the .pem file – keeping it safe. Finally, click Start.

After a few minutes, your EC2 instance will be running. In the console, you can find the IP address of your instance.

Set Node-RED

The next task is to log into the instance and install node.js and Node-RED.

Follow AWS guidelines to connect to your instance.

Once logged in, you need to install node.js and 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

At this point, you can test your instance by running node-red. NOTE: You may receive some errors regarding serial nodes – this is expected and can be ignored.

Once started, you can log in at http:// :1880/.

To have Node-RED start automatically when your instance restarts, you can use pm2:

sudo npm install -g –unsafe-perm pm2

pm2 start `which node-red` — -v

pm2 save

pm2 startup

NOTE: This last command will prompt you to run another command – make sure you do what it says.

Next step

This guide only scratches the surface of how you can choose to configure your instances to run in EC2. Node-RED is “just” a node.js application that exposes an HTTP server – in this principle there are many online guides available to learn about other possible approaches.

Keywords: LoRa gateway

Свяжитесь с нами