AWS EC2免费套餐经常被看作入门的首选,但真正把一台实例连续运行十二个月之后,会发现官方页面上的免费字样和实际账单之间还存在一段理解距离。这篇文章不重复官方参数表,而是从实际使用角度拆解配置、性能、计费和到期迁移四个层面。

一、免费套餐的边界比想象中要多
首先是计算资源。12个月内,AWS每月提供750小时的Linux或Windows实例时长,如果只开一台t3.micro或t2.micro,30天大约720小时,基本可以覆盖整月运行。但750小时是以实例运行时间累计计算,而不是日历月自然清零。如果同时运行两台实例,每台运行300小时,总计600小时看起来没超,但如果在月中某天已经累计750小时,超出部分会按需计费。
存储方面,免费套餐包含30GB的EBS通用型SSD或磁存储、200万次I/O请求和1GB快照存储。很多人以为30GB卷加上快照就是完整额度,其实快照单独计算,而且快照会按实际占用空间收费,并不只是1GB封顶。如果对实例做了自动快照策略,又没有设置保留数量,快照占用快速增长后,费用会出现在账单的EBS快照一栏。
网络方面,每月包含100GB的互联网数据传出,传入流量不收费。这个额度对于个人博客、测试环境足够,但如果开放文件下载或者被恶意扫描产生大量出站流量,100GB并不经用。通常一台纯静态站点一个月流量只有几GB,但一次异常流量高峰就可能把整月额度耗尽。
下面这个命令用来在默认VPC中启动一台免费套餐范围内的t3.micro实例,注意块存储大小要控制在30GB以内。
aws ec2 run-instances \
--image-id ami-0abcdef1234567890 \
--count 1 \
--instance-type t3.micro \
--key-name MyKeyPair \
--security-group-ids sg-903004f8 \
--subnet-id subnet-6e7f829e \
--associate-public-ip-address
创建完成后,EC2控制台会显示实例正在运行,但此时还不能直接认为一切都是免费。需要进入账单控制面板,把EBS卷、快照、弹性IP和CloudWatch告警都纳入观察范围。
二、突发性能实例的CPU积分机制
t3.micro和t2.micro都属于突发性能实例,它们的CPU性能不是固定值,而是通过CPU积分来调节。实例在低负载时会累积积分,在高负载时消耗积分获得额外计算能力。t3.micro的基准性能大约是10%的CPU利用率,t2.micro基准为10%到20%之间。一旦积分耗尽,CPU会被限制在基准性能附近,这时候SSH登录都会变得卡顿。
实际测试中,安装Nginx、PHP和SQLite后,日常访问几乎不消耗积分,CPU使用率长期低于5%。但执行Composer依赖安装、运行数据库迁移、或者用Docker拉取镜像时,CPU会短暂冲到80%以上,积分快速下降。如果连续进行多次重负载操作,瓶颈会非常明显。可以通过CloudWatch查看积分余额,低于一定值就该暂停任务。
下面命令查询最近一小时的CPU积分余额,适合在自动化脚本里做监控。
aws cloudwatch get-metric-statistics \
--namespace AWS/EC2 \
--metric-name CPUCreditBalance \
--dimensions Name=InstanceId,Value=i-1234567890abcdef0 \
--start-time "$(date -u -d '1 hour ago' +%Y-%m-%dT%H:%M:%SZ)" \
--end-time "$(date -u +%Y-%m-%dT%H:%M:%SZ)" \
--period 300 \
--statistics Average
如果CPUCreditBalance长期接近0,说明实例经常处于低积分状态,需要减少后台任务或者升级到t3.small甚至非突发实例。对于一年期用户来说,理解积分机制远比升级配置更重要,因为大多数卡顿并不是内存不够,而是CPU被限流。
三、最容易产生费用的关联资源
免费套餐的账单里,最容易出现的收费项不是EC2本身,而是弹性IP。AWS对未关联到运行中实例的弹性IP按小时收费。如果实例停止后没有释放弹性IP,或者把弹性IP从实例上解绑后忘记删除,账单就会持续增加。建议只在需要固定公网入口时才申请弹性IP,用完立即释放。
另一个隐藏费用是EBS卷。免费额度只覆盖30GB,如果创建实例时选择了40GB的gp3卷,或者挂载了第二块数据盘,超出部分按月计费。快照同样如此,1GB之外的部分会产生存储费用。可以用下面的命令快速找出当前区域所有未被关联的弹性IP。
aws ec2 describe-addresses \
--query 'Addresses[?AssociationId==`null`].PublicIp' \
--output text
数据传出是第三个需要留意的点。100GB免费传出流量是所有AWS服务共享的,如果同一账户下还有S3、CloudFront等资源,流量会合并计算。曾经有用户在免费期内跑了视频转码测试,几天内就耗尽了整月流量。建议在账单首选项里设置预算告警,当月度费用达到5美元时就收到邮件提醒。
四、到期前的备份与迁移建议
免费套餐有效期只有12个月,到期后实例不会自动停止,而是转入按需计费。t3.micro在多数区域的按需价格约为每小时0.0104美元,一个月运行720小时大约7.5美元,虽然不高,但对于测试环境来说已经是额外开支。到期前建议先创建自定义AMI,把系统盘和数据完整备份下来。
AMI创建命令很简单,执行后可以在AMI列表里看到镜像状态从pending变为available,之后即使释放原实例,也能基于该镜像随时恢复。
aws ec2 create-image \
--instance-id i-1234567890abcdef0 \
--name "ec2-backup-before-expiry" \
--description "Backup before free tier ends" \
--no-reboot
如果还想继续低成本使用,可以评估AWS Lightsail,它提供固定月费方案,适合小型站点;或者购买Savings Plans和预留实例,把长期成本降下来。也可以把静态站点迁移到S3加CloudFront,彻底不再维护EC2实例。无论哪种方式,都应该在到期前一个月完成数据备份和流量切换,避免最后几天手忙脚乱。
总体来看,AWS EC2免费套餐一年体验可以打一个合格的分数:配置足够入门,性能对轻量负载友好,但必须主动管理关联资源,才能真正做到只薅羊毛不花冤枉钱。
AWS EC2免费套餐EC2实例评测云服务器免费额度修改时间:2026-09-17 19:46:26