Administración automática de la capacidad de rendimiento con la función Auto Scaling de DynamoDB - Amazon DynamoDB

Administración automática de la capacidad de rendimiento con la función Auto Scaling de DynamoDB

Muchas cargas de trabajo de base de datos son cíclicas o difíciles de predecir con antelación. Por ejemplo, tomemos una aplicación de redes sociales en la que la mayoría de los usuarios están activos en el horario diurno. La base de datos debe satisfacer los requisitos de la actividad diurna, pero no se requieren los mismos niveles de desempeño por la noche. Otro ejemplo podría ser una nueva aplicación de juegos para móviles cuya adopción está siendo muy rápida. Si el juego adquiere demasiada popularidad, podría superar los recursos disponibles en la base de datos, lo que daría lugar a un desempeño lento y a clientes descontentos. Estos tipos de cargas de trabajo suelen requerir intervención manual para escalar los recursos de la base de datos en sentido ascendente o descendente en respuesta a las variaciones en los niveles de uso.

El escalado automático de Amazon DynamoDB usa el servicio Auto Scaling de aplicaciones de AWS para ajustar de manera dinámica y automática la capacidad de rendimiento aprovisionada en respuesta a los patrones de tráfico reales. Esto permite a una tabla o índice secundario global incrementar su capacidad de lectura y escritura aprovisionada para abastecer incrementos repentinos del tráfico sin limitaciones controladas. Cuando la carga de trabajo disminuye, el Auto Scaling de aplicaciones puede reducir el rendimiento para evitar que tenga que pagar por una capacidad aprovisionada que no se utiliza.

nota

Si usa la AWS Management Console para crear una tabla o un índice secundario global, la función Auto Scaling de DynamoDB se habilita de forma predeterminada. Puede modificar los ajustes de Auto Scaling en cualquier momento. Para obtener más información, consulte Uso de la AWS Management Console con la función Auto Scaling de DynamoDB .

Cuando elimina una tabla o una réplica de tabla global, los destinos escalables, las políticas de escalado o las alarmas de CloudWatch asociadas no se eliminan automáticamente con ella.

Con Auto Scaling de aplicaciones, puede crear una política de escalado para una tabla o un índice secundario global. La política de escalado especifica si desea escalar la capacidad de lectura o de escritura (o ambas), así como los ajustes de unidades de capacidad provisionada mínimas y máximas para la tabla o el índice.

La política de escalado contiene además un valor de objetivo de utilización, es decir, el porcentaje de rendimiento aprovisionado consumido en un momento dado. Auto Scaling de aplicaciones utiliza un algoritmo de seguimiento de destino para ajustar el rendimiento aprovisionado de la tabla (o el índice) al alza o a la baja en respuesta a las cargas de trabajo reales, de tal forma que la utilización de la capacidad real se mantenga en valores iguales o parecidos al objetivo de utilización.

Puede establecer los valores de objetivo de utilización de escalado automático entre un 20 y un 90 por ciento de la capacidad de lectura y escritura.

nota

Además de con las tablas, el escalado automático de DynamoDB es compatible con los índices secundarios globales. Cada índice secundario global tiene su propia capacidad de rendimiento aprovisionada que es independiente de la de su tabla base. Al crear una política de escalado para un índice secundario global, Auto Scaling de aplicaciones ajusta los ajustes de rendimiento aprovisionado del índice para asegurarse de que el uso real se mantenga en valores iguales o parecidos al porcentaje de utilización deseado.

Funcionamiento de la función Auto Scaling de DynamoDB

nota

Para comenzar rápidamente a usar la función Auto Scaling de DynamoDB, consulte Uso de la AWS Management Console con la función Auto Scaling de DynamoDB.

En el siguiente diagrama se ofrece información general sobre cómo el escalado automático de DynamoDB administra la capacidad de rendimiento de una tabla.

En los pasos siguientes se resume el proceso de Auto Scaling mostrado en el diagrama anterior:

  1. Cree una política de Auto Scaling de aplicaciones para la tabla de DynamoDB.

  2. DynamoDB publica métricas de capacidad consumida en Amazon CloudWatch.

  3. Si la capacidad consumida de la tabla supera el objetivo de utilización (o no lo alcanza) durante un periodo de tiempo específico, Amazon CloudWatch activa una alarma. Puede ver la alarma en la consola y recibir notificaciones mediante Amazon Simple Notification Service (Amazon SNS).

  4. La alarma de CloudWatch invoca a Auto Scaling de aplicaciones para evaluar la política de escalado.

  5. Auto Scaling de aplicaciones emite una solicitud UpdateTable para ajustar el rendimiento aprovisionado de la tabla.

  6. DynamoDB procesa la solicitud UpdateTable y aumenta (o reduce) dinámicamente la capacidad de rendimiento aprovisionada de la tabla para que sea parecida al objetivo de utilización.

