【问题标题】:Is it possible to persist my ECS container storage using S3?是否可以使用 S3 持久化我的 ECS 容器存储?
【发布时间】:2020-05-24 17:59:12
【问题描述】:

我正在使用 ECS 托管我的 wordpress 网站

我现在如何保存我的数据

我在var/www/html 上安装了一个EFS,所以我所有的wordpress 配置、上传等都会保留

问题

EFS 与 S3 相比速度较慢,并且我的网站存在延迟问题

期望的结果

是否可以将我的var/www/html 从我的docker 容器中存储在ECS 实例中,以便将var/www/html 存储在S3 上?

所以我可以使用 S3 访问我的 wordpress 网站,它比 EFS 快得多

【问题讨论】:

  • 我想您的配置有点接近本文中描述的配置? blog.andreev.it/?p=4417
  • 在高层次上是的,但是我现在没有弹性负载均衡器......我也不必设置用户数据来挂载 EFS,因为 AWS 已经直接在容器上启动了 EFS 挂载通过任务定义,所以我直接安装它并且它正在工作:)
  • 关注此对话。 EFS 被发现不适合 Web 工作负载(包含许多小文件)我个人安装 Wordpress 插件以将图像/附件移动到 S3。这种方法对静态 wordpress 资产没有帮助,但是对于这些资产来说,第一个字节的时间仍然很长
  • 假设我确实安装了所需的插件并且能够将我的文件移动到 S3 ,棘手的部分是使容器使用来自 S3 的文件而不是文件系统中的 var/www/html 目录。我是是否正在寻找一种方法以某种方式将我的 s3 存储桶安装在 var/www/html 内?

标签: wordpress amazon-web-services docker amazon-s3 amazon-ec2


【解决方案1】:

以下是我们在 ECS 上配置 WP 的方式,以便文件持久保存,同时保持性能:

关键是将WordPress软件文件与媒体上传文件夹分开。

默认情况下,WordPress 会将上传的文件存储在wp-content/uploads 文件夹中。 WordPress 允许您自定义上传文件夹的目的地。

  1. 将WP系统文件安装到/var/www

  2. /var/files 上挂载 ECS 文件系统。

  3. 配置 WordPress 以将媒体文件上传到该文件夹​​。打开WordPresswp-config.php文件,在require_once(ABSPATH.'wp-settings.php');声明后添加如下代码:define('UPLOADS', '/var/files');

这是在将媒体文件移动到持久存储时从本地文件系统提供 php 文件的推荐配置。 EFS 比 S3 更受欢迎,因为它可以轻松地挂载为文件系统。

如果您扩展到多台服务器,这也可以很好地工作。它还将使软件部署和升级更容易,因为软件和媒体文件不会混合在一起。

【讨论】:

    【解决方案2】:

    有几个选项。您可以使用带有存储桶的 LustreFS 文件系统——这将在您端公开一个比 EFS 性能更高的文件系统。您也可以使用存储网关,但这有点复杂。

    一旦您将文件放在存储桶中,您应该配置 Wordpress 以从该存储桶提供它们 - 设置存储桶以提供静态文件服务,在其上弹出一个域,然后调整您的 wordpress 配置,以便从该域提供静态文件.如果您真的想要高性能,您也可以将 CloudFront 放在前面,这样您的文件就可以从本地缓存中获取。

    【讨论】:

    • 存储网关是本地到云数据存储服务。您如何看待这个用例中的工作原理?
    • 存储网关只是在前提。 AWS 还在其Marketplace 上为网关提供 AMI。
    • 是的。但它始终连接到本地组件。它是混合云解决方案的一部分。在这种情况下,您将如何使用它?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-27
    • 2018-09-13
    • 1970-01-01
    • 2013-08-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多