Instancias con optimización de memoria Amazon EC2: R5 vs. X1

Si estás ejecutando cargas de trabajo a escala empresarial e intensivas en memoria, como bases de datos de alto rendimiento o análisis de big data en tiempo real, necesitará instancias con optimización de memoria para EC2.
En casos extremos, podrás optar por las instancias de memoria alta o z1d, pero es muy probable que uses con mayor frecuencia las instancias de las familias R5, R5d, R5a, X1 y X1e. Repasemos ahora algunas de las características más importantes y hagamos algunas comparaciones entre estes dos tipos de familias de instancias EC2.
Las instancias Amazon EC2 de la familia R5
Las instancias R5 usan el procesador Intel Xeon Platinum 8000 series (Skylake-SP) con una velocidad de reloj Turbo CPU de núcleo sostenido de hasta 3.1 GHz. Estas instancias R5 también son compatibles con el nuevo conjunto de instrucciones de Intel Advanced Vector Extensions 512 (AVX-512).
El AVX-512 utiliza registros de vectores de 512 bits ultraanchos y tiene otras mejoras que aceleran las operaciones computacionales. Un caso de uso común son los servidores de bases de datos, como las bases de datos SQL y las bases de datos DB2.
Algunas comparaciones de costos
Las instancias R5 tienen una relación de vCPU a memoria de 1:8 por cada vCPU, hay 8 GiB de memoria. Por ejemplo, la instancia R5 más pequeña, la r5.large, tiene dos vCPU y 16 GiB de memoria. El tamaño más grande, el r5.24xlarge, tiene 96 vCPU y 768 GiB de memoria.
Dado que todas las variaciones de la familia R ofrecen los mismos tamaños, es fácil hacer algunas comparaciones de precios sencillas. Estos son los costos a pedido para los tamaños más pequeños y más grandes de cada familia.
Puedes ver que, en comparación con las instancias R5, el almacenamiento SSD te costará más, lo que debería equilibrarse con el costo de EBS. Y si optas por el procesador más lento para R5a, entonces pagaras menos.
Las instancias Amazon EC2 de las familias X1 y X1e
Las familias X1 y X1e están diseñadas para grandes cargas de trabajo en memoria. Inicialmente, estaban destinadas a ejecutar SAP HANA, pero también funcionan bien para otras cargas de trabajo intensivas en memoria, como el análisis en memoria y el procesamiento de big data con aplicaciones como Apache Spark.
Ambas familias usan la misma plataforma de cómputo subyacente: un procesador Intel Xeon E7-8880 v3 (Haswell) de alta frecuencia de cuatro zócalos diseñado específicamente para cargas de trabajo en memoria de misión crítica altamente resistentes.
Las optimizaciones del chip incluyen un gran ancho de banda de memoria y cachés L3 más grandes que aumentan el rendimiento de las aplicaciones en memoria. El chip permite un mayor rendimiento criptográfico a través de Intel AES-NI, admite Intel® Transactional Synchronization Extensions (TSX) para aumentar el rendimiento del procesamiento de datos transaccionales en memoria y admite instrucciones de procesador Advanced Vector Extensions 2 (Intel AVX2) para expandir la mayoría de los comandos enteros a 256 bits.
También está diseñado para admitir cargas de trabajo optimizadas para NUMA (acceso no uniforme a la memoria), lo que proporciona un gran ancho de banda de memoria y baja latencia. La colocación homogénea y simétrica de los módulos duales de memoria en línea (DIMM) en cada uno de los zócalos se realizó específicamente para maximizar el ancho de banda y el rendimiento al tiempo que se minimiza la latencia.
Otros costos X1 y X1e
Las familias X1 y X1e están mejoradas para EBS y utilizan redes mejoradas de manera predeterminada, por lo que debe compensar los costos adicionales de EBS. Las bases de datos en memoria generalmente están optimizadas para usar tamaños de bloque grandes en el inicio. Es posible que desee utilizar el tipo de volumen io1 EBS para este período de tiempo, ya que es el volumen SSD de mayor rendimiento. Una vez que la base de datos alcanza el estado estable, puedes cambiar a gp2.
También hay tres servicios que funcionan muy bien con X1 y X1e: recuperación automática, escala automática y equilibrio de carga elástica.
Recuperación automática en Amazon EC2
Si tu instancia deja de funcionar, la recuperación automática inicia automáticamente otra instancia y aplica todas las características, como IP de instancia, IP elásticas y volúmenes de almacenamiento. Auto Recovery puede realizar la misma función que High Availability para on-premise.
No hay cargos adicionales de EC2 por usar la recuperación automática, pero se aplican los cargos habituales de CloudWatch.
Auto Scaling
Cuando los clientes ejecutan bases de datos en memoria en instancias X1 y X1e, también tienen aplicaciones front-end que se ejecutan en otros tipos de instancias, aplicaciones que pueden escalar exponencialmente con el tiempo.
Auto Scaling elimina el riesgo de la planificación del crecimiento. Puede agregar o quitar dinámicamente instancias en función de su carga de trabajo. Por ejemplo, puede especificar que cuando la utilización de la CPU llega al 80%, se genere una nueva instancia. Adicionalmente, puedes configurar también lo contrario, es decir, si la utilización de la CPU llega a estar por debajo del 40%, una de las instancias se detiene.
No hay ningún cargo adicional por Auto Scaling, aunque también debes tener en cuenta las tarifas de monitoreo de CloudWatch.
Equilibrio de carga elástica
Elastic Load Balancing (ELB) funciona bien con Auto Scaling. Con ELB, puede equilibrar todo el tráfico entrante en varias instancias.
Si estás ejecutando varios servidores front-end que se conectan a tu base de datos en memoria, puedes equilibrar la conectividad a esa carga de trabajo a medida que escala usando Auto Scaling. Ten en cuenta que ELB tiene un coste por el servicio gestionado e incurre en sus propios costos.
Optimización del gasto de EC2 de alta memoria
Está bastante claro que ejecutar bases de datos en memoria puede ser costoso, especialmente a medida que se escala a tamaños más grandes, lo que hace que la optimización de costos sea crítica para la arquitectura de nube de cualquier tamaño.
Hay una serie de pasos clave que cualquiera que ejecute estas instancias debe tomar para evitar gastos innecesarios y aprovechar al máximo su nube, que incluyen:
Aproveche las instancias reservadas: una x1.32xlarge tiene una tarifa efectiva por hora que es 29% -72% más barata (según las opciones) que su tarifa a pedido. Si los ejecuta constantemente como la columna vertebral de sus productos, debe maximizar el uso de RI.
Automatice el apagado de la instancia: si solo necesita la potencia de sus R5 durante el horario comercial, el uso de la automatización para apagarlos automáticamente durante las noches y los fines de semana evita un gran desperdicio.
Cambie el tamaño de sus instancias: asegúrese de tener las instancias del tamaño correcto para su carga de trabajo.
Implemente un modelo operativo de FinOps: FinOps crea una cultura de optimización de costos en toda su organización para que todos los trabajadores involucrados en finanzas, tecnología y el departamento comercial trabajen juntos para construir la nube más eficiente para sus objetivos.
¿Listo para comenzar a optimizar tus costos para cargas de trabajo de alta memoria?
¡Regístrate en nuestro curso Amazon AWS y empieza a optimizar tu entorno Amazon AWS!