Разработка высокодоступного API-сервиса с базой данных в AWS - PullRequest
0 голосов
/ 10 июля 2019

Я работаю над уровнем API, который обслуживает запросы от серверной базы данных.Итак, требования таковы:

  1. Повторное заполнение всей таблицы без простоев для службы API. Основное требование к API состоит в том, что мы должны иметь возможность повторно заполнять таблицы (от 2 до 3 таблиц, структурированные csv какданные) в серверной базе данных периодически (раз в две недели или ежемесячно), но служба API не должна выходить из строя.
  2. глобальная низкая задержка порядка сотен миллисекунд
  3. масштабируемость с запросами в секунду
  4. ограничение скорости клиентов
  5. также переключаются на предыдущие версии таблицв бэкэнде в случае проблем.

Мои вопросы касаются того, какие базы данных AWS я могу использовать и другие компоненты AWS, которые могут достичь вышеуказанных целей.

1 Ответ

1 голос
/ 10 июля 2019

Если вам нужен защищенный глобальный API с низкой задержкой, я бы выбрал API API Gateway, оптимизированный по краям.

Документация здесь Ограничения API GW относительно максимального количества запросов в секунду.

Вы можете ограничить количество клиентов, используя API GW. Кроме того, в API GW могут быть разные этапы, которые соответствуют различным псевдонимам в лямбде. Lambda - это ваш серверный вычислительный уровень, который будет обрабатывать ваши запросы API GW и, в свою очередь, запрашивать вашу базу данных. Использование версий и псевдонимов в лямбде позволит вам переключаться на разные таблицы базы данных. Учитывая, что вы планируете использовать данные в формате csv, вы можете использовать RDS и использовать движок Aurora, который совместим с MySQL и PostgreSQL и является чрезвычайно экономически эффективным вариантом.

В качестве дополнительной информации вы должны использовать лямбда-прокси-интеграцию между вашими API GW API и вашими лямбда-функциями. Это позволяет вам включить Identity and Access Management (IAM) для ваших API.

Документация по интеграции Lambda-прокси: Интеграция с Lambda-прокси

Вот некоторая документация по Lambda: Версии AWS Lambda и псевдонимы

Вот некоторая документация по RDS Aurora: AWS RDS Aurora

...