预计时间
1 周
学习目标
- 理解核心云服务概念
- 知道什么时候用云服务 vs 自建
- 能看懂云架构图
一、为什么用云服务?
text
自建 vs 云服务:
自建 PostgreSQL:
买服务器 → 装系统 → 装 PG → 配主从 → 设备份 → 监控
磁盘满了 → 手动加盘 → 半夜宕机 → 爬起来重启
RDS(云托管 PostgreSQL):
控制台点几下 → 5 分钟后数据库就绪
自动备份、自动扩容、自动故障切换
磁盘快满了 → 自动扩容或通知你
半夜宕机 → 云厂商的运维在处理
一句话:自建是成本,云服务是投资。把运维精力省下来做业务。二、核心服务对照
| 服务类型 | AWS | 阿里云 | 腾讯云 | 作用 |
|---|---|---|---|---|
| 计算 | EC2 / ECS | ECS | CVM | 虚拟机 |
| 容器 | ECS / EKS | ACK (K8s) | TKE (K8s) | 容器编排 |
| 对象存储 | S3 | OSS | COS | 存文件/图片 |
| 数据库 | RDS | RDS | TencentDB | 托管数据库 |
| 缓存 | ElastiCache | Redis 版 | Redis 版 | 托管 Redis |
| CDN | CloudFront | CDN | CDN | 内容加速 |
| DNS | Route 53 | DNS | DNSPod | 域名解析 |
| 函数 | Lambda | 函数计算 | SCF | Serverless |
三、ECS vs EC2
text
EC2(虚拟机):
你要管:选机型、装系统、配安全组、SSH 进去部署
适合:需要完全控制的场景
ECS(弹性容器服务):
你只要:给 Docker 镜像,选 CPU/内存
云厂商管:自动调度、自动扩容、多 AZ 高可用
适合:用 Docker 的项目
对于你:ECS + Fargate(Serverless 容器)最简单
不需要管服务器,只关心容器四、RDS(托管数据库)
yaml
核心功能:
自动备份 → 每天自动备份,保留 7-35 天
时间点恢复 → 恢复到过去任意一秒
只读副本 → 读压力大时加只读实例
多 AZ 部署 → 主库故障自动切换到备库
自动扩容 → 存储自动增长(有的需要手动)
监控告警 → 连接数、慢查询、CPU、存储text
选型建议:
AI 知识库系统 → PostgreSQL(支持 pgvector)
电商/交易系统 → MySQL(生态成熟)
搜索引擎 → Elasticsearch Service
缓存 → Redis(云厂商托管版)五、S3 / OSS(对象存储)
text
存什么?
- 用户上传的文档(PDF、图片)
- 静态网站(打包好的 HTML/JS/CSS)
- 日志归档
特性:
- 无限容量(理论)
- 11 个 9 的持久性(99.999999999%)
- 版本控制(开启后误删可以恢复)
- 生命周期策略(30 天后自动删,或转低频存储降低成本)yaml
存储类型选择:
Standard → 频繁访问(贵)
Infrequent → 偶尔访问(便宜 40%)
Archive → 归档(极便宜,取回要等几小时)
生命周期规则示例:
上传后 0-30 天 → Standard
上传后 30-90 天 → Infrequent Access
上传后 90+ 天 → Archive预签名 URL
javascript
// 不把文件设为公开,而是生成临时下载链接
import { getSignedUrl } from '@aws-sdk/s3-request-presigner';
import { GetObjectCommand } from '@aws-sdk/client-s3';
async function getDownloadUrl(key) {
const command = new GetObjectCommand({
Bucket: 'my-bucket',
Key: key,
});
// 生成 15 分钟有效的链接
return getSignedUrl(s3, command, { expiresIn: 900 });
}
// 生成的 URL 类似:
// https://my-bucket.s3.amazonaws.com/doc-123.pdf
// ?X-Amz-Algorithm=AWS4-HMAC-SHA256
// &X-Amz-Credential=...
// &X-Amz-Signature=...
// &X-Amz-Expires=900六、CDN(内容分发网络)
text
原理:
源站(深圳)→ 内容推送到全球边缘节点
用户访问 → 离他最近的节点响应
加速对象:
✅ 静态文件:JS、CSS、图片、字体、视频
❌ API 响应(动态内容,无法缓存)
❌ 用户个人数据
关键配置:
Cache TTL — 缓存时间(静态文件设 1 年,HTML 设 5 分钟)
回源策略 — CDN 缓存过期了怎么回源站取
HTTPS — 开启 HTTPS,自动续签证书七、典型 SaaS 云架构
text
用户请求
↓
DNS (Route 53 / 云解析)
↓
CDN (CloudFront / 全站加速)
├── 静态资源 → S3 / OSS
└── API 请求 → ALB (应用负载均衡)
↓
ECS Fargate (容器)
↓
┌─────┴─────┐
↓ ↓
RDS (PG) ElastiCache (Redis)
↓
S3 (文件存储)
↓
CloudWatch (日志 + 监控)八、成本优化
text
1. 用预留实例(包年包月)代替按量付费 → 省 30-50%
2. S3 生命周期策略 → 老文件自动转低频存储
3. CDN 缓存率高 → 源站请求少 → 计算成本低
4. 用 Serverless (Lambda/Fargate) → 没有请求时不花钱
5. 设置预算告警 → 不收到天价账单实践
- 注册一个云服务商(推荐 AWS 免费层或阿里云试用)
- 创建一个 RDS PostgreSQL 实例
- 创建一个 S3/OSS Bucket,上传文件试试
- 配置 CDN 加速你的静态网站