在一个 AWS EC2 实例上运行多个环境 (Elastic Beanstalk)

Posted

技术标签:

【中文标题】在一个 AWS EC2 实例上运行多个环境 (Elastic Beanstalk)【英文标题】:Running multiple environments on one AWS EC2 instance (Elastic Beanstalk) 【发布时间】:2012-09-24 16:42:41 【问题描述】:

我对 Amazon AWS 服务非常陌生。我想知道是否有办法运行 EC2 实例(例如,Amazon Linux AMI),然后将两个环境连接到该实例。

特别是,我想在单个 EC2 实例上运行 php 和 Tomcat 环境。

问题是,每次我在 Elastic Beanstalk 中创建一个新环境时,似乎也创建了一个新的 EC2 实例。我在这里遗漏了什么吗?

如果有任何提示,我将不胜感激。

【问题讨论】:

【参考方案1】:

AWS Elastic Beanstalk 旨在以一种从头开始实现可扩展性的方式部署您正在运行的应用程序。因此,Elastic Beanstalk 将启动一个或多个 EC2 实例,将它们连接到 Elastic Load Balancer 实例,配置 CloudWatch 监控和 Auto Scaling 触发器。

此外,由于其基本的可扩展性设计,Elastic Beanstalk 是围绕每个环境一个应用程序模型设计的(“环境”是指这些 EC2 + ELB + CloudWatch + AutoScaling 集群之一)。

由于使用两个独立的应用程序(PHP 和 Java)运行两个独立的 Web 服务器不是一种从根本上可扩展的设计,因此它不是 Elastic Beanstalk 优化的用例。

您可以随意启动一个独立的 EC2 实例并在其上安装任何您想要的东西,但您是对的 — git aws.push 支持尚未提供给独立的 EC2 实例。如果 git 支持对您很重要,您需要权衡每种方法的优缺点。

【讨论】:

【参考方案2】:

我也希望能够做到这一点,基本上是从演示等成本的角度来看。

例如,具有一个 PHP 应用程序和一个 Java 应用程序的单个实例。或者,具有两个 Java 应用程序的单个实例。

但是,从我目前在 Elastic Beanstalk 开发人员指南中阅读的内容来看,我没有发现任何明确说明每个环境支持多个应用程序(或者甚至每个 EC2 实例支持多个环境 - 如果这有意义的话)的任何内容。

这让我想知道这是否是未来经常要求和计划的功能,或者是否出于某种原因“按环境设计单个应用程序”模型。

【讨论】:

遇到了同样的问题,只是我没有正确命名环境。哦,好的,谢谢你的信息

以上是关于在一个 AWS EC2 实例上运行多个环境 (Elastic Beanstalk)的主要内容,如果未能解决你的问题,请参考以下文章

AWS Elastic Beanstalk:在运行 PHP 的 EC2 实例上终止 HTTPS

我们如何在aws ec2 linux实例的不同端口安装多个apache服务器

通过AWS lambda在EC2实例上执行python脚本

如何在 AWS EC2 实例上激活 GPU 的使用?

如何在单个 AWS EC2 实例上托管多个域和子域

通过 AWS ECS 在一个 EC2 实例中的多个 docker 容器