我正在开发一个包含文件存储和共享功能的项目,经过数月研究利用 AWS 的最佳方法后,我仍然有点担心。
基本上我的决定是使用 EBS 存储来存放用户文件还是 S3。当用户想要下载少量文件时,系统将包含即时 zip 归档。此外,当用户下载任何文件时,我不希望文件的 URL 暴露。
我想出的两个最佳选择是:
拥有一个 EC2 实例,该实例安装了多个 EBS 卷来存储用户文件。
- 优点:它似乎比 S3 快得多,并且从 EBS 卷中压缩文件很简单。
- 缺点:我相信亚马逊限制了你可以使用多少 EBS 存储,并且没有 S3 那样冗余。
文件上传和处理后,系统会将这些文件推送到 S3 存储桶以进行长期存储。当请求文件时,我将从 S3 检索文件并输出回客户端。
- 优点:冗余,没有文件存储限制
- 缺点:看起来很慢,无法将 S3 存储桶作为卷挂载在文件系统中,提供压缩文件意味着将每个文件传输到 EC2 实例,压缩,然后最后发送输出(再次,慢!)
我的任何假设有缺陷吗?谁能想到管理大量文件存储的更好方法?