我终于在 AWS 上部署了
Source: Dev.to
首次尝试与计费问题
我第一次接触 AWS 是在 2023 年,当时免费套餐提供 12 个月的使用时间。我搭建了一个免费服务器来托管一个业余项目,但不久后我就被收费了。我以为自己仍在免费套餐范围内,于是联系了 AWS 支持。他们告诉我我使用了免费套餐之外的资源,但我并不清楚具体是哪一些。
支持团队承诺会停止收费,但下个月我又被计费。经过几轮投诉后,我发现还有一个不常见的服务仍在运行并产生费用。这种来回的情况持续了大约六个月,直到我最终关闭了账户。这段经历让我对 AWS 心存戒备,之后我转向 Heroku 和 Render 等平台来部署业余应用。
重返 AWS
尽管之前的挫折,我注意到很多招聘信息都把 AWS 经验列为必需条件。于是我决定再给它一次机会,开始搜索教程。大多数教程都是冗长的、以认证为导向的视频,这并不符合我只想快速完成一次简单部署的目标。
最终,我找到了一段简洁的三小时教程,让我有足够的信心重新上手。
Elastic Beanstalk 体验
在教程中,我了解了 AWS Elastic Beanstalk,它承诺提供“推送代码,AWS 处理一切”的体验。宣传视频做得很炫,动画流畅,承诺轻松部署。
然而实际操作时,我频繁遇到错误。查看日志需要通过控制台手动请求,过程缓慢且常常不完整。最终,即使尝试使用 EB CLI、重启环境以及终止底层 EC2 实例,我也完全看不到日志。经过三天的挫败感,我彻底放弃了 Elastic Beanstalk。
回归基础:EC2
我转向更手动的方式,启动了一个 EC2 实例,设置了 systemd 服务,并配置了 Nginx。半天之内,我就拥有了一个可用的环境:
- 后端:在 EC2 上运行的 AI 聊天机器人
- 前端:免费托管在 Vercel(你可以自行尝试)
结论
这篇故事的寓意不是单一的教训,而是一系列技术收获:
- 免费套餐的限制很容易在不清晰的可视化下被超出。
- 像 Elastic Beanstalk 这样的托管服务听起来简单,却可能隐藏复杂性。
- 有时最可靠的方案是使用熟悉的工具自行搭建基础设施。
回归基础对我的业余项目来说是最有效的路径。