2011-05-02 69 views
3

我已經編寫了一個應用程序來處理視頻編碼。編碼是一個流水線過程:首先取你視頻,則編碼使用它的ffmpeg,則分割視頻成多個部分,等等如何處理雲上的大容量存儲(或者其他?)

在此過程中,一個1個GB視頻氣球成幾個GB的中間數據。這項服務是爲了讓一個不同的程序(通過RabbitMQ)可以處理每條管道。當然,這個過程不需要這樣運行,這使我想到了我的問題。

我正在尋找使應用程序「生活」的存儲要求。使用雲提供商,您需要支付每GB的存儲空間和每GB的傳輸費用。到現在爲止還挺好。

當我將這1 GB視頻blob從一個雲VM實例轉移到另一個雲,或從VM轉移到公共存儲服務時,是否會計入我的帶寬? (我意識到這個答案會根據主機的服務條款而改變。)

讓1個虛擬機執行整個過程,然後啓動多個實例會更有意義嗎?與僅在管道中執行單個任務的1個VM相反?我在優化成本方面問了這個問題(最低的存儲成本,最低的啓動虛擬機成本,因爲編碼會批量發生,所以我不太在意推出請求快速)。

這種情況是有點獨特的,因爲我有大量的二進制數據,不能有效地存儲在數據庫中。這引發了一個類似的問題:對於那些有經驗的人,當你的數據庫虛擬機將結果發送回你的網絡應用程序時,你是否被要求進行中間傳輸?

我是否問正確的問題?有沒有我應該閱讀的指南,而不是打電話給託管服務提供商,詢問他們自己的定價?

回答

1

你的場景的獨特性使得它相當有趣我會說!

關於在雲中的虛擬機之間傳輸數據,取決於提供商和位置。 亞馬遜例如,在EC2中,不是收費數據之間的網絡服務之間的轉讓相同的位置。因此,您可以將您的「大量二進制數據」的上傳/下載最初的轉移成本降至最低。

現在,您的任務是否可以高效並行化?如果是的話,考慮同時騰出大量虛擬機以更快地完成工作。如果時間=金錢,這是有成本效益的,但我對你的情況很不情願,因爲你提到你不太關心迅速推動變化。您仍然可以擁有主VM處理請求和協調批處理,以及啓動 - 關閉其他處理一些工作負載的VM。只要您的虛擬機正在運行,您就會付費,如實用程序

在您的情況下,好處是這些批處理任務是理想的雲計算,他們的定價模式非常簡單。這些任務是資源密集型(CPU/RAM),因此它們的「貪婪」可以通過雲提供的幾乎無限的資源來滿足。

+0

謝謝!我決定的是:我的媒體相關任務可以並行化。但是,「鎖定」的成本 - 將媒體blob從一個階段轉移到另一個階段 - 是巨大的,因爲我將傳輸很多GB數據。因此,啓動一個實例來完成每個進程(從而避免緩慢的數據傳輸)而不是每個階段的多個實例會更有意義。感謝您爲我澄清這一點! – poundifdef 2011-05-06 03:05:03

相關問題