2016-10-13 4 views
1

Я использую автомасштабирование с желаемым счетчиком как 1 для главного узла. В случае завершения экземпляра, чтобы поддерживать высокую доступность, нам необходимо подключить тот же объем EBS из ранее завершенного экземпляра с вновь созданным.Можем ли мы передать команду CLI в пользовательских данных для EC2 для автоматического подключения и монтирования объема 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 

Цените свою помощь!

ответ

0

Возможно, это не сработало, потому что том EBS можно присоединить только к одному экземпляру за один раз. Если это не сработало, вы должны иметь сообщения об ошибках в ответ на команды CLI, чтобы помочь вам понять, почему они не работают, поэтому проверьте журнал экземпляра.

Я думаю, вы должны немного пересмотреть свою архитектуру, потому что попытка сделать это посылает мне красный флаг. Во-первых, для архитектуры HA не должно быть одного экземпляра. Хорошая архитектура останется HA, поскольку экземпляры масштабируются вверх и вниз. Если у вас есть данные, которые должны быть доступны более чем одному экземпляру, вы должны использовать S3 или EFS для хранения этих данных, а не для объема EBS.