2016-12-08 11 views
1

У меня есть приложение (Акка спрей) сервер, который выполняет две функции:Могу ли я получить доступ к специальному экземпляру ECAC ElasticBeanstalk?

  1. Он отвечает на запросы конечных пользователей веб-приложений. Это тяжелая нагрузка.
  2. Он периодически выполняет задания по легкой уборке в базовой базе данных.

С одним запуском экземпляра все легко. Доступны веб-страницы конечных пользователей, и через мою веб-страницу администратора я могу контролировать и контролировать рабочие задания.

Но теперь, чтобы масштабировать до большего количества конечных пользователей, я бы хотел использовать ElasticBeanstalk. По мере увеличения нагрузки на конечный пользователя EB будет появляться больше экземпляров EC2. Тем не менее, только один из них будет экземпляром домашнего хозяйства, поэтому теперь, когда я вхожу в систему как администратор, мне нужно всегда удалять этот специальный экземпляр EC2, а не быть случайным образом назначенным на то, что имеет самую низкую текущую рабочую нагрузку.

Есть ли способ сделать это без отдельного выделенного домашнего хозяйства EC2 вне EB? например, может ли моя веб-страница администратора или приложение получить доступ к специальной конечной точке

http://dearEBImTheAdminPleaseGiveMeInstanceNumber1.wonderfulserver.com 

и проложить туннель через балансировщик нагрузки? Благодарю.

ответ

1

Он чувствует себя просто грязно, чтобы сохранить эту функциональность в балансировщике нагрузки для меня. Что произойдет, если этот сервер будет нездоровым, например. Вы могли бы использовать экземпляр Leader для этого и запускать определенные команды только для этого. Я не уверен, если вы можете направить его, так что у вас может быть такой отчет о том, кто это как-то.

container_commands: 
name of container_command: 
    command: "command to run" 
    leader_only: true 

http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/customize-containers-ec2.html#linux-container-commands

Вы могли бы использовать достаточно новое приложение балансировки нагрузки и имеют отдельную группу, например (с одной в нем только) и маршрут конкретный трафик там (/ администратора).

https://aws.amazon.com/blogs/aws/new-aws-application-load-balancer/

Что я буду делать, хотя это, чтобы сделать это бессерверную. Я бы проверил обслуживание данных в Lambda и поместил результаты в DynamoDB, а затем разместил сайт на S3, который покажет результаты. Вы можете сделать это с помощью Javascript, который вызывает другую функцию Lambda, которая извлекает данные из базы данных.

http://docs.aws.amazon.com/lambda/latest/dg/with-scheduled-events.html

Существует основа для этого, что я читал об этом, но не пробовал себя еще. https://zanon.io/posts/building-serverless-websites-on-aws-tutorial

+0

Спасибо. Да, я, конечно, согласен, что это беспорядочно, и я, в конце концов, хотел бы пойти без сервера, как вы предлагаете, но до этого я хотел снизить стоимость сервера. – thund

+0

У вас есть несколько вариантов выше. Мы резко снизили наши затраты, когда изменили нашу инфраструктуру на безсерверную. Вы платите только тогда, когда используете его, и это так смешно дешево. Разве вы не пытаетесь добиться большего? – Gustaf

+0

Да, serverless кажется лучше, и это то, что я хотел бы сделать. Но сейчас у меня есть рабочая толстая банка, построенная на брызгах, которая делает все, что мне нужно. Переход на безсердечный займет некоторое время для разработчиков, и меня не удивит, если портинг поразит некоторые неожиданные препятствия, так как serverless все еще довольно новый. Я просто пытаюсь получить экономичное развертывание, пока мы не обойдемся без серверной версии. – thund