测试AWS spot实例配置

时间:2017-07-03 10:03:14

标签: unit-testing amazon-web-services testing amazon-ec2

我的公司希望在配置EC2实例时切换到使用竞价定价。我的任务是编写一些单元测试来测试以下内容:

  • 我们的竞价型实例计入某个阈值
  • 如果未按要求达到该阈值,则需要更换替换件 它们

我不是一个熟练的测试人员,并且整体上没有太多的AWS曝光。所以我的问题是我可以用什么方法,工具,软件来开始实现这个?我最初的想法是使用AWS CLI命令编写一个bash脚本并从那里开始。

任何指针或建议都将不胜感激!

1 个答案:

答案 0 :(得分:1)

我考虑过这一点,我建议您有两个自动缩放组,一个用于spot instances,另一个用于按需实例。对于专色实例自动缩放组,您基本上可以设置所需的容量。对于按需自动缩放组,您只需将min和max设置为0。

接下来,您将设置两个云监视警报。一个是GroupInServiceInstances小于你声明的最大值。这将默认设置为on。另一个是GroupInServiceInstances等于你声明的最大值。默认情况下,这将设置为关闭。

现在,如果实例的GroupInServiceInstances警报小于所需的最大值,则会调用lambda函数。这个lambda函数将执行以下操作:

  • 启用GroupInServiceInstances等于最大容量警报
  • 禁用低于所需容量警报的GroupInServiceInstances
  • 调用自动缩放组API以获取(最大实例 - 当前正在运行的实例)
  • 将随需应变自动缩放组中的最小和最大实例设置为
  • 的值

设置一个简单的通知服务主题也是一个好主意,当主题实例自动缩放组在X时间后的实例数量不足时,该主题会向某人发送电子邮件。这可以让您决定是否需要重新制作现货价格。

现在当GroupInServiceInstances等于你的最大所需容量警报响起时,它将调用lambda函数来执行以下操作:

  • 启用GroupInServiceInstances小于预期的警报
  • 禁用GroupInServiceInstances等于所需的闹钟
  • 将所需的最小和最大按需自动缩放组实例设置为0
  • 这将基本上终止随需应变自动缩放组中的所有实例,以便您可以恢复使用(希望)更低成本的现场实例

此解决方案确实需要Lambda的知识,但我认为它最终会更加自动化,并减少了CLI脚本所需的额外逻辑。