2013-01-23 37 views
3

我有一個網站從不同的社交媒體服務獲取備份,然後將數據存儲在服務器上,然後顯示在我的網站上。內容包括視頻,圖像和文本數據。與亞馬遜合作的最佳設置AWS

目前我正在使用RDS和EBS的EC2實例。數據存儲在EBS卷中,但是由於數據量足夠大,超過1TB,並且這種情況正在增加。每當我的EBS卷被填滿時,我附上另一卷。

然後我添加S3到我的設置。 Cron作業在S3上運行並存儲數據,而EC2實例顯示來自S3的數據。我爲此使用PHP SDK。

我面臨的問題是S3在我當前的設置中非常慢。 請建議我的設置是否正確,或者我的設置需要更改,另一種方式是如何加速S3。或者我應該選擇一些其他方式來我的設置。 EC2實例是運行CentOS的大型預留實例。

我聽過一些關於將S3存儲區掛載到Ec2作爲卷的S3fs。這是一個不錯的選擇,因爲當我將S3 Bucket安裝到Ec2實例時,傳輸速率非常慢。

我是新來的AWS。我的用戶不直接從S3訪問文件,但他們通過我在EC2實例上運行的網站訪問。

回答

4

RDS是存儲元數據(如標籤,註釋和其他有關您的多媒體文件的相關信息)的不錯選擇。 S3適用於存儲靜態內容,如視頻,音頻和圖片。我認爲你使用RDS和S3的方法已經足夠好了。

EBS支持的實例有利於持久性。如果您將元數據存儲在S3上的RDS和靜態內容中,那麼您應該使用EBS支持的EC2實例的唯一原因是您有一些未版本化的配置文件。如果情況並非如此,假設您的配置已經簽入到版本控制中,並且每次都可以按需提供新的實例,那麼您可能希望使EBS卷偏離短暫存儲。這可能會給你一些性能提升,但沒有什麼顯着。

關於您對S3延遲的擔憂,是的,S3很慢。儘管您的所有寫入操作都可能直接發生在S3上,但我強烈建議您爲S3存儲區設置Amazon CloudFront,並讓您的網站從CloudFront消費多媒體內容。 CloudFront是一個內容分發網絡(CDN),可與磁盤卷(EBS支持或短暫)以及S3一起使用。設置它不會超過幾分鐘。 CloudFront還通過RTMP支持流媒體文件。您可能需要一個像GPAC這樣的庫來暗示多媒體文件,如果它們尚未完成,可以使它們成爲流式傳輸。然後,您可能會考慮爲視頻/音頻文件創建一個用於流式傳輸的發行版,併爲圖像,Javascript,樣式表和其他文本文件創建另一個發行版。

希望這會有所幫助。

1

爲了更快地獲取和上傳Amazon S3中的文件,我使用了batch()found here

此外,您還可以使用cloudfront更快地獲取文件。我認爲9gag也使用cloudfront ..