Испытываете высокую задержку при запросе DynamoDB из экземпляра EC2 - PullRequest
0 голосов
/ 02 декабря 2019

У меня есть базовое веб-приложение NodeJS, которое сканирует таблицу DynamoDB всего с ~ 10 элементами. Когда я запускаю приложение локально на моем компьютере, операция занимает менее 1 секунды.

Однако, когда я развертываю приложение на экземпляре EC2, та же операция занимает почти 5 секунд. Экземпляр EC2 (t2.micro) и таблица DynamoDB находятся в одном регионе. Я также включил службу шлюза конечной точки VPC для DynamoDB, но задержка остается той же.

Вот запросы curl для проверки производительности:

curl -X POST http://localhost:9000/login -H 'Content-Type: application/json' -d '{ "email": "xyz@gmail.com", "password": "admin", "type": "talent" }' -s -o /dev/null -w "%{time_starttransfer}\n" 0.394470

curl -X POST http://EC2_IP_ADDRESS:9000/login -H 'Content-Type: application/json' -d '{ "email": "xyz@gmail.com", "password": "admin", "type": "talent" }' -s -o /dev/null -w "%{time_starttransfer}\n" 5.207561

Пожалуйста, помогите мне понять, что может быть причиной этих задержек и как мне добиться низкой задержки при запросе DynamoDB из экземпляра EC2.

Ответы [ 2 ]

0 голосов
/ 02 декабря 2019

Увеличенная задержка, скорее всего, не связана с DynamoDB, если вы думаете о скачках в сети

  1. EC2 => EC2 => dynamicodb (curl http://localhost/...)
  2. Ваш рабочий стол => internet => EC2 => dynamicodb (curl http://EC2_IP/...)

Возможно, вы столкнетесь с такой же высокой задержкой, если просто пропустите вызов Dynamodb, например, закомментируйте код, который делает вызов db, и вернителожный ответ - я подозреваю, что вы получите такую ​​же задержку как # 2

0 голосов
/ 02 декабря 2019

Вам необходимо узнать, сколько времени занимает база данных и сеть. Для этого вы можете проверить следующее

  1. Запустите ваш запрос непосредственно на DynamoDB, чтобы проверить, сколько времени занимает база данных. Проверьте, соответствует ли сам запрос

  2. Проверьте, совпадает ли разница времени обработки вашего запроса между выполнением кода на сервере EC2 и локальным компьютером с конечной точкой VPC или без нее?

...