Administración automática de la capacidad de rendimiento 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 rendimiento con la función Auto Scaling de DynamoDB

Muchas cargas de trabajo de base de datos son de naturaleza cíclica, mientras que otras son 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 rendimiento por la noche. Otro ejemplo: tomemos una nueva aplicación de juegos para móviles cuya adopción está siendo inesperadamente 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 rendimiento 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 AWS utiliza el servicio Application Auto Scaling para ajustar dinámicamente la capacidad de rendimiento aprovisionada en su nombre, 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 utiliza AWS Management Console para crear una tabla o un índice secundario global, el escalado automático de DynamoDB está activado 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.

Al eliminar una tabla o una réplica de una tabla global, los objetivos escalables, las políticas de escalado o las CloudWatch alarmas 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.

El escalado automático se puede activar cuando dos puntos de datos superan el valor de utilización objetivo configurado en un lapso de un minuto. Por lo tanto, el escalado automático puede producirse porque la capacidad consumida está por encima de la utilización objetivo durante dos minutos consistentes. Sin embargo, si los picos están separados por más de un minuto, es posible que no se active el escalado automático. Del mismo modo, se puede desencadenar un evento de reducción vertical cuando 15 puntos de datos consecutivos sean inferiores a la utilización objetivo. En cualquier caso, después de que se active el escalado automático, se invoca una UpdateTablellamada. A continuación, la actualización de la capacidad aprovisionada para la tabla o el índice puede tardar varios minutos. Durante este período, se limitará cualquier solicitud que supere la capacidad aprovisionada anteriormente de las tablas.

importante

No se puede ajustar el número de puntos de datos que se van a violar para activar la alarma subyacente (aunque el número actual podría cambiar en el futuro).

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 las métricas de capacidad consumida en Amazon. CloudWatch

  3. Si la capacidad consumida de la tabla supera tu objetivo de utilización (o cae por debajo del objetivo) durante un período 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 CloudWatch alarma invoca Application Auto Scaling para evaluar su 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. Al monitorear las CloudWatch métricas de AmazonProductCatalog, usted determina que la tabla requiere 1200 unidades de capacidad de lectura (para evitar que DynamoDB limite las solicitudes de lectura cuando la actividad está en su punto máximo). 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. Para obtener más información sobre cómo prevenir la limitación, consulte Solución de problemas de limitación en Amazon DynamoDB.

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 de escalado automático 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 ampliación 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

Cuando crea una política de escalado, Application Auto Scaling crea un par de CloudWatch alarmas de Amazon en su nombre. Cada par representa los límites superior e inferior de la configuración de rendimiento provisionado. Estas CloudWatch alarmas se activan cuando la utilización real de la tabla se desvía de la utilización objetivo durante un período prolongado.

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

Durante un evento de escalado, AWS Config se cobra por cada elemento de configuración registrado. Cuando se produce un evento de escalado, se crean cuatro CloudWatch alarmas para cada evento de autoescalado de lectura y escritura: ProvisionedCapacity alarmas: ProvisionedCapacityHigh y ConsumedCapacity alarmas: ProvisionedCapacityLow AlarmHigh,. AlarmLow Esto da como resultado un total de ocho alarmas. Por lo tanto, AWS Config registra ocho elementos de configuración para cada evento de escalado.

nota

También puede programar el escalado de DynamoDB para que se realice en determinados momentos. Conozca los pasos básicos aquí.

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 ninguna CloudWatch alarma existente relacionada con el escalado automático 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. Esto contribuirá a garantizar un mejor rendimiento en las escrituras y lecturas de las tablas, y a evitar la limitación. Puede activar el escalado automático si selecciona Apply same settings to global secondary indexes (Aplicar la misma configuración a los í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.

  • Al eliminar una tabla o una réplica de una tabla global, los objetivos escalables, las políticas de escalado o las CloudWatch alarmas asociadas no se eliminan automáticamente.

  • 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 de escalado automático funcionará con normalidad.