Almacenamiento de instancias de base de datos de Amazon RDS - Amazon Relational Database Service

Almacenamiento de instancias de base de datos de Amazon RDS

Las instancias de base de datos de Amazon RDS for MySQL, MariaDB, PostgreSQL, Oracle y Microsoft SQL Server usan volúmenes de Amazon Elastic Block Store (Amazon EBS) para el almacenamiento de bases de datos y archivos de registro. En función de la cantidad de almacenamiento solicitado, Amazon RDS utiliza automáticamente varios volúmenes de Amazon EBS para mejorar el desempeño.

Tipos de almacenamiento de Amazon RDS

Amazon RDS tiene tres tipos de almacenamiento: SSD de uso general (denominado también gp2), SSD de IOPS provisionadas (denominado también io1) y magnético (también conocido como estándar). Se diferencian por las características de desempeño y en el precio, lo que quiere decir que puede adaptar el desempeño y el costo del almacenamiento a las necesidades de la carga de trabajo de su base de datos. Puede crear instancias de base de datos RDS de MySQL, MariaDB, Oracle y PostgreSQL con hasta 64 TiB de almacenamiento. Puede crear instancias de base de datos SQL Server RDS con hasta 16 TiB de almacenamiento. Para esta cantidad de almacenamiento, use los tipos de almacenamiento de SSD de IOPS provisionadas y SSD de uso general.

En la lista siguiente se describen brevemente los tres tipos de almacenamiento:

  • SSD de uso general: los volúmenes SSD de uso general ofrecen un almacenamiento rentable que resulta idóneo para una amplia variedad de cargas de trabajo. Estos volúmenes ofrecen latencias de milisegundos de un solo dígito y la posibilidad de ampliar a ráfagas de 3000 IOPS durante periodos largos de tiempo. El desempeño de referencia para estos volúmenes se determina en función del tamaño del volumen.

    Para obtener más información sobre el almacenamiento de SSD de uso general, incluidos los intervalos de tamaño de almacenamiento, consulte Almacenamiento de SSD de uso general.

  • IOPS provisionadas: el almacenamiento de IOPS provisionadas está diseñado para satisfacer las necesidades de las cargas de trabajo con uso intensivo de operaciones de E/S, y en especial de las cargas de trabajo de bases de datos, que requieren una latencia de E/S baja y una velocidad de E/S constante.

    Para obtener más información sobre el almacenamiento de IOPS provisionadas, incluidos los rangos de tamaños de almacenamiento, consulte Almacenamiento de SSD de IOPS provisionadas.

  • Magnético: Amazon RDS también admite el almacenamiento magnético para garantizar la compatibilidad con versiones anteriores. Es recomendable utilizar volúmenes SSD de uso general o de IOPS provisionadas para las nuevas necesidades de almacenamiento. La cantidad máxima de almacenamiento que se permite para instancias de base de datos en el almacenamiento magnético es menor que el de otros tipos de almacenamiento. Para obtener más información, consulte Almacenamiento magnético.

Existen varios factores que pueden afectar al desempeño de los volúmenes de Amazon EBS, como la configuración de la instancia, las características de E/S y la demanda de la carga de trabajo. Para obtener más información acerca de la forma de sacar el máximo partido de los volúmenes de IOPS provisionadas, consulte Rendimiento de los volúmenes de Amazon EBS.

Almacenamiento de SSD de uso general

El almacenamiento de SSD de uso general ofrece un almacenamiento rentable que es aceptable para la mayoría de las cargas de bases de datos. Estos son los intervalos de tamaño de almacenamiento de las instancias de base de datos de SSD de uso general:

  • Instancias de case de datos de MariaDB, MySQL, Oracle y PostgreSQL: 20 GiB–64 TiB

  • SQL Server for Enterprise, Standard, Web y Express: 20 GiB–16 TiB

El rendimiento de E/S de referencia para almacenamiento SSD de uso general es de 3 IOPS para cada GiB, con un mínimo de 100 IOPS. Esta relación implica que los volúmenes más grandes tendrán un mejor rendimiento. Por ejemplo, el rendimiento de referencia para un volumen de 100 GiB es de 300 IOPS. El rendimiento de referencia para un volumen de 1 TiB es de 3000 IOPS. Y, el rendimiento de referencia para un volumen de 5,34 TiB es de 16 000 IOPS.

