这两天发现某个环境的API服务非常不稳定,经常500.去查看了AWS上对应的EC2实例,发现一段时间内task(实例)反复被销毁,而CPU和Memory使用率一直都是正常的。我感到很奇怪,继续研究发现整个ECS中的其他服务也有类似情况,推测是和ECS的自动扩展有关。
初步确定是某个环境的ECS(Elasitc Contianer Service)不断自动扩展的问题,因为CPU的使用率引发不断scale out,然后随着CPU使用率下降后又scale in,如此反复,导致在这个ECS中的EC2实例也不断反复创建和销毁。
如何解决这个问题呢?因为之前这个环境的ECS肯定是要看是否近期ECS的AutoScalingGroup有变化。AWS提供了CloudTrail来查看所有Event历史记录。 如图所示,选择Event Name,搜索UpdateAutoScalingGroup关键字,可以查到最近90天所有的修改历史记录。
然后逐条去找到问题出现时间的修改记录,就能知道如何把它改回来了。 用好CloudTrail是一个开发者的必修课,我也是第一次用,后续会努力用好它。