AWS 利用以下服務提供一整套工具來管理科學運算工作負載:Amazon Elastic Compute Cloud (Amazon EC2) 用於視需要擴展或縮減運算容量、Amazon Simple Storage Service (Amazon S3) 用於儲存資料,以及 Amazon Elastic Map Reduce (Amazon EMR) 用於管理以 Hadoop 為基礎的工作流程。尤其 Amazon EC2 競價型執行個體是一種針對批次處理使用案例的定價模式,不僅提供客戶隨選佈建的彈性,還可獲得明顯優於其他定價模式的價格優惠。


開始使用 AWS CloudFormation 啟動 Amazon EC2 競價型執行個體
您現在可以使用 AWS CloudFormation 範本來建立和管理一組相關的 AWS 資源集合,而其中包含競價型執行個體。我們提供三個經過優化的新 CloudFormation 範本讓您開始使用,這些範本可節省您的金錢和管理中斷:

若要進一步了解,請參閱 Amazon EC2 User's Guide 中的 Using Spot and CloudFormation

透過 Auto Scaling 利用競價型執行個體
您現在可以利用 Auto Scaling 來管理競價型執行個體。透過 Auto Scaling,您可以使用啟動組態對 Amazon EC2 競價型執行個體出價、取得啟動和終止的通知,以及設定出價的排程。若要進一步了解,請參閱 Amazon EC2 User's Guide 中的 Launching Spot Instances with Auto Scaling

取得關於競價型執行個體的通知
此程式碼教學和範例讓您能夠使用 Amazon SNS 通知,接收特定區域內關於 Amazon EC2 執行個體、目前競價型執行個體請求和現貨價格狀態變更的提醒。您現在可以利用這個新程式碼範例,來設定在競價型執行個體上執行的應用程式,以更輕鬆地管理中斷風險。要檢視此範例應用程式和教學,請按一下此處


科學研究人員有非常複雜的運算工作負載,包含從 DNA 序列分析到粒子物理學模擬的各個領域。無論是哪種應用程式,對所有研究人員都有影響的一個主要問題就是:採購和佈建經濟實惠的運算週期。在典型的科學運算環境中,不但存取共用基礎設施極為耗時,採購為專用而建置的硬體也需要花費時間和可觀的投資。
無論您是正在撰寫論文的博士生或執行突破性藥物研究的製藥公司,評估要在哪裡執行應用程式時都應該考慮以下問題:

  • 我可以多快開始執行應用程式?
  • 是否可以平行進行工作以更快完成?
  • 我的應用程式需要何種彈性等級 (擴展和縮減)?
  • 如何設計我的應用程式以盡量降低費用?

競價型執行個體讓您能夠以客戶選擇的價格對未使用的 Amazon EC2 容量出價。當客戶的出價超過現貨價格時,就可獲得使用可用競價型執行個體的權限,而只要出價一直超過現貨價格,就可以持續執行該執行個體。根據歷史記錄,現貨價格比隨需價格低 50% 到 93%。當客戶的出價超過現貨價格時,就可獲得使用可用競價型執行個體的權限,而只要出價一直超過現貨價格,就可以持續執行該執行個體。競價型執行個體可與 Amazon S3 和 Amazon EMR 等其他服務配合使用,以協助您管理所有運算需求。

以下是很適合和競價型執行個體搭配使用的一些範例使用案例:

  • 基因體序列分析與資料分發
  • 粒子物理學模擬
  • 生物資訊學
  • 分子模擬
  • 人工智慧研究
  • 藥物開發
  • 科學合作與集中化資料管理

AWS 的設計旨在盡量減輕設定和管理自己的 IT 基礎架構重擔。您可以透過 AWS 管理主控台、各種第三方管理工具或是有詳細說明文件的 AWS Web 服務 API 來管理和維護雲端基礎設施,以開始使用 AWS。

您只需為所使用的運算能力、儲存和其他資源付費,無需簽訂長期合約或前期承諾。

AWS 可讓您選擇作業系統、程式設計語言、軟體工具、應用程式平台及其他所需的服務。這可簡化現有應用程式的遷移程序,同時保留建置新解決方案的選項。

