Laravel AWS EBS 自动扩展

Posted

技术标签:

【中文标题】Laravel AWS EBS 自动扩展【英文标题】:Laravel AWS EBS Auto Scaling 【发布时间】:2021-01-27 20:38:15 【问题描述】:

我正在寻找一些建议,这似乎是一个愚蠢的问题,但我在理解 AWS EBS 自动缩放的工作原理及其最佳实践方面遇到了一些问题。

我有一个通过 bitbucket 管道部署到 AWS EBS 的 laravel 应用程序。这一切都工作并成功部署。

我的问题是当自动缩放触发它然后启动一个新的 EC2 实例然后对流量进行负载平衡。问题是队列中的新 EC2 实例是一个空白的 AWS Linux2 AMI,因此只显示 nginx 欢迎页面。

我认为问题在于它使用的是空白 AMI 而没有获取我的应用程序。我猜我可以从运行我的应用程序的 EC2 映像创建一个映像,然后进行扩展,但每次部署时我都必须这样做。

您能否配置 Auto Scaling 组以复制正在运行的 EC2 实例?

任何有关使用我的应用程序完成自动缩放的最佳方式的帮助或建议都会很棒。

【问题讨论】:

【参考方案1】:

取决于在启动配置中选择的 AMI..

在您更新所有必需的软件、数据库、配置并验证(测试)后,您需要为您的实时 EC2 实例创建 AMI。

然后将此 AMI 添加到 Auto scale Launch Configuration..

您不需要为每个部署创建 AMI..

每当您在 Ec2 服务器上进行更改或更新您的应用程序源代码时,您都需要创建新的 AMI 并需要在 Autoscale 启动配置中指定该 AMI。

最佳做法是使用用户数据脚本配置自动缩放。因此,当新的 AMI 在自动缩放期间启动时,它会读取用户数据(云初始化/新贵)。用户数据脚本可以从 git 或任何源代码控制中提取代码并运行必要的预部署命令。

【讨论】:

以上是关于Laravel AWS EBS 自动扩展的主要内容,如果未能解决你的问题,请参考以下文章

AWS扩展EBS卷——Linux文件系统

AWS扩展EBS卷——Windows文件系统

AWS-EC2自动挂载EBS卷或磁盘

给aws ec2 所有ebs做自动快照

使用AWS Lambda自动定时快照EBS卷

AWS 自动将 EBS 卷附加到 Elastic Beanstalk 后面的 EC2 实例