У меня есть стек 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.