AWS 讓您可以在數分鐘內增加或減少容量,而不需要排隊等候以取得所需的資源。您可以佈建一個到數千個伺服器執行個體,這讓您能透過增加更多執行個體來加速工作負載,而在完成時關閉這些執行個體。

建立共用的空間以讓您與協作者共用資料、結果以及方法。

AWS 使用端對端方法來保護和增強我們的基礎設施,包含實體、操作和軟體措施。如需詳細資訊,請參閱 AWS Security Center

競價型執行個體讓您可以出價來取得未使用的 Amazon EC2 容量。執行個體按現貨價格收費,現貨價格由 Amazon EC2 設定,並根據競價型執行個體容量的供需週期性波動。要使用競價型執行個體,您要下達競價型執行個體請求,指定執行個體類型、所需的區域、希望執行的競價型執行個體數量以及每個執行個體小時願意支付的最高價。要確定該最高價與過去現貨價格對比情況,可透過 Amazon EC2 API 和 AWS 管理主控台查看現貨價格歷史記錄。如果您的最高出價超出目前現貨價格,則會滿足您的請求,您的執行個體將會執行,直到您選擇終止它們或現貨價格增加到高於您的最高價 (以先到者為準)。

下表顯示針對最低價格的可用區域,按照執行個體類型的現貨價格 (每 5 分鐘更新一次)。


除非另有說明,否則我們的價格不包括適用的稅金和稅收 (包括加值稅和適用的營業稅)。帳單地址在日本的客戶若使用 AWS,則需負擔日本消費稅。進一步了解

您可以使用 AWS 管理主控台或 Amazon EC2 API 請求競價型執行個體。使用 AWS 管理主控台開始操作:

  1. 登入 AWS 管理主控台,然後按一下「Amazon EC2」標籤。
  2. 按一下左側功能窗格中的 “Spot Requests”。
  3. 按一下「Pricing History」以開啟可按執行個體類型選擇的歷史定價檢視。它可以幫助您為請求選擇最高價。所顯示的定價特定於選擇的可用區域。如果未選擇可用區域,您將會看到該區域每個可用區域的定價。
  4. 按一下「Request Spot Instances」,然後逐步完成 Launch Instance Wizard 流程,選擇 AMI 和執行個體類型。輸入您要請求的競價型執行個體數量、您的最高價,以及該請求是否為永久的。選擇完金鑰對和安全群組後,您就可以提交競價型執行個體請求。
video-thumb-spot-instances-getting-started
4:13
競價型執行個體入門

有關如何透過 Amazon EC2 API 請求競價型執行個體的詳細資訊,請參閱最新 EC2 技術文件中的 Amazon EC2 API 參考。

如需更多有關使用競價型執行個體的詳細逐步指導,以及有關如何充分利用競價型執行個體的詳細資訊,請參閱特色文件與教學章節

建置或遷移應用程式以在競價型執行個體上執行是很簡單的。以下章節概要說明如何建置、遷移和測試應用程式,以和競價型執行個體搭配使用。

建置新應用程式
如果您能夠從頭建立應用程式的架構,我們建議您花些時間閱讀此網頁的常見架構與最佳實務章節,其中概要說明我們過去曾看到其他客戶搭配競價型執行個體使用的許多架構。

遷移現有的應用程式
許多應用程式的架構都具備容錯能力,所以遷移應用程式以在競價型執行個體上執行應該相當容易。在遷移過程中,我們建議整合下列最佳實務:

  • 追蹤競價型執行個體的開始和終止時間:競價型執行個體會非同步開始,而在現貨價格超過您的出價時被中斷。所以,追蹤出價與執行個體的狀態很重要。了解競價型執行個體目前狀態的最簡單方法就是,透過 AWS 管理主控台或 Amazon EC2 API 來監控競價型執行個體請求和執行的執行個體。
  • 選擇執行個體的最高價:請記得,提交作為請求一部分的最高價並不一定是每小時將支付的價格,但它是您要保持執行個體執行所願意支付的最高價。透過 AWS 管理主控台或 Amazon EC2 API 使用現貨價格歷史記錄以幫助您設定最高價。
  • 確保應用程式具備容錯能力:由於競價型執行個體可能不發出警告即終止,因此所建置的應用程式應讓您即使在應用程式被中斷時也不會影響進度,這一點非常重要。要達成此目標有很多方法,其中的兩種方法分別為新增檢查點到應用程式以及將您的工作分成較小的增量。使用 Amazon EBS 磁碟區存放資料是保護資料的一種簡易方法。

