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

时间:2012-10-03 17:34:40

标签: amazon-ec2 elastic-beanstalk

我是亚马逊AWS服务的新手。我想知道是否有办法运行EC2的实例(例如,Amazon Linux AMI),然后将两个环境连接到此实例。

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

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

我很感激任何暗示。

2 个答案:

答案 0 :(得分:19)

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

此外,由于其可扩展性的基本设计,Elastic Beanstalk围绕一个app-per-environment模型设计(“环境”,我指的是其中一个EC2 + ELB + CloudWatch + AutoScaling集群)。 p>

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

您可以自由启动一个独立的EC2实例,并在其上安装您想要的任何内容,但您是对的 - git aws.push支持尚未用于独立的EC2实例。如果git支持对您很重要,您需要权衡每种方法的优缺点。

答案 1 :(得分:3)

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

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

然而,根据我在Elastic Beanstalk开发人员指南中所读到的内容,我没有发现任何明确声明每个环境支持多个应用程序的任何内容(甚至是每个EC2实例的多个环境 - 如果这样甚至是有意义的话)。

这让我想知道这是一个经常被请求和计划用于未来的功能,或者是否因为某种原因单个app-per-environment模型是“按设计”。