¿Cómo puedo asignar memoria a las tareas en Amazon ECS?

11 minutos de lectura
0

Quiero usar Amazon Elastic Container Service (Amazon ECS) para asignar memoria a las tareas.

Descripción breve

En Amazon ECS, la memoria se puede definir tanto a nivel de tarea como a nivel de contenedor. La memoria definida a nivel de tarea es el límite permanente de memoria para la tarea. A nivel de contenedor, hay dos parámetros para asignar memoria a las tareas: memoryReservation (un límite temporal) y memory (un límite permanente). Para las tareas alojadas en instancias de Amazon EC2, el campo de memoria a nivel de tarea es opcional y se puede utilizar cualquier valor. Si se especifica un valor de memoria a nivel de tarea, el valor de memoria a nivel de contenedor es opcional. El valor de cada parámetro se resta de las unidades de memoria disponibles de una instancia de contenedor de Amazon ECS cuando se ejecuta una tarea. El cálculo se basa en el límite temporal, el límite permanente o la memoria a nivel de tarea de una definición de tarea. Para obtener más información, consulte Reserva de clústeres.

Nota:Los parámetros de la memory y memoryReservation se configuran como los parámetros de definición de contenedor de una definición de tarea de Amazon ECS. Si especifica un valor para la memoria a nivel de contenedor tanto de memory como de memoryReservation, entonces memory debe ser mayor que memoryReservation. Si especifica memoryReservation, ese valor se resta de los recursos de memoria disponibles para la instancia de contenedor en la que se encuentra el contenedor. De lo contrario, se utiliza el valor de memory. Para obtener más información, consulte Memory.

Resolución

Antes de empezar, compruebe que dispone de un clúster de Amazon ECS que incluya una instancia de Amazon Elastic Compute Cloud (Amazon EC2). Para obtener más información sobre la creación de un clúster, consulte Crear un clúster mediante la consola clásica. Para obtener más información sobre cómo configurar el clúster y la instancia de contenedor, consulte Administración de memoria de instancia de contenedor.

Ver las asignaciones de memoria de una instancia de contenedor

  1. Abra la consola de Amazon ECS.
  2. En el panel de navegación, seleccione Clústeres.
  3. Elija el clúster que ha creado.
  4. Elija la vista Instancias de ECS y, a continuación, elija la instancia de contenedor incluida en el clúster que ha creado de la columna Instancias de contenedor.
    Nota: El panel de Detalles muestra que la memoria de la columna Disponible es igual a la memoria de la columna Registrado.
  5. Para obtener estadísticas sobre el uso de los recursos de la instancia, conéctese a la instancia mediante SSH y, a continuación, ejecute el comando docker stats.

Crear una definición de tarea con un límite temporal

  1. En la consola de Amazon ECS, en el panel de navegación, seleccione Definiciones de tareas.
  2. Elija Crear una nueva definición de tarea.
  3. Para el tipo de lanzamiento, elija EC2 y después seleccioneSiguiente paso.
  4. En Nombre de definición de tarea, introduzca un nombre.
  5. En la sección Definiciones de contenedores, elija Agregar contenedor.
  6. Para Nombre del contenedor, introduzca un nombre.
  7. Para Imagen, introduzca nginx o la imagen de Docker adecuada para su entorno.
  8. Para Límites de memoria (MiB), elija Límite temporal y, a continuación, introduzca 700.
  9. Elija Agregar y después elija Crear.

