

# Modo de capacidad bajo demanda de DynamoDB
<a name="on-demand-capacity-mode"></a>

Amazon DynamoDB bajo demanda ofrece una verdadera experiencia de base de datos sin servidor que se escala de forma automática para adaptarse a las cargas de trabajo más exigentes sin necesidad de planificación de capacidad. Bajo demanda simplifica el proceso de configuración, elimina la administración y supervisión de la capacidad y proporciona un escalado rápido y automático. Con los precios de pago por solicitud, no tiene que preocuparse por la capacidad inactiva porque solo paga por el rendimiento que realmente utiliza. Se le factura por solicitud de lectura o escritura, por lo que los costos reflejan directamente el uso real. 

Al elegir el modo en diferido, DynamoDB se adapta de forma instantánea a sus cargas de trabajo a medida que aumentan o disminuyen a cualquier nivel de tráfico alcanzado previamente. Si el nivel de tráfico de una carga de trabajo alcanza un nuevo pico, DynamoDB se escala automáticamente para adaptarse al aumento de los requisitos de rendimiento. El modo bajo demanda es la opción de rendimiento predeterminada y recomendada porque simplifica la creación de aplicaciones modernas y sin servidor que pueden empezar siendo pequeñas y escalar hasta millones de solicitudes por segundo. Una vez escalada horizontalmente la tabla bajo demanda, podrá volver a alcanzar al instante el mismo rendimiento en el futuro sin limitaciones. Si no dirige tráfico alguno a la tabla, con el sistema bajo demanda no se le cobrará ningún rendimiento. Para obtener más información sobre las propiedades de escalado del modo bajo demanda, consulte [Rendimiento inicial y propiedades de escalado](#on-demand-capacity-mode-initial). 

Las tablas que utilizan el modo bajo demanda ofrecen la misma latencia de un milisegundo, acuerdo de nivel de servicio (SLA) y seguridad que el modo aprovisionado de DynamoDB.

**nota**  
De forma predeterminada, DynamoDB lo protege del uso incontrolado e imprevisto. Para escalar más allá de los límites de rendimiento de lectura y escritura en el nivel de tabla de 40 000 para todas las tablas de la cuenta, puede solicitar un aumento de esta cuota. Las solicitudes de rendimiento que superan la cuota de rendimiento predeterminada de la tabla están limitadas. Para obtener más información, consulte [Cuotas de rendimiento predeterminadas](ServiceQuotas.md#default-limits-throughput).

Si lo desea, también puede configurar el rendimiento máximo de lectura o escritura (o ambos) por segundo para tablas bajo demanda individuales e índices secundarios globales. Al configurar el rendimiento, puede limitar el uso y los costos de las tablas, protegerse contra un aumento no intencionado de los recursos consumidos y evitar el uso excesivo para que la administración de los costos sea predecible. Las solicitudes de rendimiento que superan el rendimiento máximo de la tabla tienen aplicada una limitación. Puede modificar el rendimiento máximo específico de la tabla en cualquier momento en función de los requisitos de su aplicación. Para obtener más información, consulte [Rendimiento máximo de DynamoDB para las tablas bajo demanda](on-demand-capacity-mode-max-throughput.md).

Para empezar, cree o actualice una tabla para utilizar el modo bajo demanda. Para obtener más información, consulte [Operaciones básicas en tablas de DynamoDB](WorkingWithTables.Basics.md).

Puede cambiar las tablas del modo de capacidad aprovisionada al modo bajo demanda hasta cuatro veces en un periodo continuo de 24 horas. Las tablas pueden cambiar del modo bajo demanda al modo de capacidad aprovisionada en cualquier momento. 

Para obtener más información sobre el cambio entre los modos de capacidad de lectura y escritura, consulte [Aspectos a tener en cuenta al cambiar los modos de capacidad en DynamoDB](bp-switching-capacity-modes.md). Para ver las cuotas de las tablas bajo demanda, consulte [Rendimiento de lectura o escritura](ServiceQuotas.md#default-limits-throughput-capacity-modes).

**Topics**
+ [Unidades de solicitud de lectura y de escritura](#read-write-request-units)
+ [Rendimiento inicial y propiedades de escalado](#on-demand-capacity-mode-initial)
+ [Rendimiento máximo de DynamoDB para las tablas bajo demanda](on-demand-capacity-mode-max-throughput.md)

## Unidades de solicitud de lectura y de escritura
<a name="read-write-request-units"></a>

DynamoDB le cobra por las lecturas y escrituras que realiza su aplicación en sus tablas por *unidades de solicitud de lectura* y *unidades de solicitud de escritura*.

Una *unidad de solicitud de lectura* representa una lectura altamente coherente por segundo, o dos lecturas coherentes posteriores por segundo, para elementos con un tamaño máximo de 4 KB. Para obtener más información sobre los modelos de consistencia de lectura de DynamoDB, consulte [Coherencia de lectura de DynamoDB](HowItWorks.ReadConsistency.md).

Una *unidad de solicitud de escritura* representa una operación de escritura por segundo para un elemento con un tamaño máximo de 1 KB.

Para obtener más información sobre cómo se consumen las unidades de lectura y escritura, consulte[Operaciones de lectura y escritura de DynamoDB](read-write-operations.md).

## Rendimiento inicial y propiedades de escalado
<a name="on-demand-capacity-mode-initial"></a>

Las tablas de DynamoDB que utilizan el modo de capacidad bajo demanda se adaptan automáticamente al volumen de tráfico de la aplicación. Las nuevas tablas bajo demanda podrán soportar hasta 4000 escrituras por segundo y 12 000 lecturas por segundo. El modo de capacidad bajo demanda acomoda al instante hasta el doble del tráfico máximo alcanzado previamente en una tabla. Por ejemplo, supongamos que el patrón de tráfico de su aplicación oscila entre 25 000 y 50 000 lecturas altamente coherentes por segundo. El pico de tráfico anterior es de 50 000 lecturas por segundo. El modo de capacidad bajo demanda se adapta instantáneamente a un tráfico sostenido de hasta 100 000 lecturas por segundo. Si su aplicación soporta un tráfico de 100 000 lecturas por segundo, ese pico se convierte en su nuevo pico anterior. Este pico anterior permite que el tráfico posterior alcance hasta 200 000 lecturas por segundo.

Si su carga de trabajo genera más del doble que su pico anterior en una tabla, DynamoDB asigna automáticamente más capacidad a medida que aumenta su volumen de tráfico. Esta asignación de capacidad ayuda a garantizar que no se aplique una limitación en su carga de trabajo. Sin embargo, esta limitación controlada podría producirse si supera el doble del pico anterior en el plazo de 30 minutos. Por ejemplo, supongamos que el patrón de tráfico de su aplicación oscila entre 25 000 y 50 000 lecturas altamente coherentes por segundo. El pico de tráfico alcanzado anteriormente es de 50 000 lecturas por segundo. Le recomendamos que precaliente la tabla o espacie el crecimiento de su tráfico durante al menos 30 minutos antes de producir más de 100 000 lecturas por segundo. Para obtener más información acerca del precalentamiento, consulte [Descripción del rendimiento en caliente de DynamoDB](warm-throughput.md).

DynamoDB no establece la restricción de limitación de 30 minutos si el pico de tráfico de la carga de trabajo se mantiene dentro del doble del pico anterior. Si el pico de tráfico supera el doble de ese pico, asegúrese de que este aumento se produce 30 minutos después de la última vez que alcanzó el pico.

# Rendimiento máximo de DynamoDB para las tablas bajo demanda
<a name="on-demand-capacity-mode-max-throughput"></a>

En el caso de las tablas bajo demanda, si lo desea, puede especificar el rendimiento máximo de lectura o escritura (o ambos) por segundo en tablas individuales y en los índices secundarios globales (GSI) asociados. Especificar un rendimiento máximo bajo demanda ayuda a limitar el uso y los costos de las tablas. De forma predeterminada, no se aplica la configuración de rendimiento máximo y la tasa de rendimiento bajo demanda está limitada por la [cuota de servicio de AWS](ServiceQuotas.md#default-limits-throughput) de rendimiento de lectura y escritura en el nivel de tabla de 40 000 para todas las tablas de la cuenta. Si es necesario, también puede solicitar un aumento de la cuota de servicio.

Al configurar el rendimiento máximo para una tabla bajo demanda, se aplicará una limitación a las solicitudes de rendimiento que superen la cantidad máxima especificada. Puede modificar la configuración del rendimiento de las tablas en cualquier momento en función de los requisitos de su aplicación.

Estos son algunos casos de uso comunes que pueden beneficiarse del uso de un rendimiento máximo para las tablas bajo demanda:
+ **Optimización de los costos de rendimiento**: el uso del rendimiento máximo para las tablas bajo demanda permite disponer de un nivel adicional de previsibilidad de los costos y facilidad de administración. Además, ofrece una mayor flexibilidad para usar el modo bajo demanda para soportar cargas de trabajo con diferentes patrones de tráfico y presupuestos.
+ **Protección contra el uso excesivo**: al establecer el rendimiento máximo, puede evitar un aumento accidental del consumo de lecturas o escrituras, que podría deberse a un código no optimizado o a procesos fraudulentos en una tabla bajo demanda. Esta configuración de tabla puede evitar que las organizaciones consuman recursos excesivos en un período de tiempo determinado.
+ **Protección de los servicios posteriores**: la aplicación de un cliente puede incluir tecnologías sin servidor y con servidor. La parte sin servidor de la arquitectura sin puede escalarse rápidamente para adaptarse a la demanda. Sin embargo, los componentes posteriores con capacidades fijas podrían saturarse. La implementación de una configuración de rendimiento máximo para las tablas bajo demanda puede evitar que un gran volumen de eventos se propague a varios componentes posteriores y se produzcan efectos secundarios inesperados.

Puede configurar el rendimiento máximo del modo bajo demanda en tablas nuevas y existentes de una sola región, así como en tablas globales y GSI. También puede configurar el rendimiento máximo durante la restauración de tablas y la importación de datos desde los flujos de trabajo de Amazon S3.

Puede especificar la configuración de rendimiento máximo de una tabla bajo demanda mediante la [consola de DynamoDB](https://console.aws.amazon.com/dynamodb/), la [AWS CLI](AccessingDynamoDB.md#Tools.CLI), [AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html) o la [API de DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/Welcome.html).

**nota**  
El rendimiento máximo de una tabla bajo demanda se aplica en la medida de lo posible y debe considerarse como un objetivo en lugar de un límite de solicitudes garantizado. Es posible que su carga de trabajo supere temporalmente el rendimiento máximo especificado debido a la [*capacidad de ampliación*](burst-adaptive-capacity.md#burst-capacity). En algunos casos, DynamoDB utiliza la *capacidad de ampliación* para atender las lecturas o escrituras que superan la configuración de rendimiento máxima de la tabla. Con la capacidad de ráfaga, pueden realizarse correctamente solicitudes de lectura o escritura inesperadas que, de otro modo, habrían sido objeto de una limitación controlada.

**Topics**
+ [Consideraciones al utilizar el rendimiento máximo en el modo bajo demanda](#consideration-use-max-throughput-ondemand)
+ [Limitación de solicitudes y métricas de CloudWatch](#max-throughput-ondemand-request-throttle)

## Consideraciones al utilizar el rendimiento máximo en el modo bajo demanda
<a name="consideration-use-max-throughput-ondemand"></a>

Cuando se utiliza el rendimiento máximo para las tablas en el modo bajo demanda, hay que tener en cuenta lo siguiente:
+ Puede establecer de forma independiente el rendimiento máximo de lectura y escritura para cualquier tabla bajo demanda o para un índice secundario global individual dentro de esa tabla para ajustar su enfoque a los requisitos específicos.
+ Puede utilizar Amazon CloudWatch para monitorear y conocer las métricas de uso de tabla de DynamoDB y para determinar la configuración de rendimiento máximo adecuada para el modo bajo demanda. Para obtener más información, consulte [Dimensiones y métricas de DynamoDB](metrics-dimensions.md).
+ Al especificar la configuración de rendimiento máximo de lectura o escritura (o ambas) en una sola réplica de tabla global, esa misma configuración se aplica automáticamente a todas las tablas de réplicas. Es importante que las tablas de réplicas y los índices secundarios de la tabla global tengan una configuración de rendimiento de escritura idéntica para garantizar la replicación adecuada de los datos. Para obtener más información, consulte [Prácticas recomendadas para tablas globales](globaltables-bestpractices.md).
+ El rendimiento máximo de lectura o escritura más bajo que puede especificar es una unidad de solicitud por segundo.
+ El rendimiento máximo que especifique debe ser inferior a la cuota de rendimiento predeterminada que está disponible para cualquier tabla bajo demanda o índice secundario global individual dentro de esa tabla.

## Limitación de solicitudes y métricas de CloudWatch
<a name="max-throughput-ondemand-request-throttle"></a>

Si la aplicación supera el rendimiento máximo de lectura o escritura que ha establecido en la tabla bajo demanda, DynamoDB comienza a aplicar límites a esas solicitudes. Cuando DynamoDB aplica una limitación controlada a una lectura o escritura, devuelve una `ThrottlingException` a la persona que llama. A continuación, puede tomar las medidas adecuadas, si es necesario. Por ejemplo, puede aumentar o deshabilitar la configuración de rendimiento máximo de la tabla o esperar un poco antes de volver a intentar la solicitud.

Para simplificar el monitoreo del rendimiento máximo configurado para una tabla o un índice secundario global, CloudWatch proporciona las siguientes métricas: [OnDemandMaxReadRequestUnits](metrics-dimensions.md#OnDemandMaxReadRequestUnits) y [OnDemandMaxWriteRequestUnits](metrics-dimensions.md#OnDemandMaxWriteRequestUnits).