Анализ поресурсной детализации расходов
Вы настроите автоматический экспорт данных с детализацией расходов на вашем платежном аккаунте и сформируете отчет, содержащий информацию о сумме расходов на ресурсы в каталоге. Для получения данных из бакета Object Storage будет использоваться язык запросов S3 Select.
Чтобы проанализировать расходы:
- Подготовьте облако к работе.
- Создайте бакет Object Storage.
- Получите детализацию расходов.
- Сформируйте отчет.
Если созданные ресурсы вам больше не нужны, удалите их.
Подготовьте облако к работе
Зарегистрируйтесь в Yandex Cloud и создайте платежный аккаунт:
- Перейдите в консоль управления
, затем войдите в Yandex Cloud или зарегистрируйтесь. - На странице Yandex Cloud Billing
убедитесь, что у вас подключен платежный аккаунт, и он находится в статусеACTIVE
илиTRIAL_ACTIVE
. Если платежного аккаунта нет, создайте его и привяжите к нему облако.
Если у вас есть активный платежный аккаунт, вы можете создать или выбрать каталог, в котором будет работать ваша инфраструктура, на странице облака
Подробнее об облаках и каталогах.
Необходимые платные ресурсы
В стоимость анализа детализации входит плата за хранение данных в бакете и операции с ними (см. тарифы Object Storage).
Настройте окружение
Установите и настройте интерфейс командной строки AWS CLI.
Создайте бакет Object Storage
- В консоли управления
выберите каталог, в котором хотите создать бакет. - В списке сервисов выберите Object Storage.
- Справа сверху нажмите кнопку Создать бакет.
- В поле Имя укажите имя бакета.
- Нажмите кнопку Создать бакет.
Получите детализацию расходов
-
Перейдите в сервис Yandex Cloud Billing
. -
В списке платежных аккаунтов выберите нужный.
-
Перейдите на вкладку Детализация.
-
Справа сверху нажмите кнопку Экспорт детализации и выберите Регулярный экспорт.
-
В открывшемся окне:
- В поле Бакет укажите имя бакета, созданного ранее. В нем будет храниться CSV-файл с детализацией.
- В поле Папка укажите название папки для файла. Последний символ должен быть
/
. - В поле Язык выберите язык, на котором будут отображаться названия продуктов – English или Русский.
- В поле Детализация выберите тип детализации *Поресурсная.
-
Нажмите кнопку Создать.
Сформируйте отчет
-
Выполните запрос в Object Storage и сохраните результат выполнения в файл:
-
Для удобства работы сохраните:
-
Имя бакета, в котором хранится файл с детализацией, в переменную
$bucket
:bucket=<имя_бакета>
-
Ключ объекта с детализацией в переменную
$key
:key=<ключ_объекта>
-
Выражение для запроса данных из файла с детализацией на языке S3 Select в переменную
$query
:query="select service_name,resource_id,sku_id,sku_name,\"date\",cost from S3Object where service_name='Compute Cloud'"
-
-
Выполните команду:
aws --endpoint https://storage.yandexcloud.net s3api select-object-content \ --bucket $bucket \ --key $key \ --expression "$query" \ --expression-type 'SQL' \ --input-serialization 'CSV={FileHeaderInfo=USE,FieldDelimiter=,}' \ --output-serialization 'CSV={}' \ "output.csv"
-
-
Чтобы вывести сумму расходов для каждого ресурса, выполните агрегирующий запрос при помощи утилиты
awk
:< output.csv awk -F, '{n[$2]+=$6} END{for(i in n){print n[i] "\t" i}}' | sort -nrk1
Результат:
591.206 c8rska9493********** 254.092 c8rk36jv5n********** 93.4481 a7l9vsb1bt********** ... 0.742366 fdv0u8gkl********** 0.694901 c8rhi3km7********** 0.545707 a7l7fb0at**********
Как удалить созданные ресурсы
Чтобы остановить работу и перестать платить за созданные ресурсы: