Configuración del agente de contenedor de Amazon ECS - Amazon Elastic Container Service

Configuración del agente de contenedor de Amazon ECS

El agente de contenedor de Amazon ECS admite una serie de opciones de configuración, la mayoría de las cuales se deben establecer a través de variables de entorno. Están disponibles las siguientes variables de entorno y todas ellas son opcionales.

Si la instancia de contenedor se lanzó con la variante de Linux de la AMI optimizada para Amazon ECS, puede establecer estas variables de entorno en el archivo /etc/ecs/ecs.config y, a continuación, reiniciar el agente. También puede escribir estas variables de configuración en sus instancias de contenedor con datos de usuario de Amazon EC2 en el momento del lanzamiento. Para obtener más información, consulte Proceso de arranque de instancias de contenedor con datos de usuario de Amazon EC2.

Si la instancia de contenedor se lanzó con la variante de Windows de la AMI optimizada para Amazon ECS, puede establecer estas variables de entorno en el comando PowerShell SetEnvironmentVariable y luego reiniciar el agente. Para obtener más información, consulte Ejecutar comandos en la instancia de Windows durante el lanzamiento en la Guía del usuario de Amazon EC2 para instancias de Windows y Proceso de arranque de instancias de contenedor de Windows mediante datos de usuario de Amazon EC2.

Si está iniciando manualmente el agente de contenedor de Amazon ECS (para AMI no optimizadas para Amazon ECS), puede utilizar estas variables de entorno en el comando docker run que utiliza para iniciar el agente. Utilice estas variables con la sintaxis --env=VARIABLE_NAME=VARIABLE_VALUE. En el caso de información confidencial, por ejemplo credenciales de autenticación para repositorios privados, debe almacenar las variables de entorno del agente en un archivo y transmitirlas a la vez con la opción --env-file path_to_env_file.

Parámetros disponibles

Están disponibles los siguientes parámetros de configuración del agente de contenedor de Amazon ECS. Existen variables sin documentar que el agente utiliza de manera interna y que pueden ser visibles, pero que no están destinadas al uso por parte del cliente. Para obtener más información, consulte Agente de contenedor de Amazon ECS en GitHub.

ECS_CLUSTER

Valores de ejemplo: MyCluster

Valor predeterminado en Linux: default

Valor predeterminado en Windows: default

El clúster en el que este agente debería realizar la comprobación. Si este valor está sin definir, se supone el clúster default. Si el clúster default no existe, el agente de contenedor de Amazon ECS intenta crearlo. Si se ha especificado un clúster no default y no existe, el registro falla.

ECS_RESERVED_PORTS

Valores de ejemplo: [22, 80, 5000, 8080]

Valor predeterminado en Linux: [22, 2375, 2376, 51678, 51679, 51680]

Valor predeterminado en Windows: [53, 135, 139, 445, 2375, 2376, 3389, 5985, 51678, 51679]

Una matriz de puertos que se deben marcar como no disponibles para programación en esta instancia de contenedor.

ECS_RESERVED_PORTS_UDP

Valores de ejemplo: [53, 123]

Valor predeterminado en Linux: []

Valor predeterminado en Windows: []

Una matriz de puertos UDP que se deben marcar como no disponibles para programación en esta instancia de contenedor.

ECS_ENGINE_AUTH_TYPE

Valores de ejemplo: dockercfg | docker

Valor predeterminado en Linux: Null

Valor predeterminado en Windows: Null

Requerido para la autenticación de registros privados. Este es el tipo de datos de autenticación en ECS_ENGINE_AUTH_DATA. Para obtener más información, consulte Formatos de autenticación.

ECS_ENGINE_AUTH_DATA

Valores de ejemplo:

  • ECS_ENGINE_AUTH_TYPE=dockercfg: {"https://index.docker.io/v1/":{"auth":"zq212MzEXAMPLE7o6T25Dk0i","email":"email@example.com"}}

  • ECS_ENGINE_AUTH_TYPE=docker: {"https://index.docker.io/v1/":{"username":"my_name","password":"my_password","email":"email@example.com"}}

Valor predeterminado en Linux: Null

Valor predeterminado en Windows: Null

Requerido para la autenticación de registros privados. Si ECS_ENGINE_AUTH_TYPE=dockercfg, el valor ECS_ENGINE_AUTH_DATA debe ser el contenido de un archivo de configuración de Docker (~/.dockercfg o ~/.docker/config.json) que se crea al ejecutar docker login. Si ECS_ENGINE_AUTH_TYPE=docker, entonces el valor ECS_ENGINE_AUTH_DATA debe ser una representación JSON del servidor de registros en el que autenticarse, así como los parámetros de autenticación requeridos por dicho registro, por ejemplo, nombre de usuario, contraseña y dirección de correo electrónico de dicha cuenta. Para obtener más información, consulte Formatos de autenticación.

AWS_DEFAULT_REGION

Valores de ejemplo: us-east-1

Valor predeterminado en Linux: tomado de los metadatos de la instancia de Amazon EC2.

Valor predeterminado en Windows: tomado de los metadatos de la instancia de Amazon EC2.

La región que se debe utilizar en las solicitudes de API así como para deducir el host correcto del backend.

AWS_ACCESS_KEY_ID

Valores de ejemplo: AKIAIOSFODNN7EXAMPLE

Valor predeterminado en Linux: tomado de los metadatos de la instancia de Amazon EC2.

