@liuhui0803
2018-02-01T15:46:05.000000Z
字数 2314
阅读 4132
开发
DevOps
AWS
IaaS
云计算
摘要:
Amazon Web Services (AWS)最近对Amazon EC2 Spot实例的申请和运维方式进行了大幅调整,此番举措将帮助用户显著降低成本。现在,用户无需指定竞价即可申请Spot实例,Spot价格调整幅度更为细化,此外Spot实例还可停止或睡眠,稍后可恢复运行,借此进一步降低对工作负载的影响。
正文:
Amazon Web Services (AWS)最近对Amazon EC2 Spot实例的申请和运维方式进行了大幅调整,此番举措将帮助用户显著降低成本。现在,用户无需指定竞价即可申请Spot实例,Spot价格调整幅度更为细化,此外Spot实例还可停止或睡眠,稍后可恢复运行,借此进一步降低对工作负载的影响。
Amazon EC2 Spot实例属于闲置的运算容量,相比按需实例的定价,AWS以最高90%折扣的价格提供这种实例,但如果EC2需要重新用到这些容量,实例可能会被重新回收。此类实例非常适合用于运行可容错或可中断的工作负载,如测试开发环境、CI/CD管道、无状态的Web服务、批处理作业、分析以及机器学习。
虽然AWS早已提出了Spot实例这一概念,但为了通过高弹性、高效率的方式充分利用这种低成本容量池,依然需要在工程方面通过各种措施应对突发的实例中断,并且要求用户对Spot实例市场的竞价策略有着深入的理解。取决于实例类型、每天的不同时段和具体地区等不同因素,此类实例的价格可能会有大幅波动(甚至可能增长至按需实例定价的十倍),因此Spot实例的运行会频繁中断,同时不可避免需要进行复杂的容量和成本计算。
AWS现已转换为一种“根据供应和需求的长期趋势,更频繁调整价格”的定价模式。尤其是调整后的Spot实例价格将以按需实例的价格为上限,这也意味着如果不希望进一步限制实例的预算,很多用户甚至根本不需要指定竞价。这些收益也意味着AWS服务可以更自由地实用Spot实例提供运算容量,如用于AWS Batch、Amazon ECS和Amazon EMR。
虽然此举对成本的平均降低幅度主要取决于实例类型和具体区域,但新的Spot定价模型已经可以大幅降低价格波动,让价格变化趋势变得更为平滑。与此同时,通过Spot Instance Advisor可以看到,大部分实例类型的中断频次都显示为“低”,Spot实例的历史价格也清晰体现出了这些变化:
图片:Amazon EC2 Spot定价变化:基于eu-west-1区域的m4.2xlarge实例
AWS还通过run-instances API提供了一种更为简单的Spot实例请求模型,该API可在容量可用时立即返回一个实例ID,因此用户不再需要通过原本使用的request-spot-instances API频繁地以异步Spot请求方式查询状态。请求Spot实例只需要额外增加一个参数,该参数可直接添加到现有脚本和服务中,随后即可通过Spot实例节约成本:
$ aws ec2 run-instances --instance-market-options '{"MarketType":"Spot"}' \
--image-id ami-1a2b3c4d --count 1 --instance-type c3.large
此外,在被EC2中断后,Spot实例不再被终止,而是可以灵活地停止或睡眠,并且相同类型实例的容量可用后还可恢复继续运行。需要注意的是,这是一种服务层面上的自动优化,无法由用户手工停止并启动Spot实例。Jeff Barr(AWS首席技术传道士)总结对这种全新用例进行了如下的总结:
当容量可用后,实例将启动并自动恢复运行,完全无需在应用程序配置、EBS卷设置、数据下载、网络域加入等工作中额外花时间。
实例停止和睡眠两种状态的主要差异在于,后者可将RAM中的数据持久保存至EBS根卷,因此可以让工作负载“将更多状态数据存储在内存中”。Spot实例的停止操作,除了具备根EBS卷外只有很少量其他要求。睡眠操作则要求在受支持的操作系统上安装代理程序,而截至目前仅适用于最常用的EC2实例类型。此外AWS强烈建议对于睡眠实例“使用加密的EBS卷作为根卷”,以确保“内存(RAM)内容能够以加密的状态将数据存储在卷中”。
根据相关新闻报道,AWS最近还提供了一个用户期待已久的功能:现在已经可以通过Amazon CloudWatch Events接收Spot实例终止前两分钟预警通知(详见早前的报道)。用户可以根据新增的Spot实例中断通知触发推送通知,并通过针对其他AWS资源变化执行应对措施的同一个事件总线和操作目标实现相关操作的自动化。
Google Cloud Platform(GCP)以及(最近更新后的)Microsoft Azure也为适合的工作负载提供了价格更低的虚拟机,但GCP的抢占式虚拟机实例以及Azure的低优先级虚拟机在定价模型和运维限制方面均有较大差异。
在文档方面,Amazon EC2提供了面向Linux和Windows实例的用户指南,其中包含了EC2 Spot实例入门、竞价型实例中断、AWS CLI参考以及API参考等内容。Amazon EC2 Spot实例定价页面列出了不同运行时间的最新价格,该价格并非源自中断实例本身,预留容量取决于基于常规用量的EBS定价。Spot实例的支持工作将通过Amazon EC2论坛提供。
作者:Steffen Opel,阅读英文原文:AWS Streamlines Amazon EC2 Spot Instance Pricing Model and Operational Complexity