云存储服务
存储类型
| 类型 | 特点 | 代表服务 | 适用场景 |
|---|---|---|---|
| 对象存储 | 无限扩展、HTTP 访问 | S3、OSS | 静态文件、备份、数据湖 |
| 块存储 | 高性能、挂载到实例 | EBS、云盘 | 数据库、系统盘 |
| 文件存储 | NFS 共享 | EFS、NAS | 多实例共享文件 |
对象存储(S3 / OSS)
存储类别与成本
| 存储类别 | 适用场景 | 相对成本 |
|---|---|---|
| 标准 | 频繁访问 | 100% |
| 低频访问(IA) | 月访问 1-2 次 | ~50% |
| 归档 | 季度访问 | ~20% |
| 深度归档 | 年度访问(合规保留) | ~5% |
生命周期策略
S3 Lifecycle 示例
{
"Rules": [
{
"ID": "LogArchive",
"Filter": { "Prefix": "logs/" },
"Status": "Enabled",
"Transitions": [
{
"Days": 30,
"StorageClass": "STANDARD_IA"
},
{
"Days": 90,
"StorageClass": "GLACIER"
}
],
"Expiration": {
"Days": 365
}
}
]
}
安全配置
Bucket Policy:仅允许 CloudFront 访问
{
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "cloudfront.amazonaws.com"
},
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::my-bucket/*",
"Condition": {
"StringEquals": {
"aws:SourceArn": "arn:aws:cloudfront::123456:distribution/EDFDVBD6EXAMPLE"
}
}
}
]
}
安全注意
- 禁止公开访问:默认开启
Block Public Access - 加密:启用 SSE-S3 或 SSE-KMS 服务端加密
- 版本控制:重要 Bucket 开启 Versioning 防误删
- 访问日志:开启 Server Access Logging
块存储(EBS / 云盘)
| 类型 | IOPS | 吞吐 | 适用 |
|---|---|---|---|
| gp3(通用 SSD) | 3,000-16,000 | 125-1,000 MB/s | 大部分场景 |
| io2(高性能 SSD) | 最高 64,000 | 1,000 MB/s | 数据库 |
| st1(吞吐 HDD) | — | 500 MB/s | 大数据、日志 |
常见面试问题
Q1: S3 和 EBS 的区别?
答案:
| S3(对象存储) | EBS(块存储) | |
|---|---|---|
| 访问方式 | HTTP API | 挂载为磁盘 |
| 容量 | 无限 | 预设大小 |
| 性能 | 中等 | 高(SSD) |
| 数据模型 | Key-Value 对象 | 传统文件系统 |
| 适用 | 静态文件、备份 | 数据库、应用数据 |
Q2: 如何优化云存储成本?
答案:
- 生命周期策略:自动将旧数据迁移到低频/归档存储
- 清理无用资源:定期清理未使用的 EBS 快照、未挂载的磁盘
- 合适的存储类别:根据访问频率选择(标准/IA/归档)
- 压缩:存储前压缩(gzip/zstd)
- 使用预留容量:EBS 使用 gp3(比 gp2 便宜但性能更好)