AWS日本账号 亚马逊云 AWS 账号资源利用率代办
你的AWS账号,正在偷偷养一群‘云宠物’
别慌——不是黑客入侵,也不是系统崩溃。是你那台常年在线、却只在凌晨三点跑个Cron Job的t3.micro EC2实例;是那个名字叫prod-db-backup-2021、实际已停机三年、但仍在收存储费的RDS快照;还有那个空空如也、连一个object都没有、却固执地挂着logs-archived-forever标签的S3桶。
它们不吵不闹,不发告警,不占CPU,只安静地躺在你的AWS控制台里,像一群被遗忘在阁楼里的旧毛绒玩具——摸起来软乎乎,结账时扎心又扎钱包。
为什么‘资源利用率低’不是技术问题,而是习惯病
工程师们总爱说:“这台EC2留着以防万一。”“那个EBS卷说不定下周要用。”“S3桶先建好,命名规范得从长计议……”结果呢?“以防万一”成了“永久待机”,“下周要用”拖成“下个季度复盘”,而“命名规范”最后演变成temp-bucket-v2-final-actual-final。
AWS不会提醒你:“亲,您账户里有7个未关联安全组的弹性IP,每月白花$3.5。”它只会默默把账单PDF塞进你的邮箱,附赠一句温柔的“感谢您对AWS的信任”——仿佛你不是客户,是它的长期慈善赞助商。
先别急着删!来场‘云上人口普查’
清理前,请深呼吸,打开AWS Console,点开Cost Explorer(费用管理器),选过去90天,按服务分组。如果S3费用曲线平得像高铁轨道,EC2费用却突然在某天飙升又回落——恭喜,你刚揪出一只‘间歇性暴食型虚拟机’。
再切到Trusted Advisor(注意:需Business或Enterprise支持计划才全量开放)。重点盯三类红标:
• “低利用率EC2实例”:连续72小时CPU平均<5%?它可能比你的咖啡机还闲。
• “未使用的弹性IP”:分配了没绑定实例?每小时$0.005,一年≈一杯精品手冲+一块蛋糕。
• “公开可读的S3存储桶”:这不是利用率问题,这是安全核弹——顺手也修了。
那些你以为‘没在用’,其实一直在烧钱的隐形选手
• RDS的‘睡美人’模式:你创建过db.t3.small测试库,测完忘了删?它不会自动休眠,只会每天准时醒来,给你报一笔$18.5的‘呼吸费’。更绝的是快照——自动备份保留35天?好。手动快照?AWS默认永不删除。翻翻RDS → Snapshots,如果看到一排automated-和manual-混搭的‘快照全家福’,请立刻暂停,泡杯茶,认真思考:2022年6月17日那个名为pre-migration-test的快照,迁的是哪个世纪的移?
• Lambda的‘冷启动税’:函数配置了1GB内存,但实际只用128MB?AWS按你声明的内存收费,不是按实测用量。就像租了整层LOFT,只在玄关放了个鞋架——房东(AWS)照样收全款。去CloudWatch → Metrics → Lambda → Invocations,看MaxMemoryUsed和MemorySize的比值。若长期<30%,是时候给函数‘减脂’了。
• CloudWatch Logs的‘日志永生术’:默认日志组保留期是‘永远’(Infinite)。没错,AWS真写了‘Never expire’。你当年调试API网关的日志,现在正以GB/月的速度,在弗吉尼亚北部数据中心安静地叠罗汉。查CloudWatch → Log groups,点击任一日志组→‘Edit retention policy’,设个30天,世界立刻清静。
三招实战:从‘啊这…’到‘已处理’
① 一键发现EC2‘幽灵实例’:
在CloudShell里粘贴这段命令(记得换你自己的Region):
aws ec2 describe-instances --region us-east-1 --query "Reservations[*].Instances[?State.Name==\'running\'].{ID:InstanceId,Name:Tags[?Key==\'Name\'].Value|[0],CPU:Metrics.Metrics[?MetricName==\'CPUUtilization\'].Datapoints|[0].Average}" --output table
再配合aws cloudwatch get-metric-statistics拉7天CPU数据,筛出平均<1%的ID——它们大概率在演《卧底:我在AWS当植物》。
② S3桶‘扫墓行动’:
运行aws s3api list-buckets --query "Buckets[].Name" --output table,对每个桶执行:aws s3 ls s3://your-bucket-name --recursive --human-readable | tail -n 1。如果输出是0 Bytes,且创建时间>180天?请庄严宣布:此桶功德圆满,准予火化(aws s3 rb s3://bucket-name --force)。
③ 给EIP办‘户口注销’:
查所有未绑定IP:aws ec2 describe-addresses --filters "Name=instance-id,Values=" --query "Addresses[].{IP:PublicIp,AllocId:AllocationId}" --output table
确认无误后,释放:aws ec2 release-address --allocation-id eipalloc-xxxxxx
养成‘云上断舍离’肌肉记忆
• 新资源诞生时,必填‘退役日期’标签:比如decommission-after: 2024-12-31。用EventBridge规则监听Tag变更,到期自动发Slack告警+生成销毁工单。
• 每周五下午3点,设15分钟‘云保洁时间’:只做三件事:扫一眼Cost Explorer趋势图、刷新Trusted Advisor红标、删掉本周新增的临时资源(尤其CloudFormation堆栈失败后残留的Security Group)。
• 把账单当连载小说读:每月初打开PDF,不先看总额,而是翻到‘Top 5 Services’页——问自己:第3名那个ElastiCache,是我主动要的,还是被某个同事的terraform apply -auto-approve悄悄生出来的?
最后送你一张‘懒人巡检清单’(可直接打印贴显示器边)
- ✅ EC2:运行中实例数 > 5?查CPU利用率<5%的≥3台
- ✅ RDS:手动快照数 > 10?删掉创建超90天的
- AWS日本账号 ✅ S3:桶总数 > 20?对空桶、命名含
test/dev/backup-old的桶重点关怀 - ✅ EIP:未绑定数 > 2?释放!释放!释放!
- ✅ CloudWatch Logs:保留策略为‘Never’的日志组 > 5?统一设为30天
- ✅ Lambda:内存配置>512MB且
MaxMemoryUsed长期<256MB?降配并压测
记住:优化资源利用率,不是抠门,是让每一分云费都服务于业务心跳,而不是养一堆数字盆景。下次收到账单时,别叹气——笑着点开Cost Explorer,把它当成一场寻宝游戏:今天,我又挖出了几只沉睡的金币?
(温馨提示:删资源前,请务必确认无依赖、无备份、无深夜值班同事正靠它续命。本文不背锅,但祝你账单越来越薄,咖啡越来越香。)

