【问题标题】:AWS EC2 Apache file persistenceAWS EC2 Apache 文件持久性
【发布时间】:2023-01-07 15:42:19
【问题描述】:

我是 AWS 的新手,对安装了 Apache 的 EC2 实例中的 var/www/html 文件夹的情况有点困惑。

设置 Elastic Beanstalk 服务并上传文件后,我看到这些文件存储在实例的常规 var/www/html 文件夹中。

从阅读 AWS 文档来看,似乎实例可能会被删除并重新配置,这就是为什么建议使用 S3 存储桶、EFS 或 EBS。

那么,为什么在使用apache服务器时源代码存储在EC2实例中呢?这些文件不会随实例一起删除吗?

【问题讨论】:

    标签: amazon-web-services apache amazon-ec2


    【解决方案1】:

    如果您手动将一些文件和数据上传到/var/www/html,那么当 AWS 将要替换/删除实例时,当然它们将被清除,例如由于自动缩放。

    您在 EB 上使用的所有文件都应该是部署包的一部分,并且所有文件,例如您的用户上传,应该存储在 Eb 之外,例如在 S3 上。

    【讨论】:

    • 对不起,我应该更清楚。我没有将它们上传到那个文件夹。我创建了一个 PHP Elastic Beanstalk 应用程序,并在其中上传了源代码。我很想知道它的存储位置,因此我通过 SSH 进入实例并看到文件存在于该文件夹中。
    • @monkeytrick EB 将您的应用程序文件存储在/var/app 文件夹中。
    【解决方案2】:

    即使实例由于某种原因终止,由于源代码是您在 Beanstalk 上的部署包的一部分,它可以提供另一个实例来替换完全相同的应用程序和配置。基本上你正在丢失这些数据,但这并不重要。

    数据丢失问题涉及您所做的任何不属于自动供应/部署的部分,即任何手动配置更改或您的应用程序可能写入临时存储的任何数据。这就是您需要更持久的存储选项的原因。

    【讨论】:

      【解决方案3】:

      似乎,当应用程序首次部署时,所有文件都上传到 S3 存储桶,从那里将这些文件复制到每个新实例的相关目录中。如果必须创建新实例(例如用于自动缩放)或替换,这些实例还会从 S3 存储桶中提取代码。这也是重新部署应用程序的方式 - 更新存储桶并且每个实例都制作一份新的代码副本。

      抱歉,如果这对某些人来说是显而易见的,但我已经看到了一些类似的查询。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2022-01-24
        • 2018-09-17
        • 2012-01-18
        • 1970-01-01
        • 1970-01-01
        • 2017-07-30
        • 1970-01-01
        相关资源
        最近更新 更多