Получить AWS для автоматического подключения тома EC2 к экземпляру Ubuntu при запуске - PullRequest
0 голосов
/ 28 апреля 2019

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

Могу ли я что-то сделать в пользовательских данных при запуске экземпляра?

В настоящее время у меня есть ами, которые я использую в качестве точечного экземпляра. У меня есть отдельный том, который сохраняется и используется как для ввода в экземпляр, так и для сохранения результатов. У меня только один экземпляр за раз. Ami монтирует диск в / data. Чтобы маунт выжил после перезагрузки, я отредактировал /etc/fstab, включив в него:

UUID=MY_VOLUME_UUID /data xfs defaults,nofail 0 2

Снова отредактировано, чтобы показать решение Пассатижи

Я добавил следующее в раздел «Настройка подробностей экземпляра»> «Дополнительные сведения»> «Данные пользователя» в мастере запуска EC2:

#!/bin/bash
INSTANCE_ID=$(curl 169.254.169.254/latest/meta-data/instance-id) 
export AWS_DEFAULT_REGION=$(curl 169.254.169.254/latest/meta-data/placement/availability-zone | sed 's/[a-z]$//') 
/home/ubuntu/miniconda3/bin/aws ec2 attach-volume --volume-id vol-myVol12345 --instance-id $INSTANCE_ID --device /dev/sdf 
sleep 10 
sudo mkdir -p /data 
sudo mount /dev/nvme1n1 /data

Примечание: Мне нужно было добавить полный путь к aws, чтобы он заработал. Кроме того, поскольку AMI уже имеет настройки / данных, мне не нужно sudo mkdir -p /data

1 Ответ

0 голосов
/ 16 мая 2019
#!/bin/bash INSTANCE_ID=$(curl 169.254.169.254/latest/meta-data/instance-id) 
export AWS_DEFAULT_REGION=$(curl 169.254.169.254/latest/meta-data/placement/availability-zone | sed 's/[a-z]$//')
/bin/aws ec2 attach-volume --volume-id vol-0fdb738415896f8f6 --instance-id $INSTANCE_ID --device /dev/sdf
sleep 10
sudo mkdir -p /data
sudo mount /dev/nvme1n1 /data

Попробуйте / bin / aws вместо aws. Я использовал t3.small, поэтому / dev / nvme1n1

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...