如何查询AWS RDS实例的存储扩容及修改操作总次数?
AWS RDS实例存储调整类操作累计次数查询方案
以下是3种可直接落地的查询方案:
方案1:CloudTrail控制台手动查询
- 前提:对应AWS区域已开启CloudTrail跟踪,且日志留存周期覆盖你需要统计的时间范围
- 操作步骤:
- 进入CloudTrail控制台的「事件历史」页面
- 新增3个筛选条件:
- 事件源选择
rds.amazonaws.com - 事件名称选择
ModifyDBInstance - 资源名称输入目标RDS实例的ID
- 事件源选择
- 逐一点开筛选出的事件详情,查看
requestParameters字段,只保留请求参数中包含AllocatedStorage(存储容量调整)、StorageType(存储类型调整)、Iops(IOPS调整)、StorageThroughput(存储吞吐量调整)的事件,排除其他非存储类的实例修改操作 - 剩余符合条件的事件总数就是你需要的累计执行次数
方案2:AWS CLI命令行查询(适合自动化/批量统计场景)
- 前提:本地已配置对应AWS账号的访问凭证,且账号拥有
cloudtrail:LookupEvents权限 - 示例命令(统计过去90天内指定实例的存储调整操作次数,需提前安装jq工具做JSON解析):
aws cloudtrail lookup-events \ --lookup-attributes AttributeKey=ResourceName,AttributeValue=替换为你的RDS实例ID \ --start-time $(date -d "-90 days" +%s) \ --end-time $(date +%s) \ --query 'Events[?EventName==`ModifyDBInstance`].CloudTrailEvent' \ --output text | jq '.requestParameters | select(.allocatedStorage or .storageType or .iops or .storageThroughput)' | wc -l
- 调整
start-time和end-time的参数即可自定义统计的时间范围。
方案3:Athena查询CloudTrail日志(适合统计周期超过90天、日志量极大的场景)
- 前提:已配置CloudTrail跟踪将日志投递到S3存储桶,且已在Athena中完成CloudTrail日志表的创建
- 示例查询SQL:
SELECT COUNT(*) AS storage_modify_count FROM 替换为你的CloudTrail日志表名 WHERE eventname = 'ModifyDBInstance' AND json_extract_scalar(requestparameters, '$.dBInstanceIdentifier') = '替换为你的RDS实例ID' AND ( json_extract_scalar(requestparameters, '$.allocatedStorage') IS NOT NULL OR json_extract_scalar(requestparameters, '$.storageType') IS NOT NULL OR json_extract_scalar(requestparameters, '$.iops') IS NOT NULL OR json_extract_scalar(requestparameters, '$.storageThroughput') IS NOT NULL ) -- 按需添加时间范围过滤条件 AND eventtime >= '2023-01-01T00:00:00Z' AND eventtime < '2024-01-01T00:00:00Z'
注意:如果要统计的时间段内CloudTrail未开启,或者中途删除过跟踪日志,上述方法统计的结果会少于实际执行次数
内容的提问来源于stack exchange,提问作者chandra
相关产品推荐
相关产品推荐

