Throttling api запросов для каждого клиента в отдельности?

Необходимо гибко ограничивать кол-во запросов API per client.
Т.е.
api.example.com/method?key=123 - 100 запросов в минуту
api.example.com/method?key=456 - 10 запросов в минуту
etc.

Как это сделать вручную в связке symfony + redis проблем нет.
Вопрос возникает в том, есть ли готовые сервисы/софт, которые позволяют так конфигурировать throttling. Возможно, я плохо искал, но у Cloudflare и Amazon я такого не нашел. У Amazon есть похожее, но
>> Per-client throttling limits are applied to clients that use API keys associated with your usage policy as client identifier.
>> API keys per account per Region 500
Т.е. если я правильно понял, больше 500 клиентов в один региогн подключить не получится.
Также желательно информацию о событиях троттлинга получать, чтобы клиент потом в UI мог увидеть, почему у него API не доступно было.
  • Вопрос задан
  • 1116 просмотров
Пригласить эксперта
Ответы на вопрос 1
inoise
@inoise Куратор тега Amazon Web Services
Solution Architect, AWS Certified, Serverless
По тому что это в API Gateway и называется Usage Plans

А что до лимитов то у AWS есть soft и hard лимиты. Soft - по умолчанию и многие можно запрашивать для увеличения до hard лимита.

Вообще если хочется не иметь ограничений то только пилить свою систему и она, скорее всего, будет довольно медленной.

Можно посмотреть на альтернативы вроде apigee
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы