【问题标题】:How to update a laravel project in aws Elastic beanstalk, while keeping the same storage如何在 aws Elastic beanstalk 中更新 laravel 项目,同时保持相同的存储
【发布时间】:2020-11-19 15:27:56
【问题描述】:

我想在 aws beanstalk 中更新我的 Laravel 项目,但问题是 tha aws elastic beanstalk 中的存储现在不同了,我想保留它,我不知道如何,因为我的项目包含一个存储文件夹,但是它是空的,如果我更新它,我会丢失所有文件 如何更新代码,但保留存储空间?

【问题讨论】:

    标签: laravel amazon-web-services amazon-elastic-beanstalk


    【解决方案1】:

    您的应用程序应设计为无状态。原因是您的 EB 实例始终在 Auto Scaling group 中运行。

    这意味着它们可以在您不知情或参与的情况下随时终止和更换。有许多场景可能会发生这种情况。例如,可用区重新平衡、迁移到新的物理硬件、扩展和缩减活动或实例运行状况下降。

    随后,无论您喜欢与否,您总是面临丢失存储空间的风险。

    因此,您的应用程序应该设计为无状态的,这意味着它不会在实例上存储任何数据。这通常通过将数据存储在 EFS 等外部存储中来实现:

    但如果您仍想保留您的设计,您可以随时使用.ebextentions 脚本来帮助您替换存储文件夹。具体来说,在Commands 中,您可以在新部署开始时将存储文件夹复制到安全位置。然后在 Container commands 中,您将在新部署完成之前将文件复制回您的新应用程序文件夹。

    【讨论】:

    • 非常感谢,这很有帮助,我正在考虑使用 S3 而不是 EFS,可以吗?还是 EFS 更适合 Web 应用?
    • @MahdiIGUADI 没问题。 S3更便宜。因此,如果 laravel 可以与 S3 一起使用,而且我认为可以,那么 S3 会更好。顺便说一句,如果答案确实有帮助,我们将不胜感激。
    猜你喜欢
    • 2020-11-21
    • 2017-01-01
    • 2021-02-16
    • 1970-01-01
    • 1970-01-01
    • 2021-12-30
    • 2020-01-27
    • 2016-09-06
    相关资源
    最近更新 更多