AWS 提供一套完整的工具来通过利用诸如以下类型的服务来管理科学计算工作负载:视需要扩大和缩小计算容量的 Amazon Elastic Compute Cloud (Amazon EC2)、存储数据的 Amazon Simple Storage Service (Amazon S3) 以及管理基于 Hadoop 的工作流的 Amazon Elastic Map Reduce (Amazon EMR)。特别需要指出的是,Amazon EC2 是一个定价模型,其目的在于批量处理使用案例、在通过其它定价模型实现大幅价格节省时为您的客户提供灵活的专门预配置。


利用 AWS CloudFormation 开始启动 Amazon EC2 竞价型实例
您现在可以使用 AWS CloudFormation 模板来创建和管理相关 AWS 资源的集合,包括竞价型实例。开始时,我们将提供三个新的 CloudFormation 模板,它们经过优化以节省您的资金和管理中断:

要了解更多,请访问 Amazon EC2 用户指南中的使用竞价型实例和 CloudFormation

通过 Auto Scaling 利用竞价型实例
您现在可以利用 Auto Scaling 来管理竞价型实例。借助 Auto Scaling,您可以通过启动配置为 Amazon EC2 竞价型实例竞价,获得启动和终止通知并为竞价设置计划。要了解更多,请访问 Amazon EC2 用户指南中的利用 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 安全中心

使用竞价型实例,您可以按未使用的 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 请求竞价型实例的详细信息,请参阅 Amazon EC2 API 参考中的 最新的 EC2 技术文档

如需有关使用竞价型实例的详细逐步指导,以及有关如何充分利用竞价型实例的详细信息,请访问 Featured Documentation and Tutorials 章节

构建或迁移将在竞价型实例上运行的应用程序的过程很简单。以下章节概括了如何构建、迁移和测试用于竞价型实例的应用程序。

构建新应用程序
如果您有能力从头开始架构您的应用程序,我们建议您花点时间阅读一下本 Web 页面的 Common Architectures and Best Practices 章节,该章节概述了其他客户过去用于竞价型实例的很多架构。

迁移现有应用程序
很多应用程序已被架构为能够容错,因此迁移将在竞价型实例上运行的应用程序相当容易。在迁移过程中,我们建议迁移以下最佳实践:

  • 跟踪竞价型实例的开始和终止时间: 竞价型实例不同时启动,且能在竞价价格超出您的出价时被中断。因此,跟踪您的出价和实例的状态很重要。了解竞价型实例当前状态的最简单方法就是,通过 AWS 管理控制台或 Amazon EC2 API 监控竞价型实例请求和运行的实例。
  • 为您的实例选择最高价格:请记住,作为您请求的一部分所提交的最高价格不一定是您每小时将支付的价格,而是您为保持实例运行而愿意支付的最高价格。通过 AWS 管理控制台或 Amazon EC2 API 使用竞价历史记录以帮助您设置最高价格。
  • 确保您的应用程序能容错: 由于竞价型实例可能不发出警告而终止,因此构建的应用程序应允许您即使在应用程序中断的情况下也能不影响进度,这一点非常重要。完成这一点的方法有很多种,其中的两种分别是,向您的应用程序添加检查点与将工作拆分为较小的增量。使用 Amazon EBS 卷存储数据是保护数据的一种简易方法。

同时还请访问 Common Architectures and Best Practices 章节以查看是否存在任何与您的架构相关的其它特定提示。

测试您的设置
测试您的设置 使用竞价型实例时,确保您的应用程序能够容错并正确处理中断是非常重要的。当我们试图完全终止您的实例时,您的应用程序应做好准备以处理立即关闭的情况。您可以通过运行按需实例,然后突然将其终止来测试应用程序。这样可帮助您确定应用程序是否具有足够的容错能力且能够处理意外的中断情况。

video-thumb-manage-spot-interruption
3:59
如何管理竞价型实例的中断情况