Valor predeterminado en Windows: tomado de los metadatos de la instancia de Amazon EC2.

La clave de acceso utilizada por el agente para todas las llamadas.

AWS_SECRET_ACCESS_KEY

Valores de ejemplo: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY

Valor predeterminado en Linux: tomado de los metadatos de la instancia de Amazon EC2.

Valor predeterminado en Windows: tomado de los metadatos de la instancia de Amazon EC2.

La clave secreta utilizada por el agente para todas las llamadas.

AWS_SESSION_TOKEN

Valor predeterminado en Linux: tomado de los metadatos de la instancia de Amazon EC2.

Valor predeterminado en Windows: tomado de los metadatos de la instancia de Amazon EC2.

El token de sesión utilizado para credenciales temporales.

DOCKER_HOST

Valores de ejemplo: unix:///var/run/docker.sock

Valor predeterminado en Linux: unix:///var/run/docker.sock

Valor predeterminado en Windows: npipe:////./pipe/docker_engine

Utilizado para crear una conexión al daemon de Docker; se comporta de forma similar a la variable de entorno utilizada por el cliente de Docker.

ECS_LOGFILE

Valores de ejemplo: /ecs-agent.log

Valor predeterminado en Linux: Null

Valor predeterminado en Windows: Null

La ubicación en la que se deben escribir los registros del agente. Si está ejecutando el agente a través de ecs-init, que es el método predeterminado cuando se utiliza la AMI optimizada para Amazon ECS, la ruta dentro del contenedor será /log, y ecs-init lo montará en el directorio /var/log/ecs/ del host.

ECS_LOGLEVEL

Valores de muestra: crit, error, warn, info y debug

Valor predeterminado en Linux: info

Valor predeterminado en Windows: info

El nivel de detalle con el que se va a registrar.

ECS_LOGLEVEL_ON_INSTANCE

Valores de muestra: none, crit, error, warn, info, debug

Valor predeterminado en Linux: none, si ECS_LOG_DRIVER se establece explícitamente en un valor no vacío; de lo contrario, el mismo valor que ECS_LOGLEVEL

Valor predeterminado en Windows: none, si ECS_LOG_DRIVER se establece explícitamente en un valor no vacío; de lo contrario, el mismo valor que ECS_LOGLEVEL

Se puede utilizar para anular ECS_LOGLEVEL y establecer un nivel de detalle que debe registrarse en el archivo de registro en la instancia, separado del nivel que se registra en el controlador de registro. Si se establece explícitamente un controlador de registro, los registros en la instancia se desactivan de forma predeterminada, pero se pueden volver a activar mediante esta variable.

ECS_LOG_DRIVER

Valores de ejemplo: awslogs, fluentd, gelf, json-file, journald, logentries syslog, splunk

Valor predeterminado en Linux: json-file

Valor predeterminado en Windows: No aplicable

Determina el controlador de registro que utilizará el contenedor del agente.

ECS_CHECKPOINT

Valores de ejemplo: true | false

Valor predeterminado en Linux: si ECS_DATADIR se establece explícitamente en un valor no vacío, ECS_CHECKPOINT se establece en true; de lo contrario, se establece en false.

Valor predeterminado en Windows: si ECS_DATADIR se establece explícitamente en un valor no vacío, ECS_CHECKPOINT se establece en true; de lo contrario, se establece en false.

Si se guarda o no el estado de punto de comprobación en la ubicación especificada con ECS_DATADIR.

ECS_DATADIR

Valores de ejemplo: /data

Valor predeterminado en Linux: /data/

Valor predeterminado en Windows: C:\ProgramData\Amazon\ECS\data

El nombre del directorio de datos persistente en el contenedor en que se ejecuta el agente de contenedor de Amazon ECS. El directorio se utiliza para guardar información acerca del clúster y el estado del agente.

ECS_UPDATES_ENABLED

Valores de ejemplo: true | false

Valor predeterminado en Linux: false

Valor predeterminado en Windows: false

Si se debe salir para las actualizaciones del agente de Amazon ECS cuando se solicitan.

ECS_DISABLE_METRICS

Valores de ejemplo: true | false

Valor predeterminado en Linux: false

Valor predeterminado en Windows: true

Si se deben desactivar las métricas de CloudWatch para Amazon ECS. Si este valor se establece en true, no se recopilan las métricas de CloudWatch.

ECS_POLL_METRICS

Valores de ejemplo: true | false

Valor predeterminado en Linux: false (ver descripción a continuación)

Valor predeterminado en Windows: false (ver descripción a continuación)

Si se debe habilitar el sondeo o la transmisión cuando se recopilan métricas de CloudWatch para las tareas.

En versiones del agente anteriores a 1.40.0, el valor predeterminado era false. En versiones del agente desde la 1.40.0 hasta la 1.42.0, el valor predeterminado era true. En la versión del agente 1.43.0 y posteriores, el valor predeterminado es false.

importante

Si ECS_POLL_METRICS se establece como “false” (falso), el agente, dockerd y containerd hacen un uso elevado de la CPU cuando la instancia de Amazon EC2 aloja varios contenedores.

ECS_POLLING_METRICS_WAIT_DURATION

Valores de ejemplo: 30s

Valor predeterminado en Linux: 15s

Valor predeterminado en Windows: 15s

Tiempo de espera para sondear nuevas métricas de CloudWatch para una tarea. Solo se usa cuando ECS_POLL_METRICS es true.