也請瀏覽常見架構與最佳實務章節,以檢視是否有任何其他有關架構的特定秘訣。

測試您的設定
使用競價型執行個體時,最重要的就是確定您的應用程式具備容錯能力,並且將正確地處理中斷。當我們嘗試徹底終止您的執行個體時,您的應用程式必須準備好處理立即的關機。您可以透過執行隨需執行個體,然後突然終止它來測試應用程式。這可以協助您判斷應用程式是否具備足夠的容錯能力,並且能處理意外的中斷。

video-thumb-manage-spot-interruption
3:59
如何管理競價型執行個體的中斷情況

由於競價型執行個體可能不發出警告即終止,因此所建置的應用程式應讓您即使在應用程式被中斷時也不會影響進度,這一點非常重要。實現這一點有許多方法,其中兩種方法分別為將工作分為較小的增量 (透過網格、以 Hadoop 為基礎或以佇列為基礎的架構) 或向您的應用程式新增檢查點。此章節提供數種現有競價型執行個體客戶常用的架構概觀。

Apache Hadoop 是一種開放原始碼軟體架構,支援資料密集型的分散式應用程式。它讓應用程式可以使用數千個節點,並透過以下兩個主要元件來處理以 PB 計的資料量:(1) 具備容錯能力的分散式儲存系統,以及 (2) 支援針對大量分散資料集進行有效且徹底分析的 MapReduce 技術。Hadoop 是針對標準化量產硬體所開發,不論有沒有結構描述都能存放資料,並且在 PB 層級提供線性擴展能力。BacktypeFliptop 等客戶都已採用 Amazon Elastic MapReduce,這是一項受管的 Hadoop 服務,可以簡化 Hadoop 叢集佈建、組態以及管理,與競價型執行個體搭配可大幅降低大量資料處理的費用。

Amazon Elastic MapReduce 可輕易在相同的資料處理叢集中混合競價型執行個體與隨需或預留執行個體。這不僅能消除因競價型市場波動而導致叢集失效的風險,還能減少費用和加速處理時間。如果競價型執行個體因為現貨價格變化被中斷,在那些執行個體上執行的任務會簡單地加回資料處理佇列,以讓剩餘的隨需執行個體處理。客戶可以使用大小縮減後的叢集繼續進行資料處理,或動態新增額外的執行個體到叢集,以取代被中斷的執行個體。

video-thumb-emr-spot
3:27
搭配使用競價型執行個體與 EMR

有數個範例使用案例很適合使用競價型執行個體搭配 Elastic MapReduce,其中包含客戶可以擴展以增加執行速度的應用程式、彈性完成時間可用來獲得明顯費用節省效果的應用程式、負載有明顯波動需要經常調整大小的持久性 Hadoop 叢集,以及減少 Hadoop 應用程式測試的費用。

舉例來說,試想我們有一個通常要用 4 個隨需執行個體費時 14 個小時執行的任務,而這一般要花費 28 USD。現在想像我們可以新增 5 個額外的競價型執行個體 (因為任務以非線性擴展) 而且任務可以在 7 個小時內執行。執行此任務的總費用現在為 15.75 USD,假設現貨價格比隨需價格低 90%。如下所示,透過新增競價型執行個體可以節省 50% 的時間和 44% 的費用:

emr

案例 1:沒有競價型執行個體
4 個隨需執行個體 * 14 小時 * 0.50 USD = 28 USD

案例 2:隨需執行個體及額外的競價型執行個體
4 個隨需執行個體 * 7 小時 * 0.50 USD = 14 USD
5 個競價型執行個體 * 7 小時 * 0.05 USD = 1.75 USD
合計 = 15.75 USD

時間節省:50%
費用節省:~44%

若要進一步了解 Amazon Elastic MapReduce,請瀏覽 Amazon Elastic MapReduce 網頁或 Amazon Elastic MapReduce 入門指南