由于竞价型实例可能不发出警告而终止,因此构建的应用程序应允许您即使在应用程序中断的情况下也能不影响进度,这一点非常重要。实现这一点有许多方法,其中两种方法分别为将工作拆分为较小的增量(通过网格、基于 Hadoop 或基于队列的架构)或向您的应用程序添加检查点。以下章节概述了现有竞价客户所利用的几个常用架构。

Apache Hadoop 是一个开源软件框架,可给数据密集型分布式应用程序提供支持。它能使应用程序对数千个节点产生作用,从而通过以下两大主要组件处理 pb 级数据:(1) 能容错的分布式存储系统和 (2) 能通过大规模分布式数据集支持高效、详尽分析的被称为 MapReduce 的技术。Hadoop 针对商用硬件进行开发,在有或没有模式的情况下都能存储数据,且会提供千兆级的线性可扩展性。Backtype 和 Fliptop 之类的客户使用 Amazon Elastic MapReduce,该服务是一项受管理的 Hadoop 服务,能简化 Hadoop 集群的预配置、配置和管理过程以及竞价型实例,从而大幅降低处理大规模数据产生的费用。

通过 Amazon Elastic MapReduce 可以将竞价型实例与按需或预留实例轻松混合在同一个数据处理集群中。这样做可以降低成本并加快处理过程,同时还会去除因竞价市场波动而造成的集群故障风险。如果竞价型实例因竞价价格的更改而中断,则在这些实例上运行的任务会被添加回数据处理队列中,以待其余的按需实例进行处理。客户可以用容量减小的集群继续处理数据,或将其它实例动态添加至集群中以替代被中断的实例。

video-thumb-emr-spot
3:27
通过 EMR 使用竞价型实例

以下几个示例使用案例是通过 Elastic MapReduce 使用竞价型实例的理想选择,分别为客户可以在其中进行扩展以提高执行速度的应用程序、可以在其中在完成时利用灵活性获取大幅成本节省的应用程序、需要在其中频繁调整大幅负载波动的永久性 Hadoop 集群以及用于减少 Hadoop 应用程序测试成本的 Hadoop 集群。

举个例子,假设有一项工作我们一般需要花超过 14 个小时与通过 4 个按需实例来执行,其费用通常为 28 美元。现在,假设我们可以额外添加 5 个竞价型实例(因为任务进行了非线性扩展)且任务能在 7 个小时内执行完毕。假设竞价价格比按需价格少 90%,则现在任务运行总费用为 15.75 美元。而通过添加竞价型实例,时间会节省 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 Web 页面 或 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 数据库,您可以设置您的队列在您明确发出“许诺”命令之前不执行工作。此方法能确保您在过程被中断时自然回滚。

使用基于检查点的方法时,确保您的工作负载在检查点之间是等幂的,从而使您的工作负载在您恢复中断的任务时,能够安全的多次处理。

您是否想要建议一种新方法在使用竞价型实例时管理中断?

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 的解决方案支持科学、财经、商业和工程应用程序。财富 500 强公司依靠 CycleCloud™ 服务和 CycleServer™ 软件并结合 Condor、SGE 和 Hadoop 之类的开源框架部署任务关键型商业应用程序,包括药物研发、风险管理计算、生物信息学以及 Amazon EC2 等公共云和内部资源上的计算流体动力学。了解更多有关 CycleComputing 的信息。

Eagle Genomics
Eagle Genomics 利用 Amazon 的 EBS、EC2、RDS、S3、Load Balancing 和 Auto Scaling 以及命令行工具来处理和分析制药、农业和动物保健公司以及学术中心的基因组数据。最近,Eagle Genomics 一直在采用竞价型实例为英国爱丁堡罗斯林协会的 ARK Genomics 开发新型 microRNA 发现途径。

video-thumb-spot-instances-getting-started
4:13
开始使用竞价型实例

视频教程:如何启动竞价型实例
请观看此视频教程,了解如何启动您的第一个竞价型实例。此教程介绍了竞价、确定实例何时得到满足以及取消/终止实例的相关信息。

