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

Могу ли я запустить несколько веб-приложений на одном экземпляре EC2

Мне нужно снизить затраты на AWS и найти способы уменьшить использование AWS. В настоящее время у меня есть одно веб-приложение java / tomcat, в котором я запускаю несколько экземпляров EC2 с разными конфигурациями. У меня есть siteone.com и sitetwo.com, каждый со своими экземплярами EC2 в одной среде ElasticBeanstalk. Эти экземпляры имеют балансировку нагрузки (я подумываю об удалении балансировки нагрузки за плату), и они оба требуют SSL и подключения к экземпляру RDS. В настоящее время они оба находятся в одном VPC. Чтобы сократить свои расходы, мне нужно уменьшить количество экземпляров. Как я могу запустить несколько веб-приложений Tomcat на одном экземпляре EC2. Я единственный разработчик в этом вопросе и могу использовать какое-то направление. Спасибо!

Вы можете запустить оба экземпляра на одном компьютере. И используйте mod_proxy из Apache для внутреннего перенаправления вашего трафика в правильное веб-приложение (прозрачное для пользователя).

Таким образом, вам нужно будет настроить одно приложение для прослушивания localhost:1337 а другой в localhost:1338. Вам также придется изменить настройки DNS, чтобы оба URL-адреса вашего веб-приложения указывали на IP-адрес отдельного компьютера. После этого Apache сможет отправлять трафик в правильное веб-приложение, просмотрев URL-адрес, указанный пользователем (webapp1.com или webapp2.com). Если бы это было webapp1.com он будет перенаправлять внутренний трафик на localhost:1337 а в другом случае он отправит трафик на localhost:1338

Я нашел это с помощью Google для "EC2 mod_proxy": http://flurdy.com/docs/ec2/apache_tomcat/#twoServers

И (бессовестная самореклама): http://blog.beardhatcode.be/2015/10/httpd-proxy.html

Переход на OpsWorks с Elastic Beanstalk, вероятно, является самым простым решением. OpsWorks поддерживает несколько приложений в «стеке» (который может быть только одним экземпляром).

Что говорит beardhatcode (хотя я бы предпочел Nginx или даже HAproxy), плюс, конечно, вы можете рассмотреть возможность удаления экземпляра RDS, установив БД на том же основном экземпляре. Будет ли это хорошей идеей, зависит от спецификаций базы данных, но, тем не менее, это вариант.