Tengo varias cuentas de AWS y necesito enumerar todos los depósitos de S3 por cuenta y luego ver el tamaño total de cada depósito.
Actualmente, solo puedo ver el tamaño de almacenamiento de un solo cubo S3 con:
aws s3 ls s3://mybucket --recursive --human-readable --summarize
Respuestas:
Resolución 1
Así que resolví esto con el siguiente script. Originalmente publiqué la pregunta por si había una manera más fácil de la que no estaba al tanto.
Resolución 2
Uso de paneles en CloudWatch en la consola de AWS.
Luego, simplemente puede especificar todos los depósitos de S3 y agregar las estadísticas de números para mostrar las métricas de tamaño de almacenamiento.
Esto no le costará muchas llamadas a la API y puede ser significativamente más rápido dependiendo del tamaño de los cubos s3 (lleva bastante tiempo obtener el tamaño en cubos muy grandes).
Veredicto
Crear el Tablero ( Resolución 2 ) en cada cuenta de AWS fue la opción más eficiente para mí porque es mucho más rápido para iniciar sesión y tomar las métricas manualmente de cada cuenta de AWS que esperar a que finalicen las llamadas a la API de scripts. :(
fuente
| awk END'{print}'
?[@]
en"${buckets[@]}"
?Deberá escribir un script que analice y consulte estos datos porque, hasta donde yo sé, no existe una herramienta o función cli que realice esto. Afortunadamente, puede recopilar toda esta información con la CLI.
Enumere y analice todas las cuentas en su organización.
Para cada cuenta, enumere y analice todos los cubos.
Finalmente, obtenga el tamaño de cada cubo dentro de cada cuenta. Puedes usar el mismo comando cli que eras antes, pero ten en cuenta que vas a enumerar el tamaño individual de cada elemento dentro del cubo. También puede usar este comando cli para obtener el tamaño del depósito.
fuente
Tendrás que escribir un script para hacer esto a menos que haya una herramienta para hacerlo que no pueda encontrar.
Si está trabajando con varias cuentas aws, deberá cambiar entre cuentas para obtener los tamaños de los depósitos.
Para obtener todos los cubos y su tamaño total, puede usar ' aws s3api '. Utilizando
list-buckets
puede obtener todos los cubos en una cuenta y luego podrá enumerar sus tamaños y probar la siguiente cuenta.fuente
Ninguno de estos muestra el tamaño del depósito si el Control de versiones está activado y se han "eliminado" cantidades masivas de datos. En la consola S3 GUI, la pestaña Métricas muestra lo que se le factura.
Eliminó el siguiente comando de un script que se encuentra en /server/84815/how-can-i-get-the-size-of-an-amazon-s3-bucket . Funciona bien en Windows. Sustituto
yourregion
yyourbucketname
:aws cloudwatch get-metric-statistics --namespace AWS/S3 --start-time 2019-05-09T00:01:00Z --end-time 2019-05-11T23:59:00Z --period 86400 --statistics Average --region yourregion --metric-name BucketSizeBytes --dimensions Name=BucketName,Value=yourbucketname Name=StorageType,Value=StandardStorage
Esto proporciona el tamaño promedio en bytes durante los días delimitados por las horas de inicio y finalización. El resultado puede sorprenderle si su depósito tiene el Control de versiones habilitado (activo) y cree que ha "eliminado" cantidades masivas de datos.
Para limpiar los depósitos habilitados para el control de versiones, debe establecer una regla de LifeCycle. Puede elegir eliminar permanentemente las versiones anteriores. Puede omitir las casillas de verificación en el paso Transiciones.
fuente