Ejecute la definición de tarea con un límite temporal

  1. En la consola de Amazon ECS, en el panel de navegación, elija Clústeres y elija el clúster que ha creado.
  2. Seleccione la vista de Tareas y, a continuación, seleccione Ejecutar nueva tarea.
  3. Elija Launch Type como EC2, elija la definición de tarea que creó con límite temporal y, a continuación, seleccione Ejecutar tarea. Nota: Definición de tareas y Clúster se pueden rellenar previamente con el nombre de la definición de tarea y el clúster que creó anteriormente si utiliza ECS por primera vez.
  4. Cuando la columna Último estado de la tarea con un límite temporal aparezca como RUNNING, vaya al paso siguiente.
    Nota: Para actualizar el estado de la tarea a RUNNING, actualice la página.
  5. Elija la vista de Instancias de ECS y, a continuación, elija la instancia en la columna Instancia de contenedor.
    Nota: El panel de Detalles muestra que la memoria de la columna Disponible es inferior a la memoria de la columna Registrado.
  6. Para obtener estadísticas sobre el uso de los recursos de la instancia, conéctese a la instancia mediante SSH y, a continuación, ejecute el comando docker stats.
  7. Elija Clústeres en el panel de navegación y, a continuación, elija el clúster.
  8. Seleccione la vista de Tareas, seleccione la tarea con un límite temporal y, a continuación, elija Detener.
  9. Elija la vista de Instancias de ECS y, a continuación, elija la instancia en la columna Instancia de contenedor.
    Nota: El panel de Detalles muestra que la memoria de la columna Disponible es igual a la memoria de la columna Registrado.

Crear una nueva revisión de una definición de tarea con un límite permanente

  1. En la consola de Amazon ECS, en el panel de navegación, seleccione Definiciones de tareas.
  2. Seleccione la definición de tarea que creó con un límite temporal y, a continuación, elija Crear nueva revisión.
  3. En la sección Definiciones de contenedores, en la columna Nombre del contenedor, elija el contenedor que agregó para la definición de la tarea con un límite temporal.
  4. Para Límites de memoria (MiB), elija Límite permanente y, a continuación, introduzca 1000.
  5. Selecciona Actualizar y después elija Crear.

Ejecutar la definición de tarea revisada con un límite permanente

  1. En la consola de Amazon ECS, en el panel de navegación, elija Clústeres y elija el clúster que ha creado.
  2. Seleccione la vista de Tareas y, a continuación, seleccione Ejecutar nueva tarea.
  3. Elegir tipo de lanzamiento como EC2
  4. Para Definición de tarea, elija la definición de tarea con un límite permanente que haya creado y, a continuación, elija Ejecutar tarea.
  5. Cuando la columna de Último estado de la tarea revisada con un límite permanente aparezca como RUNNING, vaya al paso siguiente.
    Nota: Para actualizar el estado de la tarea a RUNNING, actualice la página.
  6. Elija la vista de Instancias de ECS y, a continuación, elija la instancia en la columna Instancia de contenedor.
    Nota: El panel de Detalles muestra que la memoria disponible en la columna Disponible es inferior a la memoria de la columna Registrado.
  7. Para obtener estadísticas sobre el uso de los recursos de la instancia, conéctese a la instancia mediante SSH y, a continuación, ejecute el comando docker stats.
  8. Elija Clústeres en el panel de navegación y, a continuación, elija el clúster.
  9. Seleccione la vista de Tareas, seleccione la tarea con un límite permanente y, a continuación, elija Detener.
  10. Elija la vista de Instancias de ECS y, a continuación, elija la instancia en la columna Instancia de contenedor.
    Nota: El panel de Detalles muestra que la memoria de la columna Disponible es igual a la memoria de la columna Registrado.

Crear una nueva revisión de una definición de tarea con un límite temporal y un límite permanente

  1. En la consola de Amazon ECS, en el panel de navegación, seleccione Definiciones de tareas.
  2. Seleccione la definición de tarea que creó con un límite permanente y, a continuación, elija Crear nueva revisión.
  3. En la sección Definiciones de contenedores, en la columna Nombre del contenedor, elija el contenedor que agregó para la definición de la tarea con un límite permanente.
  4. Para Límites de memoria (MiB), elija Límite temporal y, a continuación, introduzca 700.
  5. Elija Agregar límite permantente y, a continuación, introduzca 1200.
  6. Selecciona Actualizar y después elija Crear.