ECS_RESERVED_MEMORY

Valores de ejemplo: 32

Valor predeterminado en Linux: 0

Valor predeterminado en Windows: 0

Reducción, en MiB, de la capacidad de memoria de la instancia notificada a Amazon ECS. Amazon ECS usa este parámetro al ubicar tareas en instancias de contenedores. Esto no reserva el uso de memoria en la instancia. Para obtener más información, consulte Administración de la memoria de los de las instancias de contenedor.

ECS_AVAILABLE_LOGGING_DRIVERS

Valores de ejemplo: ["awslogs","fluentd","gelf","json-file","journald","splunk","logentries","syslog"]

Valor predeterminado en Linux: ["json-file","none"]

Valor predeterminado en Windows: ["json-file","none"]

nota

Si utiliza ECS init, los valores predeterminados son ["json-file","syslog","awslogs","none"].

Los controladores de registro disponibles en la instancia de contenedor. El agente de contenedor de Amazon ECS que se ejecuta en una instancia de contenedor debe registrar los controladores de registros disponibles en dicha instancia con la variable de entorno ECS_AVAILABLE_LOGGING_DRIVERS antes de que los contenedores situados en esa instancia puedan utilizar las opciones de configuración de registros para dichos controladores en las tareas. Para obtener información sobre cómo utilizar el controlador de registros awslogs, consulte Uso del controlador de registros awslogs. Para obtener más información acerca de los distintos controladores de registro disponibles para su versión de Docker y cómo configurarlos, consulte Configure logging drivers en la documentación de Docker.

ECS_DISABLE_PRIVILEGED

Valores de ejemplo: true | false

Valor predeterminado en Linux: false

Valor predeterminado en Windows: false

Si el lanzamiento de contenedores con privilegios está desactivado en la instancia de contenedor. Si este valor se establece en true, no se permiten los contenedores con privilegios.

ECS_SELINUX_CAPABLE

Valores de ejemplo: true | false

Valor predeterminado en Linux: false

Valor predeterminado en Windows: false

Si SELinux está disponible en la instancia de contenedor.

ECS_APPARMOR_CAPABLE

Valores de ejemplo: true | false

Valor predeterminado en Linux: false

Valor predeterminado en Windows: false

Si AppArmor está disponible en la instancia de contenedor.

ECS_ENGINE_TASK_CLEANUP_WAIT_DURATION

Valores de ejemplo: 1h (las unidades de tiempo válidas son "ns", "us" (o "µs"), "ms", "s", "m" y "h").

Valor predeterminado en Linux: 3h

Valor predeterminado en Windows: 3h

Tiempo que hay que esperar desde se detiene una tarea hasta que se elimine el contenedor Docker. Dado que esto elimina los datos del contenedor de Docker, tenga en cuenta que si este valor establecido es demasiado bajo, es posible que no pueda inspeccionar los contenedores detenidos o ver los registros antes de que se eliminen. La duración mínima es de 1s; cualquier valor inferior a un minuto no se tiene en cuenta.

ECS_ENGINE_TASK_CLEANUP_WAIT_DURATION_JITTER

Valores de ejemplo: 1h (las unidades de tiempo válidas son "ns", "us" (o "µs"), "ms", "s", "m" y "h").

Valor predeterminado en Linux: en blanco

Valor predeterminado en Windows: 3h

El tiempo de fluctuación necesario para esperar a que se limpie el motor de tareas. Cuando se especifique, el tiempo real de espera de limpieza para cada tarea será la duración especificada en ECS_ENGINE_TASK_CLEANUP_WAIT_DURATION más una duración aleatoria entre 0 y la duración de la fluctuación.

ECS_CONTAINER_STOP_TIMEOUT

Valores de ejemplo: 10m (las unidades de tiempo válidas son "ns", "us" (o "µs"), "ms", "s", "m" y "h").

Valor predeterminado en Linux: 30s

Valor predeterminado en Windows: 30s

Tiempo que hay que esperar desde que se detiene una tarea antes de que sus contenedores se detengan de forma forzada si no salen con normalidad por sí mismos.

ECS_CONTAINER_START_TIMEOUT

Valores de ejemplo: 10m (las unidades de tiempo válidas son "ns", "us" (o "µs"), "ms", "s", "m" y "h").

Valor predeterminado en Linux: 3m

Valor predeterminado en Windows: 8m

Tiempo que hay que esperar antes de desistir en iniciar un contenedor.

ECS_CONTAINER_CREATE_TIMEOUT

Valores de ejemplo: 10m (las unidades de tiempo válidas son "ns", "us" (o "µs"), "ms", "s", "m" y "h").

Valor predeterminado en Linux: 4m

Valor predeterminado en Windows: 4m

Tiempo que hay que esperar antes de desistir en la creación de un contenedor.

HTTP_PROXY

Valores de ejemplo: 10.0.0.131:3128

Valor predeterminado en Linux: Null

Valor predeterminado en Windows: Null

El nombre de host (o la dirección IP) y el número de puerto de un proxy HTTP que se vayan a utilizar para que el agente de Amazon ECS se conecte a Internet. Por ejemplo, se utilizará este proxy si las instancias de contenedor no pueden obtener acceso de red externo a través de una gateway de Internet de Amazon VPC, una gateway NAT o una instancia. Si esta variable está definida, también debe definir la variable NO_PROXY para filtrar los metadatos de las instancias de Amazon EC2 y el tráfico del daemon de Docker desde el proxy. Para obtener más información, consulte Configuración de proxy HTTP.

