Blog de Amazon Web Services (AWS)
Eligiendo el volumen Amazon EBS adecuado para su carga de trabajo
Por José Peñúñuri, Arquitecto de Soluciones de AWS
En esta publicación hablaré acerca de como elegir el tipo de volumen Amazon EBS adecuado para su carga de trabajo. A continuación, cubriré a detalle las características de cada uno de los tipos de volúmenes disponibles, los casos de uso más comunes, y explicaré los factores que deben tomarse en cuenta para elegir el tipo de volumen que mejor se ajuste a su caso de uso.
Amazon EBS es un servicio que le permite conectar un volumen de almacenamiento a una instancia Amazon EC2 a través de la red y usarlo igual que un disco duro local. Un volumen Amazon EBS normalmente es la unidad de arranque de su instancia y también puede usarlo para crear un filesystem o escribir datos desde su instancia. El volumen es persistente, y almacena sus datos aún cuando este sea desconectado de la instancia, incluso si esta es eliminada. Existen dos categorías de volúmenes Amazon EBS, estado sólido (SSD) y disco mecánico (HDD), y dentro de estas categorías existen diferentes tipos de volúmenes diseñados para adecuarse a las necesidades de múltiples casos de uso y aplicaciones. Dependiendo del tipo de volumen, usted puede cambiar la capacidad, el throughput y los IOPS del volumen para que coincida con las necesidades de rendimiento de su aplicación.
Con Amazon EBS se pueden cubrir diferentes casos de uso. Usted puede utilizar las opciones de estado sólido para cargas de trabajo transaccionales como Microsoft SQL Server, SAP y MongoDB. También puede utilizar los discos mecánicos para cargas de trabajo de throughput intensivo como ETLs y data warehouse o para guardar datos históricos que no se acceden de manera frecuente. Para cada uno de estos casos de uso, Amazon EBS ofrece un tipo de volumen que entrega el desempeño necesario al precio adecuado, lo cual vuelve a Amazon EBS una opción atractiva desde el punto de vista de costo/beneficio.
Para elegir correctamente el tipo de volumen Amazon EBS, la primera pregunta que debe responder es: ¿cuál es mi caso de uso? La respuesta a esta pregunta lo puede orientar para elegir el tipo de volumen adecuado y la puede complementar con otra pregunta de carácter técnico: ¿Qué es más importante para mi carga de trabajo? ¿Los IOPS o el throughput? Los IOPS miden el número de operaciones de lectura y escritura por segundo, mientras que el throughput mide el número de bits leídos o escritos por segundo, normalmente expresado en MB/s. A continuación, explicaré las características de los volúmenes de Amazon EBS, ya que conocer las características propias de cada tipo de volumen lo ayudará a elegir con mayor certeza el tipo de volumen idóneo para su carga de trabajo.
Tipos de Volúmenes Amazon EBS
Los volúmenes de estado sólido de propósito general, conocidos como gp3, ofrecen un almacenamiento rentable que es ideal para una amplia gama de cargas de trabajo. Estos volúmenes ofrecen una base de desempeño de 3,000 IOPS y un throughput de 125 MB/s, lo cual ya está incluido en el precio. Esto quiere decir que cualquier volumen gp3 que usted aprovisione a sus instancias, por defecto gozará de estas características de rendimiento, lo cual se vuelve muy atractivo ya que muchas cargas de trabajo podrán beneficiarse de esta base de desempeño. Después del umbral de los 3,000 IOPS, con gp3 se pueden aprovisionar más IOPS por un costo adicional, hasta llegar a un máximo de 16,000 IOPS. De igual manera sucede con el throughput, después del umbral de los 125MB/s, este se puede incrementar hasta 1,000 MB/s, por un costo adicional. Para esas cargas de trabajo sensibles a la latencia, gp3 ofrece una latencia de un solo dígito. En cuanto a capacidad, gp3 comienza en 1GB como mínimo y puede alcanzar un tamaño máximo de 16TB. Gp3 ofrece una durabilidad en el rango de 99.8% – 99.9%.
Para el aprovisionamiento de IOPS más allá del umbral de los 3,000 IOPS, se aplica una regla en la cual se tiene que cumplir con una tasa de IOPS:GB de 500:1. Esta regla se puede explicar con el siguiente ejemplo: un volumen de 10 GB puede ser aprovisionado con un máximo de 5,000 IOPS, lo cual tendría un costo mensual de $10.80 USD. Con gp2, la generación anterior de volumen de estado sólido de propósito general, se necesitaría de un volumen de 1,667 GB para aprovisionar 5000 IOPS ya que gp2 asigna IOPS con una tasa IOPS:GB de 3:1. Lo anterior tendría un costo de $166.70 USD al mes. Desde el punto de vista de los IOPS, esto representa una reducción de costo del 94%. A diferencia de gp2, con gp3 ya no tiene que aprovisionar más almacenamiento del necesario para lograr el desempeño esperado.
En el caso del throughput aplica una regla similar. Para volúmenes con un throughput superior a 125 MB/s aplica una tasa de throughput:IOPS de 0.25:1. Por ejemplo, un volumen de 1 TB con 4,000 IOPS puede ser aprovisionado con un throughput máximo de 1,000 MB/s. Lo anterior tendría un costo mensual de $121.74 USD. Con gp2, se necesitaría un volumen de 1.3 TB para alcanzar los 4,000 IOPS, pero solamente se alcanzaría un throughput de 250 MB/s que es el máximo soportado por gp2. Lo anterior tendría un costo mensual de $133.40 USD, lo cual, comparado con gp3, representa una reducción de costo del 9% y un desempeño cuatro veces mayor en throughput. Como podrá constatar, gp3 es la opción más apropiada siempre que se pueda usar, en vez de gp2.
Se recomienda usar gp3 para aplicaciones en general como escritorios virtuales, bases de datos de tamaño mediano, aplicaciones de baja latencia, ambientes de desarrollo y pruebas, y para volúmenes de arranque de instancias Amazon EC2. En resumen, gp3 es un tipo de volumen que ofrece una opción rentable y de alto desempeño, que cubre una amplia gama de cargas de trabajo y que permite aprovisionar IOPS y throughput por separado de la capacidad.
Los volúmenes de estado sólido de IOPS aprovisionados, conocidos como io2, ofrecen una base de desempeño superior que va desde los 100 hasta los 64,000 IOPS, un desempeño 4 veces mayor de lo que puede entregar gp3. El throughput máximo es de 1,000 MB/s y la latencia es de un solo dígito. La capacidad mínima comienza en 4 GB y puede crecer hasta alcanzar un máximo de 16 TB. Io2 soporta Amazon EBS Multi-attach, lo cual permite asociar el mismo volumen a varias instancias que se encuentren dentro de la misma zona de disponibilidad. Io2 ofrece una durabilidad de 5 nueves (99.999%).
Al igual que con los volúmenes gp3, con los volúmenes io2 también aplica una tasa de IOPS:GB de 500:1. Tomando en cuenta esta regla, un volumen io2 de 100 GB puede ser aprovisionado hasta con 50,000 IOPS. Con un volumen io1, el tipo de volumen de IOPS aprovisionados de la generación anterior, tendría que aprovisionar una capacidad de 1,000 GB para poder entregar 50,000 IOPS ya que este tipo de volumen cuenta con una tasa IOPS:GB de 50:1. Siguiendo los ejemplos anteriores, con io2 se podría obtener el rendimiento requerido de 50,000 IOPS, sin la necesidad de tener que incrementar la capacidad del volumen, y con una reducción en costos de 14% aproximadamente.
Las cargas de trabajo de misión crítica son idóneas para io2, tales como bases de datos relacionales y NoSQL intensivas en IOPS, y aplicaciones comerciales de misión crítica que requieren un alto rendimiento sostenido.
El tercer tipo de volumen de IOPS aprovisionados disponible es io2 Block Express. Lanzado en julio de 2021, io2 Block Express ofrece una base de desempeño de 1,000 IOPS/GB y permite alcanzar hasta 256,000 IOPS. Con una latencia en el rango de los submilisegundos, su desempeño es equiparable al de un sistema de almacenamiento SAN tradicional, por lo que se le conoce como SAN en la nube. Io2 Block Express provee un throughput máximo de 4,000 MB/s y este escala de manera proporcional en el orden de 0.256 MB/s por IOPS aprovisionados. La capacidad mínima comienza en 4 GB y puede crecer hasta un máximo de 64 TB. En resumen, io2 Block Express ofrece throughput, IOPS y capacidad cuatro veces mayor que los volúmenes io2. Io2 Block Express es ideal para las cargas de trabajo de misión crítica más grandes y con mayor intensidad de IOPS tales como bases de datos no relacionales (NoSQL) y bases de datos relacionales como Oracle, SAP HANA, Microsoft SQL Server y SAS Analytics.
Dentro de la oferta de Amazon EBS, se encuentra el tipo de volumen st1 para throughput optimizado. Este tipo volumen está basado en discos mecánicos (HDD) y el atributo de rendimiento dominante no son los IOPS, como en los volúmenes SSD, si no los MBs por segundo que pueden leerse y escribirse en el volumen. St1 cuenta con un throughput base de 40 MB/s por TB aprovisionado y puede llegar hasta 500 MB/s. St1 soporta ráfagas de throughput de 250 hasta 500 MB/s y esto lo hace por medio de un esquema de utilización de créditos acumulables. St1 soporta un máximo de 500 IOPs y el tamaño máximo del bloque es de 1,024 KB. Este tipo de volumen posee una capacidad mínima de 125 GB y una máxima de 16 TB. Es importante aclarar que este tipo de volumen NO puede ser utilizado como volumen de arranque de sus instancias. St1 es un volumen ideal para cargas de trabajo secuenciales de alto throughput con operaciones de escritura/lectura de bloques grandes (1 MB). Algunos casos de uso comunes para st1 incluyen cargas de trabajo de análisis de datos como MapReduce y Splunk, data warehouse y procesamiento de logs.
Si un volumen st1 requiere mayor capacidad de throughput de la que ofrece su throughput base, el volumen echará mano de un esquema de créditos que se acumulan durante el tiempo que el volumen se encuentra operando dentro del umbral de desempeño que proporciona su throughput base. Esto puede ser algo muy útil para esos eventos en los que se requiere mayor capacidad de throughput durante un determinado periodo de tiempo, sin tener que asignar mayor capacidad para así aumentar el throughput base y, en consecuencia, gastar más en capacidad que no necesitará todo el tiempo. El esquema de créditos acumulables para ráfagas de throughput funciona de la siguiente manera:
- El throughput base determina la tasa a la que el volumen acumula créditos.
- El tamaño del volumen determina el máximo de créditos que se pueden acumular.
- El throughput máximo de las ráfagas es determinado por el tamaño del volumen, o sea, la tasa a la que se gastan los créditos.
- Una vez que se agotan los créditos, el throughput regresa a su base de desempeño original, y estos comienzan a ser acumulados de nuevo.
Ejemplo: Un volumen de 1 TB acumula créditos a 40 MB/s (su throughput base) y el tope máximo de créditos acumulables lo define el tamaño del volumen (1TB o 1,048,576 MBs). Un volumen de 1 TB puede alcanzar rágafas de hasta 250 MB/s por lo tanto podría mantener este desempeño durante 70 minutos aproximadamente:
- t = 1,048,576 / 250 = 4194.3 segundos
- t = 4194.3 / 60 = 69.9 minutos
- ~70 minutos de ráfaga continua.
Utilizando estos créditos acumulables, usted puede obtener un mayor rendimiento durante esos periodos de tiempo en que se necesita, sin tener que aprovisionar mayor capacidad.
Sc1 es otro tipo de volumen basado en discos mecánicos que se utiliza primordialmente para almacenar datos fríos, o sea, datos que no serán accedidos continuamente. Sc1 ofrece un throughput base de 12 MB/s por TB con un máximo de 192 MB/s. Al igual que st1, sc1 cuenta con un esquema de créditos que le permite mantener ráfagas de 80 a 250 MB/s. Sc1 comienza con una capacidad mínima de 125 GB y máxima de 16 TB y no está soportado como volumen de arranque de sus instancias. Sc1 es ideal para cargas de trabajo de throughput secuencial, como almacenamiento de respaldos. Los casos de uso comunes para sc1 incluyen datos fríos y grandes volúmenes a los que se accede con poca frecuencia, cargas de trabajo de acceso secuencial y cargas de trabajo sensibles a los costos (sc1 es el tipo de volumen Amazon EBS de menor costo: $0.015 USD por GB/mes).
El esquema de créditos acumulables funciona igual que con st1. Ejemplo: un volumen de 1 TB acumula créditos a 12 MB/s (su throughput base) y el máximo de créditos acumulables lo define el tamaño del volumen (1 TB ó 1,048,576 MBs). Un volumen de 1 TB puede alcanzar ráfagas de hasta 80 MB/s por lo tanto podría mantener este desempeño durante ~218 minutos aproximadamente.
- t = 1,048,576 / 80 = 13,107.2 segundos
- t= 13,107.2 / 60 = 218.5
- ~218 minutos de ráfaga continua.
Por último, también está disponible el tipo de volumen magnético, conocido como standard. Este es el primer tipo de volumen que fue lanzado en AWS. El tipo de volumen standard ofrece un throughput que va de los 40 a 90 MB/s y IOPS que van de 40 a 200. Tiene una capacidad que comienza en 1 GB y crece hasta un 1 TB. A diferencia de st1 y sc1, este tipo de volumen si pude ser utilizado como volumen de arranque de instancias Amazon EC2. Este tipo de volumen ofrece un rendimiento limitado y se recomienda para casos de uso en los cuales los datos serán accedidos de manera poco frecuente y no se requiere de un alto desempeño.
¿Cómo se calculan las operaciones de escritura/lectura?
Utilizaré un par de ejemplos para explicar como se calculan los IOs (operaciones de escritura y lectura) en volúmenes SSD. En el primer ejemplo se tienen 4 IOs de 64 KBs que se ejecutan de manera aleatoria. Al ser operaciones que suceden de manera aleatoria, cada IO se escribe o se lee en bloques de disco diferentes, por lo cual estas operaciones se contarán como 4 IOs en total.
En el segundo ejemplo se tienen de nuevo cuatro IOs de 64 KBs, pero esta vez las operaciones se ejecutan de manera secuencial. Como el tamaño de bloque máximo en estos discos es de 256 KBs, al darse estas operaciones de manera secuencial, estas se ejecutan en el mismo bloque de disco, por lo tanto, se contarán como un solo IO (una sola operación de escritura/lectura) ya que la suma del tamaño de las cuatro operaciones no excede el tamaño máximo del bloque en el disco.
En un tercer ejemplo se tiene un IO grande de 1,024 KBs. El tamaño de esta operación excede el tamaño máximo del bloque de los volúmenes de estado sólido, por lo tanto, esta operación se contará como 4 IOs ya que se ejecutará en cuatro bloques diferentes.
A continuación, describiré otros ejemplos para explicar como se calculan los IOs en los volúmenes de tipo HDD. En el primer ejemplo se tienen 4 IOs de 64 KB que se ejecutan de manera secuencial. Tomando en cuenta que el tamaño del bloque en HDD es de 1,024 KB y el hecho de que las operaciones se dieron en orden secuencial, estas se tomarán en cuenta como un solo IO. El segundo ejemplo es el de un escenario mixto en donde se presenta la siguiente situación:
- 2 IOs secuenciales de 512 KB
- 2 IOs aleatorios de 64 KB.
- 2 IOs secuenciales de 128 KB.
En este ejemplo los IOS se contarían de la siguiente forma:
- Los primeros IOS de 512 KB, al ocurrir en orden secuencial y tomando en cuenta que el tamaño de bloque de disco es de 1,024KB, se cuentan como un solo IO.
- Los 2 IOs de 64 KB, al ser aleatorios, se escriben en bloques diferentes, y por lo tanto se cuentan como 2s IOs.
- Los 2 IOs de 128 KB, al ocurrir de manera secuencial y tomando en cuenta que el tamaño de bloque de disco es de 1,024 KB, se cuentan como un solo IO, mismo caso que con los IOs de 512 KB.
- En total, estas operaciones suman 4 IOs.
Al considerar estos ejemplos, usted podrá darse cuenta de la importancia de conocer el tamaño de las operaciones de escritura y lectura, ya que esto influye directamente en el rendimiento de los volúmenes.
Conociendo el requerimiento de IOPS
En esta publicación he descrito como es que los IOPS influyen al momento de elegir el tipo de volumen Amazon EBS adecuado para su carga de trabajo. Pero… ¿Cómo se puede conocer el requerimiento de IOPS?, ¿cómo se pueden medir los IOPS que consumen las aplicaciones que viven en el centro de datos y que próximamente se migrarán a la nube? Para responder a estas preguntas se puede utilizar AWS Application Discovery Service, un servicio que lo ayudará a planificar sus proyectos de migración de aplicaciones de manera rápida y confiable. AWS Application Discovery Service recopila información de sus servidores y aplicaciones en sitio utilizando un agente que se instala en el servidor o utilizando un dispositivo virtual para hacer un descubrimiento de servidores virtuales sin tener que instalar agentes en el sistema operativo. AWS Application Discovery Service lo ayudará a obtener un inventario de servidores y sus características, tales como sistema operativo y los recursos de cómputo y almacenamiento que tienen asignados, y también le entregará información de desempeño y recomendaciones del tipo de instancia a utilizar con base en patrones de utilización de dichos recursos. Esta información lo ayudará a hacer un dimensionamiento adecuado de las cargas de trabajo que migrará a la nube. Dentro de los datos recopilados por AWS Application Discovery Service encontrará información relacionada con el almacenamiento, tales como la capacidad aprovisionada y los IOPS promedio y máximos que se consumen. Con los resultados entregados por esta herramienta usted puede tomar una decisión basada en datos reales respecto al tipo de volumen Amazon EBS que deberá utilizar. AWS Application Discovery Services es una herramienta disponible sin costo.
Escenarios y recomendaciones
Un escenario típico es el de un proyecto de migración a la nube en el cual se deben migrar las aplicaciones que residen en el centro de datos considerando una estrategia de lift-and-shift (rehost), una de las estrategias de migración más comunes, y en la cual se migra el servidor que contiene la aplicación y los datos tal cual como se encuentran en sitio. En este escenario también se considera que los datos de las aplicaciones se encuentran alojados en un almacenamiento SAN o en el almacenamiento local del servidor. Una de las preguntas que habría que responder sería cuál es la latencia requerida y el requerimiento de IOPS. Si la latencia requerida es de un solo dígito y los IOPS no rebasan el umbral de los 16,000, la recomendación sería utilizar gp3. De lo contrario, si los IOPS rebasan el umbral de 16,000 la recomendación sería utilizar io2. Por otro lado, si la carga de trabajo es altamente transaccional y el requerimiento en IOPS supera los 64,000 y/o se requiere una latencia en el rango de los submilisegundos, la opción disponible sería io2 Block Express.
Herramientas de migración como CloudEndure y Application Migration Service permiten hacer pruebas de sus servidores en la nube previo al corte final (cutover). Para estas pruebas se recomienda utilizar gp3 para los volúmenes de arranque o, incluso, el tipo de volumen standard si las pruebas no requieren de un alto de desempeño. Procure también usar volúmenes st1/sc1 cuando sea posible. Evite usar io1/io2 durante sus pruebas de migración a menos que sea estrictamente necesario, ya que esto puede incrementar su factura.
En ambientes de desarrollo y pruebas se recomienda usar gp3 y aprovechar su base de desempeño predeterminada, y solamente aprovisionar IOPS adicionales en caso de ser necesario. Los ambientes productivos probablemente requieran IOPS adicionales u otro tipo de volumen como io2.
Para nuevas cargas de trabajo de las cuales se desconocen los IOPS requeridos, se recomienda desplegar los volúmenes utilizando gp3. Recuerde que gp3 ofrece una base de desempeño de 3,000 IOPS, lo cual beneficiará a muchas de sus cargas de trabajo. Escale a partir de este volumen y evite cargos innecesarios. Procure utilizar herramientas para medir el requerimiento de IOPS de sus cargas de trabajo como AWS Application Discovery Service o alguna de las herramientas de terceros disponibles en el mercado.
Con Amazon EBS usted puede implementar configuraciones RAID a nivel de software, siempre que el sistema operativo de la instancia lo permita, siendo RAID 0 la configuración recomendada para instancias Amazon EC2. Un arreglo RAID 0 le permite alcanzar un mayor nivel de desempeño que el que puede alcanzar aprovisionando un solo volumen, ya que los IOPS, throughput y capacidad de los volúmenes que conforman el arreglo se suman entre si. Tome en consideración que la pérdida de un solo volumen en el conjunto resultará en la pérdida completa de los datos contenidos en el arreglo. El utilizar este mecanismo puede ser una medida de ahorro de costos siempre y cuando el riesgo de pérdida de datos no represente un problema. Si usted está interesado en explorar esta opción, puede consultar la documentación disponible para Windows y Linux.
Los niveles máximos de IOPS en volúmenes io1/io2 únicamente están garantizados en instancias que corren sobre el Sistema AWS Nitro. Otros tipos de instancias sólo garantizan hasta 32,000 IOPS y 500 MB/s de throughput. Consulte los tipos de instancias construidas sobre el Sistema AWS Nitro para asegurar el máximo desempeño de sus volúmenes. En el caso de los volúmenes io2 Block Express, estos solo son compatibles con instancias de la familia R5b.
Si usted ya cuenta con cargas de trabajo en AWS, se recomienda cambiar los volúmenes gp2 existentes por gp3 y de esta manera obtener una base de rendimiento mejorada y reducir sus costos. Este cambio le ayudará a reducir sus costos en un 20% dado que gp3 tiene un costo de $0.08 USD por GB/mes comparado con $0.10 USD por GB/mes de gp2. Como los volúmenes son elásticos, no es necesario desconectarlos o reiniciar su instancia para ejecutar el cambio del tipo de volumen. Los ahorros pueden ser mayores si adicionalmente se hace un redimensionamiento de los volúmenes que fueron aprovisionados con mayor capacidad de la necesaria para poder obtener el rendimiento adecuado.
El servicio de AWS Compute Optimizer está disponible sin costo para quien busque optimizar costos. AWS Compute Optimizer emite recomendaciones óptimas para sus cargas de trabajo con el fin de reducir costos y mejorar el rendimiento mediante el análisis de métricas de utilización histórica utilizando herramientas de Machine Learning. AWS Compute Optimizer, además de ofrecer recomendaciones de tipos de instancias Amazon EC2, ahora también emite recomendaciones de volúmenes Amazon EBS. Con AWS Compute Optimizer usted podrá optimizar la configuración de IOPS aprovisionados para io1 y io2. La herramienta emitirá recomendaciones para optimizar el tamaño de volúmenes gp2 para cumplir con el desempeño necesario y también hará recomendaciones para ajustar los IOPS y throughput necesarios en volúmenes gp3. Con AWS Compute Optimizer usted podrá eliminar las tareas optimización manuales.
Resumen
Amazon EBS le permitirá ahorrar al utilizar el tipo de volumen adecuado para su carga de trabajo, garantizando siempre el desempeño requerido. Dependiendo del tipo de volumen, usted gozará de la flexibilidad de poder crecer capacidad, IOPS y throughput por separado de manera elástica. Para más información, puede consultar la documentación disponible.
Sobre el autor
José Peñúñuri es Arquitecto de Soluciones de AWS.
Sobre los revisores
Samuel Sousa es Arquitecto de Soluciones especializado en Storage de AWS.
Efraín Castilla es Arquitecto de Soluciones de AWS.
Thiago Hickmann es Arquitecto de Soluciones de AWS.
Conozca más contenidos sobre Storage en la página de sesiones bajo demanda.Acceda > |