Давайте для начала проясним некоторые понятия:
ALB (Application Load Balancer) направляет запросы на основе HTTP-заголовка или URL-адреса и, таким образом, может предоставлять более изощрённые правила маршрутизации.
NLB(Network Load Balancer) обычно развертывается перед шлюзом API, обрабатывая маршрутизацию трафика на основе IP.
Шлюз API (API Gateway) выполняет задачи больше на уровне приложения. Таким образом, у него другие обязанности, чем у балансировщика нагрузки.
Вариант №1: ALB используется для распределения запросов между различными службами. В связи с тем, что в сервисах реализовано собственное ограничение трафика, аутентификация и т. д., такой подход более гибкий, но требует больше работы на уровне сервиса.
Вариант №2. Шлюз API обеспечивает аутентификацию, ограничение трафика, кэширование и т. д., поэтому на уровне службы меньше работы. Однако этот вариант менее гибкий по сравнению с подходом ALB.
P.S. Советую всегда держать каналы «безмозглыми», а конечные точки «умными». Если следовать такой концепции вариант ALB становится более приемлемый.