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

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Administración automática de la capacidad de desempeño 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 desempeño provisionada en respuesta a los patrones de tráfico reales. Esto permite que una tabla o un índices secundario global aumenten su capacidad de lectura y escritura provisionada para hacer frente a los aumentos repentinos de tráfico, sin que se aplique la limitación controlada. Cuando la carga de trabajo disminuye, Auto Scaling de aplicaciones reduce el desempeño para evitar que tenga que pagar por una capacidad provisionada que no se utiliza.

nota

Si usa la Consola de administración de AWS para crear una tabla o un índices 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 Consola de administración de AWS con DynamoDB Auto Scaling.

Con Auto Scaling de aplicaciones, se crea una política de escalado para una tabla o un índices 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 también contiene un objetivo de utilizacióndel porcentaje de rendimiento provisionado consumido en un momento dado. — utiliza un algoritmo de Auto Scaling de aplicacionesseguimiento del objetivo para ajustar el rendimiento provisionado de la tabla (o el índice) al alza o a la baja en respuesta a las cargas de trabajo reales, de 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 índices secundario global tiene su propia capacidad de desempeño provisionada que es independiente de la de su tabla base. Al crear una política de escalado para un índices secundario global, Auto Scaling de aplicaciones ajusta los ajustes de desempeño provisionado 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 Consola de administración de AWS con DynamoDB Auto Scaling.

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

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

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

  2. DynamoDB publica las 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 Auto Scaling de aplicaciones para evaluar la política de escalado.

  5. Auto Scaling de aplicaciones emite una solicitud UpdateTable para ajustar el desempeño provisionado de la tabla.

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

Para comprender cómo funciona la función Auto Scaling de DynamoDB, supongamos que tenemos una tabla denominada ProductCatalog. la tabla se carga masivamente con datos con poca frecuencia, por lo que no tiene gran 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 monitorizan, ha determinado que la tabla requiere 1200 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 del objetivo 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 por ciento.

nota

La función Auto Scaling de DynamoDB modifica los ajustes de desempeño provisionado solo cuando la carga de trabajo real se mantiene elevada (o reducida) durante un periodo sostenido de varios minutos. El algoritmo de seguimiento de objetivo 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 ráfagas.

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 índices 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 Auto Scaling de aplicaciones que, a su vez, notifica a DynamoDB para que ajuste la capacidad provisionada 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 servicio, cuenta y tabla en Amazon DynamoDB.

  • La función Auto Scaling de DynamoDB no le impide modificar manualmente los ajustes de desempeño provisionado. 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 para una tabla que tiene uno o varios índices secundario global, le recomendamos encarecidamente que también aplique Auto Scaling de manera uniforme a esos índices. Para ello, elija Apply same settings to índices secundario globales (Aplicar la misma configuración a índices secundarios globales) en la Consola de administración de AWS. Para obtener más información, consulte Habilitación de la función Auto Scaling de DynamoDB en tablas existentes.