本节摘要:存储和网络是 IaaS 的另外两个支柱。存储分三类:对象存储 COS 适合海量文件的 HTTP 访问(图片、视频、备份),文件存储 CFS 适合多机共享挂载,块存储 CBS 适合挂给单台机器当硬盘。三者访问模型不同,选型核心是"数据怎么被访问"。网络方面,VPC(私有网络)是生产环境的隔离基础,所有实例都该放在 VPC 里而非裸跑公网;CLB(负载均衡)把流量分发到多台实例;CDN 把静态内容缓存到全球节点加速访问。本节讲这些产品的定位和选型。
阅读完本节,你应当能够:
几乎每个应用都要存数据,但"存数据"这件事在不同场景下需求天差地别。存用户上传的头像,要支持海量小文件、通过网页直接访问;存数据库的数据,要高 IO、低延迟、挂给一台机器专用;存多台机器共享的配置文件,要能同时被多台机器挂载读写。这三种需求用同一种存储都做不好——对象存储存数据库太慢,块存储存海量小文件成本高,文件存储做网页直链不方便。
这就是为什么云提供三类存储,各自针对不同的访问模型。选型的关键不是看容量或价格(这些都能调),而是看"数据怎么被访问"——是 HTTP 拉取、文件系统挂载、还是块设备读写。访问模型决定了该用哪类。
网络也类似。"我的服务怎么被访问"决定了网络产品选型——内网互通用 VPC、公网入口用 CLB 分发、全球用户用 CDN 加速。很多人上线时图省事把实例直接挂公网 IP,既不安全(暴露在公网)又扛不住流量(单机带宽有限)。生产环境必须有一套像样的网络架构。
对象存储 COS(Cloud Object Storage):存"对象"(一个文件加它的元数据),通过 HTTP API 访问(上传、下载、删除)。它有几个特点:容量无限(按使用量计费,不用预估容量)、可从公网直接访问(适合做网页的静态资源)、高持久性(数据自动多副本)。典型用途:存用户上传的图片/视频、网站静态资源、日志备份、大数据的原始数据。它不适合频繁随机读写小块数据的场景(每次都是 HTTP 请求,延迟比本地盘高)。
文件存储 CFS(Cloud File Storage):提供标准的文件系统接口(NFS/SMB),可以像本地目录一样挂载到多台机器上,多机能同时读写同一份文件。典型用途:多台服务器共享配置文件、容器共享数据、内容管理系统。它的优势是"共享"——多机访问同一份数据不用各自复制。代价是性能不如本地块盘(网络文件系统有延迟)。
块存储 CBS(Cloud Block Storage):就是云硬盘,挂给一台 CVM 当它的硬盘用。有系统盘(装操作系统)和数据盘(存数据)。性能最高(本地块设备访问),但只能挂给一台机器(不能多机共享一块盘)。典型用途:CVM 的系统盘、数据库的数据盘(单机专用、要高 IO)。
| 存储类型 | 访问模型 | 共享性 | 典型用途 | 性能 |
|---|---|---|---|---|
| 对象存储 COS | HTTP API | 多人/多机 | 图片视频、备份、静态资源 | 中(网络延迟) |
| 文件存储 CFS | 文件系统挂载 | 多机共享 | 共享配置、协作 | 中低 |
| 块存储 CBS | 块设备 | 单机专用 | 系统盘、数据库 | 高 |
💡 关键直觉:选存储先想"谁访问、怎么访问"。网页要直接显示图片,用对象存储(HTTP 能直接拉);几台服务器要读同一份配置,用文件存储(多机挂载);数据库要高 IO,用块存储(单机专用高性能)。反过来用(比如把数据库放对象存储)会又慢又贵。
VPC(Virtual Private Cloud,私有网络)是你在云上划出的一块逻辑隔离的网络空间。在 VPC 里,你可以定义 IP 地址段、划分子网、配置路由表、设置防火墙规则。你的 CVM、数据库等资源放在 VPC 里,它们之间走内网通信,对外通过你控制的网关出入。
VPC 的核心价值是隔离和安全。没有 VPC,你的实例直接暴露在公网,任何人都可能扫到你的 IP、尝试攻击。有了 VPC,你可以把数据库放在纯私有子网(没有公网 IP、不能从外网访问),只把 Web 层放在能出公网的子网,Web 层通过内网访问数据库。这样即使 Web 层被攻破,数据库也不会直接暴露给攻击者。
生产环境基本规则:所有资源都放 VPC 里,只给必须对外(Web 入口)的部分公网访问能力,数据库等敏感资源放纯私有子网。这是安全的基本盘。
CLB(Cloud Load Balancer,负载均衡):把进入的流量分发到后端多台实例。作用有两个:一是分摊压力(一台扛不住,多台一起扛),二是高可用(一台挂了流量自动转到其他台)。CLB 做健康检查,发现某台实例不健康就不再把流量分给它。
CLB 和弹性伸缩是黄金搭档:弹性伸缩负责增减实例数量,CLB 负责把流量分到这些实例。新实例扩出来自动注册到 CLB,缩容的实例自动从 CLB 摘除。
CDN(Content Delivery Network,内容分发网络):把静态内容(图片、视频、网页静态文件)缓存到全球各地的边缘节点,用户访问时从离他最近的节点取,而不是从你的源站取。作用是加速(物理距离近延迟低)和减压(源站不用扛所有请求)。
CLB 和 CDN 解决不同问题:CLB 是"把流量分发到你的多台机器"(机器层面的分发),CDN 是"把内容缓存到离用户近的地方"(地理层面的加速)。一个 Web 服务通常两层都用——CDN 在最外层缓存静态内容、加速全球访问,CLB 在内层把动态请求分发到后端实例。
| 产品 | 分发层面 | 解决问题 | 典型用法 |
|---|---|---|---|
| CLB | 机器层面 | 分摊压力、高可用 | 流量分发到多台CVM |
| CDN | 地理层面 | 加速、减压源站 | 静态内容全球缓存 |
对象存储 COS 是云上最常用的存储之一,几个典型架构:
静态网站托管:把网站的静态文件(HTML/CSS/JS/图片)放 COS,配合 CDN,做成无需服务器的静态网站。成本极低(只付存储和流量费),适合官网、博客、文档站。
用户上传文件:用户上传图片/视频到 COS,应用只存 COS 的文件地址,不直接存文件内容。这样应用服务器不用扛大文件流量,且文件可被 CDN 加速分发。
数据备份归档:数据库备份、日志归档到 COS。COS 支持低频/归档存储类型(访问少但便宜),长期归档成本低。
# 概念性:用户上传到COS的常见模式 直传 class COSUploadFlow: def get_upload_credentials(self, user, filename): # 应用签发一个临时上传凭证给前端 # 前端拿凭证直接传文件到COS 不经过应用服务器 creds = cos.generate_temp_credentials( scope=f"upload/{user}/{filename}", expire=900 ) return creds # 好处 大文件不占应用带宽 应用只管签凭证
⚠️ 常见坑:对象存储的权限前面提过是重灾区。还有一个坑是"直接用主账号密钥上传"——这等于把主账号权限给了前端,极其危险。正确做法是签发临时凭证(STS),凭证只对特定文件有权限且有时效,过期就失效。
最小暴露原则:只开放必须开放的端口和 IP。数据库端口(3306、5432 等)绝不应对公网开放,只允许 VPC 内网访问。管理端口(SSH 22)最好通过跳板机或 VPN 访问,不直接对公网。
安全组配置:安全组是实例级别的防火墙,控制进出流量。默认拒绝所有 inbound,按需开放。别图省事配成"允许所有",等于没防火墙。
分层网络:Web 层(公网可达)→ 应用层(内网)→ 数据层(更严格内网),每层之间有安全组隔离。攻击者攻破 Web 层后,还要再突破一层才能碰到数据层。
存储成本会随数据量增长累积,几个优化点:
选对存储类型:对象存储有标准、低频、归档几种类型,访问频率越低单价越低。热数据(频繁访问)用标准,温数据(偶尔访问)用低频,冷数据(几乎不访问)用归档。把备份数据及时转成归档,能省不少。
生命周期规则:COS 支持配置生命周期——比如"30 天后自动从标准转低频,90 天后转归档,一年后删除"。自动管理,不用人工干预。
清理无用数据:开发测试产生的临时数据、过期的日志、废弃的备份,定期清理。很多人忘了清,存储费越堆越高。
| 优化手段 | 节省幅度 | 做法 |
|---|---|---|
| 冷数据转归档 | 70–90% | 生命周期规则自动转 |
| 删无用数据 | 100% | 定期审计清理 |
| 压缩后存储 | 50–80% | 上传前压缩文本类数据 |
| 合并小文件 | 减少请求费 | 对象存储请求费在小文件多时累加 |
💡 关键直觉:对象存储的请求费容易被忽略。单价里除了"每 GB 存储费"还有"每万次请求费"。如果你的场景有海量小文件、频繁读写(比如几百万个小图片每秒被拉取),请求费可能比存储费还高。这种场景要考虑合并小文件或用 CDN 缓存减少对源站的请求。
下一章进入 PaaS——在 IaaS 之上构建的托管平台服务,数据库、中间件、容器这些装好即用的能力。

收尾给一个便于记忆的口诀式总结:存储三兄弟按"谁访问"分家——程序用 HTTP 访问用对象、多台机器共享目录用文件、单机要极致性能用块;网络四件套按"管多宽"分层——VPC 管边界、子网管分区、安全组管端口、路由表管去向。CDN 和 CLB 的分工常被混淆,记"CLB 门口分客、CDN 全城摆摊":前者把进入你机房的流量分给后端实例,后者把静态内容铺到离用户最近的节点。把这几句口诀和上图对照着记,两节的产品清单就能压缩成几分钟可复述的心智模型,这也是概念筑基章法在 IaaS 上的第一次完整应用。