NO_PROXY

Valores de ejemplo:

  • Linux: 169.254.169.254,169.254.170.2,/var/run/docker.sock

  • Windows: 169.254.169.254,169.254.170.2,\\.\pipe\docker_engine

Valor predeterminado en Linux: Null

Valor predeterminado en Windows: Null

El tráfico HTTP que no se debe reenviar al HTTP_PROXY especificado. Debe especificar 169.254.169.254,/var/run/docker.sock para filtrar los metadatos de las instancias de Amazon EC2 y el tráfico de daemon de Docker desde el proxy. Para obtener más información, consulte Configuración de proxy HTTP.

ECS_ENABLE_TASK_IAM_ROLE

Valores de ejemplo: true | false

Valor predeterminado en Linux: false

Valor predeterminado en Windows: false

nota

Si utiliza ecs init, el valor predeterminado es true.

Si se deben habilitar los roles de IAM para tareas en la instancia de contenedor para contenedores de tarea con los modos de red bridge o default. Para obtener más información, consulte Rol de IAM para la tarea.

ECS_ENABLE_TASK_IAM_ROLE_NETWORK_HOST

Valores de ejemplo: true | false

Valor predeterminado en Linux: false

Valor predeterminado en Windows: false

nota

Si utiliza ecs init, el valor predeterminado es true.

Si se deben habilitar los roles de IAM para las tareas en la instancia de contenedor para los contenedores de tarea con el modo de red host. Esta variable solo se admite en versiones de agente 1.12.0 y posterior. Para obtener más información, consulte Rol de IAM para la tarea.

ECS_DISABLE_IMAGE_CLEANUP

Valores de ejemplo: true

Valor predeterminado en Linux: false

Valor predeterminado en Windows: false

Si se debe desactivar la limpieza automatizada de imágenes para el agente de Amazon ECS. Para obtener más información, consulte Tareas automatizadas y limpieza de imágenes.

ECS_IMAGE_CLEANUP_INTERVAL

Valores de ejemplo: 30m

Valor predeterminado en Linux: 30m

Valor predeterminado en Windows: 30m

El intervalo de tiempo entre los ciclos de limpieza automática de imágenes. Si se define en menos de 10 minutos, el valor no se tiene en cuenta.

ECS_IMAGE_MINIMUM_CLEANUP_AGE

Valores de ejemplo: 30m

Valor predeterminado en Linux: 1h

Valor predeterminado en Windows: 1h

El intervalo de tiempo mínimo entre que una imagen se extrae y el momento en que se puede tener en cuenta para limpieza automática de imágenes.

NON_ECS_IMAGE_MINIMUM_CLEANUP_AGE

Valores de ejemplo: 30m

Valor predeterminado en Linux: 1h

Valor predeterminado en Windows: 1h

El intervalo de tiempo mínimo entre que se crea una imagen que no es de Amazon ECS y el momento en que se puede tener en cuenta para la limpieza automatizada de imágenes.

ECS_NUM_IMAGES_DELETE_PER_CYCLE

Valores de ejemplo: 5

Valor predeterminado en Linux: 5

Valor predeterminado en Windows: 5

El número máximo de imágenes que eliminar en un único ciclo de limpieza automática de imágenes. Si se define en menos de 1, el valor no se tiene en cuenta.

ECS_IMAGE_PULL_BEHAVIOR

Valores de ejemplo: default | always | once | prefer-cached

Valor predeterminado en Linux: default

Valor predeterminado en Windows: default

El comportamiento que se utiliza para personalizar el proceso de extracción de imágenes para sus instancias de contenedor. A continuación se describen los comportamientos opcionales:

  • Si se especifica default, la imagen se extrae de forma remota. Si no se puede extraer la imagen, el contenedor utiliza la imagen almacenada en la caché de la instancia.

  • Si se especifica always, la imagen se extrae siempre de forma remota. Si no se puede extraer la imagen, se produce un error en la tarea. Esta opción garantiza que se extraiga siempre la versión más reciente de la imagen. Todas las imágenes en caché se omiten y se someten al proceso de limpieza automatizada de imágenes.

  • Si se especifica once, la imagen se extrae de forma remota únicamente si no la ha extraído una tarea anterior en la misma instancia de contenedor o si la imagen en caché ha sido eliminada por el proceso de limpieza automatizada de imágenes. De lo contrario, se usa la imagen almacenada en la caché de la instancia. De este modo, se garantiza que no se realizan extracciones de imágenes innecesarias.

  • Si se especifica prefer-cached, la imagen se extrae de forma remota si no hay ninguna imagen en caché. De lo contrario, se usa la imagen almacenada en la caché de la instancia. La limpieza automatizada de imágenes se deshabilita para el contenedor con el fin de garantizar que no se elimine la imagen en caché.

ECS_IMAGE_PULL_INACTIVITY_TIMEOUT

Valores de ejemplo: 1m

Valor predeterminado en Linux: 1m

Valor predeterminado en Windows: 3m

Tiempo que se debe esperar para la extracción de un contenedor una vez que se complete la extracción de Docker. Es útil para los contenedores de Windows de gran tamaño.

ECS_INSTANCE_ATTRIBUTES

Valores de ejemplo: {"custom_attribute": "custom_attribute_value"}

Valor predeterminado en Linux: Null

