Я пробую ELB с минимальной конфигурацией (HTTP 80 -> 3000), и для одного только один экземпляр EC2.
(Я знаю, что обычно можно поставить как минимум два экземпляра EC2, но я просто оцениваю ELB.)
Я заметил, что при этой настройке (которую, как я полагаю, я настроил правильно - возможно, я что-то пропустил) время отклика будет точно таким же медленным, как заданный мной параметр Idle Connection Timeout.
Например, если установлено 30 секунд, и я захожу elb-XXXXXXXXX.eu-west-1.elb.amazonaws.com
, моему браузеру придется ждать 30 секунд загрузки страницы.
То же самое на 2, 5, 60 секунд.
Если установлено значение 1 секунда, мне не нужно ждать целую секунду - я могу постоянно повторно запрашивать страницу (т.е. удерживать нажатой комбинацию клавиш «Обновить»), и я не вижу сбоев.
Так что оставить настройку на 1 секунду может показаться заманчивым - но целесообразно ли это?
Могу ли я использовать рекомендованную настройку (60 секунд) только с одним экземпляром EC2 за ELB, не испытывая при этом медлительности?
Очевидно, сервер приложений (в моем случае Unicorn) обычно не должен напрямую взаимодействовать с ELB - он должен делать это за узкоспециализированным HTTP-сервером, таким как Nginx. Это особенно верно для обслуживания статических файлов - никто не хочет, чтобы они обслуживались Ruby!
Unicorn, в частности, предполагает «быстрых клиентов», гарантию, которую может выполнить только nginx, но не ELB.
Это устранило мою проблему.