Administración automática de la capacidad con el escalado automático de almacenamiento de Amazon RDS - Amazon Relational Database Service

Administración automática de la capacidad con el escalado automático de almacenamiento de Amazon RDS

Si su carga de trabajo es impredecible, puede habilitar el escalado automático de almacenamiento para una instancia de base de datos de Amazon RDS. Para ello, puede usar la consola de Amazon RDS, la API de Amazon RDS o la AWS CLI.

Por ejemplo, puede usar esta característica para una nueva aplicación de juegos para dispositivos móviles que los usuarios están adoptando rápidamente. En este caso, una carga de trabajo de aumento rápido podría superar el almacenamiento de base de datos disponible. Para evitar tener que ampliar manualmente el almacenamiento de la base de datos, puede usar el escalado automático de almacenamiento de Amazon RDS.

Con la opción de escalado automático de almacenamiento habilitada, si Amazon RDS detecta que se está quedando sin espacio en la base de datos, aumenta automáticamente el almacenamiento. Amazon RDS inicia una modificación en el almacenamiento para una instancia de base de datos habilitada con la opción de escalado automático cuando se aplican los siguientes factores:

  • El espacio libre disponible es inferior o igual al 10 por ciento del almacenamiento asignado.

  • La condición de almacenamiento bajo dura al menos cinco minutos.

  • Han pasado al menos seis horas desde la última modificación del almacenamiento o se ha completado la optimización del almacenamiento en la instancia, lo que tarde más tiempo.

El almacenamiento adicional se produce en incrementos de lo que sea superior a continuación:

  • 10 GiB

  • 10 % del almacenamiento asignado actualmente.

  • El crecimiento previsto del almacenamiento superará el tamaño de almacenamiento asignado actualmente en las próximas 7 horas en función de las métricas FreeStorageSpace de la última hora. Para obtener más información sobre métricas, consulte Monitoreo con Amazon CloudWatch.

El umbral máximo de almacenamiento es el límite que se establece para el escalado automático de la instancia de base de datos. Se dan las siguientes restricciones:

  • Debe establecer el umbral máximo de almacenamiento en al menos un 10 % más que el almacenamiento asignado actual. Recomendamos configurarlo en al menos un 26 % más para evitar recibir una notificación de evento para indicar que el tamaño de almacenamiento se acerca al umbral de almacenamiento máximo.

    Por ejemplo, si tiene una instancia de base de datos con 1000 GiB de almacenamiento asignado, establezca el umbral máximo de almacenamiento en al menos 1100 GiB. Si no, aparecerá un error indicando que el tamaño máximo de almacenamiento no es válido para nombre_motor. Sin embargo, recomendamos establecer el umbral máximo de almacenamiento en al menos 1260 GiB para evitar la notificación de evento.

  • Para una instancia de base de datos que utiliza almacenamiento de IOPS aprovisionadas (io1 o io2 Block Express), la relación entre IOPS y umbral máximo de almacenamiento (en GiB) debe estar dentro de un rango determinado. Para obtener más información, consulte Almacenamiento de SSD de IOPS aprovisionadas.

  • No puede establecer el umbral de almacenamiento máximo en las instancias habilitadas con la opción de escalado automático en un valor superior al almacenamiento máximo asignado para el motor de base de datos y la clase de instancia de base de datos.

    Por ejemplo, SQL Server Standard Edition en db.m5.xlarge tiene un almacenamiento asignado predeterminado para la instancia de 20 GiB (el mínimo) y un almacenamiento asignado máximo de 16 384 GiB. El umbral de almacenamiento máximo predeterminado para el escalado automático es de 1000 GiB. Si utiliza esta opción como predeterminada, la instancia no escala de forma automática por encima de los 1000 GiB. Es cierto aunque el almacenamiento máximo asignado para la instancia es 16 384 GiB.

nota

Le recomendamos que elija cuidadosamente el umbral máximo de almacenamiento en función de los patrones de uso y las necesidades del cliente. Si hay aberraciones en los patrones de uso, el umbral de almacenamiento máximo puede evitar que el almacenamiento escale a un valor inesperadamente alto cuando el escalado automático predice un umbral muy alto. Después de que una instancia de base de datos se ha escalado automáticamente, su almacenamiento asignado no se puede reducir.

Limitaciones del escalado automático de almacenamiento

