Оптимизация инфраструктуры: снижаем счет за ресурсы без ущерба для бизнеса
Аудит лишних подписок и участившихся походов в бар — первое, что делает человек, который хочет больше экономить. То же самое можно и нужно делать на уровне компании, когда речь идет о счетах за IT-инфраструктуру. Сегодня поговорим о ряде мер, которые помогут уменьшить ежемесячный платеж за аренду серверов и сопутствующих услуг. Разделим их на базовые, легкие, сложные в реализации и бесплатные.
Базовые меры
Здесь опишем действия, которые хорошо бы сделать в любом случае. Даже если нет цели начать экономить.
Обеспечьте мониторинг инфраструктуры
Важно понимать, в каких местах есть нерациональное переиспользование мощностей. Убедитесь, что вы можете проследить за работой сетевого оборудования, ОС, базы данных, платформ виртуализации, приложений и других компонентов IT-инфраструктуры.
В мониторинге можно посмотреть, сколько сейчас используется памяти, какова нагрузка на серверы, какие запросы тормозят систему. В идеале составить единый дашборд для инфраструктуры: если у вас 15 серверов, лучше видеть их состояние в нескольких окнах, чем изучать «амбулаторную карту» каждого сервера отдельно.
Удовлетворить базовые потребности мониторинга могут такие известные системы, как Zabbix, Prometheus, Grafana, Datadog, InfluxDB (TICK stack).
Для большей картины можете добавить внутренний мониторинг провайдера — он покажет связь потребленных ресурсов и потраченных денег. В Selectel это реализовано для клиентов облачной платформы. В панели управления — раздел Потребление платформы, вкладка Текущая стоимость — вы увидите таблицу со всеми ресурсами, за которые списываются деньги. Они разделяются по проектам, зонам и регионам. Убедитесь, что у вас нет рудиментарных элементов инфраструктуры — образ диска или плавающий IP, за которые списываются деньги.
Цены актуальны на 13 апреля 2022 г.
Если какой-то сервер выполнил задачи и больше не нужен, удалите его вместе с IP-адресом и дисками. Для этого выделите объекты, которые хотите удалить вместе с сервером, в диалоговом окне.
Дисклеймер: данные в таблице обновляются с периодичностью 1–1,5 часа. Сразу после удаления объекта вы все еще можете видеть его в таблице, хотя списываться деньги за него уже не будут. Потребление лучше проверять спустя несколько часов.
Проверьте медленные и наиболее частые запросы к базе данных
С помощью выбранного инструмента мониторинга выведите топ медленных запросов, или так называемый slowlog. Если у вас есть SQL-запросы, которые выполняются дольше секунды, потратьте время на их исправление. Также стоит провести ревью наиболее частых запросов. Вы выиграете в производительности, даже если оптимизируете их на 50 миллисекунд.
Выполнив такую чистку, уже можно задаться вопросом: действительно ли сервер «не тянет» и нужно озаботиться арендой более производительной машины.
Выберите плавающий IP-адрес вместо публичной подсети
Если для решения задачи вам нужна одна или несколько виртуальных машин с доступом в интернет, выберите плавающий IP-адрес. Этот термин OpenStack, на базе которого создана облачная платформа Selectel, нередко сбивает с толку клиентов. Плавающий не значит динамический. Плавающий IP — это публично маршрутизируемый IP-адрес, который вы приобретаете у провайдера.
То есть это обычный статический IP, который работает на основе технологии nat. Если вам нужны 1–2 «айпишника», смело берите плавающие IP-адреса вместо публичной подсети на 5 и более адресов. Так вы не переплатите за пустующие адреса, сэкономив в среднем 80% от стоимости публичной сети.
Перенесите нетребовательные к ресурсам серверы на инстансы с долей ядра
Если часть ваших сервисов не нуждается в полноценном ресурсе виртуальной машины, обратитесь к серверам с гибкой производительностью.
В Selectel такие виртуальные машины можно заказать в линейке Shared Line. В ней доступны конфигурации с 1, 2 и 4 ядрами на 10%, 20% и 50% гарантированной мощности. Производительность облачного сервера не опустится ниже указанной доли и может временно доходить до 100%, если другие клиенты используют ресурсы не по максимуму или часть ядра свободна от «соседей».
Где пригодятся дешевые серверы:
- при запуска стейджинга (развертывайте среду по шаблону на vds и сворачивайте ее после использования, заплатив только за потребленные ресурсы),
- для хостинга сайта,
- в создании jump-хоста, или инсталляционного сервера,
- для развертывания небольшого VPN-сервера.
Понять, на какую именно мощность работает ваш сервис, помогут системы мониторинга, которые мы упоминали выше. Также, если вы клиент Selectel, обратитесь к вкладке Статистика на странице сервера. Там вы найдете график, показывающий загрузку по vCPU. Подробная инструкция — в базе знаний.
Возможности серверов линейки Shared Line →
Легкие в реализации меры
В этом блоке соберем действия, которые потребуют большего времени, но базовых навыков системного администратора.
Кэшируйте статический контент
Системы мониторинга могут показать увеличение трафика на сайт или сервис. Обычно это решается вертикальным масштабированием инфраструктуры — увеличением ресурсов серверов — или расширением сетевого канала, но можно обойтись меньшей кровью.
Изучите природу трафика. Если пользователи забирают статику — картинки, тексты с сайта и подобный контент, есть смысл кэшировать данные через серверы CDN. Услуга сетей доставки контента может выйти дешевле, чем заказ новой вычислительной машины.
Рассчитать стоимость CDN →
Еще один классический способ кэширования, который используют многие компании, — это передача статики через nginx. Так запросы к контенту не «тревожат» бэкенд.
Пример: Новостной сайт столкнулся с проблемой повышения трафика. Работал на серверах на базе VMware, которые буквально загибались под нагрузкой. Проблему полностью решил инструмент для кэширования страниц на уровне веб-сервера. Сайту не пришлось масштабировать облако. Для компаний, которые работают со статическим контентом — новостные сайты, маркетплейсы, — это мастхэв.
Выберите выгодный способ снятия и хранения бэкапов
Клиенты Selectel могут хранить образы дисков сразу в панели управления — это удобно для быстрого создания нового диска из образа или восстановления данных.
Образ можно снять с реального диска в сервере Selectel и хранить в панели управления, но это не бесплатно. Для суровой экономии можно скачать его и разместить в локальном хранилище (даже на бесплатном гугл-диске, если данные позволяют), а при необходимости легко загрузить обратно в облако.
Скачать образ диска в Selectel можно в панели управления.
Есть нюанс: там, где бэкапы снимаются вручную, всегда есть место для ошибок сотрудников. Можно забыть про очередной бэкап или сохранить копию не там, где нужно. Если потеря данных будет стоить компании немало, лучше инвестировать в готовый сервис — например, в услугу автоматических бэкапов. Это сэкономит деньги и в настоящем, и в будущем.
Услуга бэкапов по расписанию позволяет настроить автоматические бэкапы для сетевых дисков. Они будут создаваться и удаляться в выбранный пользователем день и время — ежедневно, каждую субботу, каждые вторник и четверг, в иных вариациях. С помощью настроек частоты создания копий и их объема вы сможете контролировать потребление ресурсов. А также не переплатите за устаревшие образы, которые забыли удалить.
Больше о бэкапах по расписанию →
Если готовый сервис — не ваш вариант, и вы давно настроили хранение бэкапов в облачном хранилище через API и скрипты, убедитесь в том, что выбрали холодный тип хранения. Так будет почти в два раза дешевле.
Устанавливайте квоты на ресурсы
Если провайдер предоставляет вам возможность настроить верхний порог потребления ресурсов, воспользуйтесь им. Выделяемые квоты могут раздражать, но в период экономии спасут от случайного перепотребления и незапланированных трат.
Особенно это актуально для тех, кто предоставляет ресурсы облака Selectel своим клиентам, подрядчикам или командам. Настроить квоты можно в одноименном разделе панели управления. Подробнее о них — в базе знаний.
Часть установленных в проекте квот.
Подберите более скромную конфигурацию
Пример: Компания приобрела выделенный сервер с большим диском. В результате оказалось, что такой большой диск не нужен — он заполняется данными лишь на 30–50%. Остальное простаивает и впустую ест деньги. Уменьшить диск нельзя, поэтому лучшей альтернативой станет переезд на машину с другой конфигурацией. Такое «затягивание поясов» — крайняя мера, но ее тоже можно иметь в виду.
Нередко компании руководствуются правилом «возьму сервер на вырост». В случае базы данных, например, придерживаются такой логики: лучше переплачу, чем буду переезжать через полгода на новый сервер. Однако переезда можно избежать совсем: так, в серверах облачной платформы увеличить размер диска можно в любой момент — через интерфейс панели управления (главное, чтобы были квоты). А значит, нет смысла платить больше.
Дисклеймер: Советуем расширять диск, не дожидаясь его полного заполнения. Увеличение размера диска может занять какое-то время. Особенно это актуально для локальных дисков.
Об увеличении размера дисков →
Более сложные меры
Здесь как минимум понадобится хороший DevOps-специалист и его драгоценное время.
Обеспечьте автоскейлинг инфраструктуры с помощью виртуальных машин
Легкое масштабирование инфраструктуры обеспечат облачные серверы, но не всегда такая инфраструктуры будет выгодна бизнесу. Есть ситуации, когда при подсчете экономики выделенный сервер выйдет дешевле.
Если у вас хороший рабочий «дедик», но иногда нужно немного экстра ресурсов, можно балансировать нагрузку на несколько виртуальных машин в дополнение к выделенному серверу. Они будут разворачиваться при повышении нагрузки и отключаться при возвращении к прежнему уровню. Также в Selectel есть клиенты, которые поднимают Kubernetes на выделенных серверах и запускают при необходимости группы нод в облаке. Профит в том, что не придется менять конфигурацию нынешнего сервера или полностью переезжать в облако.
Готовые инструкции по реализации подобных сценариев найти сложно — обычно в компаниях этим занимается опытный сисадмин, хорошо знающий особенности инфраструктуры компании.
Вынесите функцию чтения данных на отдельный сервер
Пример: Компания использует довольно большую базу данных PostgreSQL, примерно на 1,3 ТБ. Нагрузка идет в основном на запись. Отдельный сервис читает данные с реплики и переносит в ClickHouse, в котором строится аналитика. Таким образом, компания снимает часть нагрузки со своей базы данных и продолжает использовать под базу довольно скромный по мощности облачный сервер.
Такое «разделение обязанностей» можно отнести к best practices. Любой компании важно оценить характер работы базы данных. Стоит ли грузить сервер под БД дополнительными операциями? Возможно, будет дешевле вынести их на небольшой недорогой виртуальный сервер (тут также можно рассмотреть процентный инстанс) и выполнять все операции с данными по ночам, когда общая нагрузка на системы сильно снижена.
Это бесплатно
Пункты ниже касаются именно услуг Selectel, но вы всегда можете запросить аналогичную информацию у вашего провайдера IT-инфраструктуры.
Трафик между услугами
Трафик между всеми услугами Selectel бесплатный. Поэтому выгоднее использовать несколько продуктов Selectel, чем настраивать связность с сервером on-premise или комбинировать услуги нескольких провайдеров.
Так, вы можете держать продакшен на выделенных серверах или colocation, тестовые среды разворачивать в облачной платформе, а медиафайлы сервиса хранить в объектном хранилище Selectel. Все «транзакции» между частями инфраструктуры не будут стоить ни копейки.
3 ТБ бесплатного трафика для публичных адресов
Помимо трафика между услугами, у клиентов облачной платформы Selectel есть еще 3 ТБ бесплатного трафика в месяц между инфраструктурой и внешними адресами. Используйте эту возможность в своих целях и постарайтесь не выходить за указанный лимит — так он не отразится на статусе баланса.
Услуги в бете
Если новый продукт находится на стадии бета-тестирования, это не значит, что он не готов к работе. Чаще всего у него уже есть большая часть функционала, но команде разработчиков нужны реальные пользователи для ускорения развития услуги. С помощью клиентов они получают подробный фидбек и ловят баги, которые проявляются лишь при «боевом крещении».
В Selectel, например, в бете находятся сразу несколько услуг:
- Container Registry. Если вы пользуетесь Managed Kubernetes, храните образы контейнеров в реестре бесплатно. В рамках одного проекта можно использовать один реестр объемом не более 20 ГБ. В него вместится до 50 репозиториев.
- Облачные базы данных Redis. Первая NoSQL-база данных в списке поддерживаемых Selectel. Если вам нужно поддержать нереляционную БД, не вдаваясь в сложности инфраструктуры, попробуйте это решение.
В большинстве случаев на услуги в бете не распространяется SLA: в интерфейсе могут встречаться баги, а некоторые элементы систем могут вести себя непредсказуемо. Для сервисов, где недопустим простой, такие продукты лучше не использовать, а для остальных услуга может стать бесплатным решением, иногда на достаточно продолжительный период.
Полностью готовой и работающей, но на данный момент бесплатной для клиентов является услуга L3 VPN. С помощью этой изолированной сети вы можете маршрутизировать трафик между выделенными и облачными серверами из разных локаций.
О выходе услуг в коммерческий релиз вы узнаете заранее, так что будет возможность отключить услугу или продолжить пользоваться, убедившись в ее пользе для бизнеса.
Заключение
Мы рассмотрели немало способов оптимизации инфраструктуры для снижения цены за аренду — от базовых до более сложных. Все они позволят снизить нагрузку на актуальное оборудование, отказаться от лишнего и более рационально распоряжаться имеющимися мощностями.
Если у вас есть успешный опыт экономии, поделитесь им в комментариях! Интересно услышать ваши варианты.