У меня есть приложение, работающее на экземпляре ec2 m3, и mysql, работающее на экземпляре dRDS. Они оба находятся в одном регионе, VPC, однако, похоже, что они находятся в разных зонах доступности.
Проблема в том, что выполнение запросов может быть мучительно медленным - я говорю о задержках от 700 мс до секунды. Я подозреваю, что задержка связана с подключением к серверу RDS, но я не совсем уверен.
Что именно я могу сделать, чтобы полностью уменьшить / устранить эту задержку. На моем локальном хосте те же запросы занимают самое большее от четверти до половины миллисекунды. Я проверял в непиковые часы с минимальным трафиком или без него и даже со сбросом моих живых данных на моем локальном хосте. Так что проблема не может быть в большом трафике или большом количестве данных.
== РЕДАКТИРОВАТЬ ===
Вот характеристики экземпляра RDS:
Экземпляр и IOPS
Класс экземпляра: db.m3.medium
Тип хранилища: выделенный IOPS (SSD)
IOPS: 1000 Хранение: 100 ГБ
Задержка между зонами доступности должна быть довольно низкой (например, менее 25 мсек).
Если запросы вашего приложения идут последовательно, а не параллельно, тогда потребуется время прохождения туда и обратно через зоны доступности (время будет суммировано для серии).
Я бы создал машину ec2 в той же зоне доступности, что и экземпляр RDS, и использовал бы ping между вашими экземплярами ec2, чтобы определить базовую задержку.
Затем вы можете попробовать запустить свое приложение из той же зоны доступности и проверить производительность приложения (это то же самое, лучше или хуже). По логике, производительность должна улучшиться.