2012-03-19 8 views
41

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

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

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

скриншот данных

Пользователя: http://d.pr/GZlY

ответ

47

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

http://169.254.169.254/latest/user-data 

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

Смотрите также:

+0

спасибо Эрика, я сделал поиск Google на 'что 169.254.169.254' так он дал мне адрес, я был находясь в поиске. http://docs.amazonwebservices.com/AWSEC2/2007-03-01/DeveloperGuide/AESDG-chapter-instancedata.html – Devrim

+7

Вот последняя версия этого документа: http://docs.amazonwebservices.com/AWSEC2/latest/ UserGuide/AESDG-chapter-instancedata.html –

+2

Чтобы добавить к этому ответу, если вы хотите использовать пользовательские данные при загрузке виртуальной машины, у меня с моей командой обычно есть скриптовая логика, которая живет или вызывается/etc /rc.local при использовании Linux. – linusthe3rd

1

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

USECASE

Here хорошо объяснено пример из AWS UserData с video tutorial

1

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

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

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

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

Смежные вопросы