В архитектуре моего приложения есть один эластичный балансировщик нагрузки и группа автоматического масштабирования. В группе автоматического масштабирования я создал конфигурацию запуска для создания экземпляров EC2 с UserData для запуска сервера nodejs в каждом экземпляре. AWS_ACCESS_ID и AWS_SECRET_ACCESS_KEY добавлено в переменные среды EC2 с использованием пользовательских данных.Итак, в моем коде серверной части (Node) я не даю эти учетные данные.Это дает ошибку, когда я использую S3 SDK.Ошибка говорит: « CredentialsError: пропущены учетные данные в конфигурации ».
Но, если я использую те же пользовательские данные для создания отдельного экземпляра EC2 без какого-либо балансировщика нагрузки и группы автоматического масштабирования, Он работает нормально.
А также, если я остановлю сервер узла вручную (когда у меня есть балансировщик нагрузки и группа автоматического масштабирования) на экземпляре EC2 и снова запустлю его, он начнет работать нормально.
Ниже приведены пользовательские данные, которые у меня есть для конфигурации запуска EC2.
Я использую Amazon-Linux на EC2.
#!/bin/bash
set -e -x
echo AWS_ACCESS_KEY_ID=********** >> /etc/environment
echo AWS_SECRET_ACCESS_KEY=****************************** >> /etc/environment
curl --silent --location https://rpm.nodesource.com/setup_9.x | bash -
sudo yum install -y git nodejs
git clone https://github.com/Vaaceph/BackEndCloud.git && cd BackEndCloud
sudo npm install
DEBUG=express:* node server.js