Оригинал статьи здесь: https://dashbird.io/blog/cost-efficient-api-infrastructures-for-serverless-backends/

AWS API Gateway — отличный сервис, но может быть довольно дорогим, а в некоторых случаях даже непомерно дорогим.

Application Load Balancer является жизнеспособной альтернативой, поскольку он легко интегрируется с функциями Lambda, а также отличается высокой масштабируемостью и надежностью. Для очень небольшого трафика API Gateway, вероятно, будет победителем, но в случаях с высокой пропускной способностью ALB способен обеспечить экономию до 90%.

Давайте набросаем пример и посмотрим, как они сравниваются. Рассмотрим API, который работает 24 часа в сутки, 7 дней в неделю, получает около 5 миллионов запросов в день со средней скоростью 60 RPS (запросов в секунду) и максимальной скоростью 120 RPS. Размер полезной нагрузки запроса/ответа составляет в среднем 1 КБ каждый, и у него есть 10 правил для очистки и маршрутизации запрошенных URL-адресов к нижестоящим ресурсам, таким как функции Lambda.

Выполняя математические расчеты для этого сценария, ALB может сэкономить от 60% до 90% по сравнению со службами REST API шлюза API и HTTP API. Часть затрат на ALB фиксирована и не зависит от фактического использования, поэтому чем выше трафик API, тем выше будет возможность сократить расходы.

Если API Gateway по какой-либо причине действительно необходим, рассмотрите возможность использования новой доступной версии HTTP API. Он упрощен, в три раза дешевле, чем традиционный сервис REST API, и является хорошей альтернативой для использования во внутренних API, например, для разделения функций Lambda.

Основная причина, по которой мы рекомендуем использовать HTTP API для внутренних целей, заключается в отсутствии детального контроля параллелизма и функций безопасности общего доступа. Брандмауэр на самом деле не нужен для внутреннего API. Также может не быть необходимости контролировать параллелизм для каждого клиента, поэтому управление на уровне Lambda должно быть в порядке.

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

Также при использовании API Gateway может быть интересно включить кэширование. Его можно применять ко всему API или только к определенным методам, которые допускают кешированные ответы. Время жизни также настраивается. Недостатком является то, что AWS взимает почасовую плату за память, выделенную для кеша, а не за фактическое использование. Возможность сократить расходы будет зависеть от того, получает ли ваш API слишком много похожих запросов за короткие промежутки времени.

Оптимизация конечных точек API является движущейся целью, поскольку связанные с ней базовые службы обычно постоянно меняются. Необходимо иметь надлежащие инструменты для мониторинга и оповещения о появлении возможностей для оптимизации производительности и затрат. Dashbird — это бессерверная служба видимости, которая предоставляет все необходимое, чтобы оставаться в курсе расходов на облачную архитектуру, от шлюзов API до функций Lambda, очередей SQS и т. д. Попробуйте сегодня бесплатно, кредитная карта не требуется.