Назад | Перейти на главную страницу

Правильный способ балансировки нагрузки приложения узла в opsworks

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

Из того, что я прочитал, кажется, что в Opsworks балансировка нагрузки выполняется на уровне, а не на определенном наборе экземпляров. Opsworks не позволяет мне создавать второй слой node.js в том же стеке, поэтому я не могу просто разделить приложения и сбалансировать нагрузку одного из них.

Я предполагаю, что у меня не должно быть этих двух приложений в одном стеке, или я должен балансировать нагрузку только через ec2, где, как я полагаю, я мог бы настроить ELB для работы на подмножестве экземпляров в слое. Это правильно или есть другой ответ?

Если вы хотите в полной мере использовать возможности OpsWorks, то да, как вы заявили, разделите приложения на два стека.

Альтернативный вариант 1: вы можете создать собственный стек, если вы действительно хотите оставаться в том же стеке, но тогда вам придется самостоятельно обрабатывать то, что делает для вас слой node.js (это можно сделать и успешно, но вы может потребоваться вложить средства в специальную поваренную книгу / рецепты).

Альтернативный вариант 2: ваше утверждение об управлении ими через EC2 вручную является правильным, но я бы добавил, что вы пытаетесь использовать несколько подсетей / зон доступности, чтобы упростить себе задачу. Так:

LBR 1 (App1) AZ1 (us-east-1a) AZ2 (us-east-1c)

LBR 2 (App2) AZ3 (us-east-1d) AZ4 (us-east-1e)

Это даст вам HA / Fault Tolerant framework, позволит вам сбалансировать, даст вам возможность настраивать подсети в соответствии с LBR, но при этом воспользоваться преимуществами OpsWorks.