2017-02-04 20 views
1

我是AWS計算的新手。我應該在亞馬遜AWS中使用哪些服務進行基因組和測序相關分析

我有幾個TB的測序數據。 從他們,我想處理標準計算,如讀取映射到基因組等,

首先,我會上傳數據到亞馬遜雲。 通過在羣集上提交多個作業來執行計算, 以便它可以並行執行。我正在考慮做 ala LSF(bsub)或PBS(qsub)。 此外,還有其他團隊成員希望對AWS雲執行類似分析 。

我不知道如何做到這一點。我應該使用哪些服務?

  • 我應該去EC2(有多少實例等)?
  • 我應該使用S3還是EFS作爲數據存儲?
  • 將數據發送到雲端的最佳方式是什麼? (像UNIX的SCP或aws)?
  • 如何將作業提交給多個集羣?
+3

回答這個(好的)問題的方法太多了。 AWS擁​​有一個大型工具箱,可以通過幾種不同的方式來實現目標,但有些會花費更多,有些會比較靈活地關於工作變化,有些會比較好,等等。我很努力地回答這個問題沒有更多的約束:你有多少美元?最大期望的工作週轉量是多少?你願意做多少系統管理?等等。 – bishop

+1

@bishop:謝謝。最小系統管理員,沒有$的問題,我無法回答工作轉身。 – neversaint

+1

好吧,根據您對AWS工具箱的研究,哪些服務似乎不合適,爲什麼?就像你可能讀過SQS一樣,並決定擁有一個總是監聽新數據的集羣的靈活性,但你不需要額外的組件,因爲它需要額外的管理。 – bishop

回答

1

在AWS上運行LSF是可能的,並且well-documented。基本上你建立了一個帶有EFS後端的vanilla EC2集羣,並使用LFS來消費你的數據併產生你的輸出。這是否絕對是最好的體系結構是值得商榷的:AWS提供了一個完整的工具,可以完成LSF所做的工作,更深入地集成在一起,並且每美元的性能可能會更好。但是,這需要重新思考一個不是圍繞LSF構建的解決方案,因此ECS + EFS的邊際成本可能是值得的。

將數據存入集羣應該是直接的,並且合理地阻止與rsync的故障。儘可能將您的數據流打包,打包,同時向羣集發送最小的可用單元:這將使作業儘可能快地進行,並且將有助於使傳輸更容易適應生產者端中斷。

如果您使用LSF作爲您的工作亞軍,您提交作業的方式是standard LSF file。單個EC2可以充當「網關」,接收作業文件並等待數據流可用。或者,您可以將AWS ELB(負載均衡器)設置爲前端網關,將該管理工作分配給負載均衡器中的所有計算機。或者您可以使用SQS將作業定義保持停滯狀態,直到流到達,這將保護作業定義免於任何特定EC2實例的丟失。

另一方面,您可以使用類似Amazon Kinesis的東西來管理傳入的數據流並在其上運行並行作業。這消除了對LFS的需求,用AWS工具箱替代它:Kinesis(Firehose + Streams)+ EMR(Elastic Map Reduce)。但是,這可能並不理想:您必須熟悉這些工具,並且可能只能節省幾千次。

總之,運行EC2 + EFS + ELB的LFS可以正常工作。但是,我可以考慮至少有其他兩種方法來使用Amazon本地工具來做類似的事情。每個人都有自己的優點和缺點,需要考慮。既然你有預算,而且你想要最低限度的系統管理,那麼我建議你去諮詢一位專業的設計人員,爲系統創建一個最適合你的需求的藍圖。然後你可以建立和管理它,或者讓專業人員去做。