Para comprender cómo funciona el escalado automático de DynamoDB, supongamos que tenemos una tabla denominada ProductCatalog. Es infrecuente que se realicen cargas masivas de datos en la tabla, de modo que presenta poca actividad de escritura. Sin embargo, sí experimenta una intensa actividad de lectura, que varía en cada momento. Gracias a las métricas de Amazon CloudWatch de ProductCatalog que se monitorean, ha determinado que la tabla requiere 1 200 unidades de capacidad de lectura (para evitar que DynamoDB aplique una limitación controlada a las solicitudes de lectura durante los picos de actividad). También ha determinado que ProductCatalog requiere como mínimo 150 unidades de capacidad de lectura, cuando el tráfico de lectura se encuentra en el punto más bajo.

Dentro del rango de 150 a 1200 unidades de capacidad de lectura, decide que un objetivo de utilización del 70 por ciento sería apropiado para la tabla ProductCatalog. El objetivo de utilización es la proporción de unidades de capacidad consumidas respecto de las unidades de capacidad provisionadas y se expresa como un porcentaje. Auto Scaling de aplicaciones utiliza el algoritmo de seguimiento de destino para asegurarse de que la capacidad de lectura provisionada de ProductCatalog se ajuste de acuerdo con las necesidades, de tal forma que la utilización permanezca próxima al 70 %.

nota

La función Auto Scaling de DynamoDB modifica la configuración de rendimiento aprovisionado solo cuando la carga de trabajo real se mantiene elevada (o reducida) durante un periodo sostenido de varios minutos. El algoritmo de seguimiento de destino de Auto Scaling de aplicaciones intenta mantener el objetivo de utilización en el valor elegido o en valores próximos a él a largo plazo.

Los picos de actividad repentinos y breves se atienden gracias a la capacidad de ráfaga incorporada de la tabla. Para obtener más información, consulte Uso eficaz de la capacidad de ampliación .

Para habilitar el escalado automático de DynamoDB para la tabla ProductCatalog, debe crear una política de escalado. La política especifica los elementos siguientes:

  • La tabla o el índice secundario global que desea administrar

  • Qué tipo de capacidad va a administrar (capacidad de lectura o capacidad de escritura)

  • Los límites superior e inferior de los ajustes de desempeño provisionado

  • Su objetivo de utilización

Al crear una política de escalado, Auto Scaling de aplicaciones crea automáticamente un par de alarmas de Amazon CloudWatch. Cada par representa los límites superior e inferior de los ajustes de desempeño provisionado. Estas alarmas de CloudWatch se activan cuando la utilización real de la tabla se desvía del objetivo de utilización durante un periodo de tiempo prolongado.

Cuando se activa una de las alarmas de CloudWatch, Amazon SNS envía una notificación (si se ha habilitado). A continuación, la alarma de CloudWatch invoca a Auto Scaling de aplicaciones que, a su vez, notifica a DynamoDB para que ajuste la capacidad aprovisionada de la tabla ProductCatalog al alza o a la baja, según corresponda.

Notas de uso

Antes de comenzar a usar la función Auto Scaling de DynamoDB, debe tener en cuenta lo siguiente:

  • La función Auto Scaling de DynamoDB puede aumentar la capacidad de lectura o escritura tan a menudo como sea preciso, de acuerdo con la política de Auto Scaling. Todas las cuotas de DynamoDB siguen vigentes, tal como se describe en Cuotas de tabla, servicio y cuenta en Amazon DynamoDB.

  • La función Auto Scaling de DynamoDB no le impide modificar manualmente la configuración de rendimiento aprovisionado. Estos ajustes manuales no afectan a las alarmas de CloudWatch vigentes relacionadas con la función Auto Scaling de DynamoDB.

  • Si habilita la función Auto Scaling de DynamoDB en una tabla que tiene uno o varios índices secundarios globales, recomendamos encarecidamente aplicar también Auto Scaling de manera uniforme a esos índices. Para ello, elija Apply same settings to global secondary indexes (Aplicar la misma configuración a índices secundarios globales) en la AWS Management Console. Para obtener más información, consulte Habilitación de la función Auto Scaling de DynamoDB en tablas existentes .

  • Cuando elimina una tabla o una réplica de tabla global, los destinos escalables, las políticas de escalado o las alarmas de CloudWatch asociadas no se eliminan automáticamente con ella.

  • Al crear un GSI para una tabla existente, la función Auto Scaling no está habilitada para el GSI. Tendrá que administrar manualmente la capacidad mientras se construye el GSI. Una vez que se complete el relleno del GSI y este alcance el estado activo, la función Auto Scaling funcionará con normalidad.