3

我有一个网站,它从不同的社交媒体服务获取备份,然后将数据存储在服务器上,然后显示在我的网站上。内容包括视频、图像和文本数据。

目前我正在使用带有 RDS 和 EBS 的 EC2 实例。数据存储在 EBS 卷中,但随着数据量足够大,超过 1 TB,而且还在增加。每次我的 EBS 卷被填满时,我都会附加另一个卷。

然后我将 S3 添加到我的设置中。Cron 作业在 S3 上运行和存储数据,EC2 实例显示来自 S3 的数据。为此,我正在使用 PHP SDK。

我面临的问题是 S3 在我当前的设置中非常慢。请建议我的设置是否良好,或者我需要对我的设置进行一些更改,以及如何加速 S3。或者我应该选择其他方式来设置。EC2 实例是运行 CentOS 的大型预留实例。

我听过一些关于将 S3 存储桶作为卷安装到 Ec2的S3fs 。这是一个不错的选择吗,因为当我将 S3 Bucket 安装到 Ec2 实例时,传输速率非常慢。

我是 AWS 的新手。我的用户不直接从 S3 访问文件,而是通过我在 EC2 实例上运行的网站访问。

4

2 回答 2

4

RDS 是存储元数据的不错选择,例如标签、评论和其他有关多媒体文件的相关信息。S3 适合存储静态内容,例如视频、音频和图片。我认为您使用 RDS 和 S3 的方法已经足够好了。

EBS 支持的实例有利于持久性。如果您将元数据存储在 RDS 上,将静态内容存储在 S3 上,那么您应该使用 EBS 支持的 EC2 实例的唯一原因是您现在有一些未版本化的配置文件。如果不是这种情况,假设您的配置已检查到版本控制中并且每次都可以按需提取新实例,那么您可能希望放弃 EBS 卷以支持临时存储。这可能会给您带来一些性能提升,但没什么大不了的。

关于您对 S3 延迟的担忧,是的,S3 很慢。虽然您的所有写入都可能直接发生在 S3 上,但我强烈建议您为 S3 存储桶设置Amazon CloudFront,并让您的网站使用来自 CloudFront 的多媒体内容。CloudFront 是一个内容交付网络 (CDN),可与磁盘卷(EBS 支持或临时)以及 S3 一起使用。设置它不会超过几分钟。CloudFront 还支持RTMP上的流媒体文件。您可能需要像GPAC这样的库用于提示多媒体文件以使它们可以流式传输(如果尚未完成)。然后,您可能需要考虑为流式传输的视频/音频文件创建一个分发版,并为图像、Javascript、样式表和其他文本文件创建另一个分发版。

希望这可以帮助。

于 2013-01-23T09:58:54.463 回答
1

为了更快地从我使用的 Amazon S3 获取和上传文件,请batch() 在此处找到

您还可以使用cloudfront更快地获取文件。我认为 9gag 也使用 cloudfront ..

于 2013-01-23T08:12:42.760 回答