单独使用 AWS S3 或 S3 和 Cloudfront 进行视频下载

Using AWS S3 alone or S3 & Cloudfront for video download

我在 Rails 应用程序上构建了一个 Ruby,其核心涉及 usersvideos .

有少数具有管理员权限的用户可以上传视频(每个大约 5 分钟,高清)。网站其余用户只能观看视频;他们自己没有上传的能力。我预计每周会上传大约 20 个视频。观看视频的用户不会超过 2 或 3000(全部在北美)。

我有两个 S3 Bucket,我们称它们为 Bucket X 和 Bucket Y。 我内置了 Carrierwave 以将视频上传到 S3 Bucket X,并内置了 AWS Elastic Transcoder 以从 Bucket X 获取视频,将其转码为 Mp4,并将其放入 Bucket Y。

Bucket Y 中生成的视频文件正是我想要的:网络优化、压缩的 MP4 格式。如有必要,我可以直接从他们在 Bucket Y 中的 url 提供视频。

然而,与此同时,我正在使用 AWS Cloudfront CDN 将资产和用户上传的个人资料图片快速交付给每个用户。

对于像我这样的网站,每周上传大约 20 个时长 5 分钟的视频,使用 Cloudfront 有意义吗?

我看过像 this and that, which suggest Cloudfront is appropriate for serving videos. I also have come across others, like this stack overflow answer by Wayne Koorts 这样的文章,这些文章表明 Cloudfront 主要只在交付较小的文件方面有优势,而且可能成本很高。

考虑到每周只会上传20个左右的视频,其余都是get请求,我不关心使用Cloudfront的价格。 但是,Cloudfront 是否值得在这种情况下使用?如果我们谈论的是 5 分钟长的视频,它真的会加快加载时间吗?

感谢任何帮助。非常感谢您。

这太宽泛了,但正如您所说,最初您的视频将仅提供给北美用户,因此目前还没有理由使用 CloudFront。等到你有服务到不同地理位置的需求时,再把它包含在你的架构中。

记住 AWS says CloudFront 的主要功能是 "Distribute content with low latency and high data transfer rates by serving requests using a network of edge locations around the world."

通过在 AWS Monthly Calculator 中输入适当的数字,您可以大致了解 CloudFront 与 S3 的成本。请记住,无论如何您可能会将视频存储在 S3 中,很可能来自每个服务的 "Data Transfer Out" 最重要。

如果费用对您来说不是问题,那么即使您的应用仅限于美国,使用 Cloud Front 也会大有裨益。与直接从 S3 相比,如果您使用 Cloud Front,视频加载速度肯定会更快。由于 Cloud Front 将视频缓存到边缘位置,因此提高了视频的加载速度。