Se aplican las siguientes limitaciones al escalado automático del almacenamiento:

  • No se produce el escalado automático si se supera el umbral de almacenamiento máximo debido al incremento del almacenamiento.

  • Al escalar automáticamente, RDS predice el tamaño del almacenamiento de información para las operaciones de escalado automático posteriores. Si se prevé que una operación posterior supere el umbral máximo de almacenamiento, RDS se escalará automáticamente al umbral máximo de almacenamiento.

  • El escalado automático no puede evitar completamente situaciones de almacenamiento completo para cargas de datos de gran tamaño. Esto se debe a que no es posible hacer modificaciones de almacenamiento adicionales durante seis (6) horas o hasta que se haya completado la optimización de almacenamiento en la instancia, lo que tarde más tiempo.

    Si realiza una carga de datos grande y el escalado automático no proporciona suficiente espacio, la base de datos puede permanecer en el estado de almacenamiento completo durante varias horas. Esto puede dañar la base de datos.

  • Si inicia una operación de escalado de almacenamiento al mismo tiempo que Amazon RDS inicia una operación de escalado automático, la modificación realizada en su almacenamiento tendrá prioridad. Por tanto, se cancela la operación de escalado automático.

  • El ajuste de escala automático no puede reducir el almacenamiento asignado. No puede reducir la cantidad de almacenamiento de una instancia de base de datos una vez que se ha asignado el almacenamiento.

  • El escalado automático no se puede usar con almacenamiento magnético.

  • El escalado automático no se puede usar con las siguientes clases de instancia de generación anterior que tienen menos de 6 TiB de almacenamiento ordenable: db.m3.large, db.m3.xlarge y db.m3.2xlarge.

  • Las operaciones de escalado automático no están registradas por AWS CloudTrail. Para obtener más información acerca de CloudTrail, consulte Supervisión de llamadas a la API de Amazon RDS en AWS CloudTrail.

Aunque el escalado automático le ayuda a aumentar dinámicamente el almacenamiento en su instancia de base de datos de Amazon RDS, debe configurar el almacenamiento inicial de la instancia de base de datos con un tamaño adecuado para una carga de trabajo típica.

Habilitación del escalado automático de almacenamiento para una nueva instancia de base de datos

Cuando cree una nueva instancia de base de datos de Amazon RDS, podrá elegir si habilitar el escalado automático de almacenamiento. También puede establecer un límite superior en el almacenamiento que Amazon RDS puede asignar en la instancia de base de datos.

nota

Cuando clona una instancia de base de datos de Amazon RDS que tiene habilitada el escalado automático de almacenamiento, la instancia clonada no hereda automáticamente esa configuración. La nueva instancia de la base de datos tiene la misma cantidad de almacenamiento asignado que la instancia original. Puede volver a activar el escalado automático de almacenamiento para la nueva instancia si la instancia clonada sigue aumentando sus requisitos de almacenamiento.

Para habilitar el escalado automático de almacenamiento para una nueva instancia de base de datos, realice el siguiente procedimiento:
  1. Inicie sesión en la AWS Management Console y abra la consola de Amazon RDS en https://console.aws.amazon.com/rds/.

  2. En la esquina superior derecha de la consola de Amazon RDS, elija la región de AWS en la que desea crear la instancia de base de datos.

  3. En el panel de navegación, seleccione Databases (Bases de datos).

  4. Elija Create database (Crear base de datos). En la página Select engine (Seleccionar motor), elija el motor de base de datos y especifique la información de la instancia de base de datos como se describe en Introducción a Amazon RDS.

  5. En la sección Storage Autoscaling (Escalado automático de almacenamiento), establezca el valor Maximum storage threshold (Umbral de almacenamiento máximo) de la instancia de base de datos.

  6. Especifique el resto de información de su instancia de base de datos como se describe en Introducción a Amazon RDS.

Para habilitar el escalado automático de almacenamiento para una nueva instancia de base de datos, utilice el comando de la AWS CLI create-db-instance. Establezca el siguiente parámetro:

  • --max-allocated-storage: activa el escalado automático de almacenamiento y establece el límite superior de tamaño de almacenamiento en gibibytes.

