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 il servizio Application AWS Auto Scaling per regolare dinamicamente la capacità di throughput assegnata per tuo conto, in risposta ai modelli di traffico effettivi. In tal modo una tabella o un indice secondario globale può aumentare la capacità di lettura e scrittura assegnata per gestire improvvisi aumenti di traffico, senza alcuna limitazione. 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 si utilizza il 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 della scalabilità AWS Management Console automatica con 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 essa.

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.

La scalabilità automatica può essere attivata quando due punti dati violano il valore di utilizzo target configurato entro un minuto. Pertanto, la scalabilità automatica può avvenire perché la capacità consumata è superiore all'utilizzo previsto per due minuti consistenti. Ma se i picchi distano più di un minuto, la scalabilità automatica potrebbe non essere attivata. Analogamente, un evento di riduzione può essere attivato quando 15 punti dati consecutivi sono inferiori all'utilizzo di destinazione. In entrambi i casi, dopo l'attivazione del ridimensionamento automatico, viene UpdateTablerichiamata una chiamata. L'aggiornamento della capacità fornita per la tabella o l'indice può quindi richiedere diversi minuti. Durante questo periodo, tutte le richieste che superano la capacità predisposta in precedenza per le tabelle verranno 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 della scalabilità AWS Management Console automatica con 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:

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. È possibile visualizzare l'allarme sulla console e ricevere notifiche tramite Amazon Simple Notification Service (Amazon SNS).

  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 le tabelle DynamoDB che utilizzano la modalità di capacità fornita.

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 SNS ti 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à, viene addebitato per elemento di configurazione registrato. AWS Config 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 la scalabilità automatica selezionando Apply same settings to global secondary indexes (Applica le stesse impostazioni agli indici secondari globali) nella AWS Management Console. Per ulteriori informazioni, consulta Abilitazione del dimensionamento automatico di DynamoDB su tabelle esistenti.

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

  • Quando si crea un GSI per una tabella esistente, il dimensionamento automatico non è abilitato per il GSI. Dovrai gestire manualmente la capacità mentre il GSI è in fase di costruzione. Una volta completato il backfill sul GSI e raggiunto lo stato attivo, la scalabilità automatica funzionerà normalmente.