Gestione automatica della capacità effettiva di trasmissione con il dimensionamento automatico di DynamoDB - Amazon DynamoDB

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Gestione automatica della capacità effettiva di trasmissione con il dimensionamento automatico di DynamoDB

Molti carichi di lavoro dei database sono per natura ciclici o sono difficili da prevedere in anticipo. Ad esempio, considera un'app di social network in cui la maggior parte degli utenti sono attivi durante le ore diurne. Il database deve essere in grado di gestire l'attività diurna e ciò non è necessario per gli stessi livelli di throughput durante la notte. Un altro esempio potrebbe essere una nuova app di gioco per dispositivi mobili che si sta improvvisamente diffondendo in modo rapido. Se il gioco si diffonde troppo, potrebbe superare le risorse di database disponibili, con un conseguente rallentamento delle prestazioni e diversi clienti insoddisfatti. Questi tipi di carichi di lavoro richiedono spesso l'intervento manuale per aumentare o diminuire le risorse di database in risposta alla variazione dei livelli di utilizzo.

La scalabilità automatica di Amazon DynamoDB utilizza AWS Servizio Application Auto Scaling per regolare dinamicamente la capacità di throughput assegnata per conto dell'utente, in risposta ai modelli di traffico effettivi. Ciò consente a una tabella o a un indice secondario globale (GSI) di aumentare la capacità di lettura e scrittura assegnata per gestire aumenti improvvisi del traffico, senza limitazioni. Quando il carico di lavoro diminuisce, Application Auto Scaling riduce la velocità effettiva in modo da non dover pagare per la capacità assegnata inutilizzata.

Nota

Se utilizzi il plugin AWS Management Console per creare una tabella o un indice secondario globale, la scalabilità automatica di DynamoDB è abilitata per impostazione predefinita. Puoi modificare le tue impostazioni di scalabilità automatica in qualsiasi momento. Per ulteriori informazioni, consulta Utilizzo di AWS Management Console con scalabilità automatica DynamoDB.

Quando si elimina una tabella o una replica globale di una tabella, tutti gli obiettivi scalabili, le politiche di ridimensionamento o gli CloudWatch allarmi associati non vengono eliminati automaticamente.

Con Application Auto Scaling, è possibile creare una policy di dimensionamento per una tabella o un indice secondario globale. La policy di dimensionamento specifica se desideri dimensionare la capacità di lettura o di scrittura (o e entrambe) e indica le impostazioni delle unità di capacità minime e massime assegnate per la tabella o l'indice.