Valor predeterminado en Windows: Null

Una lista de atributos personalizados, en formato JSON, que se aplicarán a sus instancias de contenedor. Utilizar este atributo al registrar la instancia, se agregan los atributos personalizados que le permiten omitir el método manual de añadir atributos personalizados a través de la AWS Management Console.

nota

Los atributos añadidos no se aplicarán a instancias de contenedor que ya estén registradas. Para añadir atributos personalizados a instancias de contenedor ya registradas, consulte Adición de un atributo mediante la consola clásica.

Para obtener información acerca de los atributos personalizados que utilizar, consulte Atributos.

Un valor JSON no válido para esta variable hace que el agente salga de la aplicación con el código 5. Aparece un mensaje en los registros del agente. El valor de JSON puede ser válido pero se ha detectado un problema al validar el atributo, por ejemplo, si el valor es demasiado largo o contiene caracteres no válidos. En ese caso, se produce el registro de la instancia de contenedor, pero el agente sale con el código 5 y se escribe un mensaje en los registros de agente. Para obtener información sobre cómo localizar los registros del agente, consulte Registro del agente de contenedor de Amazon ECS.

ECS_ENABLE_TASK_ENI

Valores de ejemplo: true | false

Valor predeterminado en Linux: false

Valor predeterminado en Windows: false

Si se deben activar las redes de tareas para que estas se lancen con su propia interfaz de red.

ECS_ENABLE_HIGH_DENSITY_ENI

Valores de ejemplo: true | false

Valor predeterminado en Linux: false

Valor predeterminado en Windows: No aplicable

Si activar la densidad alta cuando se usan las redes de tareas.

ECS_CNI_PLUGINS_PATH

Valores de ejemplo: /ecs/cni

Valor predeterminado en Linux: /amazon-ecs-cni-plugins

Valor predeterminado en Windows: No aplicable

La ruta en la que está ubicado el archivo binario cni en Linux.

ECS_AWSVPC_BLOCK_IMDS

Valores de ejemplo: true | false

Valor predeterminado en Linux: false

Valor predeterminado en Windows: false

Determina si se debe bloquear el acceso a los metadatos de la instancia para las tareas iniciadas con el modo de red awsvpc.

ECS_AWSVPC_ADDITIONAL_LOCAL_ROUTES

Valores de ejemplo: ["10.0.15.0/24"]

Valor predeterminado en Linux: []

Valor predeterminado en Windows: []

En el modo de red awsvpc, el tráfico a estos prefijos se dirige a través del puente host en lugar de a través de la interfaz de red elástica de la tarea.

ECS_ENABLE_CONTAINER_METADATA

Valores de ejemplo: true | false

Valor predeterminado en Linux: false

Valor predeterminado en Windows: false

Si es true, el agente crea un archivo que describe el contenedor de metadatos. Para localizar y utilizar el archivo, use la variable de entorno del contenedor $ECS_CONTAINER_METADATA_FILE.

ECS_FSX_WINDOWS_FILE_SERVER_SUPPORTED

Valores de ejemplo: true | false

Valor predeterminado en Linux: false

Valor predeterminado en Windows: true

Si la instancia de contenedor admite el tipo de volumen FSx para Windows File Server. Esta variable solo se admite en versiones de agente 1.47.0 y posteriores.

ECS_HOST_DATA_DIR

Valores de ejemplo: /var/lib/ecs

Valor predeterminado en Linux: /var/lib/ecs

Valor predeterminado en Windows: No aplicable

Directorio de origen del host desde el que se monta ECS_DATADIR. Se utiliza para determinar la ruta de montaje de origen de los archivos de metadatos de contenedor si el agente de Amazon ECS se ejecuta como contenedor. Este valor no se utiliza en Windows, ya que el agente de Amazon ECS no se ejecuta como contenedor.

ECS_ENABLE_RUNTIME_STATS

Valores de ejemplo: true | false

Valor predeterminado en Linux: false

Valor predeterminado en Windows: false

