启用 Spot 实例
使用 Spot 实例,即可在访问未使用的云计算时享受与标准机器优惠的大幅折扣。Incredibuild 允许您决定是否要在云环境中使用 Spot 实例。
Spot 实例是如何运行的?
在 Incredibuild (IB) 中切换到 Spot 选项后,已执行的作业将分解为多个需并行处理的任务。每个任务按如下方式执行:
-
Request - Initiator(开发人员、CI 等)负责执行工作负载,同时 IB 将代表客户以最低可行市场价格(或 Cloud 供应商所称“当前”价格)请求 Spot 实例。
-
Provisioning – Spot 实例创建并启动后,IB 将会根据现有作业开始进行配置。
-
Spot Interruption recovery – 当 Spot 实例被 Cloud 供应商中断时,IB 将通过设置中断行为以“阻止”,从而实现“无中断”恢复。如此,当类型在所选区域内可用时,实例就会以持久卷方式尝试重新启动。然后,IB 会通过使用存储卷和现有 IB 缓存,启动一个新的 Spot 实例,以恢复任务处理。
-
完成 – 完成工作后,文件将传输回至工作发起者。将保留 Spot 机器,以防在一小时内需要再次使用,不收取额外费用(AWS 的 Spot 资源按小时收费)。如果不再需要该机器,则其将在小时结束前 5 分钟终止计费。
如需了解更多信息,请参阅关于 EC2 Spot 最佳实践的 AWS 文档。
如何启用 Spot:
在 Cloud Settings 中,转到 Resource Management,然后选择 Use Spot Instances。
如果无可用的 Spot 机器,您也可以使用 Fallback Machine Types 区域中的复选框启用 Incredibuild,以使用按需(非 Spot)机器。
如果您正在使用 Azure,则无需额外步骤。如果您正在使用 AWS,则需要更新在 AWS IAM 服务中创建的角色的角色权限定义:
-
如果您尚未如此操作,那么请创建角色。
-
从您的 AWS 门户中,前往 IAM 服务。
-
选择角色类别
-
选择 Incredibuild Cloud 解决方案中所创建的角色
-
前往“Permissions”选项卡 - 选择您的策略,查看 JSON 并点击“Edit policy”
-
替换为以下代码:
{
"Version": "2012-10-17",
"Statement": [
{
"Action": [
"ec2:*",
"servicequotas:GetServiceQuota",
"servicequotas:ListServices",
"servicequotas:ListServiceQuotas"
],
"Effect": "Allow",
"Resource": "*"
},
{
"Effect": "Allow",
"Action": "iam:CreateServiceLinkedRole",
"Resource": "*",
"Condition": {
"StringEquals": {
"iam:AWSServiceName": [
"spot.amazonaws.com"
]
}
}
}
]
}
使用 Spot 跟踪机器成本:
如需跟踪和查看折扣以及 Cloud 机器成本,我们建议使用 Tags:有关详细信息,请参阅 Cloud Settings 的高级选项卡。
AWS 客户:
要使用 Tags 查找机器成本,您必须启用您 AWS 账户中的“Cost Allocation Tags”。然后导航至“Cost Explorer”。有关详细信息,请参阅 AWS 文档。您可以在此处和此处查找有关查看实际机器成本的更多信息。
Azure 客户:
您可以在此处查找有关查看实际机器成本的更多信息。