对 Elastic Beanstalk/EC2 如何扩展感到困惑?

对 Elastic Beanstalk/EC2 如何扩展感到困惑?

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

在 EC2 实例上,我安装了一些其他软件包,包括 PhpMyAdmin,并对实例进行了各种更改,以获得我想要的配置。我还将我网站的所有文件上传到了/var/www/html

但我对这一切如何扩展感到困惑。假设我的单个实例的性能达到峰值,AWS 确定我需要第二个实例来满足需求。

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

那么我是否将拥有两台装有 PhpMyAdmin 和我的网站文件的服务器?它如何知道如何在第二个实例上重新安装 PhpMyAdmin,并以与第一个实例相同的方式对其进行配置?

谢谢。

答案1

当使用 Elastic Beanstalk 和/或 Auto Scaling(EB 在后台使用 Auto Scaling)时,如果你手动对 EC2 实例进行任何操作,这些更改不会神奇地传播到其他 EC2 实例

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

使用 Elastic Beanstalk 时,需要注意以下几点:

  • 您的单个 EC2 实例可能会随时被替换。因此,您对实例所做的任何手动更改都将消失。
  • 通过扩展添加的任何额外 EC2 实例都不会进行这些手动更改。
  • 启动时,所有 EC2 实例都将采用 (a) 基本 EB AMI + (b) 通过 EB(非手动)部署的 PHP 应用程序版本的默认配置。

因此,请始终执行以下操作:

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

其他资源:

相关内容