網格是分散式運算的一種形式,可讓使用者利用多個執行個體進行平行運算。使用網格運算搭配競價型執行個體的客戶有 NumerateScribd 等,這種架構可以利用競價型執行個體的內建彈性與低價的優點,能夠以更經濟實惠的價格更快速完成工作。

開始使用時,使用者會將工作分成幾個稱為任務的單位,然後將該工作提交到「主節點」。這些任務會排入佇列,而稱為「排程工具」的程序則將該工作向外分配到網格中稱為「工作者節點」的其他執行個體。一旦工作者節點運算出結果,主節點會接獲通知,然後工作者節點會執行來自佇列的下一個操作。如果任務失敗或執行個體被中斷,排程工具程序會自動將任務再排入佇列。

grid_computing

因為您要設法架構應用程式,所以在任務中納入適當數量的工作很重要。我們建議您根據處理任務花費的時間,將多個任務組成邏輯群組。您通常要建立少於一小時的工作負載大小,這樣在必須重新處理工作負載時,就不需要額外花費 (如果我們中斷您的執行個體,您不需要支付該小時的費用)。

video-thumb-launching-cluster-spot
7:50
使用 StarCluster 在 Amazon Ec2 競價型執行個體中啟動叢集

許多客戶使用網格排程工具,例如 Oracle Grid Engine 或 UniCloud 來設定叢集。如果您有長時間執行的工作負載,則最佳實務是在隨需或預留執行個體上執行主節點,而在競價型執行個體或隨需、預留及競價型三者混合的執行個體上執行工作者節點。或者,如果有少於一小時的工作負載或正在執行測試環境,則可能要以競價型來執行所有執行個體。不論設定為何,我們建議您建立指令碼來自動重新新增可能會被中斷的執行個體。某些現有的工具可以協助您管理此程序,如 StarCluster。

若要進一步了解如何建立自己的網格,請瀏覽 StarCluster 影片教學或網格運算入門指南。或是嘗試啟動我們的 StarCluster CloudFormation 範本。立即啟動

包含 DNAnexus 在內的許多客戶都已建置以佇列為基礎的架構,並有能力處理任務失敗的可能狀況。許多這類應用程式透過整合競價型佈建 API,可以輕鬆擴充以利用競價型執行個體。

舉例來說,試想有一個利用 Amazon EC2 競價型執行個體與 Amazon SQS 的應用程式。這個應用程式有三個 SQS 佇列:待處理、已處理以及例外。根據佇列的深度,主節點將使用競價型佈建 API 來擴展或縮減競價型執行個體工作者節點。或者,可以用長久標的方式來啟動競價型執行個體,這樣在它失敗時可以自動重新開始。一旦啟動競價型執行個體,應用程式將透過讀取啟動時傳入執行個體的使用者資料,或是 Amazon SimpleDB 或 Amazon S3 中遠端儲存的組態,來判斷要利用哪個佇列。然後在競價型執行個體上執行的工作者節點將從「待處理」佇列中選取下一個任務,並鎖定該任務。鎖定該任務可防止其他工作者節點嘗試運算相同的任務,直到經過指定的一段時間或任務完全處理為止。如果已經成功處理任務,工作者節點會將附有結果的回覆發送到「已處理」佇列,主節點可以在其中執行任何其他邏輯。或者,如果因任務花費時間太久或工作者節點被中斷而無法處理任務,則任務將被移動到例外佇列,並且啟用主節點執行任何其他特殊化的邏輯,例如將任務重新排入佇列。如果任務因為競價型執行個體不可用而失敗,那麼主節點也可以在必要時選擇開始新的競價型執行個體。

queue

當使用以佇列為基礎的方法時,請確定處理工作的單位是等冪的 (可被安全處理多次),以確保繼續執行被中斷的任務不會產生問題。

若要進一步了解如何建置類似的架構,請閱讀使用 Amazon SQS 建構可擴展的 Amazon EC2 應用程式指南或參閱 Amazon SQS 與 Amazon EC2 任務處理器範例。或者,如果有興趣了解關於啟動可為您管理佇列的範本,請參考非同步以佇列為基礎的處理範本。立即啟動

