CloudWatch Log стоит слишком дорого
Я занимался мастерингом Amazon AWS для проекта, который собирает приличное количество данных. Большинство услуг было очень дешевым, однако, хранение журнала для Cloud Watch занимает доминирующее положение, хранение журнала наблюдения за облаком составляет 13 долларов от общей суммы 18 долларов. Я уже удаляю логи на ходу.
Как избавиться от журналов из хранилища (кажется, что удаление групп из консоли не делает этого) или снизить стоимость журналов (в этом сообщении указано, что это должно быть $0,03/ ГБ, что больше, чем у меня) или что-то другое?
Какие стратегии используют люди?
3 ответа
Не регистрируйте все
Можете ли вы сказать нам, сколько логов / час вы нажимаете?
Одна вещь, которую я выучил за эти годы, это то, что при многоуровневом ведении журнала это хорошо (Debug
, Info
, Warn
, Error
, Fatal
), у него есть два серьезных недостатка:
- замедляет приложение, чтобы оценить все эти уровни во время выполнения - даже если вы говорите "только журнал
Warn
,Error
а такжеFatal
"Отладка и информация все еще оцениваются во время выполнения! - увеличивает затраты на ведение журнала (я использовал LogEntries, а переход на использование рабочей силы devops и затраты на хостинг при запуске кластера LogStash + ElasticSearch просто увеличили количество вещей).
Для справки, я заплатил более 1000 долларов в месяц за регистрацию предыдущих проектов. Соответствие PCI для аудита безопасности требует 2 года журналов, и мы отправляли 1000 журналов в секунду.
Я даже говорил о том, как вы должны вести все в контексте:
http://go-talks.appspot.com/github.com/eduncan911/go-slides/gologit.slide
С тех пор я отказался от этой позиции после сравнительного анализа моих приложений и функций, а также общих затрат на рабочую силу и хранение журналов на производстве.
Теперь я регистрирую только минимальные (ошибки) и использую пакеты, которые отменяют оценку во время выполнения, если уровень журнала не установлен, например, Google
Glog
,
Кроме того, после перехода на разработку Go я принял стратегию очень небольших объемов кода (например, микросервисов и пакетов) и специализированных утилит CLI, что сводит на нет необходимость иметь много Debug
а также Info
операторы в монолитных стеках - если я могу вместо этого просто записывать RPC в / из каждого сервиса. А еще лучше - просто следить за событиями в автобусе.
Наконец, с помощью модульных тестов этих небольших сервисов вы можете быть уверены в том, как работает ваш код - так как они вам не нужны Info
а также Debug
заявления, потому что ваши тесты показывают хорошие и плохие условия ввода. Эти операторы Info и Debug могут входить в ваши модульные тесты, оставляя ваш код свободным от сквозных проблем.
Все это в конечном итоге снижает ваши потребности в журнале.
Альтернатива: отфильтруйте свои логи
Как вы отправляете свои логи?
Если вы не можете исключить все Debug, Infos и другие строки, другая идея состоит в том, чтобы отфильтровать ваши журналы, прежде чем отправлять их с помощью sed
, awk
или так, чтобы передать в другой файл.
Когда вам нужно что-то отладить, тогда вы меняете sed/awk и отправляете дополнительную информацию журнала. После завершения отладки вернитесь к фильтрации и регистрируйте только минимальные значения, такие как исключения и ошибки.
В цену, которую вы платите, входят 2 компонента:
1) затраты на прием пищи: вы платите, когда отправляете / загружаете логи
2) затраты на хранение: вы платите за хранение журналов.
затраты на хранение очень низки (3 цента / ГБ, так что, догадываясь, проблема не в этом, т. е. увеличенное использование - красная сельдь, которая стоит 3 цента от общего счета за облачные часы). Вы платите за прием пищи, когда это происходит. Единственный реальный способ уменьшить это - уменьшить количество записей, которые вы ведете, и / или прекратить использование cloudwatch.
Похоже, вам нужно изменить настройки хранения журнала, чтобы не хранить больше данных журнала.
На этой странице перечислены текущие цены на журналы CloudWatch и CloudWatch. Если вы считаете, что вас завышают, вам нужно обратиться в службу поддержки AWS.