Tipos de instancias AWS EC2: retos y buenas prácticas para alojar sus aplicaciones en AWS

business partners planean nuevas estrategias

Cuando se trata de alojar aplicaciones en Amazon Web Services (AWS), una de las decisiones más importantes que deberá tomar es qué tipo de instancia de Amazon Elastic Compute Cloud (EC2) elegir. Las instancias EC2 son máquinas virtuales que le permiten ejecutar sus aplicaciones en AWS. Vienen en varios tamaños y configuraciones, conocidas como familias de instancias, cada una diseñada para un propósito específico. Elegir la oferta de instancias y el tamaño de instancia adecuados para su aplicación es crítico para optimizar el rendimiento y reducir los costes. Sin embargo, dado que el perfil de demanda de cada aplicación es único y puede cambiar con el tiempo, esta tarea es mucho más fácil de plantear que de resolver. Es posible que la instancia 2xlarge de una familia determinada no sea necesaria, pero cuando los equipos de aplicaciones asignan a las operaciones en la nube el mantenimiento del tiempo de actividad, el tamaño de instancia más grande y costoso se vuelve atractivo, es decir, hasta que las facturas de la nube se disparan.

En esta entrada de blog, exploraremos los desafíos de seleccionar el mejor tipo de instancia Amazon EC2 para su aplicación y le proporcionaremos algunas buenas prácticas para tomar la decisión correcta. Además, explicaremos cómo una solución como ibm turbonomic puede ayudarle a redimensionar sus aplicaciones en la nube de AWS mediante el machine learning, el auto-scaling y la automatización. Si conoces Turbonomic y quieres empezar a optimizar tu entorno AWS desde ahora, comienza hoy tu prueba gratuita de 30 días.

Comprensión de los tipos de instancias de Amazon EC2

Las instancias EC2 se clasifican en función de sus características, como CPU, memoria, almacenamiento y capacidad de red. Cada tipo de instancia está diseñado para optimizar cargas de trabajo específicas, como la informática de uso general, las aplicaciones con uso intensivo de memoria o las tareas de cálculo intensivo. Estos son algunos ejemplos de tipos de instancias EC2 y sus principales casos de uso:

  • Instancias de propósito general (series A, T, M y C): Los tipos de instancia de propósito general están diseñados para una gran variedad de cargas de trabajo, como servidores web, bases de datos pequeñas y entornos de desarrollo y pruebas. Este grupo incluye la instancia m5, la última generación de instancias de uso general con procesadores Intel Xeon Platinum 8175M o 8259CL. Estas instancias proporcionan un equilibrio de recursos de cálculo, memoria y red, y es una buena opción para muchas aplicaciones.
  • Instancias optimizadas para computación (series C y R): estas instancias están optimizadas para cargas de trabajo de computación intensiva, como la computación de alto rendimiento, el procesamiento por lotes y el modelado científico. Estas instancias maximizan la potencia de cálculo utilizando GPU y CPU con un elevado número de núcleos.
  • Instancias optimizadas para memoria (series X, Z y R): Estas instancias de alta memoria están optimizadas para cargas de trabajo intensivas en memoria, como bases de datos de alto rendimiento, cachés distribuidas en memoria y proceso de datos en tiempo real/big data analytics.
  • Instancias optimizadas para almacenamiento (series I, D y H): Estas instancias están optimizadas para cargas de trabajo intensivas en almacenamiento, como big data, almacenamiento de datos y procesamiento de registros. Utilizan cachés de alta capacidad y unidades de estado sólido (SSD) para soportar las actividades intensivas de lectura y escritura de las cargas de trabajo.

Desafíos para elegir el tipo de instancia EC2 adecuado