Ejecutar la definición de tarea revisada con un límite temporal y un límite permanente

  1. En la consola de Amazon ECS, en el panel de navegación, elija Clústeres y elija el clúster que ha creado.
  2. Seleccione la vista de Tareas y, a continuación, seleccione Ejecutar nueva tarea.
  3. Elegir tipo de lanzamiento como EC2
  4. En Definición de tareas, elija la definición de tarea que creó con un límite temporal y un límite permanente y, a continuación, elija Ejecutar tarea.
  5. Cuando la columna de Último estado de la tarea aparezca como RUNNING, vaya al paso siguiente.
    Nota: Para actualizar el estado de la tarea a RUNNING, actualice la página.
  6. Elija la vista de Instancias de ECS y, a continuación, elija la instancia en la columna Instancia de contenedor.
    Nota: El panel de Detalles muestra que la memoria de la columna Disponible es inferior a la memoria de la columna Registrado.
  7. Para obtener estadísticas sobre el uso de los recursos de la instancia, conéctese a la instancia mediante SSH y, a continuación, ejecute el comando docker stats.
  8. Elija Clústeres en el panel de navegación y, a continuación, elija el clúster.
  9. Elija la vista de Tareas, seleccione la tarea con un límite temporal y un límite permanente y, a continuación, elija Detener.
  10. Elija la vista de Instancias de ECS y, a continuación, elija la instancia en la columna Instancia de contenedor.
    Nota: El panel de Detalles muestra que la memoria de la columna Disponible es igual a la memoria de la columna Registrado.

Crear una nueva revisión de una definición de tarea con límite de memoria a nivel de tarea

  1. En la consola de Amazon ECS, en el panel de navegación, seleccione Definiciones de tareas.
  2. Seleccione la definición de tarea que creó con un límite permanente y temporal y después elija Crear nueva revisión.
  3. En la sección Tamaño de la tarea, en Memoria de tareas (MiB) introduzca 1000
  4. En la sección Definiciones de contenedores, en la columna Nombre del contenedor, elija el contenedor que agregó para la definición de la tarea con un límite permanente y temporal.
  5. Para Límites de memoria (MiB), eliminar el Límite temporal seleccionando el icono x de la derecha
  6. Después para ** Límite permanente**, elimine el valor 1200 seleccionándolo y eliminándolo.
  7. Selecciona Actualizar y después elija Crear.

Ejecutar la definición de tarea revisada con el límite de memoria a nivel de tarea

  1. En la consola de Amazon ECS, en el panel de navegación, elija Clústeres y elija el clúster que ha creado.
  2. Seleccione la vista de Tareas y, a continuación, seleccione Ejecutar nueva tarea.
  3. Elegir tipo de lanzamiento como EC2
  4. Para Definición de tareas, elija la definición de tarea que creó con la memoria de nivel de tarea y, a continuación, elija Ejecutar tarea.
  5. Cuando la columna de Último estado de la tarea aparezca como RUNNING, vaya al paso siguiente.
    Nota: Para actualizar el estado de la tarea a RUNNING, actualice la página.
  6. Elija la vista de Instancias de ECS y, a continuación, elija la instancia en la columna Instancia de contenedor.
    Nota: El panel de Detalles muestra que la memoria de la columna Disponible es inferior a la memoria de la columna Registrado.
  7. Para obtener estadísticas sobre el uso de los recursos de la instancia, conéctese a la instancia mediante SSH y, a continuación, ejecute el comando docker stats.
    Nota: Puede observar que el límite de memoria que muestra el comando docker stats puede no ser de 1000 MiB para el contenedor. Esto se debe a que la memoria del nivel de tarea la administra el agente de ECS y no daemon docker.
  8. Elija Clústeres en el panel de navegación y, a continuación, elija el clúster.
  9. Seleccione la vista de Tareas, seleccione la tarea con memoria a nivel de tarea y, a continuación, elija Detener.
  10. Elija la vista de Instancias de ECS y, a continuación, elija la instancia en la columna Instancia de contenedor.
    Nota: El panel de Detalles muestra que la memoria de la columna Disponible es igual a la memoria de la columna Registrado.

Información relacionada

Métricas de Amazon ECS CloudWatch

Tipos de instancias de Amazon EC2

Limitar el acceso de un contenedor a la memoria

Tamaño de la tarea

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace un año