寻求有关最佳实践的澄清和指导。
我们应该将应用程序的图像、CSS 和日志文件存储在哪里?应用服务器还是 S3?
我们将在 S3 上存储与用户相关的图像和缩略图。目前我们不会使用 CloudFront,除非有真正的需要。
我还有另一组问题与 EBS 有关。应用服务器是否应该使用 EBS 卷?这样做有什么好处?使用 EBS 是否需要额外付费。
谢谢。
答案1
你可以使用亚马逊 EBS满足您所有需求的后端实例。
答案2
是的,EBS 需要额外付费。EBS 的优势在于访问简单,它会显示为服务器上的驱动器,而 S3 则需要通过其 API 进行访问。此外,EBS 内容是永久性的。您存储在实例中的任何内容(不在 S3 内也不在 EBS 卷内)都不是永久性的,如果您的计算机重新启动,它们就会消失。
S3 不适合用于日志文件,因为您无法将对象附加到 S3 中。变化不太频繁(例如每天仅几次或更少)的用户数据在 S3 中是有意义的。经常变化的数据可能更适合放在数据库(存储在 EBS 上)中。
答案3
EBS 是一款旨在提高磁盘访问性能和可用性的产品。临时存储对于 I/O 操作来说不是最佳选择。使用 EBS,即使您无法访问实例,您仍然可以访问数据。非常适合存储关键数据或数据库。
使用 CloudFront存储所有css
、js
、css
相关图像。为此,您必须先将文件存储在 S3 中,然后将 CloudFront 应用于您的存储桶。利用特殊标头(Expires、Cache-Control),以便用户只需下载此元素一次。
您还可以将日志备份到 S3 进行永久存储使用 s3cmd或 duplicity。这是一个便宜的选择,而且你不会用尽磁盘空间。