Elegir el tipo de instancia EC2 adecuado para su aplicación puede ser una tarea desalentadora. Estos son algunos de los retos a los que puede enfrentarse:

  • Complejidad: con tantas ofertas de instancias para elegir, puede ser difícil determinar cuál es la mejor opción para su aplicación. Además, Amazon introduce constantemente nuevos tipos de instancias en su catálogo de servicios, lo que implica que la mejor opción para su aplicación hoy puede no ser necesariamente la mejor para su aplicación dentro de unos meses.
    • Cómo ayuda Turbonomic: Turbonomic consume continuamente las especificaciones de todo el catálogo de servicios de AWS y asigna el perfil de consumo de recursos de sus cargas de trabajo (tanto sus picos de referencia como basados en percentiles) al tipo de instancia que mejor se adapta.
  • Tipo de carga de trabajo: ¿Qué tipo de carga de trabajo ejecutará su aplicación? ¿Es una carga de trabajo de computación intensiva o requiere mucha memoria o capacidad de almacenamiento? Una vez que tengas claro tu carga de trabajo, puedes reducir tus opciones a tipos de instancias optimizados para tu carga de trabajo.
  • Requisitos de rendimiento: ¿Necesita un tipo de instancia de alto rendimiento para manejar grandes cargas de trabajo o un tipo de instancia más pequeño para manejar cargas de trabajo ligeras? ¿La carga de trabajo soporta una aplicación orientada al cliente y baja latencia, o una aplicación administrativa interna? ¿Qué requisitos de localización de datos tendrá que cumplir? Tenga en cuenta que el rendimiento de un tipo de instancia puede variar en función de la región y del patrón de uso de su aplicación.
    • Cómo ayuda Turbonomic: Determinar el tipo de carga de trabajo en todo un entorno de alojamiento es una tarea importante, pero se facilita con la ayuda del software de optimización de costes en la nube. Turbonomic detecta automáticamente la utilización actual e histórica de la vCPU, la memoria, el acceso al almacenamiento (IOPS), el rendimiento neto, el rendimiento de E/S, la cantidad de almacenamiento, la cobertura de casos reservados, la vMemory de la base de datos, la vCPU de la base de datos, la cantidad de almacenamiento de la base de datos, la E/S de la base de datos, el inventario de RI y la cobertura de RI, y determina la mejor familia de instancias y el mejor tipo de instancia para soportar la carga de trabajo.
  • Escalabilidad: Debe asegurarse de que el tipo de instancia que elija pueda ampliarse o reducirse según sea necesario para gestionar los cambios en el tráfico y la carga de trabajo. Además, debe saber cómo están diseñadas para escalar las aplicaciones que alojará cada instancia EC2. Si la aplicación se compone de microservicios, los requisitos de escalabilidad y rendimiento deben considerarse juntos.
    • Cómo ayuda Turbonomic: dependiendo de cómo se diseñe cada aplicación para escalar, Turbonomic puede impulsar las acciones de ampliación/reducción más económicas disponibles, así como garantizar que las acciones de ampliación/reducción se lleven a cabo de la manera más rentable posible.
  • Coste: el coste es una de las consideraciones y desafíos más importantes a la hora de elegir un tipo de instancia EC2. Debe tener en cuenta el coste por hora del tipo de instancia, así como cualquier cargo adicional por transferencia de datos, almacenamiento y otros servicios de AWS. Además, los diversos modelos de precios, incluidos los casos reservados y el plan de ahorro, aumentan la complejidad del cálculo de costes.

Buenas prácticas para elegir el mejor tipo de instancia EC2

Ahora que comprende los desafíos más comunes a la hora de elegir la mejor instancia EC2, estas son algunas de las buenas prácticas que animamos a nuestros clientes y socios a seguir.

1. Entiende tu carga de trabajo

El primer paso y el más importante para seleccionar el tipo de instancia EC2 adecuado es comprender su carga de trabajo. Cada aplicación tiene unos requisitos diferentes en cuanto a CPU, memoria, red y almacenamiento, y es esencial saber qué necesita su aplicación para funcionar sin problemas.

Por ejemplo, si está ejecutando una aplicación de base de datos, es posible que necesite una gran cantidad de RAM para gestionar las consultas con eficacia. Por otro lado, si está ejecutando una aplicación de computación intensiva, es posible que necesite una CPU de alto rendimiento.

Para comprender mejor su carga de trabajo, puede utilizar herramientas como AWS CloudWatch o soluciones de monitorización de terceros para recopilar datos sobre la utilización de recursos. Estos datos pueden utilizarse después para determinar el tipo de instancia óptimo para su aplicación.

2. Tenga en cuenta la CPU

La CPU es uno de los componentes más críticos de una instancia EC2, ya que determina la potencia de procesamiento de la instancia. Si su aplicación requiere un alto rendimiento de la CPU, debe buscar un tipo de instancia que tenga un mayor número de CPU y una mayor velocidad de reloj.

AWS ofrece una variedad de tipos de instancias optimizadas para CPU (enlace externo a ibm.com), como las familias C5, M5 y R5, que están diseñadas para cargas de trabajo informáticas de alto rendimiento. Estas instancias cuentan con los procesadores AWS Graviton3 (enlace externo a ibm.com) personalizados de última generación (actualizaciones significativas del Graviton2) y están optimizadas para aplicaciones que requieren una alta utilización de la CPU. Sin embargo, si su aplicación no requiere un alto rendimiento de la CPU, puede optar por un tipo de instancia más económico sin GPU y con un recuento de CPU más bajo, como la familia T3.

3. Considere la memoria

La memoria es otro componente crítico de una instancia EC2, ya que determina la cantidad de datos que la instancia puede procesar a la vez. Si su aplicación requiere mucha memoria, debe buscar un tipo de instancia que tenga una mayor capacidad de memoria.

Sin embargo, si su aplicación no requiere mucha memoria, puede optar por un tipo de instancia más barata que tenga una menor capacidad de memoria, como la familia T3.

