CoderCastrov logo
CoderCastrov
Парсер

Как YipitData сократила наш счет AWS на $2.5 миллиона, или 50%

Как YipitData сократила наш счет AWS на $2.5 миллиона, или 50%
просмотров
4 мин чтение
#Парсер

Поскольку организации стремятся сократить расходы, мы решили поделиться информацией о том, как мы сократили наш счет AWS на 50% или $2.5 миллиона без влияния на наш бизнес.

Для контекста, я являюсь техническим директором YipitData. Мы анализируем альтернативные данные для 200 крупнейших хедж-фондов и корпораций в мире. Мы проводим парсинг веб-сайтов и анализ данных в масштабах (каждый месяц мы делаем миллиарды запросов, собирая данные с сотен веб-сайтов).

В прошлом году мы провели обзор наших затрат на AWS. К нашему удивлению, несколько простых изменений позволили сэкономить более $2.5 миллионов в год - более чем на 50%!

Ниже приведены некоторые из наиболее значимых изменений, которые мы внесли, и мы надеемся, что некоторые из них будут полезны для вашей организации.

Кстати, если вы делаете миллионы веб-запросов в месяц, вам может быть интересно использовать нашу инфраструктуру вместо того, чтобы нести все расходы на ее управление самостоятельно. Просто напишите на corporate@yipitdata.com или мне на steve[at]yipitdata[dot]com.



Используйте экземпляры EC2 Spot вместо экземпляров On-Demand

  • **Экономия: **от $0.0255/час до $0.0091/час, сэкономлено 64% ($372 тыс. в год).
  • **Почему? **Много вычислительных задач планируются или редко требуют 100% времени работы. Хотя экземпляры Spot могут быть прерваны в любое время, мы планируем такое поведение и получаем значительные сбережения. Мы начали это делать много лет назад, но в 2019 году мы тщательно рассмотрели, что действительно требует непрерывной работы и перенесли все остальное на Spot.

Перенесите все в Огайо (US-East-2)

  • Экономия: от $0.0091/час до $0.005/час для Spot EC2, сэкономлено 45% ($144 тыс. в год).
  • Почему? В то время как многие используют более устоявшийся регион US-East-1 (Вирджиния), US-East-2 (Огайо) имеет гораздо более низкие цены на Spot EC2. Мы перенесли большую часть нашей инфраструктуры туда, чтобы воспользоваться низкими ценами на Spot без больших затрат на передачу данных.

Использование общедоступных экземпляров EC2 вместо частных экземпляров

  • **Экономия: **от $0,045/ГБ до бесплатно, сэкономлено 100% (сэкономлено $122 тыс. в год).
  • Почему? Для парсинга веб-сайтов требуется множество запросов с наших серверов в общедоступный Интернет. Поскольку мы не передаем конфиденциальную информацию в этих запросах и готовы пожертвовать безопасностью, использование общедоступных машин полностью устраняет расходы на передачу данных.

Минимизация расходов на базы данных путем отделения запросов от хранения

  • **Экономия: **Мы снизили расходы на базы данных с более чем $1,2 млн в год до менее чем $500 тыс., сэкономлено около 60%.
  • Почему? В 2019 году мы завершили миграцию с AWS Redshift на хранение данных в (гораздо более дешевом) AWS S3 и использование сервисов, таких как Athena или Databricks, для запросов и преобразований данных. Теперь мы платим только за вычисления при запросе данных нашей командой, а не за простой простоя данных в постоянно работающей базе данных.
(Это шутка в формате данных Apache. Извините.)

Минимизация использования Elasticache Redis в пользу DRedis и SQS

  • Экономия: Наши затраты на Redis/DRedis/SQS снизились с $0.068/час до $0.035/час, сэкономив 50% (сэкономлено $180 тыс. в год).
  • Почему? Хранилище данных в памяти, такое как Redis, отлично подходит для очень быстрых операций поиска данных и очередей, но мы обнаружили, что для большинства нашего программного обеспечения нам не требуется такой уровень производительности. Миграция на SQS и DRedis (наша собственная реализация Redis на диске, с открытым исходным кодом) позволила нам снизить затраты без больших потерь в других областях.

Не AWS, но так же важно: Сокращение затрат на прокси-серверы

Любой, кто знаком с парсингом веб-сайтов или скрапингом, сталкивался с проблемами эффективного сбора данных с сайтов. На нашем масштабе нам пришлось преодолеть широкий спектр проблем, начиная от ограничения скорости до обработки JavaScript, надежности IP-адресов и так далее.

Мы вложили значительные усилия в создание пулов прокси-серверов и инструментов, чтобы мы могли собирать данные с практически любого общедоступного веб-сайта. Исторически мы сотрудничали с более чем 10 поставщиками прокси-серверов по всему миру, чтобы использовать тысячи IP-адресов различного качества. За последний год мы упростили нашу инфраструктуру для легкого развертывания наиболее экономичных прокси-серверов для сбора необходимых данных. Это значительно снизило наши смешанные затраты на прокси:

My, what low throughput costs you have.

Благодаря сотрудничеству с несколькими поставщиками прокси-серверов мы можем умно соотнести качество прокси с тем, что нам нужно для парсинга конкретного сайта:

  • Для большинства веб-сайтов мы можем масштабировать отправку HTTP-запросов через прокси-серверы в дата-центре
  • Другие сайты требуют безголового просмотра через прокси-серверы в дата-центре, что все равно более экономично, чем отправка HTTP-запросов через прокси-серверы с жилыми адресами
  • Для других сайтов мы используем прокси разных уровней качества по мере необходимости
  • Все наши инструменты доступа к данным интегрируются без проблем, поэтому мы легко можем переключаться между разными прокси, юзер-агентами и инструментами, не изменяя наш код парсинга

Экономия: Не жертвуя возможностью собирать данные, мы снизили наши годовые затраты на прокси с $860 тыс. до $510 тыс., сэкономив 40%


Artist’s rendition of the author.

Есть вопросы?

Мы надеемся, что этот пост поможет вам размышлять о способах оптимизации затрат на вашу инфраструктуру! Мы недавно открыли нашу инфраструктуру для скрапинга веб-сайтов для других компаний и понимаем, насколько сложно решать проблемы с доступом к данным, сохраняя при этом экономичность.

Если у вас есть вопросы по любому из вышеуказанного, напишите мне на адрес steve[at]yipitdata[dot]com. Если вас интересует использование нашей инфраструктуры напрямую, напишите нам на адрес corporate@yipitdata.com, и мы свяжемся с вами.