AWS新手仅发起少量SQS请求却出现异常用量突增问题咨询
SQS用量异常突增常见原因及排查方案
首先可以明确,这类情况绝大多数不是AWS计量系统的bug,属于测试场景下的常见疏忽,核心原因如下:
- 未关闭的空闲消费者进程:如果测试时开启了SQS消费者且配置了长轮询(
ReceiveMessage请求最长可设置20s等待时间),就算队列内无任何消息,每次轮询请求都会被计入SQS计费用量。如果进程后台持续运行未终止,2-3天累计的请求量会非常高,这是测试场景下最常见的诱因。 - 未清理的服务联动配置:如果测试时配置了其他AWS服务与该SQS队列的联动规则(比如S3事件通知触发SQS发消息、Lambda触发器绑定队列自动拉取消息、CloudWatch告警推送到SQS等),测试完成后未删除对应配置,相关服务产生事件时就会自动发起SQS请求。
- 队列配置不合理导致重复请求:如果队列的可见性超时时间设置过长/过短,消费者拿到消息后未成功调用
DeleteMessage删除消息,消息到期后会重新回到队列被反复拉取,每次拉取都会产生新的计量请求。 - 队列权限宽松导致恶意调用:如果测试时为了方便将队列访问策略设置为公开可访问,存在被公网恶意扫描调用的可能。
排查步骤
- 前往AWS CloudTrail控制台,筛选事件名称为
SendMessage、ReceiveMessage、DeleteMessage的事件,匹配用量突增的时间窗口,查看所有请求的发起者身份ARN、源IP,即可直接定位请求来源。 - 检查所有测试相关的运行环境:本地后台进程、EC2实例、ECS任务、Lambda函数是否还在持续调用该SQS队列。
- 查看SQS队列的CloudWatch监控指标,区分突增的是Send类请求还是Receive类请求:如果是Receive类请求占比极高,基本可以判定是空闲消费者轮询导致。
你提到的用量截图如下:
内容的提问来源于stack exchange,提问作者Hussain Murtaza
相关产品推荐
相关产品推荐

