Elastic Beanstalk / EC2如何扩展?

我build立了一个Elastic Beanstalk PHP环境。

在EC2实例上,我安装了一些其他软件包,包括PhpMyAdmin,并对该实例进行了各种更改,以获取我正在寻找的configuration。 我也把我所有的网站file upload到/var/www/html

但我很困惑,这是如何所有规模。 假设我的单个实例的性能最高,AWS决定需要第二个实例来跟上需求。

Elastic Beanstalk如何创build我的EC2服务器的第二个实例,以及PhpMyAdmin(和其他包)以及我的所有网站在/var/www/html的文件?

然后我会有两台服务器与PhpMyAdmin和我的网站文件? 它如何知道如何重新安装PhpMyAdmin在第二个实例,并configuration它与我的第一个实例configuration相同的方式?

谢谢。

当使用Elastic Beanstalk和/或Auto Scaling(EB在底层使用Auto Scaling)时,如果您对EC2实例手动执行任何操作,这些更改将不会以神奇的方式传播到其他EC2实例

因此,PhpAdmin不会自动安装在其他EC2实例上,而且如果您手动将您的PHP应用程序上传到/var/www/html ,那么它也会丢失。

使用Elastic Beanstalk时,需要记住:

  • 您的单个EC2实例可能随时被replace。 因此,您对实例进行的任何手动更改都将消失。
  • 通过扩展添加的任何其他EC2实例都不会有这些手动更改。
  • 启动时,所有EC2实例将作为(a)基础EB AMI +(b)通过EB部署的PHP应用程序版本(不是手动)的默认configuration。

所以,一定要做到以下几点:

  • 不要手动通过Elastic Beanstalk接口部署所有版本的PHP应用程序。
  • 保持实例的所有数据。 这意味着,所有数据库文件,上传的用户数据等应位于Elastic Beanstalk Auto Scaling组之外的S3,RDS或其他存储介质中。 只有Web服务器源代码和/或可部署应该在您的EC2实例上。
  • 通过.ebextensions文件自定义您的EC2实例。

其他资源:

  • 高级环境自定义configuration文件(.ebextensions)