Los volúmenes inferiores a 1 TiB en tamaño también podrán llegar a 3000 IOPS durante periodos prolongados. Las ráfagas no son relevantes para volúmenes de más de 1 TiB. El saldo de créditos de E/S de la instancia determina el desempeño por ráfagas. Para obtener más información acerca de los créditos de E/S de la instancia, consulte Créditos de E/S y rendimiento por ráfagas.

Muchas cargas de trabajo no consumen nunca el saldo de ráfagas, lo que convierte a SSD de uso general en una opción de almacenamiento ideal para muchas cargas de trabajo. Sin embargo, algunas cargas de trabajo pueden agotar el saldo de créditos de almacenamiento de ráfagas de 3000 IOPS, por lo que debería planificar su capacidad de almacenamiento para dar respuesta a las necesidades de sus cargas de trabajo.

Créditos de E/S y rendimiento por ráfagas

El desempeño del almacenamiento de SSD de uso general está controlado por el tamaño del volumen, que dicta el nivel de desempeño base del volumen y la rapidez con la que acumula créditos de E/S. Los volúmenes más grandes tienen niveles de desempeño de base más altos y acumulan créditos de E/S más deprisa. Los créditos de E/S representan el ancho de banda disponible que el almacenamiento de SSD de uso general puede utilizar para transmitir ráfagas de grandes cantidades de E/S cuando se requiere un nivel de desempeño superior al básico. Cuantos más créditos de E/S tenga el almacenamiento para E/S, más tiempo podrá generar ráfagas por encima del nivel de desempeño básico y mejor podrá responder cuando la carga de trabajo necesite un desempeño superior.

Cuando se usa el almacenamiento de SSD de uso general, la instancia de base de datos recibe un saldo inicial de 5,4 millones de créditos de E/S. Este saldo de créditos inicial es suficiente para mantener un desempeño por ráfagas de 3 000 IOPS durante 30 minutos. Este saldo se ha diseñado para proporcionar un ciclo de arranque inicial rápido para los volúmenes de arranque y ofrecer un buen proceso de arranque para otras aplicaciones. Los volúmenes obtienen créditos de E/S a una velocidad de desempeño de referencia de 3 IOPS por cada GiB del tamaño del volumen. Por ejemplo, un volumen SSD de 100 GiB tiene un desempeño de referencia de 300 IOPS.

Cuando el almacenamiento necesita un nivel de E/S superior al del desempeño de referencia, usa créditos de E/S del saldo de créditos de E/S para generar ráfagas con el nivel de desempeño requerido. Estas ráfagas alcanzan un máximo de 3 000 IOPS. El almacenamiento superior a los 1 000 GiB tiene un desempeño de referencia igual o superior que el desempeño por ráfagas máximo. Cuando el almacenamiento utiliza menos créditos de E/S de los que obtiene en un segundo, los créditos de E/S no utilizados se añaden al saldo de créditos de E/S. El saldo máximo de créditos de E/S para una instancia de base de datos que utiliza almacenamiento de SSD uso general es igual al saldo inicial de créditos de E/S (5,4 millones de créditos de E/S).

Suponga que su almacenamiento usa todo el saldo de créditos de E/S. En tal caso, el desempeño máximo se mantiene en el nivel de desempeño de referencia hasta que la demanda de E/S se reduzca por debajo del nivel de referencia y los créditos de E/S no utilizados se sumen al saldo de créditos de E/S. (El nivel de desempeño de base es la velocidad a la cual el almacenamiento gana créditos de E/S). Cuanto mayor sea el almacenamiento, mayor será el desempeño de base y más rápido repondrá el saldo de créditos de E/S.

nota

Las conversiones de almacenamiento entre el almacenamiento magnético y el de SSD de uso general pueden agotar el saldo de créditos de E/S, lo que puede dar lugar a tiempos de conversión mayores. Para obtener más información acerca del escalado del almacenamiento, consulte Uso de almacenamiento para instancias de base de datos de Amazon RDS.

