问题标签 [amazon-ec2-spot-market]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
3284 浏览

amazon-web-services - 当我的 Spot 实例被 AWS 终止时,我是否需要为开始的时间付费?

假设我使用的是 Linux 现货实例,由于现货市场价格上涨,该实例在 30 分钟后被 AWS 终止。

在 2017 年 10 月之前,实例按小时收费,并且实例不会按开始小时收费。请参阅:https ://aws.amazon.com/ec2/spot/pricing/

“使用 Spot 实例,您支付的费用永远不会超过您指定的最高价格。当您的实例运行时,您需要支付在该期间有效的 Spot 价格。如果 Spot 价格超过您指定的价格,您的实例将在终止前两分钟收到通知,并且您不会为实例运行 的部分小时付费。”</p>

现在,自 2017 年十月以来,实例按每秒收费。请参阅https://aws.amazon.com/blogs/aws/new-per-second-billing-for-ec2-instances-and-ebs-volumes/

标价和现货市场价格仍然按小时列出 ,但费用按秒计算,预留实例使用情况也是如此(您可以在一小时内启动、使用和终止多个实例并获得预留实例福利对于所有实例)。

问题
这是否意味着,即使 Spot 实例被终止,也要为 30 分钟的使用付费?

0 投票
0 回答
187 浏览

amazon-ec2 - 您如何保持对 AWS Spot Fleet(请求和维护)请求实例的计数?

如何获得 Spot 队列实例总数的运行计数?如果目标容量是 5 个实例,并且在某个时间之后,如果其中 2 个以某种方式终止并且 aws spot 队列自动重新启动 2 个实例以维持目标容量,我希望将启动的实例总数保持为 7(5 个目标 + 2 个新实例,因为其中 2 个已终止)

我可以使用这个命令来获取索引值:

但是,一旦满足 Spot 队列并且如果其中一个实例由于某种原因终止,Spot 队列将自动重新启动另一个实例以满足 TargetCapacity,但启动索引将恢复为“0”而不是从最后一个增加 1分配的编号。

谢谢!

0 投票
1 回答
868 浏览

amazon-web-services - 无法创建 Spot 实例

我正在尝试启动 EC2 t2.micro 点实例。完成配置后,我尝试启动它,但出现错误提示在此处输入图像描述

我什至没有运行一个 EC2 实例,我做错了吗?谢谢!

0 投票
2 回答
58 浏览

c# - 使用 C# 请求 AWS EC2 SpotInstance 失败,参数 groupId 的 Value () is invalid

我正在关注这里的教程:

https://docs.aws.amazon.com/sdk-for-net/v3/developer-guide/how-to-spot-instances.html

并创建了一个 C# Lambda 函数来测试创建现场实例。有问题的功能是:

然而,函数的执行失败:

我已验证我正在引用一个有效且存在的安全组。我已经尝试了 securityGroupId 值的 groupId、组名和“名称”,但发生了同样的错误。我在哪里错了?我进行了一些搜索,他们指出此错误可能是由于使用组名称的安全组 ID 引起的,但我已经尝试了安全组的所有可用引用,结果相同。

0 投票
1 回答
876 浏览

amazon-ec2 - 使用 Ansible 通过 instance_interruption_behavior 配置多个 Spot 实例

我知道这似乎与过去提出的其他问题有关,但我觉得不是。你将成为这件事的评判者。

我已经使用 Ansible 1.5 年了,我知道它不是配置基础设施的最佳工具,但对于我的需要来说已经足够了。

我使用 AWS 作为我的云提供商

有没有办法让 Ansible 提供多个相同类型的现场实例(类似于ec2 ansible 模块中的 count 属性),并将instance_interruption_behavior设置为stop(行为)而不是默认的terminate

我的目标:

为 Amazon设置具有不同ec2_spot_requests的多个 EC2 实例。(每个实例的现场请求)但我不想使用默认的instance_interruption_behavior终止,而是希望将其设置为 stop(behavior )

到目前为止我所做的:

我知道 Ansible 有以下模块来处理 ec2 基础设施。主要是

ec2。 https://docs.ansible.com/ansible/latest/modules/ec2_module.html

不要与 ec2_instance 模块混淆。

https://docs.ansible.com/ansible/latest/modules/ec2_instance_module.html

我可以使用 ec2 模块来设置现场实例,正如我目前所做的那样,如下所示:

前置问题:

上面的示例模块很干净,允许我根据我的要求设置点实例,通过使用ec2模块和count属性。

然而,它不允许我将instance_interruption_behavior设置为停止(除非我很累),它只是默认终止。

其他模块:

Ansible 版本 2.8.0上发布(目前仅在开发中可用),有一个新模块名为:ec2_launch_template

https://docs.ansible.com/ansible/devel/modules/ec2_launch_template_module.html

该模块为您提供了更多属性,允许您结合 ec2_instance 模块将所需的 instance_interruption_behavior 设置为停止(行为)。这就是我所做的:

主要问题:

如上面的代码片段所示,ec2_launch_template Ansible 模块不支持count属性,并且ec2_instance 模块也不允许。