Determina si pprof está activado para el agente. Si está activado, se puede acceder a los diferentes perfiles a través del puerto de introspección del agente (por ejemplo, curl http://localhost:51678/debug/pprof/heap > heap.pprof). Además, las estadísticas del tiempo de ejecución del agente se registran en el archivo /var/log/ecs/runtime-stats.log.

ECS_ENABLE_TASK_CPU_MEM_LIMIT

Valores de ejemplo: true | false

Valor predeterminado en Linux: true

Valor predeterminado en Windows: false

Determina si se habilitan límites de CPU y memoria de nivel de tarea.

ECS_CGROUP_PATH

Valores de ejemplo: /sys/fs/cgroup

Valor predeterminado en Linux: /sys/fs/cgroup

Valor predeterminado en Windows: No aplicable

La ruta cgroup raíz que espera el agente de Amazon ECS. Esta es la ruta a la que se puede obtener acceso desde el montaje del agente.

ECS_ENABLE_CPU_UNBOUNDED_WINDOWS_WORKAROUND

Valores de ejemplo: true | false

Valor predeterminado en Linux: No aplicable

Valor predeterminado en Windows: false

Cuando es true, Amazon ECS permite la ejecución de tareas con uso ilimitado de CPU (CPU=0) junto con tareas con uso limitado de CPU en Windows.

ECS_TASK_METADATA_RPS_LIMIT

Valores de ejemplo: 100,150

Valor predeterminado en Linux: 40,60

Valor predeterminado en Windows: 40,60

Valores enteros separados por comas correspondientes a los límites del estado estable y de limitación de ráfaga para el total de tráfico combinado en el punto de conexión de metadatos de tarea y el punto de conexión de la API del agente.

ECS_SHARED_VOLUME_MATCH_FULL_CONFIG

Valores de ejemplo: true | false

Valor predeterminado en Linux: false

Valor predeterminado en Windows: false

Cuando se especifica dockerVolumeConfiguration en una definición de tareas y se utiliza le indicador autoprovision, el agente de contenedor de Amazon ECS compara los detalles del volumen de Docker con los detalles de los volúmenes de Docker existentes. Cuando ECS_SHARED_VOLUME_MATCH_FULL_CONFIG es true, el agente de contenedor compara la configuración completa del volumen (name, driverOpts y labels) para comprobar que los volúmenes son idénticos. Si es false, el agente de contenedor utiliza el comportamiento predeterminado de Docker, que solo verifica name en el volumen. Si se comparte un volumen entre instancias de contenedor, este valor debe establecerse en false. Para obtener más información, consulte Volúmenes de Docker.

ECS_CONTAINER_INSTANCE_PROPAGATE_TAGS_FROM

Valores de ejemplo: ec2_instance

Valor predeterminado en Linux: ninguno

Valor predeterminado en Windows: ninguno

Si se especifica ec2_instance, las etiquetas existentes definidas en la instancia de contenedor se registran en Amazon ECS. Las etiquetas se pueden detectar mediante la operación ListTagsForResource. El rol de IAM asociado a la instancia de contenedor debe tener la acción ec2:DescribeTags habilitada. Para obtener más información, consulte Adición de etiquetas a una instancia de contenedor de Amazon EC2.

ECS_CONTAINER_INSTANCE_TAGS

Valores de ejemplo: {"tag_key": "tag_val"}

Valor predeterminado en Linux: {}

Valor predeterminado en Windows: {}

Los metadatos que se aplican a las instancias de contenedor para ayudarle clasificar y organizar sus recursos. Cada etiqueta consta de una clave personalizada definida y un valor opcional. Las claves de etiqueta pueden tener una longitud de caracteres máxima de 128 caracteres. Los valores de las etiquetas puede tener una longitud máxima de 256 caracteres.

Si las etiquetas de las instancias de contenedor se propagan mediante el parámetro ECS_CONTAINER_INSTANCE_PROPAGATE_TAGS_FROM, las etiquetas se sobrescriben mediante las etiquetas especificadas utilizando ECS_CONTAINER_INSTANCE_TAGS. Para obtener más información, consulte Adición de etiquetas a una instancia de contenedor de Amazon EC2.

ECS_ENABLE_UNTRACKED_IMAGE_CLEANUP

Valores de ejemplo: true | false

Valor predeterminado en Linux: false

Valor predeterminado en Windows: false

Si se debe permitir que el agente de Amazon ECS elimine los contenedores y las imágenes que no forman parte de las tareas de Amazon ECS.

ECS_EXCLUDE_UNTRACKED_IMAGE

Valores de ejemplo: {"alpine":"latest"}

Valor predeterminado en Linux: {}

Valor predeterminado en Windows: {}

Una lista de imágenes separadas por comas (imageName:tag) que el agente de Amazon ECS no debe eliminar si ECS_ENABLE_UNTRACKED_IMAGE_CLEANUP es true.

ECS_DISABLE_DOCKER_HEALTH_CHECK

Valores de ejemplo: true | false

Valor predeterminado en Linux: false

Valor predeterminado en Windows: false

Si se debe desactivar la comprobación de estado del contenedor de Docker para el agente de Amazon ECS.

ECS_NVIDIA_RUNTIME

Valores de ejemplo: nvidia

Valor predeterminado en Linux: nvidia

Valor predeterminado en Windows: n/a

Runtime que se va a usar para pasar los dispositivos GPU NVIDIA a los contenedores. Este parámetro no debe especificarse como una variable de entorno en una definición de tarea si ya se han especificado los requisitos de recursos de GPU. Para obtener más información, consulte Uso de GPU en Amazon ECS.

ECS_ENABLE_SPOT_INSTANCE_DRAINING

Valores de ejemplo: true

Valor predeterminado en Linux: false

Valor predeterminado en Windows: false

Si se habilita el vaciado de instancias de spot para la instancia de contenedor. Cuando el valor es true, si la instancia de contenedor recibe un aviso de interrupción de spot, el agente establece el estado de la instancia en DRAINING, que se cierra correctamente y reemplaza todas las tareas en ejecución en la instancia que forman parte de un servicio. Le recomendamos que establezca este valor en «true» (verdadero) cuando se utilicen instancias de spot. Este parámetro debe establecerse antes de que se inicie el agente de contenedor. Para obtener más información, consulte Vaciado de instancias de spot.

ECS_ENABLE_GPU_SUPPORT

Valores de ejemplo: true

Valor predeterminado en Linux: false

Valor predeterminado en Windows: n/a

Si utiliza instancias de contenedores con compatibilidad con GPU. Este parámetro se especifica para el agente. También debe configurar las definiciones de tareas para GPU. Para obtener más información, consulte Uso de GPU en Amazon ECS.

ECS_LOG_ROLLOVER_TYPE

Valores de ejemplo: size y hourly

Valor predeterminado en Linux: hourly

Valor predeterminado en Windows: hourly

Determina si el archivo de registro del agente del contenedor se va a sustituir en función de la hora o del tamaño. De forma predeterminada, el archivo de registro del agente se sustituye cada hora.

ECS_LOG_OUTPUT_FORMAT

Valores de ejemplo: logfmt y json

Valor predeterminado en Linux: logfmt

Valor predeterminado en Windows: logfmt

Determina el formato de salida del registro. Cuando se utiliza el formato json, cada línea del registro es un mapa JSON estructurado.

ECS_LOG_MAX_FILE_SIZE_MB

Valores de ejemplo: 10

Valor predeterminado en Linux: 10

Valor predeterminado en Windows: 10

Cuando la variable ECS_LOG_ROLLOVER_TYPE se establece en size, determina el tamaño máximo (en MB) del archivo de registro antes de que se sustituya. Si el tipo de sustitución está establecido en hourly, esta variable no se tiene en cuenta.

ECS_LOG_MAX_ROLL_COUNT

Valores de ejemplo: 24

Valor predeterminado en Linux: 24

Valor predeterminado en Windows: 24

Determina el número de archivos de registro sustituidos que deben conservarse. Los archivos de registro más antiguos se eliminan cuando se alcanza este límite.

ECS_ENABLE_AWSLOGS_EXECUTIONROLE_OVERRIDE

Valores de ejemplo: true

Valor predeterminado en Linux: ver descripción a continuación

Valor predeterminado en Windows: false

Si se debe habilitar el controlador de registros awslogs para autenticarse mediante el rol de IAM de ejecución de tareas. Este parámetro debe ser true para utilizar el controlador de registros awslogs en una tarea que también tenga un rol de IAM de ejecución de tareas especificado. Cuando se utiliza la AMI optimizada para Amazon ECS con la versión 1.16.0-1 o posterior del paquete ecs-init, se utiliza el valor predeterminado true. Cuando se utilizan versiones anteriores del paquete ecs-init, se utiliza el valor predeterminado de false.

ECS_PULL_DEPENDENT_CONTAINERS_UPFRONT

Valores de ejemplo: true | false

Valor predeterminado en Linux: false

Valor predeterminado en Windows: false

Si se deben extraer imágenes para contenedores con dependencias antes de que se haya cumplido la condición dependsOn.

ECS_EXCLUDE_IPV6_PORTBINDING

Valores de ejemplo: true | false

Valor predeterminado en Linux: true

Valor predeterminado en Windows: true

Si el agente debe excluir los enlaces de puerto IPv6 cuando se utilice el modo de red default. Cuando este valor es verdadero, los enlaces de puerto IPv6 se filtran y los enlaces de puerto IPv6 de tarea no se muestran en la respuesta DescribeTasks. Los enlaces se incluyen en el punto de enlace de metadatos de tareas.

Esta sintaxis está disponible en las versiones de agente 1.55.3 y posteriores.

ECS_SKIP_LOCALHOST_TRAFFIC_FILTER

Valores de ejemplo: true | false

Valor predeterminado en Linux: false

Valor predeterminado en Windows: false

De forma predeterminada, el service ecs-init agrega una regla iptable para eliminar paquetes no locales en localhost si no forman parte de una conexión reenviada o DNAT existente y elimina la regla al detenerse. Si ECS_SKIP_LOCALHOST_TRAFFIC_FILTER se establece en cierto, esta regla no se agregará ni eliminará.

ECS_ALLOW_OFFHOST_INTROSPECTION_ACCESS

Valores de ejemplo: true | false

Valor predeterminado en Linux: false

Valor predeterminado en Windows: false

De forma predeterminada, el service ecs-init agrega una regla iptable para bloquear el acceso al puerto de introspección del agente desde fuera del host (o contenedores en el modo de red awsvpc) y elimina la regla al detenerse. Si ECS_ALLOW_OFFHOST_INTROSPECTION_ACCESS se establece en cierto, esta regla no se agregará ni eliminará.

ECS_OFFHOST_INTROSPECTION_INTERFACE_NAME

Valores de ejemplo: eth0

Valor predeterminado en Linux: eth0

Valor predeterminado en Windows: eth0

El nombre de la interfaz de red principal que se utilizará para bloquear el acceso al puerto de introspección del agente fuera del host. De forma predeterminada, este valor es eth0.

ECS_WARM_POOLS_CHECK

Valores de ejemplo: true | false

Valor predeterminado en Linux: false

Valor predeterminado en Windows: false

Establezca esta variable en true solo si tienes un grupo de Auto Scaling y quieres asociar un grupo de calentamiento.

Si es cierto, el agente de Amazon ECS sondea los metadatos de la instancia para determinar si la instancia está lista para incluirse en el clúster de Amazon ECS. Cuando la aplicación tenga que escalarse horizontalmente, el grupo de Auto Scaling moverá rápidamente el número necesario de instancias preinicializadas del grupo de calentamiento al clúster.

Esta variable está disponible en la versión de agente 1.59.0 y posteriores.

CREDENTIALS_FETCHER_HOST

Valores de ejemplo: unix:///var/credentials-fetcher/socket/credentials_fetcher.sock

Valor predeterminado en Linux: unix:///var/credentials-fetcher/socket/credentials_fetcher.sock

Valor predeterminado en Windows: No aplicable

Establezca esta variable en true solo si tienes un grupo de Auto Scaling y quieres asociar un grupo de calentamiento.

Se usa para crear una conexión con el daemon credentials-fetcher para admitir gMSA en Linux. El valor predeterminado es el adecuado para la mayoría de los usuarios. Solo necesita modificar este valor cuando utilice una ruta de socket de credentials-fetcher personalizada, por ejemplo, CF_UNIX_DOMAIN_SOCKET_DIR.

CREDENTIALS_FETCHER_SECRET_NAME_FOR_DOMAINLESS_GMSA

Valores de ejemplo: secretmanager-secretname

Valor predeterminado en Linux: secretmanager-secretname

Valor predeterminado en Windows: No aplicable

Establezca esta variable en true solo si tienes un grupo de Auto Scaling y quieres asociar un grupo de calentamiento.

Se usa para admitir la opción de escalado para el daemon credentials-fetcher de gMSA en Linux. Si configura gMSA en una instancia no unida a un dominio, debe crear un usuario de Active Directory con acceso para recuperar las entidades principales de la cuenta de gMSA y almacenarlo en el Secrets Manager

ECS_DYNAMIC_HOST_PORT_RANGE

Valores de ejemplo: 100-200

Valor predeterminado en Linux: definido por /proc/sys/net/ipv4/ip_local_port_range

Valor predeterminado en Windows: 49152-65535

Esto especifica el rango de puertos de host dinámico que el agente utiliza para asignar los puertos de host, para la asignación del rango de puertos de un contenedor.

Esta variable está disponible en la versión de agente 1.68.0 y posteriores.

Almacenamiento de la configuración de instancia de contenedor en Amazon S3

La configuración del agente de contenedor de Amazon ECS se controla mediante las variables de entorno descritas en la sección anterior. Las variantes de Linux de la AMI optimizada para Amazon ECS buscan estas variables en /etc/ecs/ecs.config cuando se inicia el agente de contenedor y el agente se configura en consecuencia. Ciertas variables de entorno inocuas, como ECS_CLUSTER, se pueden transmitir a la instancia de contenedor durante el lanzamiento a través de datos de usuario de Amazon EC2 y se pueden escribir en este archivo sin ninguna consecuencia. No obstante, otro tipo de información confidencial, como las credenciales de AWS o la variable ECS_ENGINE_AUTH_DATA, no deben pasarse nunca a una instancia en los datos de usuario ni escribirse en /etc/ecs/ecs.config de manera que les permita aparecer en un archivo .bash_history.

El almacenamiento de la información de configuración en un bucket privado de Amazon S3 y la concesión de acceso de solo lectura al rol de IAM de instancia de contenedor es una forma práctica y segura de permitir la configuración de instancia de contenedor en el momento del lanzamiento. Puede almacenar una copia del archivo ecs.config en un bucket privado. Puede utilizar los datos de usuario de Amazon EC2 para instalar la AWS CLI y copiar la información de configuración en /etc/ecs/ecs.config cuando se lance la instancia.

Para permitir acceso de solo lectura de Amazon S3 para su rol de instancia de contenedor
  1. Abra la consola de IAM en https://console.aws.amazon.com/iam/.

  2. En el panel de navegación, elija Roles y seleccione el rol de IAM que se va a utilizar para las instancias de contenedor. Este rol probablemente se denomina ecsInstanceRole. Para obtener más información, consulte Rol de IAM de instancia de contenedor de Amazon ECS.

  3. En Managed Policies, seleccione Attach Policy.

  4. En la página Attach Policy (Asociar política), escriba S3 en Filter (Filtro) para reducir los resultados de políticas.

  5. Seleccione la casilla a la izquierda de la política AmazonS3ReadOnlyAccess y elija Attach Policy.

Para almacenar un archivo ecs.config en Amazon S3
  1. Cree un archivo ecs.config con variables de entorno válidas y valores de Configuración del agente de contenedor de Amazon ECS con el siguiente formato. En este ejemplo, se configura la autenticación de registros privados. Para obtener más información, consulte Autenticación de registros privados para tareas.

    ECS_ENGINE_AUTH_TYPE=dockercfg ECS_ENGINE_AUTH_DATA={"https://index.docker.io/v1/":{"auth":"zq212MzEXAMPLE7o6T25Dk0i","email":"email@example.com"}}
  2. Para almacenar el archivo de configuración, cree un bucket privado en Amazon S3. Para obtener más información, consulte Create a Bucket (Creación de un bucket) en la Guía del usuario de Amazon Simple Storage Service.

  3. Cargue el archivo ecs.config en el bucket de S3. Para obtener más información, consulte Add an Object to a Bucket (Adición de un objeto a un bucket) en la Guía del usuario de Amazon Simple Storage Service.

Para cargar un archivo ecs.config desde Amazon S3 en el momento del lanzamiento
  1. Complete los procedimientos indicados anteriormente en esta sección para permitir el acceso de solo lectura de Amazon S3 a las instancias de contenedor y almacenar un archivo ecs.config en un bucket de S3 privado.

  2. Lance nuevas instancias de contenedor siguiendo los pasos que se indican en Lanzamiento de una instancia de contenedor de Linux de Amazon ECS. En Paso 7, utilice el siguiente script de ejemplo que instala la AWS CLI y copia el archivo de configuración en /etc/ecs/ecs.config.

    #!/bin/bash yum install -y aws-cli aws s3 cp s3://your_bucket_name/ecs.config /etc/ecs/ecs.config