这是AWS自动伸缩组的正确情况吗?

问题描述

我一直在关注AWS自动伸缩组的教程,但是没有一个提到可能需要使用它的所有原因。所以我想知道我的需求是否适合我?还是我需要其他东西。

我想运行X个并行测试,每个测试都使用testNg在不同的ec2实例上进行。可以使用Auto Scaling组在X个测试运行之前动态创建这些实例,然后在完成后将其删除吗?

解决方法

根据您的情况,由于您知道测试所需的EC2实例数量,因此更适合:

  • 启动EC2实例
  • 开始测试
  • 完成测试后终止EC2实例

此外,由于测试不是一项关键业务活动,因此可以通过将EC2实例作为竞价型实例启动来节省资金,这可以节省多达90%的成本(通常为50-70%)。它们的启动时间略长,如果需要容量,实例可能会被AWS“收回”。通过在多个可用区和/或跨不同实例类型启动实例,可以减少实例被“收回”的机会。

,

我对testng或它可能具有的任何潜在的AWS集成了解不多,但是我不确定Auto Scaling是这里的最佳选择。虽然它可以让您启动一组实例(将最小/最大容量都设置为N),但是您必须处理运行状况检查和其他ASG特定功能。

我可能会使用EC2 Fleet。除了作为一个整体管理EC2实例队列之外,它还提供了一些有用的成本选择,使您可以选择按需和现货以及愿意支付的最高价格。

另一个可能的选择是AWS Batch

如果这些都不符合要求,那么您可以使用RunInstances API简单地启动N个实例。使用userdata脚本启动每个脚本,使其能够获取其测试脚本,运行该脚本,然后关闭/终止。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...