Para comprobar que el escalado automático de almacenamiento de Amazon RDS está disponible para su instancia de base de datos, utilice el comando de la AWS CLI describe-valid-db-instance-modifications. Para realizar la comprobación según la clase de instancia antes de crear una instancia, utilice el comando describe-orderable-db-instance-options. Compruebe el siguiente campo en el valor de retorno:

  • SupportsStorageAutoscaling: indica si la instancia de base de datos o la clase de instancia admiten el escalado automático de almacenamiento.

Para obtener más información acerca del almacenamiento, consulte Almacenamiento de instancias de base de datos de Amazon RDS.

Para habilitar el escalado automático de almacenamiento de una nueva instancia de base de datos, utilice la operación de la API de Amazon RDS CreateDBInstance. Establezca el siguiente parámetro:

  • MaxAllocatedStorage: activa el escalado automático de almacenamiento de Amazon RDS y establece el límite superior de tamaño de almacenamiento en gibibytes.

Para comprobar que el escalado automático de almacenamiento de Amazon RDS está disponible para su instancia de base de datos, use la operación DescribeValidDbInstanceModifications de la API de Amazon RDS para una instancia existente o la operación DescribeOrderableDBInstanceOptions antes de crear una instancia. Compruebe el siguiente campo en el valor de retorno:

  • SupportsStorageAutoscaling: indica si la instancia de base de datos admite el escalado automático de almacenamiento.

Para obtener más información acerca del almacenamiento, consulte Almacenamiento de instancias de base de datos de Amazon RDS.

Cambio de la configuración de escalado automático de almacenamiento para una instancia de base de datos

Puede activar el escalado automático de almacenamiento para una instancia de base de datos de Amazon RDS. También puede cambiar el límite superior en el almacenamiento que Amazon RDS puede asignar en la instancia de base de datos.

Para cambiar la configuración de escalado automático de almacenamiento para una instancia de base de datos, realice el siguiente procedimiento:
  1. Inicie sesión en la AWS Management Console y abra la consola de Amazon RDS en https://console.aws.amazon.com/rds/.

  2. En el panel de navegación, seleccione Databases (Bases de datos).

  3. Seleccione la instancia de base de datos que desea modificar y elija Modify (Modificar). Aparece la página Modify DB instance.

  4. Cambie el límite de almacenamiento en la sección Autoscaling (Escalado automático). Para obtener más información, consulte Modificación de una instancia de base de datos de Amazon RDS.

  5. Cuando haya realizado todos los cambios que desee, elija Continue (Continuar) y compruebe sus modificaciones.

  6. En la página de confirmación, revise los cambios. Si son correctos, elija Modificar la instancia de base de datos para guardarlos. Si no son correctos, elija Back (Atrás) para editar los cambios o Cancel (Cancelar) para cancelarlos.

    El cambio del límite de escalado automático se produce de forma inmediata. Esta opción no tiene en cuenta la opción Apply immediately.

Para cambiar la configuración de escalado automático de almacenamiento para una instancia de base de datos, utilice el comando de la AWS CLI modify-db-instance. Establezca el siguiente parámetro:

  • --max-allocated-storage: establece el límite superior del tamaño de almacenamiento en gibibytes. Si el valor es superior al parámetro --allocated-storage, se activa el escalado automático de almacenamiento. Si el valor es el mismo que el parámetro --allocated-storage, el escalado automático de almacenamiento se desactiva.

Para comprobar que el escalado automático de almacenamiento de Amazon RDS está disponible para su instancia de base de datos, utilice el comando de la AWS CLI describe-valid-db-instance-modifications. Para realizar la comprobación según la clase de instancia antes de crear una instancia, utilice el comando describe-orderable-db-instance-options. Compruebe el siguiente campo en el valor de retorno:

  • SupportsStorageAutoscaling: indica si la instancia de base de datos admite el escalado automático de almacenamiento.

Para obtener más información acerca del almacenamiento, consulte Almacenamiento de instancias de base de datos de Amazon RDS.

Para cambiar la configuración de escalado automático de almacenamiento de una instancia de base de datos, utilice la operación de la API de Amazon RDS ModifyDBInstance. Establezca el siguiente parámetro:

  • MaxAllocatedStorage: establece el límite superior del tamaño de almacenamiento en gibibytes.

Para comprobar que el escalado automático de almacenamiento de Amazon RDS está disponible para su instancia de base de datos, use la operación DescribeValidDbInstanceModifications de la API de Amazon RDS para una instancia existente o la operación DescribeOrderableDBInstanceOptions antes de crear una instancia. Compruebe el siguiente campo en el valor de retorno:

  • SupportsStorageAutoscaling: indica si la instancia de base de datos admite el escalado automático de almacenamiento.

