2.2 存储与网络服务


2.2 存储与网络服务

本节摘要:存储和网络是 IaaS 的另外两个支柱。存储分三类:对象存储 COS 适合海量文件的 HTTP 访问(图片、视频、备份),文件存储 CFS 适合多机共享挂载,块存储 CBS 适合挂给单台机器当硬盘。三者访问模型不同,选型核心是"数据怎么被访问"。网络方面,VPC(私有网络)是生产环境的隔离基础,所有实例都该放在 VPC 里而非裸跑公网;CLB(负载均衡)把流量分发到多台实例;CDN 把静态内容缓存到全球节点加速访问。本节讲这些产品的定位和选型。

学习目标

阅读完本节,你应当能够:

  1. 区分对象存储、文件存储、块存储的访问模型和适用场景
  2. 理解 VPC 的作用,知道为什么生产环境必须用它
  3. 说清 CLB 和 CDN 解决的不同网络问题
  4. 规划一个基本的安全网络架构
  5. 针对不同类型的数据(图片、数据库、共享配置)选对存储

问题与直觉

几乎每个应用都要存数据,但"存数据"这件事在不同场景下需求天差地别。存用户上传的头像,要支持海量小文件、通过网页直接访问;存数据库的数据,要高 IO、低延迟、挂给一台机器专用;存多台机器共享的配置文件,要能同时被多台机器挂载读写。这三种需求用同一种存储都做不好——对象存储存数据库太慢,块存储存海量小文件成本高,文件存储做网页直链不方便。

这就是为什么云提供三类存储,各自针对不同的访问模型。选型的关键不是看容量或价格(这些都能调),而是看"数据怎么被访问"——是 HTTP 拉取、文件系统挂载、还是块设备读写。访问模型决定了该用哪类。

网络也类似。"我的服务怎么被访问"决定了网络产品选型——内网互通用 VPC、公网入口用 CLB 分发、全球用户用 CDN 加速。很多人上线时图省事把实例直接挂公网 IP,既不安全(暴露在公网)又扛不住流量(单机带宽有限)。生产环境必须有一套像样的网络架构。

核心原理

2.1 三类存储的访问模型

对象存储 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,用块存储(单机专用高性能)。反过来用(比如把数据库放对象存储)会又慢又贵。

2.2 VPC 私有网络

VPC(Virtual Private Cloud,私有网络)是你在云上划出的一块逻辑隔离的网络空间。在 VPC 里,你可以定义 IP 地址段、划分子网、配置路由表、设置防火墙规则。你的 CVM、数据库等资源放在 VPC 里,它们之间走内网通信,对外通过你控制的网关出入。

VPC 的核心价值是隔离和安全。没有 VPC,你的实例直接暴露在公网,任何人都可能扫到你的 IP、尝试攻击。有了 VPC,你可以把数据库放在纯私有子网(没有公网 IP、不能从外网访问),只把 Web 层放在能出公网的子网,Web 层通过内网访问数据库。这样即使 Web 层被攻破,数据库也不会直接暴露给攻击者。

生产环境基本规则:所有资源都放 VPC 里,只给必须对外(Web 入口)的部分公网访问能力,数据库等敏感资源放纯私有子网。这是安全的基本盘。

2.3 CLB 与 CDN

CLB(Cloud Load Balancer,负载均衡):把进入的流量分发到后端多台实例。作用有两个:一是分摊压力(一台扛不住,多台一起扛),二是高可用(一台挂了流量自动转到其他台)。CLB 做健康检查,发现某台实例不健康就不再把流量分给它。

CLB 和弹性伸缩是黄金搭档:弹性伸缩负责增减实例数量,CLB 负责把流量分到这些实例。新实例扩出来自动注册到 CLB,缩容的实例自动从 CLB 摘除。

CDN(Content Delivery Network,内容分发网络):把静态内容(图片、视频、网页静态文件)缓存到全球各地的边缘节点,用户访问时从离他最近的节点取,而不是从你的源站取。作用是加速(物理距离近延迟低)和减压(源站不用扛所有请求)。

