Determinación del tamaño de las tareas para Amazon ECS
Una de las decisiones más importantes al implementar los contenedores en Amazon ECS es el tamaño de los contenedores y las tareas. El tamaño de los contenedores y las tareas es esencial para planificar el escalado y la capacidad.
Amazon ECS utiliza dos métricas de recursos para la capacidad: CPU y memoria. Amazon ECS mide las CPU en unidades de 1/1024 de una vCPU completa (donde 1024 unidades equivalen a 1 vCPU completa). Amazon ECS mide la memoria en megabytes.
En la definición de la tarea, puede declarar las reservas y los límites de los recursos.
Cuando se declara una reserva, se declara la cantidad mínima de recursos que requiere una tarea. La tarea recibe como mínimo la cantidad de recursos que se solicite. Es posible que la aplicación pueda utilizar más CPU o memoria que la reserva que se declare. Sin embargo, esto está sujeto a los límites que también se hayan declarado.
Utilizar una cantidad superior a la reserva se conoce como ampliación. La expansión significa que la aplicación utiliza más recursos que los que se han reservado, pero se mantiene dentro de los límites declarados. Amazon ECS garantiza las reservas. Por ejemplo, si utiliza las instancias de Amazon EC2 para proporcionar capacidad, Amazon ECS no coloca una tarea en una instancia en la que no pueda gestionar la reserva.
Un límite es la cantidad máxima de unidades de CPU o memoria que pueden utilizar el contenedor o la tarea. Si el contenedor intenta utilizar más CPU que este límite, Amazon ECS lo limita. Si el contenedor intenta utilizar más memoria que este límite, Amazon ECS lo detiene.
Elegir estos valores puede resultar difícil. Los valores que mejor se adaptan a la aplicación dependen en gran medida de los requisitos de recursos de esta.
Las pruebas de carga de la aplicación son la clave para planificar correctamente los requisitos de recursos. Las pruebas de carga ayudan a comprender mejor los requisitos de la aplicación.
Aplicaciones sin estado
En el caso de las aplicaciones sin estado que se escalan horizontalmente, como una aplicación detrás de un equilibrador de carga, recomendamos primero determinar cuánta memoria consume la aplicación cuando atiende las solicitudes.
Para ello, puede utilizar herramientas tradicionales como ps
o top
. También puede utilizar soluciones de supervisión como Información de contenedores de CloudWatch.
Al determinar la reserva de CPU, tenga en cuenta cómo quiere escalar la aplicación para que cumpla con los requisitos de su empresa.
Puede utilizar reservas de CPU más pequeñas, como 256 unidades de CPU (o 1/4 de vCPU), para escalar horizontalmente de manera detallada y minimizar los costos. Sin embargo, es posible que no se escalen lo suficientemente rápido como para satisfacer los picos significativos de la demanda.
Puede utilizar las reservas de CPU más grandes para reducir y escalar horizontalmente con mayor rapidez. Esto le es útil para adaptarse a los picos de demanda con mayor rapidez. Sin embargo, las reservas de CPU más grandes cuestan más.
Otras aplicaciones
En el caso de las aplicaciones que no se escalan horizontalmente, como los trabajos singleton o los servidores de bases de datos, las consideraciones más importantes son la capacidad disponible y el costo.
Elija cantidad de memoria y CPU en función de lo que las pruebas de carga muestran que se necesita para atender el tráfico y cumplir su objetivo de servicio. Amazon ECS garantiza que la aplicación se coloque en un host que tenga la capacidad adecuada.