AI 摘要
AI
正在生成摘要...

永久免费云服务 · AWS篇

前言

2026年的云计算世界,有一个公开的秘密:AWS远比你想象的更慷慨,也远比你听说的更 “危险”
说它慷慨,是因为你完全可以不花一分钱,搭建一个支撑日均几千请求的后端服务——Lambda处理逻辑DynamoDB存储数据SQS削峰填谷,这套组合拳在永久免费套餐内就能跑起来。
说它 “危险” ,是因为网上充斥着 “醒来收到上千美元账单” 的血泪帖。那些踩坑的人,往往不是用了多高级的服务,而是没搞懂免费额度的计算方式,或者注册时选错了计划。
这篇指南,就是我给“想用好AWS免费套餐”的你,准备的一份完整地图。

注意事项

注册账户的时候,如果你需要的是白嫖,那就选择 “Free Plan(免费计划)”
如果你是付费党,那就选择另一个

计算与容器

AWS Lambda

介绍

一个只需上传即可运行代码的服务
属于FaaS (函数即服务) 类型
不需要关心服务器,不需要关心资源容量,只需要写函数逻辑事件触发时执行即可
可用性极高,部署在 AWS 多个数据中心中
类似于 Cloudflare Workers (详见Cloudflare篇),但是可以运行 JSPythonJavaGoC#RubyPowerShell
还可以通过 Runtime API 使用任何语言
并且一次性运行时间比 Cloudflare Workers 多得多,最长15分钟,内存最高可选10GB

使用场景

  • 文件处理:图片/视频上传到 S3 后,自动触发 Lambda 生成缩略图。
  • 后端 API:配合 API Gateway 构建无服务器的 Web 或移动应用后端。
  • 数据处理:实时处理 KinesisDynamoDB Streams 的流数据。
  • 定时任务:通过 CloudWatch Events 定时运行 Lambda 做数据库清理、报表生成等。
  • 事件驱动自动化:监控 AWS 资源变化并自动响应,如自动停止未关机的 EC2 实例。
    费套餐的具体边界:每月 100 万次请求 + 40 万 GB-秒
    这是你必须知道的硬性指标。超出就会开始产生费用。

免费额度

每月免费请求次数:1,000,000
每月免费计算时间:400,000 GB-秒

如何理解 “40万 GB-秒”
这是一个组合单位。简单来说:

函数内存配置 × 每月累计运行秒数 = **400000**

配置的内存 每月可免费运行的总时长 (不计算请求次数)
128 MB (最小配置) 36 天 ( 400000 / 0.125 GB / 3600秒 )
512 MB (常见配置) 9 天
1024 MB (1 GB) 4.6 天
3072 MB (3 GB) 1.5 天

示意图:

图片

💡 建议:轻量任务用128-256MB,别为了快选大内存

Lambda 免费额度的隐藏坑

免费额度是账户级别不是每个函数单独计算
请求次数和计算时间是两者都限制:如果你用了 40万 GB-秒 但请求只有 10 次,仍然不会额外收费;但如果请求超过 100万次(即使计算时间很少),超出部分要收费

AWS CloudFormation

介绍

AWS CloudFormation 是一项基础设施即代码(Infrastructure as Code, IaC) 服务(类似 TerraformPulumi),它允许你使用文本文件(代码)来定义、配置和管理云应用所需的所有AWS资源
简单来说,你可以通过 CloudFormation 建立一个管理你所有云资源的“项目”,实现资源的统一、安全、可重复的创建、更新和删除
类比一下,约等于 docker-compose.yml ,区别如下

维度 docker-compose.yml CloudFormation 模板
管理对象 容器(本地或Swarm集群) AWS云资源(EC2、S3、RDS、VPC等)
运行环境 单一Docker主机Swarm集群 AWS全球云平台
资源类型 容器网络配置 200+种AWS服务(计算、存储、数据库、网络、安全...)
状态管理 有限(主要跟踪容器状态) 完整状态管理(资源创建、更新、删除全生命周期)
更新策略 滚动更新up --force-recreate 支持多种更新策略(滚动、替换、自动回滚)
依赖复杂度 较简单(主要是服务间调用) 复杂(网络、安全组、IAM角色、资源引用等深度绑定)
跨主机部署 需要Swarm/K8s编排 原生支持(跨AZ、跨Region、跨账户)
费用管理 不涉及 支持预算预警删除保护资源标记Tag

