#amazon-web-services #amazon-ec2 #high-availability
#amazon-web-services #amazon-ec2 #высокая доступность
Вопрос:
Я использую автоматическое масштабирование с желаемым количеством как 1 для главного узла. В случае завершения работы экземпляра, для поддержания высокой доступности нам необходимо подключить тот же том EBS из ранее завершенного экземпляра к вновь созданному.
При условии, что CLI настроен на моем AMI, я попробовал каждое из следующих действий в пользовательских данных, однако это не сработало.
#!/bin/bash
EC2_INSTANCE_ID=$(ec2metadata --instance-id)
aws ec2 attach-volume --volume-id vol-777099d8 --instance-id $EC2_INSTANCE_ID --device /dev/sdk
#!/bin/bash
echo "aws ec2 attach-volume --volume-id vol-777099d8 --instance-id $(ec2metadata --instance-id) --device /dev/sdk" > /tmp/xyz.sh
sudo chmod 755 /tmp/xyz.sh
sudo sh /tmp/xyz.sh 2>>
#!/bin/bash
var='ec2 attach-volume --volume-id vol-777099d8 --instance-id $(ec2metadata --instance-id) --device /dev/sdk'
aws "$var"
aws ec2 attach-volume --volume-id vol-777099d8 --instance-id $(ec2metadata --instance-id) --device /dev/sdk
Ценю вашу помощь!
Ответ №1:
Вероятно, это не сработало, потому что том EBS может быть подключен только к одному экземпляру одновременно. Если это не сработало, в ответ на команды CLI должны появиться сообщения об ошибках, которые помогут вам понять, почему это не сработало, поэтому проверьте журнал экземпляра.
Я думаю, вам следует немного пересмотреть свою архитектуру, потому что попытка сделать это вызывает у меня красный флаг. Во-первых, в архитектуре HA не должно быть запущено ни одного экземпляра. Хорошая архитектура останется HA, поскольку экземпляры масштабируются вверх и вниз. Если у вас есть данные, которые должны быть доступны более чем одному экземпляру, вам следует использовать S3 или EFS для хранения этих данных, а не тома EBS.