指南:竞价型实例入门
如需有关使用竞价型实例的详细逐步指导,以及有关如何充分利用竞价型实例的更多信息,请阅读本指南。

video-thumb-when-to-use-spot-instances
6:02
何时使用 Amazon 竞价型实例

视频教程:常见竞价型实例使用案例
在此视频中,我们将逐步介绍竞价型实例的示例使用案例。在此视频中,我们将介绍一些客户示例(包括 Numerate、Clarity Solutions、Ooyala 和 BrowserMob)以及他们在自己的架构中运用竞价型实例的方式。

video-thumb-manage-spot-interruption
3:59
如何管理竞价型实例的中断情况

视频教程:如何管理中断
请观看此视频,了解一些客户如何管理其竞价型实例的中断情况。

指南:竞价型实例编程入门指南
此代码教程简要概述了如何以编程方式竞价、描述和取消竞价型实例。

指南:竞价型实例高级编程指南
此简易代码教程简要概述了竞价型实例的更多高级预配置主题和中断管理技巧。

指南:如何使用竞价通知示例应用程序跟踪竞价型实例活动
此代码教程和示例让您能够生成和管理特定区域内关于 Amazon EC2 实例、当前竞价型实例请求和现货价格状态变化的 Amazon SNS 通知。通过利用此代码示例,您现在可以设置在竞价型实例上运行的应用程序,从而更加轻松地管理中断风险。

video-thumb-spot-bidding-strategy
4:34
决定您的竞价策略

视频教程:决定您的竞价型实例竞价策略
请观看此视频,了解对竞价型实例竞价的提示和技巧。我们将介绍我们所看到的客户已成功利用的若干不同竞价策略。

video-thumb-spot-emr
3:27
通过 EMR 使用竞价型实例

视频教程:竞价型实例启动 Amazon Elastic MapReduce 任务流
请观看此视频,了解如何在竞价型实例上启动 Amazon Elastic MapReduce 任务流。我们将介绍在 AWS 管理控制台中启动竞价型实例集群并关闭一个集群的相关信息。

video-thumb-launching-cluster-spot
7:50
使用 StarCluster 在 Amazon Ec2 竞价型实例中启动集群

视频教程:如何在竞价型实例中启动集群
来自 BioTeam 的 Chris Dagdigian 简要概述了如何使用 StarCluster 在 Amazon EC2 竞价型实例上用大约 10-15 分钟时间从头启动集群。StarCluster 是由 MIT 的一家实验室创建的一种开源工具,便于轻松设置新的 Oracle Grid Engine 集群。在此演示中,Chris 逐步介绍了在集群中安装、设置和运行简易任务的过程。此外,Chris 利用竞价型实例,以便您有可能加快完成工作并为按需价格节省高达 93% 的费用。如有兴趣了解此教程,还可以查看我们的 StarCluster CloudFormation 模板

video-thumb-launching-spot
7:40
在 Amazon VPC 中启动竞价型实例

视频教程:在 Amazon VPC 中启动竞价型实例
请观看此视频,了解如何在 Amazon VPC 中启动竞价型实例。此教程介绍了竞价、确定实例何时得到满足以及取消/终止实例的相关信息。

AWS 公有数据集提供了一个集中存储库,可以在其中共享此数据,并将数据无缝集成到基于 AWS 云的应用程序。示例包括: 千人基因组计划 – 一个为迄今为止人类基因变异绘制最详细图谱的国际性公私联盟;Ensembl’s Annotated Human Genome Data for MySQL – 其中包含包括人类在内的 50 多个物种的基因组,以及 Sage Bionetwork 的 Human Liver Cohort – 它用更生动的示例来表达基因表现的特征。请访问公用数据集 Web 页面了解更多详细信息。

教研人员、学术研究员和学生都可以运用 AWS 教研领域应用获取免费使用的信贷额度,以进入 Amazon Web Services 的按需基础设施,从而教授高级课程、解决研究问题并探索新项目。如您有兴趣了解更多有关此计划的信息,请访问 AWS 教研领域应用 Web 页面了解更多详细信息。