AWS ofrece una variedad de tipos de instancias optimizadas para memoria (enlace externo a ibm.com), como las familias X1, R4 y z1d, que están diseñadas para cargas de trabajo con uso intensivo de memoria. Estas instancias cuentan con grandes cantidades de memoria y están optimizadas para aplicaciones que requieren una alta utilización de la memoria, como las bases de datos en memoria.

Sin embargo, si su aplicación no requiere mucha memoria, puede optar por un tipo de instancia más barata que tenga una menor capacidad de memoria, como la familia T3.

4. Considerar la red

La red es otro componente crítico de una instancia EC2, ya que determina la velocidad a la que se pueden transferir los datos rápidos hacia y desde la instancia. Si su aplicación requiere un alto rendimiento de red, debe buscar un tipo de instancia que tenga un mayor ancho de banda de red.

AWS ofrece una variedad de tipos de instancias optimizadas para la red, como C5n y las familias HPC de computación de alto rendimiento, que están diseñadas para cargas de trabajo intensivas en la red. Estas instancias tienen la característica de interfaces de red de alta velocidad y están optimizadas para aplicaciones que requieren una alta utilización de la red.

Sin embargo, si su aplicación no requiere un alto rendimiento de red, puede optar por un tipo de instancia más barata que tenga un ancho de banda de red más bajo, como la familia T3.

5. Considera el almacenamiento

El almacenamiento es el último componente crítico de una instancia EC2, ya que determina la cantidad de datos que se pueden almacenar en la instancia. Si su aplicación requiere mucho almacenamiento, debe buscar un tipo de instancia con mayor capacidad de almacenamiento (Elastic Block Store, o EBS). Sin embargo, proceda con precaución: el almacenamiento también es uno de los recursos en la nube más costosos y puede generar fácilmente gastos innecesarios a través de volúmenes EBS inactivos y no conectados.

AWS ofrece una variedad de tipos de instancias optimizadas para almacenamiento, como las familias I3 y D2, que están diseñadas para cargas de trabajo de almacenamiento intensivo. Estas instancias cuentan con grandes cantidades de almacenamiento SSD y almacenamiento local y están optimizadas para aplicaciones que requieren un alto rendimiento de IOPS.

Sin embargo, si su aplicación no requiere mucho almacenamiento, puede optar por un tipo de instancia más barata que tenga una menor capacidad de almacenamiento basada en HDD, como la familia T3.

6. Considere el modelo de precios

AWS ofrece varios modelos de precios para las instancias EC2, incluidas las instancias bajo demanda, casos reservados e instancias puntuales. Cada modelo tiene sus propias ventajas y desventajas, y es esencial elegir el que mejor se adapte a su carga de trabajo y presupuesto.

Las instancias bajo demanda tienen un precio por hora y no requieren ningún compromiso por adelantado. Son más adecuados para cargas de trabajo que tienen una demanda variable o proyectos a corto plazo.

Los casos reservados ofrecen un descuento significativo en la tarifa por hora a cambio de un pago único por adelantado. Son más adecuados para cargas de trabajo con un uso predecible y que requieren compromiso a largo plazo.

Las instancias de spot le permiten pujar por la capacidad de EC2 no utilizada y pueden suponer un importante ahorro de costes. Sin embargo, son más adecuados para cargas de trabajo que pueden manejar interrupciones y tienen horarios flexibles de inicio y fin.

7. Pruebe y optimice

Una vez que haya seleccionado un tipo de instancia EC2, es esencial probar y optimizar su aplicación para asegurarse de que funciona de manera eficiente. Puede utilizar herramientas como AWS CloudWatch o IBM Instana para monitorizar el rendimiento de su aplicación e identificar cualquier cuello de botella o área de mejora.

Conclusión

Seleccionar el tipo de instancia EC2 adecuado es crucial para el rendimiento y la rentabilidad de su infraestructura de AWS. Al comprender su carga de trabajo, considerar los requisitos de CPU, memoria, red y almacenamiento, elegir el modelo de precios adecuado y probar y optimizar su aplicación, puede asegurarse de que está aprovechando al máximo sus instancias EC2. 

Recuerde que seleccionar el mejor tipo de instancia no es una decisión única, ya que su carga de trabajo y sus necesidades de infraestructura pueden cambiar con el tiempo. Evaluar y optimizar continuamente sus tipos de instancias EC2 puede ayudarle a lograr un rendimiento y una rentabilidad óptimos para su infraestructura de AWS.

IBM Turbonomic puede ayudarle a gestionar este proceso automáticamente evaluando continuamente los requisitos de recursos de sus aplicaciones de AWS y generando acciones específicas que ahorren dinero y mantengan sus instancias EC2 del tamaño adecuado. Turbonomic utiliza machine learning y automatización, integrándose fácilmente con tus cuentas AWS y de facturación de AWS, y genera acciones de optimización en 30 minutos.

Autor

Christopher Graham

WW Demand Strategy Manager

Turbonomic PLG