【问题标题】:How to measure the values for when to scale web app aws如何衡量何时扩展 Web 应用程序 aws 的值
【发布时间】:2019-07-11 07:00:07
【问题描述】:
我正在尝试寻找衡量我的 web 应用何时应在亚马逊 AWS 中扩展的最佳方法。
该应用程序由一个微服务后端(spring-boot) + angular 前端组成,对于这两部分,我应该如何测试 EC2 实例的限制?
- 我的前端在单个实例中可以同时接受的最大请求数是多少?
- 可以与后端建立多少个连接?
- 哪种 EC2 实例最适合每种情况?
如何衡量这些值的任何方向都会有所帮助。
该应用将受到“非常严重”的打击(每天 25 万访问者)
【问题讨论】:
标签:
amazon-web-services
spring-boot
microservices
【解决方案1】:
对此没有直接的答案。您需要进行自己的测试。
您可以使用JMeter 作为 Web 应用程序测试框架的示例。
对于后端数据库,有YCSB 之类的工具,但您的数据库可能有其基准测试。
CPU、内核、内存等都是一个因素,但这在很大程度上取决于您的代码是如何编写的。例如,一个基于 JVM 的进程将比用 Golang 编写的进程占用更多的资源(并且总体上会更慢,但这是一个单独的点)。
AWS Cloudwatch 可以监控很多系统级属性,但监控 Java 堆也很关键
如果您真的想测试可扩展性,请在 EKS 或 Fargate 中运行您的应用程序,甚至作为无服务器 Lambda 而不是静态 EC2 盒。
为了容错,您肯定需要在两个可用区中至少有两个实例,并且您应该在您的应用程序前面放置一个负载均衡器来控制该流量