У вас должен быть веб-сервис, который получает данные от ваших клиентов и отправит их в Kinesis. Этот веб-сервер может использовать Kinesis Producer Library (KPL), которые обеспечивают лучшую производительность с точки зрения доставки сообщений, тайм-аута, повторения политики и масштабируемости. KPL может создавать много работников и может быть настроен на оптимизацию скорости передачи сообщений и не превышать ограничение на запись, введенное Kinesys Shards.
Имейте каждый клиент, который отправляет данные в кинезис, может быть чрезмерным с точки зрения производительности, затрат и доставки. Что произойдет, если клиент начнет отправлять данные с высокой скоростью? Осколок имеет ограничение скорости для операции записи (до 1000 записей/с, скорость записи данных до 1 МБ/с). «Агрессивный» клиент может генерировать эффективный трафик и заставлять осколки не реагировать на какое-то время и блокировать всех других клиентов, которые отправляют записи, которые должны храниться в одном и том же осколке.
Кроме того, подумайте о стоимости доставки более тысячи клиентов. Что произойдет, если вы хотите изменить имя потока? или изменить ключ доступа/ключ? Или просто переключиться с кинезиса на кафку? Вам необходимо управлять обновлением тысяч клиентов.
С веб-сервером вы можете скрыть сложность и сделать любые изменения прозрачными для клиента. Вы можете думать, чтобы запустить веб-сервис непосредственно в EC2. Попросите производителя непосредственно в AWS сократить время ожидания сети. Кроме того, вы можете воспользоваться всеми возможностями масштабируемости/отказоустойчивости/отказоустойчивости, предлагаемыми AWS.