取決於競價型容量供需變化所導致的現貨價格波動,競價型執行個體請求可能無法立即履行,並且可能未經警告而終止。為了保護您的工作免於可能的中斷,我們建議插入定期檢查點,每隔一段時間就儲存工作。

像 BrowserMob 這些客戶管理此中斷的方式就是在您的資料插入檢查點。最佳實務是選擇希望重新處理的時間上限以及最低頻率的檢查點。

有多種方法可以在應用程式插入檢查點,這些方法包括:

  • Amazon EBS:客戶可以將額外的 Amazon EBS 磁碟區對應到他們的競價型執行個體,然後將應用程式的狀態定期輸出至該磁碟區。如果您利用此方法,務必定期排清緩衝區,以確保所有狀態都在 Amazon EBS 磁碟區上。
  • Amazon S3:Amazon S3 是客戶可以寫入資料的耐用存放區。如果應用程式允許您在處理資料時將結果輸出成個別檔案,則可以使用 Amazon S3 來存放結果。然後,您只需要將儲存貯體 URL 分發給任何需要讀取該結果的程序。
  • Amazon RDS:如果您需要結構資料存放區,則可以利用 Amazon RDS 來存放任何結果。由於 Amazon RDS 允許使用 MySQL 或 Oracle 資料庫,您可以將查詢設定為不認可工作,直到明確發出 “commit” 命令為止。這個方法將確保程序被中斷時會自然回復。

當使用以檢查點為基礎的方法時,請確定您的工作負載在檢查點之間是等冪的,如此在要繼續中斷的任務時,才能安全地多次處理工作負載。

您要建議在使用競價型執行個體時管理中斷的新方式嗎?

DNAnexus
DNAnexus 為 DNA 定序中心和研究人員提供資料管理和序列分析的統一系統。DNAnexus 利用 Amazon Elastic Compute Cloud (Amazon EC2) 競價型執行個體來執行其所有 DNA 分析,而利用 Amazon EC2 隨需執行個體來處理公司的互動服務,例如客戶端前端入口網站與視覺化工具。此外,DNAnexus 還倚賴 Amazon Simple Storage Service (Amazon S3) 來滿足公司廣泛的儲存需求,這個需求將從 TB 等級增長到 PB 等級的資料。

BioTeam
BioTeam Inc. 是由一群科學家擁有和經營的獨立顧問公司,專注於消除科學和高效能 IT 之間的隔閡。我們的員工具備紮實且專業廣泛的能力,所以能夠提供各種專業服務。公司從 2007 年就開始使用 Amazon AWS 來解決客戶遇到的問題。BioTeam 在傳統 HPC、叢集及網格運算環境有多年的操作經驗,能夠針對雲端運算為客戶提供實際可行的服務。進一步了解 BioTeam

CycleComputing
Cycle Computing 在 Amazon EC2 上使用開放技術來執行高效能與高輸送量運算叢集,是業界首屈一指的軟體。Cycle 的解決方案可支援科學、財務、商業以及工程應用程式。Fortune 500 公司倚賴 CycleCloud™ 產品與 CycleServer™ 軟體,並結合開放原始碼架構 (如 Condor、SGE 及 Hadoop),以部署關鍵任務所需的商業應用程式,包含藥物開發、風險管理計算、生物資訊學,以及在公有雲端 (如 Amazon EC2) 與在內部資源上的計算流體動力學。進一步了解 CycleComputing

Eagle Genomics
Eagle Genomics 使用 Amazon 的 EBS、EC2、RDS、S3、Load Balancing、Auto Scaling 以及命令列工具,為製藥、農業、動物保健公司及學術中心處理和分析基因體資料。Eagle Genomics 最近為位於英國愛丁堡 Roslin Institute 的 ARK Genomics,將競價型執行個體用於新穎 microRNA 的開發流程。

video-thumb-spot-instances-getting-started
4:13
競價型執行個體入門

影片教學:How to Launch a Spot Instance
請觀看此影片教學,了解如何啟動您的第一個競價型執行個體。此教學介紹了競價、確定執行個體何時得到滿足以及取消/終止執行個體的相關資訊。

指南:Getting Started with Spot Instances
如需有關使用競價型執行個體的詳細逐步指導,以及有關如何充分利用競價型執行個體的更多資訊,請閱讀本指南。

