У меня есть несколько учетных записей AWS, и мне нужно перечислить все корзины S3 для каждой учетной записи, а затем просмотреть общий размер каждой корзины.
В настоящее время я могу просматривать только объем хранилища одного сегмента S3 с:
aws s3 ls s3://mybucket --recursive --human-readable --summarize
Ответы:
Разрешение 1
Поэтому я решил это с помощью следующего сценария. Первоначально я разместил вопрос на случай, если есть более простой способ, о котором я не знал.
Разрешение 2
Использование Dashboards в CloudWatch в консоли AWS.
Затем вы можете просто указать все сегменты S3 и добавить статистику чисел, чтобы показать метрики размера хранилища.
Это не будет стоить вам много вызовов API и может быть значительно быстрее в зависимости от размера сегментов s3 (достаточно времени, чтобы получить размер для очень больших сегментов).
решение суда
Создание Dashboard ( Решение 2 ) для каждой учетной записи AWS было для меня наиболее эффективным вариантом, поскольку для меня гораздо быстрее войти в систему и получить показатели вручную из каждой учетной записи AWS, чем ждать завершения вызовов API сценариев. :(
источник
| awk END'{print}'
?[@]
в"${buckets[@]}"
?Вам нужно будет написать скрипт, который анализирует и запрашивает эти данные, потому что, насколько я знаю, нет инструмента или функции cli, которые выполняют это. К счастью, вы можете собрать всю эту информацию с помощью CLI.
Перечислите и проанализируйте все учетные записи в вашей организации.
Для каждой учетной записи перечислите и проанализируйте все сегменты.
Наконец, получите размер каждой корзины в каждой учетной записи. Вы можете использовать ту же команду cli, что и раньше, но имейте в виду, что вы будете указывать индивидуальный размер каждого элемента в корзине. Вы также можете использовать эту команду cli, чтобы получить размер сегмента.
источник
Вам придется написать скрипт, чтобы сделать это, если нет инструмента для этого, который я не могу найти.
Если вы работаете с несколькими учетными записями aws, вам необходимо переключаться между учетными записями, чтобы получить размеры сегментов.
Чтобы получить все корзины и их общий размер, вы можете использовать « aws s3api ». Используя
list-buckets
вы можете получить все корзины в одной учетной записи, а затем вы сможете перечислить их размеры и попробовать следующую учетную запись.источник
Ни один из них не показывает размер корзины, если включено управление версиями и огромное количество данных было «удалено». В консоли графического интерфейса S3 на вкладке «Метрики» отображается то, за что вам выставлен счет.
Удалите следующую команду из скрипта, найденного по адресу /server/84815/how-can-i-get-the-size-of-an-amazon-s3-bucket . Хорошо работает на Windows. Заменить
yourregion
иyourbucketname
: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
Это дает средний размер в байтах за дни, ограниченные временем начала и окончания. Результат может вас шокировать, если в вашей корзине включена поддержка версий (активна) и вы думаете, что «удалили» огромные объемы данных.
Чтобы очистить корзины с поддержкой версий, вы должны установить правило LifeCycle. Вы можете навсегда удалить предыдущие версии. Вы можете опустить флажки на шаге Переходы.
источник