Cómo seleccionar el tipo de almacenamiento adecuado para su carga de trabajo
Los servicios de AWS se encuentran en la parte superior de la cadena alimentaria de los servicios en la nube y son un tema candente para casi todas las empresas que están considerando migrar a la nube. A lo largo de cualquier viaje de migración a la nube , muchas trampas ocultas esperan a los que no están preparados. Los volúmenes que ya ha aprovisionado pueden parecer una combinación perfecta, pero ¿está seguro de que se adaptan a su carga de trabajo y ofrecen el mejor precio por el rendimiento entregado? Hoy, haremos que la difícil tarea de elegir una clase de almacenamiento para su carga de trabajo sea un poco menos complicada.
En el mundo de EBS
AWS EBS actualmente proporciona tres categorías de almacenamiento considerable: unidades de disco duro, SSD de uso general, IOPS aprovisionadas y una que probablemente nunca necesitará usar: magnética. Aunque proporcionaré breves descripciones de cada uno, me centraré en los tipos de volumen más utilizados: propósito general.
Almacenamiento GP: la opción común
Este es el almacenamiento básico para casi todos los usuarios de AWS. Le ofrece el mejor rendimiento por su dinero y se usa comúnmente para tareas que no requieren levantar objetos pesados desde la perspectiva de la conducción. El almacenamiento de GP varía de 1 gibibyte (GiB) a 16 tebibytes (TiB), proporcionando de 128 a 1000 mebibytes por segundo (MiB/s) de rendimiento, lo que probablemente se ajuste a su caso de uso, a menos que la carga de trabajo sea significativamente específica.
Hay varios tipos de almacenamiento de GP, cada uno con diferentes precios y características, sobre los que proporcionaré algunos detalles a continuación.
GP2: SSD de generación anterior para las masas
GP2 es la solución típica para volúmenes de arranque de instancias EC2, entornos de desarrollo y bases de datos más ligeras o menos importantes. Esta es una de las opciones más populares que existen, aunque su popularidad proviene de los viejos hábitos en lugar de ser una toma perfecta. El rendimiento del volumen de GP2 escala con su tamaño: cuanto más grandes son, más rápido van. Aún así, estos pueden parecer una buena opción, pero para ser honesto, no son tan perfectos. Y el elefante más grande en la habitación es el término que deberá recordar: «créditos de ráfaga».
Burst Credits: tarea de matemáticas para su trabajo comercial
Al aprovisionar un volumen de GP2, obtiene una subvención única de 5,4 millones de créditos de ráfaga, que puede usar para que gestione mejor la entrada/salida durante los picos de demanda. Más de esos tokens significa que podrá mantener una mayor demanda de rendimiento durante más tiempo, aumentando su almacenamiento hasta 3000 IOPS siempre que tenga suficientes en su bolsillo.
Si bien se agotan cuando utiliza el modo «turbo», se acumulan cuando no utiliza los discos a toda velocidad, lo que permite ahorrar el rendimiento no utilizado para cuando más lo necesite. Grabelos todos, y su rendimiento de IOPS cae al valor base y el rendimiento cae al IOPS base multiplicado por el tamaño máximo de E/S.
El rendimiento del volumen de almacenamiento de GP2 se puede calcular con esta fórmula:
Rendimiento en MiB/s = ((Tamaño del volumen en GiB) × (3 IOPS por GiB) × (Tamaño de E/S en KiB))
Hasta que llegue al punto en el que su volumen sea tan grande que su rendimiento base supere el de ráfaga, tendrá que aprenderlos de memoria. ¿Dónde está este punto? Bastante alto, alrededor de 1,1 TB (1024 GiB), mucho disco, incluso para una empresa mediana, especialmente porque esos volúmenes no se pueden montar en varios destinos.
A menos que esté implementando un monstruo que devora discos, como una instancia de host EC2 para docenas o cientos de contenedores Docker, o si planea ejecutar un enorme nodo de Elasticsearch durante los próximos años sin rutinas de limpieza, está no es probable que necesite tanto espacio. Además, en cualquiera de los dos casos mencionados, probablemente primero se quede sin CPU y RAM; también hay mejores alternativas para estos casos, sin mencionar que la falta de mantenimiento definitivamente no es una buena práctica.
Además, para prácticamente todos los casos de uso (servicio web, aplicaciones web, bases de datos, instancias EC2 ocasionales para usar con Docker y más), prácticamente cualquier cosa es mejor que GP2.
Afortunadamente, en 2014, la introducción de GP3 trajo grandes mejoras.
GP3 – El “recién llegado”
Si bien no es realmente un jugador «nuevo», los volúmenes de GP3 son una mejora bienvenida después de experimentar el funcionamiento interno de GP2. En comparación, funcionan mejor y cuestan menos, lo que le permite escalar fácilmente sus operaciones de acuerdo con sus necesidades mucho más fácilmente. Atrás han quedado los días de los saldos de crédito explosión.
La regla de oro de esta clase de almacenamiento es «mezclar y combinar». El rendimiento de referencia aquí es el máximo rendimiento de ráfaga de un volumen GP2, 3000 IOPS y 125 MiB/s. Si su negocio necesita más, puede comprar cantidades adicionales de cualquiera, pagando extra solo por lo que le interesa.
Los límites son bastante generosos. Puede comprar hasta 500 IOPS por GiB (para volúmenes de al menos 32 GiB, con un límite de 16 000 IOPS), o hasta 0,25 MiB/s por GiB (para volúmenes de al menos 8 GiB, 4000 IOPS o más, con un límite de 1000 MiB /s).
Si anteriormente estaba satisfecho con su volumen de GP2, es casi seguro que su empresa estará igual de contenta con GP3 y ahorrará un porcentaje decente del costo de almacenamiento, incluso hasta ~20%.
Suponiendo que no necesita más de lo que le proporcionó GP2, haga el cambio. Para que sea aún más fácil reducir esos costos, AWS ahora configura automáticamente el IOPS y el rendimiento de su nuevo volumen GP3 exactamente igual que su GP2. Menos adivinanzas, menos travesuras, más cosas buenas. Simplemente haga clic en algunos botones y ahorre algo de dinero, sin condiciones.
Esta es la clase de almacenamiento que recomendaría para cada carga de trabajo «genérica» o «típica». Es un buen punto de partida para casi todos los casos de uso comercial que no esperan grandes cantidades de operaciones de disco, pero que está listo para escalar cuando llegue la temida demanda de energía de disco.
GP3 puede manejar fácilmente la función de volumen de arranque para las instancias EC2. Puede albergar aplicaciones simples y un poco más complejas, bases de datos como MySQL y PostgreSQL, o una combinación de ellas en un entorno en contenedores, especialmente en una configuración de varios nodos o como parte de un clúster de Kubernetes. Zesty Disk para Kubernetes maneja este cambio automáticamente si tiene instalado el controlador CSI
Cuando llegue el momento, puede escalar junto con la demanda. En ciertos casos, incluso podría ser más económico aprovisionar almacenamiento de alta velocidad con GP3 que con los tipos IO1/IO2, que están dedicados a la velocidad y son los siguientes en nuestra lista.
Clase de almacenamiento IO: necesidad de velocidad
La clase de almacenamiento IO se introdujo para satisfacer las necesidades de las empresas en función de una durabilidad extrema, altas velocidades de lectura/escritura y la latencia más baja disponible. Requiere que se cumplan ciertos criterios para mostrar su verdadero potencial y cuesta mucho más. Pero, a su vez, brinda velocidades y confiabilidad inigualables, así como algunas funciones que no encontrará en ningún otro tipo de almacenamiento.
Este tipo de volumen es excelente si busca un volumen para aprovisionar su base de datos basada en disco de alta velocidad, por ejemplo, o para crear un host de base de datos MySQL único para varias instancias de comercio electrónico a gran escala, aunque hay varias opciones disponibles para esto desde RDS a bases de datos de múltiples instancias (por ejemplo, MySQL Galera). También es adecuado si necesita aceptar una gran cantidad de datos rápidamente para procesarlos con un algoritmo ML.
IO1/IO2 vs. IO2 Block Express: ¿qué tipo de «más rápido» necesita?
IO2 Block Express es más o menos IO2 con esteroides extremadamente potentes. Obtiene límites que son cuatro veces más altos para IOPS y rendimiento, latencia de menos de milisegundos y, sorprendentemente, sin cargo adicional. Sí, leíste bien, tienen el mismo precio. Además, el aprovisionamiento de IOPS/rendimiento adicional por encima del límite de una instancia IO2 estándar en realidad cuesta menos.
Si decide utilizar IO2 y cumplir con los requisitos (un cierto tipo de instancia EC2 ), definitivamente debería considerar Block Express, si aún no se está ejecutando de manera predeterminada.
¿Y cuándo ejecutarías IO2 de todos modos? Bueno, con su poder y su alto precio, esta clase está dedicada a las monstruosidades más dependientes del disco, hambrientas de rendimiento y dependientes de IOPS. Por ejemplo, una máquina de procesamiento de datos para una bolsa de valores, un mainframe de ingesta de registros global o un nodo de Kubernetes de varios módulos preparado para cargas de trabajo muy exigentes: los titanes del almacenamiento, sin duda. Es una opción cuando necesita una sola máquina que tenga la mayor potencia posible.
¿Qué tal IO1 entonces? Es un compromiso entre baja latencia, alto IOPS y precio. Una buena opción cuando necesita un poco más que un propósito general, pero aún no es suficiente para optar por el almacenamiento más rápido que existe. Tenga en cuenta que también hay un inconveniente adicional: menos durabilidad. Una tasa de fallas del 0,2% anual no parece mucho, pero si está pensando en docenas o cientos de unidades, cargas de trabajo absolutamente críticas, o ambas, definitivamente hace una gran diferencia.
Entonces, ¿Cuál debo elegir para mis cargas de trabajo?
Elegir la clase de almacenamiento adecuada es una decisión difícil de tomar, pero los beneficios valen la pena. Con solo una oportunidad, puede mejorar el rendimiento de sus instancias y ahorrar costos tan pronto como su próxima factura.
Fuente: DevOps