AWS Инфраструктура с минимальной задержкой
Я хотел бы настроить наиболее правильную инфраструктуру с минимальной задержкой для AWS
,
Я хотел бы служить статичным Javascript
файлы более CloudFront
и, кроме того, вызов динамического сервера, который будет возвращать вызов Javascript
функция, которая была объявлена ранее файлами, обслуживаемыми CloudFront
- Я обнаружил, что это самый оптимальный способ сделать это.
Тем не менее, динамический вызов зависит от определенной базы данных (вероятно, в конечном итоге DynamoDB
) что я хочу, чтобы рассеяние и тиражирование происходило во многих регионах, чтобы максимально снизить задержку.
Моя идея была Lambda
функции распространены в нескольких регионах мира, получая данные из DynamoDB
реплики в соответствующей области, чтобы обслуживать динамические параметры для функций JS (есть ли способ сделать Lambda
функции не зависимые и имеющие DynamoDB
конечная точка жестко запрограммирована в коде?).
В дополнение ко всему, я бы хотел, чтобы каждый сделанный запрос проводился CloudWatch
лучший подход для этого или я должен хранить его прямо в MySQL Aurora
база данных или DynamoDB
какой-то? Что будет лучшим выбором для целей мониторинга?
Является ли это наилучшей возможной инфраструктурой для многомиллионной пользовательской системы, для нескольких регионов, с минимальной задержкой и наиболее масштабируемым способом?
1 ответ
Если вам нужны динамические запросы в Cloudfront, вы можете использовать Lambda @ edge.
Dynamodb - хороший выбор, если ваши шаблоны доступа к данным не требуют отношений, и вы разрабатываете ключи разделов, чтобы избежать "горячих" разделов от записи или чтения.
Dynamodb поддерживает мультирегиональный мастер для репликации.
Лямбда - удобный инструмент, но он страдает от "холодного" запуска при ~10% запросов при быстром увеличении, поэтому задержка 90-го процентиля увеличится в ~ 10 раз. Вы можете использовать Fargate для запуска полных контейнеров, которые автоматически масштабируются, вместо функций автоматического масштабирования Lambda с Api Gateway.
Cloudwatch работает для мониторинга, не требуя большой настройки или использования сторонних инструментов.
Надеюсь, это поможет.