Я использую Lambda Architecture.Слои Batch & Speed находятся на AWS EMR.Обслуживающий уровень находится на AWS ECS, простом и очень тонком REST-сервере, который объединяет представления уровней Batch / Speed и возвращает их клиенту.Обслуживающие слои располагаются за AWS ALB и AWS WAF.
Если я ошибаюсь, исправьте мои пути, но я не вижу смысла в использовании шлюза API поверх обслуживающего слоя. Я что-то упустил?Пожалуйста, подумайте об этом.
Мое понимание сценариев использования шлюза API:
- Межсекторальные вопросы, например, авторизация, безопасность, управление трафиком API.
- Снижайте трафик, т. Е. Платите пользователям задержку в сети (или медленно инернет) только один раз при вызове API-шлюза, все остальные внутренние запросы должны выполняться быстро.+ Завершение SSL.
- Внутренние URI скрыты за шлюзом API.Это подходящее место для управления версиями API.
Но в архитектуре Lambda все скрыто за обслуживающим уровнем.Означает, что все сквозные проблемы будут внутри одного сервиса.Я говорю об авторизации, безопасности и управлении версиями.Для управления версиями я создам отдельную конечную точку для каждого клиента, если это необходимо (Web, Android и iOS). Это правильно?
Некоторая часть управления безопасностью и трафиком может быть выполнена на AWS WAF и AWS ELB.
Для каких случаев мне следует использовать API Gatewayв моем случае?