CLB 和 CDN 解决不同问题:CLB 是"把流量分发到你的多台机器"(机器层面的分发),CDN 是"把内容缓存到离用户近的地方"(地理层面的加速)。一个 Web 服务通常两层都用——CDN 在最外层缓存静态内容、加速全球访问,CLB 在内层把动态请求分发到后端实例。

产品 分发层面 解决问题 典型用法
CLB 机器层面 分摊压力、高可用 流量分发到多台CVM
CDN 地理层面 加速、减压源站 静态内容全球缓存

工程实践要点

3.1 对象存储的典型用法

对象存储 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),凭证只对特定文件有权限且有时效,过期就失效。

3.2 网络安全的几个基本规则

最小暴露原则:只开放必须开放的端口和 IP。数据库端口(3306、5432 等)绝不应对公网开放,只允许 VPC 内网访问。管理端口(SSH 22)最好通过跳板机或 VPN 访问,不直接对公网。

安全组配置:安全组是实例级别的防火墙,控制进出流量。默认拒绝所有 inbound,按需开放。别图省事配成"允许所有",等于没防火墙。

分层网络:Web 层(公网可达)→ 应用层(内网)→ 数据层(更严格内网),每层之间有安全组隔离。攻击者攻破 Web 层后,还要再突破一层才能碰到数据层。

3.3 存储成本优化

存储成本会随数据量增长累积,几个优化点:

选对存储类型:对象存储有标准、低频、归档几种类型,访问频率越低单价越低。热数据(频繁访问)用标准,温数据(偶尔访问)用低频,冷数据(几乎不访问)用归档。把备份数据及时转成归档,能省不少。

生命周期规则:COS 支持配置生命周期——比如"30 天后自动从标准转低频,90 天后转归档,一年后删除"。自动管理,不用人工干预。

清理无用数据:开发测试产生的临时数据、过期的日志、废弃的备份,定期清理。很多人忘了清,存储费越堆越高。

优化手段 节省幅度 做法
冷数据转归档 70–90% 生命周期规则自动转
删无用数据 100% 定期审计清理
压缩后存储 50–80% 上传前压缩文本类数据
合并小文件 减少请求费 对象存储请求费在小文件多时累加

💡 关键直觉:对象存储的请求费容易被忽略。单价里除了"每 GB 存储费"还有"每万次请求费"。如果你的场景有海量小文件、频繁读写(比如几百万个小图片每秒被拉取),请求费可能比存储费还高。这种场景要考虑合并小文件或用 CDN 缓存减少对源站的请求。

要点速记

  • 三类存储按访问模型选:对象存储 HTTP 拉取、文件存储多机挂载、块存储单机高性能。
  • 对象存储 COS 适合海量文件和静态资源:容量无限、公网可访、高持久,不适合频繁随机小块读写。
  • 文件存储 CFS 适合多机共享:标准文件系统接口,多机同时挂载,性能不如本地盘。
  • 块存储 CBS 适合单机专用:性能最高、当硬盘用,不能多机共享。
  • VPC 是生产环境基础:所有资源放 VPC,敏感数据放纯私有子网,最小暴露原则。
  • CLB 分发到多机、CDN 加速到全球:两者层面不同,Web 服务通常两层都用。
  • 对象存储权限和凭证要安全:别用主账号密钥,签发临时凭证;权限配置要严谨。
  • 存储成本靠选对类型和清理:冷数据转归档、配生命周期规则、定期清理无用数据。

下一章进入 PaaS——在 IaaS 之上构建的托管平台服务,数据库、中间件、容器这些装好即用的能力。

图:三类存储的访问模型与典型挂载关系

图:三类存储的访问模型与典型挂载关系

存储与网络的概念口诀

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


作者与出处
原作者: 灏天文库
来源:灏天文库
整理: 灏天文库整理
由灏天文库平台收录,内容或由平台用户上传,仅供学习交流
发布者: 作者: 灏天文库 转发
评论区 (0)
U