En la siguiente tabla, se muestran varios tamaños de almacenamiento. Para cada tamaño de almacenamiento, se indica el desempeño de referencia del almacenamiento, que también es la velocidad a la que acumula créditos de E/S. En la tabla, también se muestra la duración de la ráfaga a los 3 000 IOPS máximos cuando se comienza con todo el saldo de créditos de E/S. Asimismo, la tabla incluye el tiempo en segundos que tarda el almacenamiento en rellenar un saldo de créditos de E/S que está a cero.

nota

La cifra de IOPS alcanza el valor máximo en un tamaño de almacenamiento de volumen de 5334 GiB.

Tamaño del almacenamiento (GiB) Rendimiento de referencia (IOPS) Duración de ráfaga máxima a 3 000 IOPS (segundos) Segundos para rellenar un saldo de créditos de E/S vacío
1 100 1,862 54,000
100 300 2000 18 000
250 750 2400 7200
500 1500 3600 3600
750 2250 7200 2400
1000 3,000 Infinita N/A
5334 16 000 N/A N/A

La duración de la ráfaga del almacenamiento depende del tamaño del almacenamiento, las IOPS por ráfagas requeridas y el saldo de créditos de E/S al comenzar la ráfaga. Esta relación se muestra en la siguiente ecuación:

(Credit balance) Burst duration =  -------------------------------------- (Burst IOPS) - 3*(Storage size in GiB)

Es posible que observe que el desempeño del almacenamiento se ve frecuentemente limitado al nivel de referencia a causa de que el saldo de créditos de E/S se agota. En tal caso, considere la posibilidad de asignar más almacenamiento de SSD de uso general con un nivel de rendimiento de referencia mayor. Como alternativa, puede cambiar al almacenamiento de IOPS provisionadas para las cargas de trabajo que requieren un desempeño de IOPS sostenido.

Para las cargas de trabajo con requisitos de E/S de estado estable, aprovisionar menos de 100 GiB de almacenamiento de SSD de uso general podría dar lugar a latencias más altas si se agota el saldo de créditos de E/S.

nota

En general, la mayoría de las cargas de trabajo nunca superan el saldo de créditos de E/S.

Para obtener una descripción más detallada de cómo afectan el rendimiento de referencia y el saldo de créditos de E/S al rendimiento, consulte el artículo de cComparación del rendimiento por ráfagas y de referencia en Amazon RDS y GP2.

Almacenamiento de SSD de IOPS provisionadas

Para una aplicación de producción que requiera un rendimiento de E/S rápido y constante, recomendamos el almacenamiento de IOPS provisionadas (operaciones de entrada/salida por segundo). El almacenamiento de IOPS provisionadas es un tipo de almacenamiento que ofrece un desempeño predecible y una latencia baja en todo momento. El almacenamiento de IOPS provisionadas está optimizado para las cargas de trabajo de procesamiento de transacciones online (OLTP) que tienen requisitos de desempeño uniformes. Las IOPS provisionadas ayudan a ajustar el desempeño de estas cargas de trabajo.

nota

Es posible que la carga de trabajo de base de datos no logre el 100 por cien de las IOPS que ha aprovisionado. Para obtener más información, consulte Factores que afectan al rendimiento del almacenamiento.

Cuando se crea una instancia de base de datos, se especifica la velocidad de IOPS y el tamaño del volumen. La relación entre IOPS y almacenamiento asignado (en GiB) debe ser de al menos 0,5. Amazon RDS proporciona esa tasa de IOPS para la instancia de base de datos hasta que la cambie.

En la siguiente tabla se muestra el intervalo de IOPS provisionadas y de tamaño de almacenamiento para cada motor de base de datos.

Motor de base de datos Rango de IOPS provisionadas Rango de almacenamiento

MariaDB

1000–80 000 IOPS 100 GiB–64 TiB
SQL Server Enterprise, Standard y Web Editions 1000–64000 IOPS* 20 GiB–16 TiB
SQL Server Express Edition 1000–64000 IOPS* 100 GiB–16 TiB
MySQL 1000–80 000 IOPS 100 GiB–64 TiB
Oracle 1000–80 000 IOPS 100 GiB–64 TiB
PostgreSQL 1000–80 000 IOPS 100 GiB–64 TiB