La policy di dimensionamento contiene anche un utilizzo di destinazione: la percentuale di velocità effettiva assegnata consumata in un dato momento. Application Auto Scaling utilizza un monitoraggio degli obiettivi per regolare la velocità effettiva assegnata della tabella (o dell'indice) in alto o in basso, in risposta a carichi di lavoro effettivi in modo che l'utilizzo effettivo della capacità rimanga pari o vicino all'utilizzo di destinazione.

DynamoDB genera il throughput assegnato consumato per periodi di un minuto. La scalabilità automatica si attiva quando la capacità consumata supera l'utilizzo previsto configurato per due minuti consecutivi. CloudWatch gli allarmi potrebbero avere un breve ritardo, fino a qualche minuto, prima di attivare il ridimensionamento automatico. Questo ritardo garantisce una valutazione metrica accurata CloudWatch . Se i picchi di produttività consumati distano più di un minuto, la scalabilità automatica potrebbe non attivarsi. Analogamente, può verificarsi un evento di ridimensionamento quando 15 punti dati consecutivi sono inferiori all'utilizzo previsto. In entrambi i casi, dopo i trigger del ridimensionamento automatico, UpdateTableAPIviene richiamato. Sono quindi necessari alcuni minuti per aggiornare la capacità assegnata per la tabella o l'indice. Durante questo periodo, tutte le richieste che superano la capacità predisposta in precedenza per le tabelle vengono limitate.

Importante

Non è possibile modificare il numero di punti dati da violare per attivare l'allarme sottostante (anche se il numero attuale potrebbe cambiare in futuro).

Puoi impostare i valori dell'utilizzo di destinazione del dimensionamento automatico tra il 20 e il 90 percento per la capacità in lettura e scrittura.

Nota

Oltre alle tabelle, la scalabilità automatica di DynamoDB supporta anche gli indici secondari globali. Ogni indice secondario globale dispone della propria capacità di throughput assegnata, separata da quella della relativa tabella di base. Quando si crea una policy di dimensionamento per un indice secondario globale, Application Auto Scaling regola le impostazioni di velocità effettiva assegnata per l'indice per assicurare che il suo utilizzo effettivo rimanga uguale o prossimo alle proporzioni di utilizzo desiderate.

Funzionamento del dimensionamento automatico di DynamoDB

Nota

Per iniziare a utilizzare rapidamente la scalabilità automatica di DynamoDB, consulta Utilizzo di AWS Management Console con scalabilità automatica DynamoDB.

Il seguente diagramma fornisce una panoramica dettagliata del modo in cui la scalabilità automatica di DynamoDB gestisce la capacità di throughput per una tabella:

La scalabilità automatica di DynamoDB regola la capacità di throughput di una tabella per soddisfare la domanda.

Le fasi seguenti sintetizzano il processo di scalabilità automatica come illustrato nel diagramma precedente:

  1. È possibile creare una policy di Application Auto Scaling per la tabella DynamoDB.

  2. DynamoDB pubblica i parametri della capacità consumata su Amazon. CloudWatch

  3. Se la capacità consumata della tabella supera l'utilizzo previsto (o scende al di sotto del target) per un periodo di tempo specifico, Amazon CloudWatch attiva un allarme. Puoi visualizzare l'allarme sulla console e ricevere notifiche utilizzando Amazon Simple Notification Service (AmazonSNS).

  4. L' CloudWatch allarme richiama Application Auto Scaling per valutare la politica di scalabilità.

  5. Application Auto Scaling invia una richiesta UpdateTable per regolare la velocità effettiva assegnata della tabella.

  6. DynamoDB elabora la richiesta UpdateTable, aumentando (o diminuendo) in modo dinamico la capacità di throughput assegnata della tabella in modo che si avvicini all'utilizzo di destinazione.

Per comprendere come funziona la scalabilità automatica di DynamoDB, si supponga di avere una tabella denominata ProductCatalog. La tabella riceve carichi non frequenti di dati in blocco, perciò non esegue molta attività di scrittura. Tuttavia, ciò comporta un alto livello di attività di lettura che varia nel tempo. Monitorando i CloudWatch parametri di Amazon perProductCatalog, stabilisci che la tabella richiede 1.200 unità di capacità di lettura (per evitare che DynamoDB limiti le richieste di lettura quando l'attività è al massimo). Inoltre, stabilisci che ProductCatalog richieda minimo 150 unità di capacità in lettura, quando il traffico di lettura è al livello minimo. Per ulteriori informazioni sulla limitazione (della larghezza di banda della rete), consulta Problemi di limitazione per DynamoDB.

All'interno dell'intervallo compreso tra 150 e 1.200 unità di capacità in lettura, decidi che una percentuale di utilizzo di destinazione del 70% sia adatta per la tabella ProductCatalog. L'utilizzo di destinazione viene espresso come proporzione tra le unità di capacità utilizzate e le unità di capacità assegnata, in percentuale. Application Auto Scaling utilizza il suo algoritmo di monitoraggio degli obiettivi per garantire che la capacità di lettura assegnata di ProductCatalog sia regolata come richiesto in modo che l'utilizzo rimanga più o meno al 70%.

Nota

La scalabilità automatica di DynamoDB modifica le impostazioni della velocità di trasmissione effettiva assegnata solo quando il carico di lavoro effettivo rimane elevato (o basso) per un periodo continuativo di diversi minuti. L'algoritmo di monitoraggio degli obiettivi di Application Auto Scaling cerca di tenere l'utilizzo della destinazione pari o vicino al valore scelto a lungo termine.

I picchi di attività improvvisi e di breve durata sono soddisfatti dalla capacità di ottimizzazione integrata della tabella. Per ulteriori informazioni, consulta Capacità di ottimizzazione.

Per abilitare la scalabilità automatica di DynamoDB per la tabella ProductCatalog, viene creata una policy di dimensionamento. La policy specifica quanto segue:

  • La tabella o l'indice secondario globale che desideri gestire

  • Il tipo di capacità da gestire (capacità di lettura o capacità di scrittura)

  • I limiti superiore e inferiore per le impostazioni del throughput assegnato

  • Utilizzo di destinazione

Quando crei una politica di scalabilità, Application Auto Scaling crea un paio di allarmi CloudWatch Amazon per tuo conto. Ogni coppia rappresenta i limiti superiore e inferiore per le impostazioni della velocità di trasmissione effettiva assegnata. Questi CloudWatch allarmi vengono attivati quando l'utilizzo effettivo della tabella si discosta dall'utilizzo previsto per un periodo di tempo prolungato.

Quando viene attivato uno degli CloudWatch allarmi, Amazon ti SNS invia una notifica (se l'hai abilitata). L' CloudWatch allarme richiama quindi Application Auto Scaling, che a sua volta notifica a DynamoDB di modificare la capacità assegnata alla tabella verso l'alto o verso il basso, a seconda ProductCatalog dei casi.

Durante un evento di scalabilità, AWS Config viene addebitato per elemento di configurazione registrato. Quando si verifica un evento di ridimensionamento, vengono creati quattro CloudWatch allarmi per ogni evento di auto-scaling di lettura e scrittura: alarms: e ProvisionedCapacity alarms:,. ProvisionedCapacityLow ProvisionedCapacityHigh ConsumedCapacity AlarmHigh AlarmLow Ciò si traduce in un totale di otto allarmi. Pertanto, AWS Config registra otto elementi di configurazione per ogni evento di scalabilità.

Nota

Puoi anche pianificare il ridimensionamento di DynamoDB in modo che avvenga in determinati momenti. Scopri i passaggi di base qui.

Note per l'utilizzo

Prima di iniziare a utilizzare la scalabilità automatica di DynamoDB è necessario tenere presente quanto riportato di seguito:

  • La scalabilità automatica di DynamoDB può aumentare la capacità di lettura o di scrittura in base alle necessità e secondo la policy di scalabilità automatica. Tutti le quote di DynamoDB restano in vigore, come descritto in Quote di servizio, account e tabelle in Amazon DynamoDB.

  • La scalabilità automatica di DynamoDB non impedisce di modificare manualmente le impostazioni di velocità effettiva assegnata. Queste regolazioni manuali non influiscono sugli CloudWatch allarmi esistenti correlati alla scalabilità automatica di DynamoDB.

  • Se si abilita la scalabilità automatica di DynamoDB per una tabella che ha uno o più indici secondari globali, consigliamo di applicare la scalabilità automatica in maniera uniforme anche a quegli indici. Ciò contribuirà a garantire prestazioni migliori per la scrittura e la lettura delle tabelle e a evitare la limitazione della larghezza di banda della rete. È possibile abilitare il ridimensionamento automatico selezionando Applica le stesse impostazioni agli indici secondari globali nella AWS Management Console. Per ulteriori informazioni, vedereAbilitazione del dimensionamento automatico di DynamoDB su tabelle esistenti.

  • Quando si elimina una tabella o una replica globale di una tabella, tutti gli obiettivi scalabili, i criteri di ridimensionamento o gli CloudWatch allarmi associati non vengono eliminati automaticamente con essa.

  • Quando si crea un GSI file per una tabella esistente, il ridimensionamento automatico non è abilitato per. GSI Dovrai gestire manualmente la capacità durante GSI la creazione. Una volta GSI completato il riempimento e raggiunto lo stato attivo, il ridimensionamento automatico funzionerà normalmente.