Perché c'è una discrepanza tra i parametri di CloudWatch e i parametri di archiviazione di AWS CLI per Amazon S3?

Ultimo aggiornamento: 03-12-2021

Sto riscontrando una discrepanza tra i parametri di Amazon CloudWatch e i parametri di archiviazione AWS Command Line Interface (AWS CLI) per Amazon Simple Storage Service (Amazon S3). Perché c'è una differenza così grande nelle dimensioni di archiviazione riportate tra le due fonti?

Breve descrizione

Se c'è una discrepanza tra i parametri di archiviazione CloudWatch per Amazon S3 e i parametri calcolati utilizzando AWS CLI, verifica quanto segue:

  • Controllo delle versioni degli oggetti.
    Nota: la caratteristica di controllo delle versioni degli oggetti in Amazon S3 conserva più versioni di un oggetto nel tuo bucket. Per impostazione predefinita, il controllo delle versioni degli oggetti di Amazon S3 è disabilitato sui bucket e devi abilitare esplicitamente la caratteristica. Inoltre, i calcoli dei parametri di archiviazione di AWS CLI contano solo la versione e le dimensioni più recenti di ciascun oggetto archiviato nel bucket.
  • Caricamenti in più parti incompleti.
    Nota: i caricamenti in più parti incompleti non sono inclusi nei calcoli di archiviazione di AWS CLI, ma vengono calcolati come archiviazione nei parametri di CloudWatch.

Per identificare la causa della discrepanza di reporting, verifica se hai abilitato il controllo delle versioni degli oggetti e cerca eventuali caricamenti in più parti nel tuo bucket. Questi due fattori possono comportare un aumento del valore della dimensione del bucket calcolata in CloudWatch. Per maggiori informazioni, consulta la sezione Parametri di archiviazione giornaliera di Amazon S3 CloudWatch per i bucket.

Suggerimento: se hai caricamenti in più parti incompleti in Amazon S3, valuta la possibilità di creare una regola di configurazione del ciclo di vita. Questa regola di configurazione del ciclo di vita può ripulire automaticamente tutte le parti incomplete, riducendo i costi di archiviazione dei dati. Tieni presente che le regole del ciclo di vita funzionano in modo asincrono, quindi potrebbe verificarsi un ritardo nell'operazione. Tuttavia, non appena gli oggetti vengono contrassegnati per l'eliminazione, non sarà fatturata l'archiviazione anche se l'oggetto non è stato ancora rimosso.

Inoltre, i parametri di monitoraggio di Amazon S3 vengono registrati ogni giorno e pertanto potrebbero non presentare le informazioni più aggiornate. Nel frattempo, CloudWatch monitora le risorse e le applicazioni AWS in tempo reale.

Risoluzione

Parametri di archiviazione giornaliera in CloudWatch

In CloudWatch, il parametro BucketSizeBytes acquisisce tutti i tipi di archiviazione Amazon S3 e Amazon S3 Glacier, le versioni degli oggetti e tutti i caricamenti in più parti incompleti. Questo valore viene calcolato sommando tutte le dimensioni degli oggetti, i metadati nel tuo bucket (oggetti correnti e non correnti) ed eventuali dimensioni di caricamenti in più parti incompleti. Ad esempio, il parametro BucketSizeBytes calcola la quantità di dati (in byte) archiviati in un bucket Amazon S3 in tutte queste classi di archiviazione di oggetti:

  • S3 Standard
  • S3 Intelligent-Tiering
  • S3 Standard-IA
  • S3 One Zone-IA
  • S3 Reduced Redundancy Storage
  • S3 Glacier Deep Archive
  • S3 Glacier

Inoltre, il parametro NumberOfObjects in CloudWatch contiene il numero totale di oggetti archiviati in un bucket per tutte le classi di archiviazione. Questo valore comprende tutti gli oggetti nel bucket (sia correnti che non correnti), insieme al numero totale di parti per eventuali caricamenti in più parti incompleti. Il parametro NumberOfObjects calcola anche il numero totale di oggetti per tutte le versioni di oggetti nel bucket. Ad esempio, se disponi di due versioni dello stesso oggetto, le due versioni saranno conteggiate come due oggetti separati. Per ulteriori informazioni, consulta la sezione Parametri e dimensioni.

Calcoli di archiviazione giornalieri utilizzando AWS CLI

Per calcolare i parametri di archiviazione per Amazon S3 utilizzando AWS CLI, utilizza la seguente sintassi del comando:

aws s3 ls --summarize --human-readable --recursive s3://bucketname | grep -i total

Questa sintassi di comando calcola il numero totale e le dimensioni degli oggetti nel tuo bucket Amazon S3. Tuttavia, tieni presente che viene calcolata solo la versione corrente di ciascun oggetto memorizzato nel bucket (e le sue dimensioni). I caricamenti in più parti, i marker di eliminazione e le versioni non correnti di ciascun oggetto non vengono calcolati nella dimensione totale del bucket o nel numero totale di oggetti.

Caricamenti in più parti incompleti

aws s3api list-multipart-uploads --bucket <bucket-example>

Quindi, elenca tutti gli oggetti nel caricamento in più parti utilizzando il comando list-parts e il valore UploadId:

aws s3api list-parts --bucket <bucket-example> --key large_test_file --upload-id <examplevalue>

Creazione di una regola del ciclo di vita

Per eliminare automaticamente i caricamenti in più parti, crea una regola di configurazione del ciclo di vita. Completa la seguente procedura:

1.    Apri la console Amazon S3.

2.    Scegli la scheda Gestione.

3.    Scegli Crea nuova policy.

4.    Aggiungi il nome della policy.

5.    Scegli Seleziona - Elimina i contrassegni di eliminazione scaduti o i caricamenti in più parti incompleti.

6.    (Facoltativo) Se il tuo bucket non ha una versione, scegli Elimina caricamenti in più parti incompleti.

Controllo delle versioni degli oggetti

Per esaminare e controllare il tuo bucket Amazon S3 per diverse versioni di oggetti, utilizza l'elenco di inventario di Amazon S3. Un modello di elenco inventario di Amazon S3 contiene un elenco degli oggetti nel bucket di origine e i metadati per ciascun oggetto. Il file dell'elenco di caricamento dati acquisirà i metadati come nome del bucket, dimensioni dell'oggetto, classe di archiviazione e ID versione.


Questo articolo è stato utile?


Hai bisogno di supporto tecnico o per la fatturazione?