有什么方法可以导致 ansible 提供相同类型的多个实例(类似于 ec2 ansible 模块中的 count 属性)?

0 投票
2 回答
2030 浏览

amazon-web-services - 如何限制 ASG 中的现货实例池数量?

我正在设置一个具有混合实例策略的 Auto Scaling 组 (ASG)以使用多种 Spot 实例类型。如何限制我的 ASG 使用的 Spot 实例池的数量?

Spot 实例池定义如下:

一组具有相同实例类型(例如m5.large)、操作系统、可用区和网络平台的未使用的 EC2 实例。

我了解,就我而言,现货实例池基本上是一对不同的可用区和实例类型。

我的 CloudFormation 模板使用混合实例策略创建一个包含 16 个实例的 Auto Scaling 组。它使用四种实例类型和所有可用区。测试区域us-west-2有四个可用区。理论上,该组应该能够使用多达 16 个现场实例池。

堆栈的SpotInstancePools参数设置 ASG 的同名属性。我尝试将其设置为各种值,但它似乎并不能直接控制 ASG 使用的 Spot 实例池的数量。

CloudFormation 模板:

创建 stack 的命令mixed-instances-policy-test-1,它的 SpotInstancePools 计数为 1:

创建 stack 的命令mixed-instances-policy-5,它的 SpotInstancePools 计数为 5:

列出使用的唯一 Spot 实例池数量的命令(根据需要替换堆栈名称):

在等待每个堆栈完成创建后,我检查了唯一 Spot 实例池的数量。

在哪里SpotInstancePools设置为1,我看到 3 个独特的池。

WhereSpotInstancePools设置为5,我看到 11 个独特的池。

在每种情况下,我都希望池的数量等于参数值。

0 投票
2 回答
192 浏览

amazon-web-services - 如何在模板中指定没有偏好的子网,如 Web 界面?

使用控制台创建 Spot 实例时,不必选择子网。我可以...

但是在使用 cloudformation 模板创建 Spot 实例时,我需要选择一个子网,我不确定选择哪一个以最优惠的价格。这是否意味着使用 Web 界面比使用 cloudformation 模板(针对现场实例)更好?

0 投票
2 回答
325 浏览

amazon-web-services - Amazon ECS 上的 Spot 实例

我目前在 AWS 中为我​​的 ECS 集群使用按需实例。我在每个实例上运行约 50 个小容器。它们每个都具有相同的预留 CPU 和内存。

为了节省成本,我想改用 Spot 实例。

ECS 是否会根据我的自动扩展设置处理购买 Spot 实例并保留我所需的服务器数量?

实例终止时会发生什么?实例上运行的所有任务会被终止,还是会转移到另一个 Spot 实例?

Spot 实例甚至可用于 T2/T3 吗?

0 投票
1 回答
873 浏览

amazon-ec2 - 现场实例不支持 instance_initiated_shutdown_behavior=stop

我正在尝试使用 Ansible 2.8 提供现场实例。当我运行我的剧本时,我遇到了以下错误。“现场实例不支持instance_initiated_shutdown_behavior=stop。”

然而,奇怪的是,在我的剧本中,我没有指定任何东西来停止现场实例。

有谁知道可能导致错误的原因?

$ ansible-playbook test.yml

[警告]:提供的主机列表为空,只有 localhost 可用。请注意,隐式本地主机不匹配“全部”

PLAY [创建一个ec2实例] ******************************************* ******* 任务 [创建 ec2 实例] ************************************ **************致命:[本地主机]:失败!=> {"changed": false, "msg": "instance_initiated_shutdown_behavior=Spot 实例不支持停止。"} 播放回顾 ********************** *********************************************** 本地主机:好的=0 更改=0 无法访问=0 失败=1 跳过=0 获救=0 忽略=0

下面是我执行的 yaml 文件的一部分。

0 投票
1 回答
1186 浏览

amazon-ec2 - 自动伸缩组无法分配 Spot 实例

我有一个 eks 集群,其节点组基于具有以下配置的混合实例分发启动模板:

在将自动缩放从 0 缩放到 1 时,集群自动缩放器遇到了以下问题:

似乎请求的是现货 p3.2xlarge,而不是请求 p2.xlarge 的按需实例(即使 p2.xlarge 的按需价格 0.9 低于现货价格 0.918对于 p3.2xlarge)。我希望分配一个按需 p2.xlarge 实例,而不是请求一个 p3.2xlarge 现场实例。是因为我配置了on_demand_percentage_above_base_capacity: 0吗?

更一般地说,我希望能够配置集群以获取 p2.xlarge 的现场实例,并且在不可能的情况下,按需请求。实现我想要的功能的最佳配置是什么?

on_demand_percentage_above_base_capacity 的配置是否严格执行?如果 on_demand_percentage_above_base_capacity 设置为 1 并且我的第一个实例是按需实例,我接下来的几个扩展请求是否会被迫仅产生点实例,或者它更像是有指导意义的权重(例如,如果没有可用点,它仍然会回退到按需而不是未能满足请求)?