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=
. 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 VARIABLE_NAME
=VARIABLE_VALUE
--env-file
.path_to_env_file
Temas
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
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ústerdefault
no existe, el agente de contenedor de Amazon ECS intenta crearlo. Si se ha especificado un clúster nodefault
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 valorECS_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. SiECS_ENGINE_AUTH_TYPE=docker
, entonces el valorECS_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
, yecs-init
lo montará en el directorio/var/log/ecs/
del host. ECS_LOGLEVEL
-
Valores de muestra:
crit
,error
,warn
,info
ydebug
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
, siECS_LOG_DRIVER
se establece explícitamente en un valor no vacío; de lo contrario, el mismo valor queECS_LOGLEVEL
Valor predeterminado en Windows:
none
, siECS_LOG_DRIVER
se establece explícitamente en un valor no vacío; de lo contrario, el mismo valor queECS_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 entrue
; de lo contrario, se establece enfalse
.Valor predeterminado en Windows: si
ECS_DATADIR
se establece explícitamente en un valor no vacío,ECS_CHECKPOINT
se establece entrue
; de lo contrario, se establece enfalse
.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 erafalse
. En versiones del agente desde la1.40.0
hasta la1.42.0
, el valor predeterminado eratrue
. En la versión del agente1.43.0
y posteriores, el valor predeterminado esfalse
.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
estrue
. 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 registrosawslogs
, 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 driversen 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 especificar169.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 estrue
.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
odefault
. 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 estrue
.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ódigo5
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 indicadorautoprovision
, el agente de contenedor de Amazon ECS compara los detalles del volumen de Docker con los detalles de los volúmenes de Docker existentes. CuandoECS_SHARED_VOLUME_MATCH_FULL_CONFIG
estrue
, el agente de contenedor compara la configuración completa del volumen (name
,driverOpts
ylabels
) para comprobar que los volúmenes son idénticos. Si esfalse
, el agente de contenedor utiliza el comportamiento predeterminado de Docker, que solo verificaname
en el volumen. Si se comparte un volumen entre instancias de contenedor, este valor debe establecerse enfalse
. 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ónListTagsForResource
. El rol de IAM asociado a la instancia de contenedor debe tener la acciónec2: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 utilizandoECS_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 siECS_ENABLE_UNTRACKED_IMAGE_CLEANUP
estrue
. 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
yhourly
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
yjson
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 ensize
, 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 enhourly
, 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 sertrue
para utilizar el controlador de registrosawslogs
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 paqueteecs-init
, se utiliza el valor predeterminadotrue
. Cuando se utilizan versiones anteriores del paqueteecs-init
, se utiliza el valor predeterminado defalse
. 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. SiECS_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 redawsvpc
) y elimina la regla al detenerse. SiECS_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
Abra la consola de IAM en https://console.aws.amazon.com/iam/
. -
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. -
En Managed Policies, seleccione Attach Policy.
-
En la página Attach Policy (Asociar política), escriba
S3
en Filter (Filtro) para reducir los resultados de políticas. -
Seleccione la casilla a la izquierda de la política AmazonS3ReadOnlyAccess y elija Attach Policy.
Para almacenar un archivo ecs.config
en Amazon S3
-
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
"}} -
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.
-
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
-
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. -
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