Identifica le risorse inutilizzate in 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à.

Identifica le risorse inutilizzate in DynamoDB

In questa sezione viene fornita una panoramica su come valutare regolarmente le risorse inutilizzate. Man mano che i requisiti delle tue applicazioni si evolvono, dovresti assicurarti che nessuna risorsa resti inutilizzata per evitare costi Amazon DynamoDB non necessari. Le procedure descritte di seguito utilizzeranno i CloudWatch parametri di Amazon per identificare le risorse inutilizzate e ti aiuteranno a identificare e ad agire su tali risorse per ridurre i costi.

Puoi monitorare DynamoDB CloudWatch utilizzando, che raccoglie ed elabora i dati grezzi da DynamoDB in metriche leggibili quasi in tempo reale. Queste statistiche vengono conservate per un determinato periodo di tempo, così da consentire l'accesso a informazioni cronologiche per comprendere meglio l'utilizzo. Per impostazione predefinita, i dati delle metriche DynamoDB vengono inviati automaticamente a. CloudWatch Per ulteriori informazioni, consulta What is Amazon CloudWatch? e conservazione dei parametri nella Amazon CloudWatch User Guide.

Come identificare le risorse inutilizzate

Per identificare tabelle o indici non utilizzati, esamineremo le seguenti CloudWatch metriche per un periodo di 30 giorni per capire se ci sono letture o scritture attive sulla tabella o letture sugli indici secondari globali (): GSIs

ConsumedReadCapacityUnits

Il numero di unità di capacità di lettura utilizzate nel periodo di tempo specificato, per permettere di tenere traccia di quanta capacità viene utilizzata. È possibile recuperare la capacità di lettura totale consumata per una tabella e tutti i relativi indici secondari globali o per un determinato indice secondario globale.

ConsumedWriteCapacityUnits

Il numero di unità di capacità di scrittura utilizzate nel periodo di tempo specificato, per permettere di tenere traccia di quanta capacità viene utilizzata. È possibile recuperare la capacità di scrittura totale consumata per una tabella e tutti i relativi indici secondari globali o per un determinato indice secondario globale.

Identificazione delle risorse non utilizzate della tabella

Amazon CloudWatch è un servizio di monitoraggio e osservabilità che fornisce le metriche delle tabelle DynamoDB che utilizzerai per identificare le risorse non utilizzate. CloudWatch le metriche possono essere visualizzate sia tramite. AWS Management Console AWS Command Line Interface

AWS Command Line Interface

Per visualizzare le metriche delle tabelle tramite AWS Command Line Interface, puoi utilizzare i seguenti comandi.

  1. Per prima cosa, valuta le letture della tabella:

    aws cloudwatch get-metric-statistics --metric-name ConsumedReadCapacityUnits --start-time <start-time> --end-time <end- time> --period <period> --namespace AWS/DynamoDB --statistics Sum -- dimensions Name=TableName,Value=<table-name>

    Per evitare di identificare erroneamente una tabella come non utilizzata, valutare i parametri per un periodo più lungo. Scegli un intervallo appropriato di inizio e fine, ad esempio 30 giorni, e un periodo appropriato, ad esempio 86400.

    Nei dati restituiti, qualsiasi somma superiore a 0 indica che la tabella che stai valutando ha ricevuto traffico di lettura durante quel periodo.

    Il risultato seguente mostra una tabella che riceve traffico di lettura nel periodo valutato:

    { "Timestamp": "2022-08-25T19:40:00Z", "Sum": 36023355.0, "Unit": "Count" }, { "Timestamp": "2022-08-12T19:40:00Z", "Sum": 38025777.5, "Unit": "Count" },

    Il risultato seguente mostra una tabella che non riceve traffico di lettura nel periodo valutato:

    { "Timestamp": "2022-08-01T19:50:00Z", "Sum": 0.0, "Unit": "Count" }, { "Timestamp": "2022-08-20T19:50:00Z", "Sum": 0.0, "Unit": "Count" },
  2. Quindi, valuta le scritture della tabella:

    aws cloudwatch get-metric-statistics --metric-name ConsumedWriteCapacityUnits --start-time <start-time> --end-time <end- time> --period <period> --namespace AWS/DynamoDB --statistics Sum -- dimensions Name=TableName,Value=<table-name>

    Per evitare di identificare erroneamente una tabella come non utilizzata, consigliamo di valutare i parametri per un periodo più lungo. Scegli un intervallo appropriato di inizio e fine, ad esempio 30 giorni, e un periodo appropriato, ad esempio 86400.

    Nei dati restituiti, qualsiasi somma superiore a 0 indica che la tabella che stai valutando ha ricevuto traffico di scrittura durante quel periodo.

    Il risultato seguente mostra una tabella che riceve traffico di scrittura nel periodo valutato:

    { "Timestamp": "2022-08-19T20:15:00Z", "Sum": 41014457.0, "Unit": "Count" }, { "Timestamp": "2022-08-18T20:15:00Z", "Sum": 40048531.0, "Unit": "Count" },

    Il risultato seguente mostra una tabella che non riceve traffico di scrittura nel periodo valutato:

    { "Timestamp": "2022-07-31T20:15:00Z", "Sum": 0.0, "Unit": "Count" }, { "Timestamp": "2022-08-19T20:15:00Z", "Sum": 0.0, "Unit": "Count" },
