上周跑完负载测试,那组数据把我看懵了——200并发就把服务打崩了。但说实话,这反而是好事。崩得早,说明问题暴露得彻底。

这套用Terraform搭的三层架构,从VPC到RDS到EC2,代码能跑通,资源能拉起,域名也能解析。但距离"生产就绪"四个字,中间隔着一整张待办清单。我把它拆成了四大块,逐条说。

打开网易新闻 查看精彩图片

网络暴露面太大

RDS数据库目前是公网可访问的,地址直接暴露在输出里。生产环境应该扔进私有子网,只让EC2实例通过安全组访问。两台EC2也在公网子网裸奔,既然前面挂了ALB负载均衡,完全可以后撤到私有子网,只接受来自ALB的流量。

SSH端口22对全网开放,两台机器还共用同一套密钥。要么收窄到已知IP段、每台独立密钥,要么干脆上AWS Systems Manager (SSM) 走会话管理,彻底干掉SSH入口。

加密这块缺了静止态

传输层倒是做对了——API Gateway和ALB都上了HTTPS。但RDS没开静态加密,磁盘上的数据是裸的。SOC2审计这一项直接挂。

IAM权限过于豪放

Terraform provider里现在还跑着根账号凭证。这是红线。得锁死根账号,换用最小权限的IAM角色。Secrets Manager虽然用了,但密码是通过user data脚本注入EC2的,落地成明文,得改成实例角色动态获取。

容灾和响应机制空白

备份策略没写,RTO/RPO没定,PagerDuty没接。负载测试崩了靠人眼盯着日志发现,这不行。

这套代码的价值不在"能跑",而在"能改"。每处缺陷都标清楚了,改造路径也明确。下一步挑哪条先动手,取决于你的合规 deadline 和能承受的爆炸半径。