我将数据存储在 AWS AutoScaling Group 的哪里?

我将数据存储在 AWS AutoScaling Group 的哪里?

我一直在使用Bitnami 多层 WordPress在 AWS 上进行堆栈。

我知道如何在 AWS 上使用自动扩展,但是没有任何文档告诉我在使用 WordPress 之类的东西时应该在哪里存储可更改的数据文件。

数据库位于 RDS 上,因此这不是问题,上传的静态文件可以保存在 S3 或 EFS 上。延迟不会成为问题,因为静态文件将位于 CloudFront CDN 上。

我不确定该如何处理该wp-content/plugins目录,因为那里的数据将被 WordPress 管理员更改,所以它不能只是 AMI 的一部分。

这一页说下“别想从 EFS 运行应用程序代码”由于延迟,这些文件不应该放在 EFS 上。

那么是否应该使用 EC2 引导脚本或类似的东西将这些文件从 EFS 复制到新实例?我想我可以使用 rsync 或 aws-cli?

或者我应该通过生命周期钩子或 Lambda 来执行此操作?

这不可能是一个不寻常的情况,所以我很惊讶找到有关此事的任何信息有多么困难。

答案1

您的网站有多繁忙?对于中小型企业来说,EFS 提供的 WordPress 网站应该足够好了。

从这里开始,看看进展如何。如果你发现它太慢,你可以选择以下几种方法:

  • 确保使用EC2 实例类型具有高且一致的网络吞吐量。EFS 性能取决于实例网络性能,因此预算 T2/T3 实例类型的性能不会很好。

  • EFS 性能取决于存储的数据量 - 存储的数据越多,吞吐量就越高。一种选择是创建一个大型虚拟文件(几 GB 大小)来增加吞吐量。

  • 如果你不想要,你可以付费EFS 预置吞吐量相反 - 这将提高您的表现,但需要支付一些额外的费用。

  • 配置PHP 操作缓存或其他一些 PHP 字节码缓存机制。

  • 配置缓存和过期标头在您的 Apache / Nginx 配置中。特别是如果您还要从 EFS 提供图像和 javascript 文件。这将有助于减少访问您服务器(进而访问 EFS)的流量,因为这些流量永远不会改变。

  • 考虑使用AWS CloudFront作为另一个缓存层,再次减少服务器的负载。

有了上述内容,您就可以顺利通过 EFS 提供网站服务了。

希望有帮助:)

相关内容