AWS Management Console

Le seguenti fasi consentiranno di valutare l'utilizzo delle risorse tramite la AWS Management Console.

  1. Accedi alla AWS console e vai alla pagina del CloudWatch servizio all'indirizzo https://console.aws.amazon.com/cloudwatch/. Se necessario, seleziona la AWS regione appropriata in alto a destra della console.

  2. Sulla barra di navigazione a sinistra, individua la sezione Metrics (Parametri) quindi seleziona All metrics (Tutti i parametri).

  3. L'operazione precedente aprirà un pannello di controllo con due pannelli. Nel pannello superiore vedrai i parametri attualmente rappresentati graficamente. In basso selezionerai i parametri disponibili per il grafico. Seleziona DynamoDB nel pannello inferiore.

  4. Nel pannello di selezione dei parametri di DynamoDB, seleziona la categoria Table Metrics (Parametri della tabella) per visualizzare i parametri delle tabelle nella regione corrente.

  5. Identifica il nome della tabella scorrendo il menu verso il basso, quindi seleziona i parametri ConsumedReadCapacityUnits e ConsumedWriteCapacityUnits della tabella.

  6. Seleziona la scheda Graphed metrics (2) (Parametri nel grafico (2) e imposta la colonna Statistic (Statistiche) su Sum (Somma).

    Scheda metrica rappresentata graficamente. La statistica è impostata su Sum per visualizzare i dati sull'utilizzo delle risorse nella console.
  7. Per evitare di identificare erroneamente una tabella come non utilizzata, consigliamo di valutare i parametri per un periodo più lungo. Nella parte superiore del pannello del grafico, scegli un intervallo di tempo appropriato, ad esempio un mese, per valutare la tabella. Seleziona Custom (Personalizzato), seleziona 1 Months (Un mese) nel menu a discesa e scegli Apply (Applica).

    CloudWatch console. Viene selezionato un intervallo di tempo personalizzato di 1 mese per valutare le metriche.
  8. Valuta i parametri nel grafico della tabella per determinare se viene utilizzata. Parametri superiori a 0 indicano che durante il periodo di tempo preso in considerazione la tabella è stata utilizzata. Un grafico fermo sullo 0 per letture e scritture indica che la tabella non è stata utilizzata.

    L'immagine seguente mostra una tabella con traffico di lettura:

    Grafico che mostra una tabella DynamoDB, che suggerisce che la tabella è in uso. ConsumedReadCapacityUnits

    L'immagine seguente mostra una tabella senza traffico di lettura:

    Grafico che mostra l'assenza di attività di lettura per una tabella DynamoDB, il che suggerisce che la tabella non è in uso.

Pulizia delle risorse non utilizzate della tabella

Se sono state identificate risorse non utilizzate della tabella, è possibile ridurne i costi correnti nei seguenti modi.

Nota

Se hai identificato una tabella non utilizzata ma desideri comunque mantenerla disponibile nel caso in cui sia necessario accedervi in futuro, valuta la possibilità di passare alla modalità on demand. Altrimenti, puoi valutare l'idea di eseguire il backup e di eliminare completamente la tabella.

Modalità di capacità

DynamoDB addebita la lettura, la scrittura e l'archiviazione dei dati nelle tabelle DynamoDB.

DynamoDB ha due modalità di capacità, che includono opzioni di fatturazione specifiche per l'elaborazione delle letture e delle scritture sulle tabelle: on demand e con assegnazione. La modalità di capacità in lettura/scrittura controlla la modalità di addebito per il throughput di lettura e scrittura e di gestione della capacità.

Per le tabelle in modalità on demand, non è necessario specificare la velocità effettiva di lettura e scrittura che si prevede l'applicazione esegua. DynamoDB addebita le letture e le scritture eseguite dall'applicazione sulle tabelle in termini di unità di richiesta di lettura e unità di richiesta di scrittura. Se non vi è alcuna attività sulla tabella o sull'indice, non paghi la velocità di trasmissione effettiva, ma dovrai comunque sostenere un costo per l'archiviazione.

Classi di tabelle

DynamoDB offre due classi di tabelle progettate per aiutare a ottimizzare i costi. La classe di tabella DynamoDB Standard è quella predefinita ed è consigliata per la maggior parte dei carichi di lavoro. La classe di tabella DynamoDB Standard-Infrequent Access (DynamoDB Standard (accesso infrequente)) è ottimizzata per le tabelle in cui l'archiviazione è il costo principale.

Se non vi è alcuna attività sulla tabella o sull'indice, è probabile che il costo principale sia quello dell'archiviazione e cambiare classe di tabella offrirà un risparmio significativo.

Eliminazione delle tabelle

Se hai rilevato una tabella non utilizzata e desideri eliminarla, potresti voler prima effettuare un backup o un'esportazione dei dati.

I backup eseguiti tramite AWS Backup possono sfruttare lo storage a freddo su più livelli, riducendo ulteriormente i costi. Consulta la Utilizzo AWS Backup con DynamoDB documentazione per informazioni su come abilitare i backup tramite AWS Backup e la documentazione sulla gestione dei piani di backup per informazioni su come utilizzare il ciclo di vita per spostare il backup in cold storage.

In alternativa, puoi scegliere di esportare i dati della tabella in S3. Per fare ciò, consulta la documentazione relativa all'esportazione in Amazon S3. Una volta esportati i dati, se desideri sfruttare S3 Glacier Instant Retrieval, S3 Glacier Flexile Retrieval o S3 Glacier Deep Archive per ridurre ulteriormente i costi, consulta Gestione del ciclo di vita dell'archiviazione.

Dopo aver eseguito il backup della tabella, puoi scegliere di eliminarla tramite la AWS Management Console o tramite l' AWS Command Line Interface.

Identificazione delle risorse non utilizzate GSI

Le fasi per identificare un indice secondario globale non utilizzato sono simili a quelle per identificare una tabella non utilizzata. Poiché DynamoDB replica gli elementi scritti nella tabella di base nella GSI tabella se contengono l'attributo usato come GSI chiave di partizione, è probabile che una tabella GSI inutilizzata ConsumedWriteCapacityUnits abbia comunque un valore superiore a 0 se la tabella di base è in uso. Di conseguenza, valuterai solo la ConsumedReadCapacityUnits metrica per determinare se la tua è inutilizzata. GSI

Per visualizzare le GSI metriche tramite AWS AWS CLI, puoi utilizzare i seguenti comandi per valutare le letture delle tabelle:

aws cloudwatch get-metric-statistics --metric-name ConsumedReadCapacityUnits --start-time <start-time> --end-time <end- time> --period <period> --namespace AWS/DynamoDB --statistics Sum -- dimensions Name=TableName,Value=<table-name> Name=GlobalSecondaryIndexName,Value=<index-name>

Per evitare di identificare erroneamente una tabella come non utilizzata, consigliamo di valutare i parametri per un periodo più lungo. Scegli un intervallo appropriato di inizio e fine, ad esempio 30 giorni e un periodo appropriato, ad esempio 86400.

Nei dati restituiti, qualsiasi somma superiore a 0 indica che la tabella che stai valutando ha ricevuto traffico di lettura durante quel periodo.

Il risultato seguente mostra un traffico di lettura in GSI ricezione nel periodo valutato:

{ "Timestamp": "2022-08-17T21:20:00Z", "Sum": 36319167.0, "Unit": "Count" }, { "Timestamp": "2022-08-11T21:20:00Z", "Sum": 1869136.0, "Unit": "Count" },

Il risultato seguente mostra una GSI ricezione di traffico di lettura minimo nel periodo valutato:

{ "Timestamp": "2022-08-28T21:20:00Z", "Sum": 0.0, "Unit": "Count" }, { "Timestamp": "2022-08-15T21:20:00Z", "Sum": 2.0, "Unit": "Count" },

Il risultato seguente mostra una GSI ricezione di traffico in assenza di lettura nel periodo valutato:

{ "Timestamp": "2022-08-17T21:20:00Z", "Sum": 0.0, "Unit": "Count" }, { "Timestamp": "2022-08-11T21:20:00Z", "Sum": 0.0, "Unit": "Count" },

Pulizia delle risorse inutilizzate GSI

Se ne hai identificato uno inutilizzatoGSI, puoi scegliere di eliminarlo. Poiché tutti i dati presenti in a GSI sono presenti anche nella tabella di base, non è necessario un backup aggiuntivo prima di eliminare un. GSI Se in futuro GSI sarà nuovamente necessario, potrà essere aggiunto nuovamente alla tabella.

Se avete identificato un oggetto usato raramenteGSI, dovreste prendere in considerazione delle modifiche alla progettazione dell'applicazione che consentano di eliminarlo o ridurne i costi. Ad esempio, mentre le scansioni di DynamoDB devono essere utilizzate con parsimonia perché possono consumare grandi quantità di risorse di sistema, possono essere più convenienti di GSI una se il modello di accesso che supporta viene utilizzato molto raramente.

Inoltre, se GSI è necessario un modello di accesso poco frequente, si consiglia di proiettare un set di attributi più limitato. Sebbene ciò possa richiedere successive query sulla tabella di base per supportare i modelli di accesso poco frequenti, può potenzialmente offrire una riduzione significativa dei costi di archiviazione e scrittura.

Pulizia delle tabelle globali inutilizzate

Le tabelle globali di Amazon DynamoDB forniscono una soluzione completamente gestita per l'implementazione di un database multi-regione e multi-attivo, senza dover sviluppare e mantenere la propria soluzione di replica.

Le tabelle globali sono ideali per fornire un accesso a bassa latenza ai dati vicini agli utenti e una regione secondaria per il ripristino di emergenza.

Se l'opzione delle tabelle globali è abilitata per una risorsa allo scopo di fornire un accesso a bassa latenza ai dati, ma non fa parte della strategia di disaster recovery, verifica che entrambe le repliche servano attivamente il traffico di lettura valutandone le metriche. CloudWatch Se una replica non serve traffico di lettura, potrebbe trattarsi di una risorsa inutilizzata.

Se le tabelle globali fanno parte della strategia di ripristino di emergenza, è possibile che sia prevista una replica che non riceva traffico di lettura in uno schema attivo/in standby.

Eliminazione dei backup o dei ripristini inutilizzati () point-in-time PITR

DynamoDB offre due stili di backup. Point-in-timeil ripristino fornisce backup continui per 35 giorni per aiutarvi a proteggervi da scritture o eliminazioni accidentali, mentre il backup su richiesta consente la creazione di istantanee che possono essere salvate a lungo termine. Entrambi i tipi di backup hanno dei costi associati.

Consulta la documentazione di Backup e ripristino per DynamoDB e oint-in-time Backup P per DynamoDB per determinare se nelle tabelle sono abilitati i backup che potrebbero non essere più necessari.