2012-03-19 20 views
41

Rozpoczynamy instancje i uzyskujemy dostęp do danych użytkownika, które umieszczamy. Ale czy ktokolwiek rozumie wewnętrzne cechy tej operacji (od strony Amazona)? Kiedy przekazujemy dane użytkownika, w którym momencie dane są przesyłane do maszyny wirtualnej (czy jest to funkcja Xen) i gdzie jest ona przechowywana?Dane użytkownika Amazon ec2, jak to działa?

Najpierw pomyślałem, że został ustawiony jako USER_DATA env var, ale możemy też przekazać go jako plik. Gdzie jest przechowywany ten plik? Czy jest on ogólny dla wszystkich instancji, czy różni się w zależności od AMI?

To nie jest problem sam w sobie, chciałem tylko wiedzieć, w jaki sposób Amazon to robi.

Dane

użytkownika screenshot: http://d.pr/GZlY

Odpowiedz

47

dla użytkownika dane są dostępne na przykład za pomocą prostego żądania HTTP pod adresem URL:

http://169.254.169.254/latest/user-data 

Amazon EC2 nie umieścić ten obsługi danych na wystąpienie bezpośrednio, chociaż wiele AMI posiada kod, który nakazuje instancji automatyczne pobieranie i przetwarzanie danych użytkownika.

Zobacz także:

+0

dzięki Eric, zrobiłem wyszukiwania Google na 'co jest 169.254.169.254' więc dał mi adres URL byłem szukam. http://docs.amazonwebservices.com/AWSEC2/2007-03-01/DeveloperGuide/AESDG-chapter-instancedata.html – Devrim

+7

Oto najnowsza wersja tego dokumentu: http://docs.amazonwebservices.com/AWSEC2/latest/ UserGuide/AESDG-chapter-instancedata.html –

+2

Aby dodać tę odpowiedź, jeśli chcesz korzystać z danych użytkownika podczas uruchamiania maszyny wirtualnej, mój zespół i ja zwykle logika skryptu, która jest lub jest wywoływana przez/etc /rc.local podczas używania Linuksa. – linusthe3rd

1

AWS userdata jest zestaw poleceń/danych można zapewnić na przykład w czasie startu. Na przykład, jeśli uruchamiasz instancję EC2 i chcesz zainstalować docker w nowo uruchomionym ec2, możesz dostarczyć zestaw poleceń basha w polu userdata na stronie konfiguracji aws ec2.

USECASE

Here jest dobrze wyjaśnione przykład z AWS UserData z video tutorial

1

Prostym przykładem dla każdego zrozumienia: Jeśli chcesz utworzyć plik /tmp/testfile.txt gdy maszyna zostanie uruchomiona, można po prostu dodać te dwie linie w polu User data.

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

Pamiętaj, aby umieścić #!/bin/bash u góry przed poleceniami.

Po uruchomieniu instancji (Linux AMI), można zobaczyć treść User data polu w /var/lib/cloud/instance/user-data.txt