Para obtener más información acerca del almacenamiento, consulte Almacenamiento de instancias de base de datos de Amazon RDS.

Reducción vertical u horizontal de forma manual de la instancia de base de datos

Amazon RDS ofrece escalado automático del almacenamiento para satisfacer la creciente demanda. Sin embargo, existen limitaciones en cuanto a la reducción vertical u horizontal:

  • Almacenamiento de RDS: aunque RDS admite el escalado vertical automático del almacenamiento a medida que aumenta la demanda, no se reduce verticalmente de forma automática.

  • Réplicas de lectura: RDS no admite escalar horizontalmente (agregar) o reducir horizontalmente (eliminar) réplicas de lectura de forma automática. Debe agregar o eliminar manualmente las réplicas de lectura según los requisitos de carga.

Para reducir verticalmente los recursos de RDS, lleve a cabo las siguientes acciones manuales:

  • Para el almacenamiento, no puede reducir manualmente el almacenamiento asignado de una instancia de base de datos mediante el comando modify-db-instance. En su lugar, elija una de las siguientes técnicas:

    • Utilice una implementación azul/verde si el motor de base de datos lo admite. Cree una base de datos verde con un tamaño de almacenamiento menor y, a continuación, ascienda la base de datos verde a base de datos azul. Para obtener más información, consulte Modificación de la configuración de almacenamiento y rendimiento.

    • Cree una nueva instancia de base de datos con menos almacenamiento asignado, migre manualmente los datos de la base de datos actual a la instancia de base de datos recién creada y cambie los puntos de conexión de base de datos.

  • En el caso de las réplicas de lectura, elimine manualmente las réplicas no utilizadas a través de la consola de RDS o AWS CLI.

Apagado del escalado automático de almacenamiento para una instancia de base de datos

Si ya no necesita que Amazon RDS aumente automáticamente el almacenamiento de una instancia de base de datos de Amazon RDS, puede desactivar el escalado automático de almacenamiento. Una vez que realice esa operación, podrá seguir aumentando manualmente la cantidad de almacenamiento para su instancia de base de datos.

Para apagar el escalado automático de almacenamiento para una instancia de base de datos, realice el siguiente procedimiento:
  1. Inicie sesión en la AWS Management Console y abra la consola de Amazon RDS en https://console.aws.amazon.com/rds/.

  2. En el panel de navegación, seleccione Databases (Bases de datos).

  3. Seleccione la instancia de base de datos que desea modificar y elija Modify (Modificar). Aparece la página Modify DB instance.

  4. Elimine la marca de la casilla de verificación Enable storage autoscaling (Habilitar escalado automático de almacenamiento) de la sección Storage autoscaling (Escalado automático de almacenamiento). Para obtener más información, consulte Modificación de una instancia de base de datos de Amazon RDS.

  5. Cuando haya realizado todos los cambios que desee, elija Continue (Continuar) y compruebe las modificaciones.

  6. En la página de confirmación, revise los cambios. Si son correctos, elija Modificar la instancia de base de datos para guardarlos. Si no son correctos, elija Back (Atrás) para editar los cambios o Cancel (Cancelar) para cancelarlos.

El cambio del límite de escalado automático se produce de forma inmediata. Esta opción no tiene en cuenta la opción Apply immediately.

Para apagar el escalado automático de almacenamiento para una instancia de base de datos, utilice el comando de la AWS CLI modify-db-instance y el siguiente parámetro:

  • --max-allocated-storage: especifique un valor igual al ajuste --allocated-storage para evitar un escalado automático de almacenamiento de Amazon RDS posterior para la instancia de base de datos especificada.

Para obtener más información acerca del almacenamiento, consulte Almacenamiento de instancias de base de datos de Amazon RDS.

Para desactivar el escalado automático de almacenamiento de una instancia de base de datos, utilice la operación de la API de Amazon RDS ModifyDBInstance. Establezca el siguiente parámetro:

  • MaxAllocatedStorage: especifique un valor igual al ajuste AllocatedStorage para evitar un escalado automático de almacenamiento de Amazon RDS posterior para la instancia de base de datos especificada.

Para obtener más información acerca del almacenamiento, consulte Almacenamiento de instancias de base de datos de Amazon RDS.