注:CloudFormation 原生支持 ECS、EKS 等容器编排服务

主要特点与优势

CloudFormation 提供了大量关键特性来简化云资源的管理:

  • 基础设施即代码 (IaC):这是最核心的优势。你可以使用 JSONYAML 格式的文件编写模板,并将其纳入版本控制系统(如 Git)进行管理。这意味着你的基础设施像应用代码一样,可以进行代码审查、版本控制和团队协作。

  • 自动化与安全部署CloudFormation 会自动分析模板中资源的依赖关系,并按正确的顺序创建更新删除它们。它内置了自动回滚机制:一旦检测到任何操作失败,会自动恢复到上一个稳定的状态,避免错误扩散。新的预部署校验功能可以在正式部署前,直接在IDE中或创建更改集时,就帮你发现语法错误命名冲突等问题。

  • 广泛的资源支持与管理:支持几乎所有AWS资源:包括EC2S3RDSVPC等核心服务。

  • 支持第三方资源:通过 CloudFormation Registry,你可以使用和管理来自MongoDBDatadogSplunk等合作伙伴的第三方资源。

  • 与开发工具集成:你可以使用熟悉的编程语言(如 TypeScriptPythonJava)通过 AWS CDK 来生成CloudFormation模板。同时,许多主流IDE通过 CloudFormation Language Server 获得了语法补全和验证等智能编写支持

  • 安全与风险控制:除了更改集自动回滚CloudFormation 还提供偏差检测 (Drift Detection) 功能,可以检测出实际资源的状态是否与模板定义的状态不符(比如有人在控制台手动修改了配置),帮助你保证环境的一致性

免费额度

每月 1000 次处理程序操作

CloudFormation/CDK 免费额度的“陷阱”

每月 1000 次处理程序操作:创建/更新/删除栈都算操作