video-thumb-when-to-use-spot-instances
6:02
何時使用 Amazon 競價型執行個體

影片教學:Common Spot Use Cases
在此影片中,我們將逐步介紹競價型執行個體的範例使用案例。在此影片中,我們將介紹一些客戶範例 (包括 Numerate、Clarity Solutions、Ooyala 和 BrowserMob) 以及他們在自己的架構中運用競價型執行個體的方式。

video-thumb-manage-spot-interruption
3:59
如何管理競價型執行個體的中斷情況

影片教學:How to Manage Interruption
請觀看此影片,了解一些客戶如何管理其競價型執行個體的中斷情況。

指南:Getting Started Programming Guide for Spot Instances
此程式碼教學簡要概述如何以程式設計方式競價、描述和取消競價型執行個體。

指南:Advanced Programming Guide for Spot Instances
此簡易程式碼教學簡要概述了競價型執行個體的更多進階佈建主題和中斷管理技巧。

指南:How to Track Spot Instance Activity with the Spot Notifications Sample Application
此程式碼教學和範例讓您能夠產生和管理特定區域內關於 Amazon EC2 執行個體、目前競價型執行個體請求和現貨價格狀態變化的 Amazon SNS 通知。您現在可以利用這個程式碼範例來設定在競價型執行個體上執行的應用程式,以更輕鬆地管理中斷風險。

video-thumb-spot-bidding-strategy
4:34
決定您的競價策略

影片教學:Deciding on Your Spot Bidding Strategy
請觀看此影片,了解對競價型執行個體競價的提示和技巧。我們將介紹客戶利用並已成功的各種競價策略。

video-thumb-spot-emr
3:27
搭配使用競價型執行個體與 EMR

影片教學:Launching Amazon Elastic MapReduce Job Flows with Spot Instances
請觀看此影片,了解如何在競價型執行個體上啟動 Amazon Elastic MapReduce 任務流程。我們將介紹在 AWS 管理主控台中啟動競價型執行個體叢集並關閉一個叢集的相關資訊。

video-thumb-launching-cluster-spot
7:50
使用 StarCluster 在 Amazon Ec2 競價型執行個體中啟動叢集

影片教學:How to Launch a Cluster on Spot
來自 BioTeam 的 Chris Dagdigian 簡要概述如何使用 StarCluster,用大約 10–15 分鐘的時間在 Amazon EC2 競價型執行個體上從頭啟動叢集。StarCluster 是由 MIT 的一家實驗室建立的開放原始碼工具,便於輕鬆設定新的 Oracle Grid Engine 叢集。在此示範中,Chris 逐步介紹了在叢集中安裝、設定和執行簡易任務的過程。此外,Chris 利用競價型執行個體,以便您有可能加快完成工作並為隨需價格節省高達 93% 的費用。如有興趣了解此教學,還可以查看我們的 StarCluster CloudFormation 範本

video-thumb-launching-spot
7:40
在 Amazon VPC 中啟動競價型執行個體

影片教學:Launching Spot Instances in Amazon VPC
請觀看此影片,了解如何在 Amazon VPC 中啟動競價型執行個體。此教學介紹了競價、確定執行個體何時得到滿足以及取消/終止執行個體的相關資訊。

AWS 公用資料集提供了集中化的儲存庫,資料可以在這裡共用及無縫整合到以 AWS 雲端為基礎的應用程式。範例包含:1000 Genomes Project – 這是一項國際性的公眾與私人合作計畫,目的是建構最新且最詳細的人類基因變異圖譜;Ensembl 的 Annotated Human Genome Data for MySQL – 涵蓋人類在內 50 個物種的基因體;以及 Sage Bionetwork 的 Human Liver Cohort – 提供肝臟樣本中的基因表現。請瀏覽公用資料集網頁以取得詳細資訊。

透過 AWS 教育領域應用計劃,教育工作者、學術研究人員以及學生可以申請取得免費用量積分,深入了解 Amazon Web Services 的隨需基礎設施,以教授進階課程、準備進行各種研究以及探索新專案。如果您有興趣進一步了解此計劃,請瀏覽 AWS 教育領域應用網頁以取得詳細資訊。