AWS Elastic Beanstalk - переменная общего счетчика между экземплярами - PullRequest
0 голосов
/ 30 мая 2019

У меня есть приложение Python Flask, работающее на Elastic Beanstalk с включенным автоматическим масштабированием.Теперь я хотел бы иметь глобальную переменную-счетчик, которая может быть доступна и обновлена ​​всеми запущенными экземплярами в режиме реального времени.

Я смотрел на Redis с AWS ElastiCache, но это кажется излишним для моего варианта использования, так как ядолжны хранить одну переменную счетчика.Я также рассмотрел возможность запуска Redis на одном из экземпляров Beanstalk, но это неосуществимо, поскольку Beanstalk может отключать экземпляры при уменьшении масштаба.

Каков наилучший способ реализации этой функциональности?Есть ли способ уйти без использования ElastiCache?

1 Ответ

1 голос
/ 31 мая 2019

Рассматривали ли вы использование Amazon DynamoDB таблицы?

Имеет Атомные счетчики :

Вы можете использовать операцию UpdateItem для реализации атомного счетчика - числового атрибута, который увеличивается, безусловно, без вмешательства в другие запросы записи. (Все запросы на запись применяются в том порядке, в котором они были получены.) При использовании атомного счетчика обновления не являются идемпотентными. Другими словами, числовое значение будет увеличиваться при каждом вызове UpdateItem.

Вы можете использовать атомный счетчик для отслеживания количества посетителей сайта. В этом случае ваше приложение будет увеличивать числовое значение независимо от его текущего значения.

...