Amazon EC2 Auto Scaling 测试
Posted
技术标签:
【中文标题】Amazon EC2 Auto Scaling 测试【英文标题】:Amazon EC2 Auto Scaling test 【发布时间】:2018-11-18 12:16:57 【问题描述】:我创建了一个 Amazon EC2 Auto Scaling 组,它应该始终拥有至少 1 台服务器。
当 CPU 利用率超过 80% 时添加 2 台服务器
当 CPU 利用率下降低于 30% 时终止 2 个服务器
这里的挑战是,我应该如何增加/减少 CPU 利用率?我无法连接到任何实例或使用 CLI,因为我在 Office 系统中/受限 AWS 访问。
尽管有这些限制,有没有办法对此进行测试?
【问题讨论】:
为什么我的问题被否决了?它有什么问题? 【参考方案1】:有一种方法可以使用 Stress 对实例或容器(假设它是基于 Linux)进行压力测试,该软件包旨在在指定的时间内启动 CPU,然后在之后降低 CPU 百分比指定的时间量。它还有其他参数可以自定义测试。
我个人最喜欢的测试系统响应和 DR 的工具是使用 Netflix 的ChaosMonkey。这是一个开源项目,由 Netflix 支持,旨在测试容错性。在生产中使用它取决于个人喜好,但它是测试系统的工具。
【讨论】:
【参考方案2】:如果您想测试“真实”情况,那么您将需要一种在系统上产生负载的方法。
这可能是人为负载(例如触发执行计算的程序,只是为了使 CPU 旋转)或对系统将执行的实际活动的真实模拟。
没有必要测试 Amazon EC2 的 Auto Scaling 是否真的有效——如果是这样的话,AWS 状态页面上会显示一些问题——所以我假设您只想测试自己的配置。在这种情况下,您应该真正测试真实世界场景,例如模拟一定数量的同时执行用户将执行的典型活动的用户。
如果您进行任何其他形式的测试(例如虚假增加 CPU 负载),您并没有真正测试您希望 Auto Scaling 执行的真实情况,因此您的测试结果实际上不会是有用。
例如,您的应用程序可能在达到任何 CPU 限制之前就遇到了内存问题或单线程问题。在将真实用户投入您的系统之前,您真的很想知道这一点。
【讨论】:
感谢您的澄清,约翰。正如您所说,我只需要针对自己的配置进行测试。但是我该怎么做,因为我需要检查实例关闭/启动时生成的 SNS 邮件。 如果您希望在向 Amazon SNS 主题发送消息时收到通知,您只需订阅该主题即可。最简单的方法是通过电子邮件或短信订阅接收通知。 添加 SNS 主题没问题。我可以通过终止一个实例来触发 SNS 邮件,但是如何获取 SNS 邮件以扩展服务器。尽管我的公司有限制,如何产生流量是我的问题。 我的建议是不生成虚假的 CPU 利用率。我的建议是模拟与您的系统的真实用户交互,因为这是“测试”系统的唯一真正方法。否则,您所做的只是测试一个无法证明您的系统是否真正能够在现实世界中处理负载的错误情况。您必须问自己为什么要测试系统?希望答案是让您知道它可以处理真实用户的负载。这就是您要测试的内容,而不是假装的 CPU 使用情况。以上是关于Amazon EC2 Auto Scaling 测试的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Amazon EC2 上配置基于内存的 Auto Scaling?
如何在 Amazon Auto-scaling 组中的多个 ec2 实例上部署和更新应用程序?
如何转换 Amazon EC2 实例以用于 Auto Scaling?