Мои запросы API выполняются очень медленно при вызове через https через мой AWS elasti c балансировщик нагрузки. Как лучше всего выяснить, что мне нужно сделать, чтобы мой балансировщик нагрузки стал более эффективным? Я использую балансировщик нагрузки специально для HTTP и запускаю экземпляр ec2 с HTTP-сервером за ним.
AWS elasti c балансировщик нагрузки в eu-central-1a, eu-central-1b . Экземпляр EC2 в eu-central-1a - это c5.xlarge, на котором размещен http-сервер.
Когда я делаю запросы API из Восточного побережья США к балансировщику нагрузки через вызов HTTPS, он работает, но ужасно медленно . В лучшем случае это 400 мс, а примерно в 20% случаев он увеличивается до 800-1500 мс.
Когда я делаю запросы API из Восточного побережья США напрямую к экземпляру EC2 через HTTP, полностью минуя балансировщик нагрузки, это супер быстрый. Почти всегда 130–140 мс и редко скачки.
ПРИМЕЧАНИЕ. Я использую балансировщик нагрузки только для поддержки HTTPS, меня не особо волнует (прямо сейчас) фактическая балансировка нагрузки между несколькими бэкэндами. На данный момент у меня только один бэкэнд. Все мои входящие звонки будут поступать с восточного побережья США, и мой сервер должен пока оставаться в Европе. Итак, да, я мог бы переместить свой сервер в Восточное побережье США, чтобы звонки поступали в одном регионе, но я не хочу этого делать по другим причинам.
Вопросы и возможные решения:
- Я выбрал балансировщик нагрузки приложения, верно?
- Как я могу определить, виновата ли моя конфигурация в ее медленной работе?
- Следует ли переместить балансировщик нагрузки в Восточное побережье США, откуда будут звонить клиенты? И оставьте экземпляр EC2 в eu-central-1a?
- В моем экземпляре ec2 (c5.xlarge) не было абсолютно ничего запущенного, кроме http-сервера, поэтому я знаю, что он не перегружается из-за использования ЦП и памяти. Подходит ли мой тип инстанса для подключения к балансировщику нагрузки?
Проблема решена:
- Получил некоторую помощь от ребят из отдела разработки. В консоли Route 53 он удалил две записи A, которые я создал в мастере настройки, и заменил их записью CNAME прямо на мой псевдоним. Что было странно, волшебник мне этого не позволил. Мне пришлось использовать «старую версию» Route 53, где она позволяла мне вводить текст прямо в запись.
- Производительность сейчас отличная. Первый запрос при установке безопасного соединения занимает несколько сотен миллисекунд, но каждый последующий запрос составляет ~ 130 мсек. И это от восточного побережья США до Франкфурта, Германия. Сейчас работает, как ожидалось.
- Я попытался переместить балансировщик нагрузки в другой регион, но AWS не позволяет этого.