virginia ec2 east change aws amazon-ec2 amazon-web-services

east - Amazon ec2 user-data, ¿cómo funciona?



download key pair amazon ec2 (4)

AWS userdata es el conjunto de comandos / datos que puede proporcionar a una instancia en el momento del lanzamiento. Por ejemplo, si está lanzando una instancia de ec2 y desea tener instalado Docker en el ec2 recién lanzado, entonces puede proporcionar el conjunto de comandos de bash en el campo de datos de usuario de la página de configuración de aws ec2.

Uso

Here es un ejemplo bien explicado de datos de usuario AWS con video tutorial

Estamos iniciando instancias y accediendo a los datos del usuario que colocamos. Pero, ¿alguien entiende los aspectos internos de esta operación (desde el lado de Amazon)? Cuando pasamos los datos de usuario, ¿en qué punto se transmiten esos datos a la máquina virtual (esta es una función Xen) y dónde se almacenan?

Primero pensé que estaba configurado como el env de USER_DATA, pero también podemos pasarlo como un archivo. ¿Dónde está ese archivo almacenado? ¿Es genérico para todas las instancias o varía según AMI?

Esto no es un problema per se, solo quería saber cómo Amazon hace esto.

Captura de pantalla de datos del usuario: http://d.pr/GZlY



Perdón por publicar una pregunta tan antigua, pero este parece ser el mejor lugar para poner esta información adicional.

La mayoría de todos los documentos de AWS describen los Datos del usuario como una propiedad en la que se pueden colocar las secuencias de comandos de inicio del ciclo de vida de la instancia, es decir, las cosas que desea ejecutar solo cuando la instancia se inicia por primera vez.

Este suele ser el caso, pero ha habido al menos otra persona además de mí que desea realizar secuencias de comandos diferentes en el reinicio, por ejemplo, para arreglar una llave rota o algo así. Y adivina qué ... puedes hacerlo usando Datos de usuario.

Aquí está el código y el enlace al documento de AWS ...

Content-Type: multipart/mixed; boundary="//" MIME-Version: 1.0 --// Content-Type: text/cloud-config; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="cloud-config.txt" #cloud-config cloud_final_modules: - [scripts-user, always] --// Content-Type: text/x-shellscript; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="userdata.txt" #!/bin/bash /bin/echo "Hello World." >> /tmp/sdksdfjsdlf --//

No puedo encontrar documentación sobre este formato de Datos de usuario que permita que esto suceda. Lo probé y funciona. He intentado ver si se ejecuta en cada inicio, y lo hace.

Entonces, si crees que necesitas hacer esto, te recomiendo que hagas una copia de seguridad. Asegúrese de tener una copia de los Datos de usuario originales, y use el código provisto modificado para su suite, y elimine el código la próxima vez que detenga la instancia (para evitar múltiples ejecuciones de la secuencia de comandos).


Un ejemplo fácil para la comprensión de todos: si desea crear el archivo /tmp/testfile.txt cuando se inicia la máquina, simplemente puede agregar estas dos líneas en el campo User data .

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

Recuerde poner el #!/bin/bash en la parte superior antes de sus comandos.

Cuando ejecuta la instancia (Linux AMI), puede ver el contenido del campo de User data en /var/lib/cloud/instance/user-data.txt