El máximo de IOPS para * de 64 000 se garantiza solo en instancias basadas en Nitro que están en tipos de instancia m5, r5, y z1d. Otras familias de instancias garantizan un rendimiento de hasta 32 000 IOPS. Para obtener más información sobre el rendimiento de IOPS de instancia de base de datos, consulte Instancias optimizadas para Amazon EBS.

Combinación del almacenamiento de IOPS provisionadas con implementaciones Multi-AZ o réplicas de lectura

Para los casos de uso de OLTP de producción, es recomendable usar implementaciones Multi-AZ para mejorar la tolerancia a errores con IOPS provisionadas con el fin de obtener un desempeño rápido y predecible.

También puede usar el almacenamiento de SSD de IOPS provisionadas con réplicas de lectura para MySQL, MariaDB o PostgreSQL. El tipo de almacenamiento de una réplica de lectura es independiente del de la instancia de base de datos principal. Por ejemplo, es posible que use SSD de uso general para réplicas de lectura con una instancia de base de datos principal que utilice el almacenamiento de SSD de IOPS provisionadas para reducir los costos. Sin embargo, en este caso, el rendimiento de sus réplicas de lectura es posible que difiera del de una configuración en la que tanto la instancia de base de datos principal como las réplicas de lectura usen almacenamiento de SSD de IOPS provisionadas.

Costos de almacenamiento de IOPS provisionadas

Con el almacenamiento de IOPS provisionadas, se le cobra por los recursos aprovisionados tanto si los usa como si no en un mes dado.

Para obtener más información acerca de los precios, consulte Precios de Amazon RDS.

Obtención del mejor rendimiento del almacenamiento de SSD de IOPS provisionadas de Amazon RDS

Si su carga de trabajo tiene restricciones de E/S, el uso del almacenamiento de SSD de IOPS provisionadas puede aumentar el número de solicitudes de E/S que el sistema puede procesar de forma simultánea. El aumento de la simultaneidad permite reducir la latencia, ya que las solicitudes de E/S pasan menos tiempo en una cola. Una latencia menor se traduce en confirmaciones más rápidas en la base de datos, lo que mejora el tiempo de respuesta y permite obtener un rendimiento más alto en la base de datos.

El almacenamiento de SSD de IOPS provisionadas proporciona una forma de reservar capacidad de E/S mediante la especificación de IOPS. Sin embargo, al igual que cualquier otro atributo de capacidad del sistema, su rendimiento máximo con carga quedará restringido por el recurso que se agote antes. Ese recurso podría ser el ancho de banda de la red, la CPU, la memoria o los recursos internos de la base de datos.

Almacenamiento magnético

Amazon RDS también admite el almacenamiento magnético para garantizar la compatibilidad con versiones anteriores. Es recomendable utilizar volúmenes SSD de uso general o SSD de IOPS provisionadas para las nuevas necesidades de almacenamiento. A continuación se indican algunas limitaciones del almacenamiento magnético:

  • No permite escalar el almacenamiento cuando se utiliza el motor de base de datos de SQL Server.

  • No admite el escalado automático del almacenamiento.

  • No admite volúmenes elásticos.

  • Está limitado a un tamaño máximo de 3 TiB.

  • Está limitado a un máximo de 1 000 IOPS.

Monitoreo del desempeño de almacenamiento

Amazon RDS proporciona varias métricas que se pueden usar para determinar el desempeño de la instancia de base de datos. Puede ver las métricas en la página de resumen de su instancia en la consola de administración de Amazon RDS. También puede utilizar Amazon CloudWatch para monitorizar estas métricas. Para obtener más información, consulte Visualización de métricas de una instancia de base de datos. La monitorización mejorada proporciona unas métricas de E/S más detalladas. Para obtener más información, consulte Monitorización mejorada.

