API Gateway: Basis, Lambda, Endpoint Types, SSL Flashcards
Что может стоять за API Gateway?
Lambda
ALB
любой HTTP back-end
SQS, Kinesis, S3, любой AWS сервис
Какие фичи предоставляет API Gateway?
- Web Sockets
- API versioning, environments (Stages)
- Canary Deployment
- Usage Plans, API Keys
- SSL сертификатов проверку
- Authentication / Authorization
- Swagger Open API
- Валидация, трансформация запроса
- Кэширование
Зачем Лямбде нужен API Gateway, если у неё есть Lambda URL?
Lambda - в отличие от Spring приложения - не имеет Tomcat сервера.
Lambda НЕ может выставлять REST Endpoint’ы.
А в API Gateway можно определить CRUD endpoint’ы и привязать их к разным лямбдам.
Лямбда + API Gateway
Как устроена Security?
Lambda функция должна иметь IAM Policy,
чтобы разрешать операцию Invoke от API Gateway.
Зачем API Gateway умеет трансформировать данные запросов?
Чтобы приводить данные к формату, нужному для SQS, Kinesis и т.п. без back-end’а вообще
Получается полностью Serverless архитектура
Клиент шлёт запросы “напрямую” (через API Gateway) в Kinesis DS
Какие бывают Endpoint Types в API Gateway?
В чём их особенности?
-
Edge Optimised
- для глобальных клиентов
- запросы направляются через CloudFront Edge Locations (для latency)
- API Gateway находится в одном регионе (но доступно глобально)
-
Regional
- без CloudFront Edge Location’ов по-умолчанию
- но вообще CloudFront можно подключить вручную (больше контроля над caching strategies)
-
Private
- доступны только из VPC, используя VPC Endpoint (ENI)
- можно указать Resource Policy, чтобы ограничить доступ к private endpoint
Как можно организовать Users Authentication / Authorization в API Gateway?
-
IAM Roles
- например, дать роль нашим EC2 instance’ам,
чтобы они имели доступ к API Gateway Endpoint’у -
Cognito
- например, дать доступ множеству клиентов
мобильного или веб-приложения. -
Custom Authorizer
- например, написать свою кастомную логику авторизации
в Лямбда функции
Как API Gateway используется для проверки SSL сертификата?
Как единая точка входа всех запросов.
SSL сертификат проверяет ACM (AWS Certificate Manager)
Где должен быть расположен SSL сертификат для проверки API Gateway?
Почему?
- в
us-east-1
- дляEdge Optimised
Endpoint’а - в соответствующем регионе - для Regional Endpoint’а
Потому что Edge Optimised API Gateway endpoint
хоть и глобальный, но развёрнут в одном регионе.