Arranque de instancias de contenedor de Linux de Amazon ECS para la transferencia de datos
Cuando se lanza una instancia de Amazon EC2, puede transferir los datos de usuario a la instancia de EC2. Los datos se pueden utilizar para llevar a cabo tareas de configuración automatizadas comunes e incluso ejecutar scripts cuando la instancia arranca. En Amazon ECS, los casos de uso más comunes para los datos de usuario consisten en transferir la información de configuración al daemon de Docker y al agente de contenedor de Amazon ECS.
Puede transferir varios tipos de datos de usuario a Amazon EC2, incluidos cloud boothooks, scripts de shell y directivas cloud-init
. Para obtener más información acerca de estos u otros tipos de formato, consulte la documentación de Cloud-Init
Para transferir los datos de usuario al utilizar el asistente de lanzamiento de Amazon EC2, consulte Lanzamiento de una instancia de contenedor de Linux de Amazon ECS.
Puede configurar la instancia de contenedor para transferir los datos en la configuración del agente de contenedor o en la configuración del daemon de Docker.
Agente de contenedor de Amazon ECS
Las variantes de Linux de la AMI optimizada para Amazon ECS buscan datos de configuración del agente en el archivo /etc/ecs/ecs.config
cuando se inicia el agente de contenedor. Puede especificar estos datos de configuración durante el lanzamiento con datos de usuario de Amazon EC2. Para obtener más información acerca de las variables de configuración del agente de contenedor de Amazon ECS disponibles, consulte Configuración del agente de contenedor de Amazon ECS.
Para establecer solo una variable de configuración del agente como, por ejemplo, el nombre del clúster, utilice echo para copiar la variable en el archivo de configuración:
#!/bin/bash echo "ECS_CLUSTER=
MyCluster
" >> /etc/ecs/ecs.config
Si tiene varias variables que escribir en /etc/ecs/ecs.config
, utilice el formato heredoc
siguiente. Este formato escribe todo entre las líneas que comienzan por cat y EOF
en el archivo de configuración.
#!/bin/bash cat <<'EOF' >> /etc/ecs/ecs.config
ECS_CLUSTER=MyCluster ECS_ENGINE_AUTH_TYPE=docker ECS_ENGINE_AUTH_DATA={"https://index.docker.io/v1/":{"username":"my_name","password":"my_password","email":"email@example.com"}} ECS_LOGLEVEL=debug
ECS_WARM_POOLS_CHECK=true
EOF
Para configurar los atributos de instancia personalizados, defina la variable de entorno ECS_INSTANCE_ATTRIBUTES
.
#!/bin/bash cat <<'EOF' >> ecs.config ECS_INSTANCE_ATTRIBUTES={"envtype":"prod"} EOF
Daemon de Docker
Puede especificar la información de configuración del daemon de Docker con los datos de usuario de Amazon EC2. Para obtener más información sobre las opciones de configuración, consulte la documentación del daemon de Docker
En el ejemplo siguiente, las opciones personalizadas se agregan al archivo de configuración del daemon de Docker, que es /etc/docker/daemon.json
, y luego se especifica en los datos del usuario cuando se lanza la instancia.
#!/bin/bash cat <<EOF >/etc/docker/daemon.json {"debug": true} EOF systemctl restart docker --no-block
En el ejemplo siguiente, las opciones personalizadas se agregan al archivo de configuración del daemon de Docker, que es /etc/docker/daemon.json
, y luego se especifica en los datos del usuario cuando se lanza la instancia. En este ejemplo se muestra cómo activar o desactivar el docker-proxy en el archivo de configuración de daemon de Docker.
#!/bin/bash cat <<EOF >/etc/docker/daemon.json {"userland-proxy": false} EOF systemctl restart docker --no-block