每部署一次 CDK 应用,通常会消耗 多个 操作(每个资源创建算一次

对于复杂架构1000 次/月可能不够用

AWS Cloud Development Kit (CDK)

介绍

AWS Cloud Development Kit (CDK) 是一个开源的软件开发框架,它允许你使用 TypeScriptPythonJavaC# 等熟悉的编程语言,以代码的形式来定义和部署云基础设施
AWS CloudFormation差不多,目标相同(CDK 代码最终会被编译成 CloudFormation 模板,再由 CloudFormation 执行部署。),但是方式不同:

特性 AWS CloudFormation AWS CDK
定义方式 JSONYAML 编写静态文本文件 TypeScript, Python, Java, C# 等通用编程语言编写代码
抽象层次 低 (L1):你需要在模板中详细描述每一个资源的每一项属性 高 (L2/L3):你使用封装好的 Construct,很多细节(如依赖关系权限)由框架自动处理
表达能力 有限:没有循环条件判断函数等编程语言特性,复杂场景需要依赖 Fn:: 内在函数或 Mappings,代码重复性高难以维护 强大:你可以使用 for 循环创建多个类似的资源,用 if 条件判断是否创建特定资源,用变量函数复用逻辑,像写普通程序一样灵活
复用性 困难:通过 嵌套栈 (Nested Stacks) 或 模块 (Modules) 复用,但复用单元较大分享版本管理相对不便。 天然:你可以将任何基础设施模式封装成一个小的 Construct 类,然后通过 npmPyPIMaven 等标准包管理器像普通代码库一样分享引用
学习曲线 较低:只需学习模板的格式和资源属性,但编写维护复杂模板的难度很高 较高:需要掌握一种编程语言CDK 的核心概念(如 App, Stack, Construct)。但一旦掌握,处理复杂场景的效率远高于 CloudFormation
CI/CD 集成 命令行工具 (AWS CLI) 部署模板,与其他系统的集成相对独立 可以和标准测试框架集成 (如 Jest, Pytest),为基础设施编写单元测试。更容易融入成熟的软件开发 CI/CD 流程

一个形象的比喻:搭积木

  • CloudFormation:就像是给你一堆最基本的乐高散件(对应 EC2S3 等单个资源)。你需要照着说明书(文档)一块一块地拼,精确到每个凸点凹槽的位置(每个属性)。
  • CDK:就像是给你 预制的标准模块,比如一个带车轮和引擎的汽车底盘(一个 L3 Construct,代表 ECS Fargate 服务)。你只需要说 “给我两个这样的底盘”CDK 就会自动为你调取所需的散件并拼装好。

免费额度

不限制

存储与数据库

Amazon DynamoDB

介绍

Amazon DynamoDB 是亚马逊云科技提供的一种完全托管、无服务器的 NoSQL 键值数据库,专为高扩展性低延迟的场景设计。

核心特点
特性 说明
性能 毫秒级延迟,可随吞吐量线性扩展
扩展性 自动水平分区,支持 PB 级数据
高可用 数据自动跨多个 **AZ(可用区)**复制(默认 3 副本
持久性 提供 99.999999999%(11个9)的数据持久性
无服务器 无需预置服务器,按实际使用量付费
一致性 最终一致性(默认)或强一致性(可选)

常见使用场景

  • 电子商务:购物车、会话管理
  • 游戏:玩家数据、排行榜
  • 用户画像:设备信息、偏好设置
  • 元数据存储:S3 对象索引
  • LoT 设备状态:海量设备遥测数据

免费额度

资源类型 免费额度 说明
数据存储 25 GB 针对使用 “DynamoDB 标准” 表类型的数据和索引存储空间
预置容量 (RCU/WCU) 25 个读容量单位 (RCU) + 25 个写容量单位 (WCU) 这是免费额度的核心,25 RCU25 WCU 足以每月处理约 2 亿次请求
按需容量 (On-Demand) 按需模式不提供针对请求的免费额度,但依然享有 25 GB 的免费存储空间

免费额度是 “账户级别” 共享的:
这笔免费额度是以 你的 AWS 账户 为单位的,而不是 按每个表 来算的。
如果你在一个区域内创建了 5 张表 ,并且每张表都设置了 5 个 WCU ,那么加起来就是 25 个 WCU ,恰好用尽免费额度。如果创建了 第 6 张表 ,即使每张表只设置 1 个 WCU ,总额度为 6 WCU ,也还在 免费额度 内(不超过25 WCU)。

应用集成

Amazon Simple Notification Service(SNS)

介绍

Amazon Simple Notification Service(SNS)是一项全托管消息发布/订阅服务。它允许不同系统应用之间,以及应用用户之间,通过 “推送” 的方式发送和接收消息。

用人话来讲,你可以把它理解成朋友圈

但它和朋友圈的区别在于,SNS是主动推送给接收方,而朋友圈需要手动打开微信才能看
以及它的速度是无与伦比的,朋友圈可能有很长的延迟,但是SNS约等于无**(毫秒级),并且接收方不固定
可以是
程序**,可以是服务器,甚至看可以是所有人
还有,当SNS推送的消息接收方无法接收(程序故障……)时,SNS会一直尝试推送,直到成功

可能更好的比喻是 “大喇叭” ,有消息就广播出去,谁听不到就一直发

核心功能
  • 应用间消息收发 (A2A):在分布式系统微服务无服务器应用之间传递事件。比如,当有新的对象上传到云存储(Amazon S3)时,SNS 可以自动触发一个函数(Lambda)来处理这个文件,或将该事件推送到**消息队列(SQS)**供其他系统处理。

  • 用户间消息收发 (A2P):直接向终端用户发送通知,支持的终端非常丰富:

    • 移动推送通知:发送到 iOSAndroid 等移动设备上的 App

    • 短信 (SMS):向指定手机号发送文本信息

    • 电子邮件 (Email):向指定邮箱地址发送邮件

    • HTTP/HTTPS 端点:调用你自己的 Web 服务器接口(WebHook)。

使用场景

  • “扇出”模式 (Fanout):一个应用产生一条消息,通过 SNS 主题 ,同时推送给多个下游系统,实现异步并行处理

  • 系统监控告警:当云资源(如服务器CPU使用率、数据库连接数)超出阈值时,CloudWatch 可以触发 SNS 消息,向运维人员发送短信邮件报警

  • 工作流解耦:在电商系统中,当用户下单后,订单系统向 SNS 主题发布一条消息,然后库存支付物流等多个系统可以订阅该主题并各自处理互不干扰

免费额度

操作类型 每月免费额度 超出后计费(中国区域)
API 请求(发布消息等操作) 100 万次 ¥3.40 / 100万次
HTTP/HTTPS 通知(推送给服务器) 10 万次 ¥0.40 / 10万次
电子邮件通知(Email/Email-JSON) 1,000 封 ¥13.70 / 10万封
移动推送通知(iOS/Android App) 100 万次 ¥3.40 / 100万次
短信(SMS) 无免费额度 按实际发送量和目的地计费

双向都算:发布消息要算 API 请求费,推送给订阅者还要算通知发送费,这两者是分开计费的。

Amazon SQS (Simple Queue Service)

介绍

Amazon Simple Queue Service (SQS)AWS提供的一款完全托管高可用高可靠的消息队列服务。它主要用于帮助分布式系统微服务无服务器应用实现松耦合、异步通信。

概念
  • 队列 (Queue):消息的容器,用于存储等待被处理的“消息”。
  • 消息 (Message):在系统间传递的数据。可以是任何格式的文本(如 JSON、XML 或纯文本),最大为 256 KB。
  • 生产者 (Producer):发送消息到队列的组件。
  • 消费者 (Consumer):从队列接收并处理消息的组件(例如 EC2 实例、Lambda 函数)。
队列类型
特性 标准队列 (Standard Queue) FIFO 队列 (First-In-First-Out)
吞吐量 近乎无限(每秒 API 调用无上限) 高吞吐(默认 3000 条/秒,支持批量提升)
消息顺序 不保证顺序(可能乱序) 严格保证消息按发送顺序接收
消息去重 不保证去重(可能重复发送) 自动去重(基于去重 ID 或内容)
适用场景 日志处理、解耦高吞吐系统、默认选型 银行交易、库存调整、事件顺序严格要求的场景

典型应用场景

  • 微服务解耦:订单服务将消息放入队列,库存、支付、物流服务各自消费。
  • 异步处理:用户上传视频后,后台触发转码、加水印等耗时任务。
  • 削峰填谷:秒杀活动中,所有请求先进入队列,后端按自身能力处理,防止崩溃。
  • 任务队列:图像处理、数据渲染、离线报表生成。
  • 与 AWS Lambda 集成:直接作为事件源触发无服务器函数,无需编写轮询代码。

主要优势

  • 完全托管:无需管理基础设施(服务器、集群、副本)。
  • 自动扩展:吞吐量随需求自动调整。
  • 高可用:数据自动跨多个可用区复制。
  • 安全:支持加密(传输 TLS、静态 SSE-S3/SSE-KMS)、IAM 策略、VPC 端点。
  • 成本:按请求量和存储时间计费,无预付费用。

免费额度

每月 100 万个请求

计费方式

API 请求:

  • 发送消息:SendMessage 或批量发送 SendMessageBatch
  • 接收消息:ReceiveMessage
  • 删除消息:DeleteMessage 或批量删除 DeleteMessageBatch
  • 修改消息:ChangeMessageVisibility
  • 其他:如获取队列属性 GetQueueAttributes 等

安全与身份

AWS Shield

介绍

AWS Shield 是一项托管式的分布式拒绝服务(DDoS)防护服务,旨在保护在亚马逊云科技 (AWS) 上运行的应用程序,能自动检测并缓解网络攻击,最大限度地减少应用程序的停机时间和延迟。分为 AWS Shield Standard(标准版)AWS Shield Advanced(高级版),高级版不免费,这里不讲
标准版提供防御常见大流量网络层(L3)传输层(L4) 攻击,在AWS网络容量内提供免费无上限的流量清洗

人话免费的DDoS防御服务,所有运行在AWS上的应用程序、服务器……都自动开启

免费额度

AWS Shield Standard 本身就是免费服务,没有额度上限,所有 AWS 客户默认就已自动启用
网络上存在 “单区域最高支持100Gbps攻击流量清洗” 的说法
但AWS官方文档强调的是其全球网络基础设施提供的无上限缓解能力,实际防御能力远超此数值

总结

分类 服务 免费额度 用途
计算 AWS Lambda 100万次请求/月 + 40万GB-秒/月 运行代码,无需管理服务器
基础设施即代码 CloudFormation / CDK 1000次/月(仅限第三方资源) 管理AWS资源,基本免费
存储 DynamoDB 25GB + 25 RCU + 25 WCU NoSQL数据库
消息通知 SNS 100万次API请求 + 10万次HTTP通知 发布/订阅消息
消息队列 SQS 100万次请求/月 解耦分布式系统
安全 Shield Standard 无上限(自动启用) DDoS防护

就讲这些,都是些真正能用的
其他的要么是监控,又或者是什么管理多个账户,还有个IDE自动补充代码的,都没有什么实质性功能

如果有时间的话,我会专门写一期用函数搭建后端的博客

评论