Подтвердить что ты не робот

Amazon ec2 user-data, как это работает?

Мы запускаем экземпляры и получаем доступ к пользовательским данным, которые мы размещаем. Но понимает ли кто-либо внутреннюю часть этой операции (со стороны Амазонки)? Когда мы передаем пользовательские данные, в какой момент это данные передаются на виртуальную машину (это функция Xen) и где она хранится?

Сначала я подумал, что он был установлен как USER_DATA env var, но мы также можем передать его как файл. Где хранится этот файл? Является ли он общим для всех экземпляров или зависит от AMI?

Это не проблема сама по себе, просто хотелось узнать, как это делает Amazon.

Снимок экрана пользователя: http://d.pr/GZlY

4b9b3361

Ответ 1

Пользовательские данные доступны экземпляру с простым HTTP-запросом по этому URL-адресу:

http://169.254.169.254/latest/user-data

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

См. также:

Ответ 2

Пользовательские данные AWS - это набор команд/данных, которые вы можете предоставить экземпляру во время запуска. Например, если вы запускаете экземпляр ec2 и хотите установить доклер на недавно запущенный ec2, вы можете предоставить набор команд bash в поле userdata страницы конфигурации aws ec2.

Usecase

Здесь - хорошо объясненный пример пользовательских данных AWS с видеоурока

Ответ 3

Простой пример для всех: если вы хотите создать файл /tmp/testfile.txt при запуске машины, вы можете просто добавить эти две строки в поле User data.

#!/bin/bash
touch /tmp/testfile.txt

Не забудьте поставить #!/bin/bash вверху ваших команд.

При запуске экземпляра (Linux AMI) вы можете увидеть содержимое поля User data в /var/lib/cloud/instance/user-data.txt