¿Por qué existe una discrepancia entre mis métricas de CloudWatch y las métricas de almacenamiento de la AWS CLI para Amazon S3?

5 minutos de lectura
0

Veo una discrepancia entre las métricas de Amazon CloudWatch y las métricas de almacenamiento de AWS Command Line Interface (AWS CLI) para Amazon Simple Storage Service (Amazon S3). ¿Por qué hay una diferencia tan grande en el tamaño de almacenamiento informado entre las dos fuentes?

Descripción corta

Si hay una discrepancia entre las métricas de almacenamiento de CloudWatch para Amazon S3 y las métricas calculadas mediante la AWS CLI, compruebe lo siguiente:

  • Control de versiones de objetos.
    Nota: La característica de control de versiones de objetos de Amazon S3 conserva varias versiones de un objeto en su bucket. De forma predeterminada, el control de versiones de objetos de Amazon S3 está desactivado en los buckets y debe habilitar la característica de forma explícita. Además, los cálculos de las métricas de almacenamiento de la AWS CLI solo cuentan la versión y el tamaño más recientes de cada objeto que se almacena en el bucket.
  • Cargas multiparte incompletas.
    Nota: Las cargas multiparte incompletas no se incluyen en los cálculos de almacenamiento de la AWS CLI, pero se calculan como almacenamiento en las métricas de CloudWatch.

Para identificar la causa de la discrepancia en los informes, verifique si ha habilitado el control de versiones de objetos y busque cargas multiparte en su bucket. Estos dos factores pueden provocar un aumento del valor de tamaño del bucket calculado en CloudWatch. Para obtener más información, consulte Métricas de almacenamiento diario de Amazon S3 y CloudWatch para buckets.

Consejo: Si tiene cargas multiparte incompletas en Amazon S3, considere la posibilidad de crear una regla de configuración del ciclo de vida. Esta regla de configuración del ciclo de vida limpia automáticamente cualquier parte incompleta, reduciendo el costo del almacenamiento de datos. Tenga en cuenta que las reglas del ciclo de vida funcionan de forma asíncrona, por lo que puede haber un retraso en la operación. Sin embargo, tan pronto como los objetos se marcan para su eliminación, ya no se le factura por el almacenamiento, aunque el objeto no se haya eliminado todavía.

Además, las métricas de monitoreo de Amazon S3 se registran una vez al día, por lo que es posible que no muestren la información más actualizada. Mientras tanto, CloudWatch monitorea los recursos y aplicaciones de AWS en tiempo real.

Resolución

Métricas de almacenamiento diario en CloudWatch

En CloudWatch, la métrica BucketSizeBytes captura todos los tipos de almacenamiento de Amazon S3 y Amazon S3 Glacier, las versiones de objetos y las cargas multiparte incompletas. Este valor se calcula mediante la suma de todos los tamaños de objetos, los metadatos del bucket (tanto los objetos actuales como los no actuales) y los tamaños de carga multiparte incompleta. Por ejemplo, la métrica BucketSizeBytes calculará la cantidad de datos (en bytes) que se almacenan en un bucket de S3 en todas estas clases de almacenamiento de objetos:

  • S3 Standard
  • S3 Capas inteligentes
  • S3 Estándar – Acceso poco frecuente
  • S3 Única zona – Acceso poco frecuente
  • Almacenamiento de redundancia reducida de S3
  • S3 Glacier Deep Archive
  • S3 Glacier

Además, la métrica NumberOfObjects en CloudWatch contiene el número total de objetos que se almacenan en un bucket para todas las clases de almacenamiento. Este valor cuenta todos los objetos en el bucket (tanto los actuales como los no actuales), junto con el número total de partes para cualquier carga multiparte incompleta. La métrica NumberofObjects también calcula el número total de objetos para todas las versiones de los objetos el bucket. Por ejemplo, si tiene dos versiones del mismo objeto, las dos versiones se contarán como dos objetos separados. Para obtener más información, consulte Métricas y dimensiones.

Cálculos diarios de almacenamiento utilizando la AWS CLI

Para calcular las métricas de almacenamiento de Amazon S3 utilizando la AWS CLI, utilice la siguiente sintaxis de comando:

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

Esta sintaxis de comandos calcula el número total y el tamaño de los objetos en el bucket de Amazon S3. Sin embargo, tenga en cuenta que solo se calculan la versión actual de cada objeto que se almacena en el bucket (y su tamaño). Las cargas multiparte, los marcadores de eliminación y las versiones desactualizadas de cada objeto no se calculan dentro del tamaño total del bucket ni del número total de objetos.

Cargas multiparte incompletas

Para revisar la lista de cargas multiparte incompletas, ejecute el comando list-multipart-uploads:

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

A continuación, enumere todos los objetos en la carga multiparte, con el comando list-parts y el valor UploadId:

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

Creación de una regla de ciclo de vida

Para eliminar automáticamente las cargas multiparte, cree una regla de configuración del ciclo de vida. Siga estos pasos:

1.    Abra la consola de Amazon S3.

2.    Elija la pestaña Management (Administración).

3.    Elija Create new policy (Crear nueva política).

4.    Agregue el nombre de la política.

5.    Elija Select - Delete expired delete markers or incomplete multipart uploads (Seleccionar > Eliminar marcadores de eliminación caducados o cargas multiparte incompletas).

6.    (Opcional) Si su bucket no posee un control de versiones, elija Delete incomplete multipart uploads (Eliminar cargas multiparte incompletas).

Control de versiones de objetos

Para revisar y auditar un bucket de Amazon S3 en busca de diferentes versiones de objetos, utilice la lista de inventario de Amazon S3. Un archivo de lista de inventario de Amazon S3 contiene una lista de los objetos del bucket de origen y los metadatos de cada objeto. El archivo de lista de inventario capturará metadatos como el nombre del bucket, el tamaño del objeto, la clase de almacenamiento y el ID de versión.


Información relacionada

Ejemplo 8: Configuración del ciclo de vida para anular las cargas multiparte

Objetos que caducan

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace 2 años