Las siguientes métricas son útiles para monitorear el almacenamiento de una instancia de base de datos:

  • IOPS: el número de operaciones de E/S que se completan por segundo. Esta métrica se expresa como la media de IOPS para un intervalo de tiempo dado. Amazon RDS indica las IOPS de lectura y escritura por separado en intervalos de 1 minuto. El valor total de IOPS es la suma de las IOPS de lectura y escritura. Los valores típicos de IOPS van de cero a decenas de miles por segundo.

  • Latencia: el tiempo transcurrido entre el envío de una solicitud de E/S y su finalización. Esta métrica se expresa como la latencia media para un intervalo de tiempo dado. Amazon RDS indica la latencia de lectura y escritura por separado en intervalos de 1 minuto y en unidades de segundos. Los valores típicos para la latencia están en milisegundos (ms). Por ejemplo, Amazon RDS expresa 2 ms como 0,002 segundos.

  • Rendimiento: número de bytes por segundo transferidos al disco o desde él. Esta métrica se expresa como el rendimiento medio para un intervalo de tiempo dado. Amazon RDS indica el rendimiento de lectura y escritura por separado en intervalos de 1 minuto y en unidades de megabytes por segundo (MB/s). Los valores típicos del rendimiento van desde cero al ancho de banda máximo del canal de E/S.

  • Profundidad de la cola: el número de solicitudes de E/S de la cola en espera para ser respondidas. Son las solicitudes de E/S que ha enviado la aplicación pero no se han enviado al dispositivo porque este está ocupado respondiendo a otras solicitudes de E/S. El tiempo transcurrido esperando en la cola es un componente del tiempo de latencia y servicio (no disponible como métrica). Esta métrica se expresa como la profundidad media de la cola para un intervalo de tiempo dado. Amazon RDS indica la profundidad de la cola en intervalos de 1 minuto. Los valores típicos de la profundidad de la cola van desde cero a varios cientos.

Los valores de IOPS medidos son independientes del tamaño de la operación de E/S específica. Esto significa que cuando mida el desempeño de E/S, debería examinar el rendimiento de la instancia y no simplemente el número de operaciones de E/S.

Factores que afectan al rendimiento del almacenamiento

Tanto las actividades del sistema como la carga de trabajo de la base de datos pueden afectar al desempeño del almacenamiento.

Actividades del sistema

Las siguientes actividades relacionadas con el sistema consumen capacidad de E/S y podrían reducir el desempeño de la instancia de base de datos mientras se llevan a cabo:

  • Creación de instancias en espera en varias zonas de disponibilidad

  • Creación de réplicas de lectura

  • Cambio de tipo de almacenamiento

Carga de trabajo de base de datos

En algunos casos, el diseño de la base de datos o de la aplicación provoca problemas de simultaneidad, bloqueo u otras formas de contención de la base de datos. En esos casos, es posible que no pueda usar directamente todo el ancho de banda aprovisionado. Además, se puede encontrar con las siguientes situaciones relacionadas con la carga de trabajo:

  • Se ha alcanzado el límite de rendimiento del tipo de instancia subyacente.

  • La profundidad de la cola es sistemáticamente inferior a 1 porque la aplicación no está produciendo suficientes operaciones de E/S.

  • Existe contención de las consultas de la base de datos aunque hay capacidad de E/S sin usar.

Si no hay al menos un recurso del sistema que ha llegado al límite o se acerca a él y al agregar subprocesos no se incrementa la velocidad de las transacciones en la base de datos, el atasco se debe muy probablemente a la contención en la base de datos. Las formas más habituales son la contención de bloqueo de filas y de bloqueo de páginas de índice, pero hay otras muchas posibilidades. Si este es su caso, debe pedir consejo a un experto en ajuste del rendimiento de bases de datos.

DB instance class

Para obtener el máximo desempeño de su instancia de base de datos de Amazon RDS, elija un tipo de instancia de la generación actual con suficiente ancho de banda para permitir el tipo de almacenamiento elegido. Por ejemplo, puede elegir instancias optimizadas para EBS e instancias con una conectividad de red de 10 gigabits.

Para ver la lista completa de tipos de instancias Amazon EC2 que pueden optimizarse para EBS, consulte Tipos de instancias que admiten la optimización para EBS.

