2013-03-01 33 views
3

因此,我正在爲用戶上傳的視頻提供服務,並且所有基礎架構都在亞馬遜上。我試圖找到一個好工作的解決方案,這裏是我使用PHP 在AWS上託管用戶上傳的視頻的最佳方式

  • 傳輸視頻文件到S3
  • 思維

    1. 有EC2即時它處理文件上傳到它的EBS卷,
    2. 讓亞馬遜彈性轉碼器將視頻文件轉換爲從S3合適的格式,並存儲回到S3
    3. 使用CloudFront的服務轉換的視頻文件向公衆

    首先所有你對此有何看法?有沒有更簡單的方法來實現相同或更好?

    其次我現在的主要問題是將文件傳輸到S3,我已經嘗試過s3fs來做到這一點,但它在大文件傳輸上有各種奇怪的問題,這讓我放棄了s3fs。

    作爲對Fastest/best way copy data between S3 to EC2?的迴應,有人建議使用EBS卷,但我不確定是否可以掛載EBS,然後也可以訪問S3上的相同數據。

    任何幫助表示讚賞

    +0

    我已將CloudFront用於小/低容量的東西,並且運行良好。 – 2013-03-01 21:54:10

    回答

    4

    對於文件傳輸到S3,因爲你已經在PHP編碼,你應該看看Amazon提供的接口給他們的服務PHP庫。使用基於文件系統的方法,將它掛載到您的實例上,並不是最好的方法,因爲與S3的連接比您想要的要更頻繁。我知道,我已經嘗試過了。

    但是,一般來說,您的方法來「抓住」您的實例上的文件,然後將其推到S3是合理的。您需要小心,不要在數據庫中保存對文件的引用,直到達到S3,否則,如果您選擇在Load Balancer後面運行多個實例,則會遇到可伸縮性問題。關於轉碼,亞馬遜轉碼服務相當新穎,所以我沒有經驗,但我可以強烈推薦Zencoder。順便說一下,它運行在AWS上,而且速度快,價格便宜,並且它是您期待AET工作的方式:您給它一個S3文件,然後告訴它在哪裏編寫代碼轉換變體,縮略圖等。

    希望這有助於。

    1

    你不需要EBS這個。

    您可以將上傳的數據寫入EC2臨時驅動器,然後將其推送到S3,或者您可以將數據直接傳輸到S3。

    如果你採用短暫的驅動方式,那麼如果你的虛擬機死亡,你可能會失去數據丟失的風險,但總體而言,移動部件的簡單性很可能是值得的。

    將數據直接傳輸到S3是我想要做的。它消除了寫入磁盤的整個步驟(無論是本地還是EBS),這簡化了您的應用程序。

    是我設計這樣一個系統,這將是:

    1. 列表項
    2. 彈性魔豆向外擴展前端
    3. 數據由應用程序
    4. 直接傳輸到S3 RDS或DynamoDB表追蹤什麼是完整的和正在進行的。
    相關問題