Tipos de instancias AWS EC2: desafíos y mejores prácticas para alojar sus aplicaciones en AWS

Asociados de negocios que 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 Nube (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 costos. 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. Puede que la instancia del doble del tamaño de una familia determinada no sea necesaria, pero cuando los equipos de aplicaciones encargan 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 en el blog, exploraremos los desafíos de seleccionar el mejor tipo de instancia Amazon EC2 para su aplicación y le brindaremos algunas mejores prácticas para tomar la decisión correcta. Además, explicaremos cómo una solución como IBM Turbonomic puede ayudar a reajustar sus aplicaciones en la nube de AWS mediante el machine learning, el autoescalado y la automatización. Si está familiarizado con Turbonomic y desea comenzar a optimizar su entorno de AWS ahora, comience hoy mismo su prueba gratuita de 30 días.

Descripció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 computación de propósito general, aplicaciones de uso intensivo de memoria o tareas de uso intensivo de cómputo. 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 instancias de propósito general están diseñados para una variedad de cargas de trabajo, incluidos 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 tecnología de procesadores Intel Xeon Platinum 8175M o 8259CL. Estas instancias proporcionan un equilibrio entre recursos informáticos, de memoria y de red, y son 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 intensivas en computación, como computación de alto rendimiento, procesamiento por lotes y modelado científico. Estas instancias maximizan la potencia de cálculo con GPU y CPU de alto 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 de uso intensivo de memoria, como bases de datos de alto rendimiento, cachés en memoria distribuidas y procesamiento de datos en tiempo real y analytics de big data.
  • Instancias optimizadas para almacenamiento (series I, D y H): estas instancias están optimizadas para cargas de trabajo que requieren un uso intensivo del almacenamiento, como big data, almacenamiento de datos y procesamiento de registros. Aprovechan el almacenamiento en caché de alta capacidad y las unidades de estado sólido (SSD) para admitir las intensas actividades 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 abrumadora. Estos son algunos de los desafíos que puede enfrentar:

  • 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 opción para su aplicación dentro de unos meses.
    • Cómo ayuda Turbonomic: Turbonomic realiza una ingesta continua de 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? ¿Se trata de una carga de trabajo que requiere un uso intensivo de recursos informáticos o que necesita mucha memoria o capacidad de almacenamiento? Una vez que tenga una comprensión clara de su carga de trabajo, puede reducir sus opciones a los tipos de instancia optimizados para su 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 admite una aplicación orientada al cliente y baja latencia, o una aplicación administrativa interna? ¿Qué requisitos de localidad de datos deberá cumplir? Tenga en cuenta que el rendimiento de un tipo de instancia puede variar en función de la región y el 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 simplifica con la ayuda del software de optimización de costos de 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 instancias reservadas, 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 admitir 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 de EC2. Si la aplicación está compuesta por 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 y reducción más económicas disponibles, así como garantizar que las acciones de ampliación y reducción se realicen de la manera más rentable posible.
  • Costo: el costo es una de las consideraciones y desafíos más importantes al elegir un tipo de instancia EC2. Debe tener en cuenta el costo por hora del tipo de instancia, así como cualquier cargo adicional por transferencia de datos, almacenamiento y otros servicios de AWS. Además, los distintos modelos de precios, incluidas las instancias reservadas y los planes de ahorro, aumentan la complejidad del cálculo de costos.

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

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

1. Comprenda su 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 diferentes requisitos en cuanto a CPU, memoria, red y almacenamiento, y es esencial saber qué necesita su aplicación para funcionar correctamente.

Por ejemplo, si está ejecutando una aplicación de base de datos, es posible que necesite una gran cantidad de RAM para manejar las consultas de manera eficiente. Por otro lado, si ejecuta una aplicación intensiva en computación, puede que necesite una CPU de alto rendimiento.

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

2. Considere 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 CPU, debe buscar un tipo de instancia que tenga un mayor recuento de CPU y 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 características tienen los procesadores AWS Graviton3 (enlace externo a ibm.com) personalizados de última generación (actualizaciones significativas de 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 menor recuento de CPU, 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 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. Considere la red

La red es otro componente crítico de una instancia EC2, ya que determina cómo 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 cómputo de alto rendimiento, que están diseñadas para cargas de trabajo intensivas en la red. Estas instancias cuentan con 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 menor, como la familia T3.

5. Considera el almacenamiento

El almacenamiento es el componente crítico final 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 que tenga una mayor capacidad de almacenamiento (Elastic Block Store o EBS). Sin embargo, proceda con precaución: el almacenamiento también se encuentra entre los recursos en la nube más costosos y puede generar fácilmente gastos innecesarios a través de volúmenes de 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 tienen grandes cantidades de almacenamiento SSD y almacenamiento local y están optimizadas para aplicación 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, instancias reservadas 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 inicial. Son más adecuadas para cargas de trabajo que tienen demanda variable o proyectos a corto plazo.

Las instancias reservadas ofrecen un descuento significativo en la tarifa por hora a cambio de un pago inicial único. Son más adecuadas para cargas de trabajo con un uso previsible y que requieren compromiso a largo plazo.

Las instancias puntuales le permiten ofertar por la capacidad de EC2 no utilizada y pueden proporcionar importantes ahorros de costos. Sin embargo, son más adecuadas para cargas de trabajo que pueden manejar interrupciones y tienen tiempos de inicio y finalización flexibles.

7. Pruebe y optimice

Una vez que haya seleccionado un tipo de instancia EC2, es esencial probar y optimizar su aplicación para garantizar que se ejecute de manera eficiente. Puede utilizar herramientas como AWS CloudWatch o IBM Instana para monitorear 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 emplea machine learning y automatización, y se integra fácilmente con sus cuentas de facturación de AWS y AWS, y genera acciones de optimización en 30 minutos.

Autor

Christopher Graham

WW Demand Strategy Manager

Turbonomic PLG