Le sugerimos que utilice la última generación de instancias para disfrutar del mejor rendimiento. Las instancias de bases de datos de generaciones anteriores tienen un límite de almacenamiento de la instancia menor. La siguiente tabla muestra el almacenamiento máximo que cada clase de instancia de base de datos puede escalar para cada motor de base de datos. Todos los valores en tebibytes (TiB).

Clase de instancia MariaDB Microsoft SQL Server MySQL Oracle PostgreSQL
db.m5: clases de instancia estándar de nueva generación
db.m5.24xlarge 64 16 64 64 64
db.m5.16xlarge 64 16 64 64 64
db.m5.12xlarge 64 16 64 64 64
db.m5.8xlarge 64 16 64 64 64
db.m5.4xlarge 64 16 64 64 64
db.m5.2xlarge 64 16 64 64 64
db.m5.xlarge 64 16 64 64 64
db.m5.large 64 16 64 64 64
db.m4: clases de instancia estándar de generación actual
db.m4.16xlarge 64 16 64 64 64
db.m4.10xlarge 64 16 64 64 64
db.m4.4xlarge 64 16 64 64 64
db.m4.2xlarge 64 16 64 64 64
db.m4.xlarge 64 16 64 64 64
db.m4.large 64 16 64 64 64
db.m3: clases de instancia estándar de generación anterior
db.m3.2xlarge 6 16 6 6 6
db.m3.xlarge 6 16 6 6 6
db.m3.large 6 16 6 6 6
db.m3.medium 32 16 32 32 32
db.r5: clases de instancia con optimización de memoria de última generación
db.r5.24xlarge 64 16 64 64 64
db.r5.16xlarge 64 16 64 64 64
db.r5.12xlarge 64 16 64 64 64
db.r5.8xlarge 64 16 64 64 64
db.r5.4xlarge 64 16 64 64 64
db.r5.2xlarge 64 16 64 64 64
db.r5.xlarge 64 16 64 64 64
db.r5.large 64 16 64 64 64
db.r4: clases de instancias con optimización de memoria de la generación actual
db.r4.16xlarge 64 16 64 64 64
db.r4.8xlarge 64 16 64 64 64
db.r4.4xlarge 64 16 64 64 64
db.r4.2xlarge 64 16 64 64 64
db.r4.xlarge 64 16 64 64 64
db.r4.large 64 16 64 64 64
db.r3: clases de instancia con optimización de memoria de generación anterior
db.r3.8xlarge 64 16 64 64 64
db.r3.4xlarge 64 16 64 64 64
db.r3.2xlarge 64 16 64 64 64
db.r3.xlarge 64 16 64 64 64
db.r3.large 64 16 64 64 64
db.t3: clases de instancia de rendimiento ampliable de última generación
db.t3.2xlarge 16 16 16 64 64
db.t3.xlarge 16 16 16 64 64
db.t3.large 16 16 16 64 64
db.t3.medium 16 16 16 32 32
db.t3.small 16 16 16 32 16
db.t3.micro 16 16 16 32 16
db.t2: clases de instancia con desempeño por ráfagas de generación actual
db.t2.2xlarge 64 16 64 64 64
db.t2.xlarge 64 16 64 64 64
db.t2.large 64 16 64 64 64
db.t2.medium 32 16 32 32 32
db.t2.small 16 16 16 16 16
db.t2.micro 16 16 16 16 16
db.x1e: clases de instancias con optimización de memoria de última generación
db.x1e.32xlarge 16 64
db.x1e.16xlarge 16 64
db.x1e.8xlarge 16 64
db.x1e.4xlarge 16 64
db.x1e.2xlarge 16 64
db.x1e.xlarge 16 64
db.x1: clases de instancias con optimización de memoria de la generación actual
db.x1.32xlarge 16 64
db.x1.16xlarge 16 64

Para Oracle, el escalado ascendente hasta 80 000 IOPS solo es compatible en las siguientes clases de instancia.

  • db.m5.24xlarge

  • db.r5.24xlarge

  • db.x1.32xlarge

  • db.x1e.32xlarge

Para obtener más información sobre todas las clases de instancias compatibles, consulte Instancias de base de datos de generación anterior.