用华为云VPC给应用规划"Web层+数据层"双子网隔离架构

举报
海是岛思念的泪 发表于 2026/09/04 10:10:37 2026/09/04
【摘要】 用VPC把Web层和数据层拆到两个子网,并用安全组做分层放行,避免数据库直接暴露公网。以待办应用为例,但网络分层思路可套到任何云上项目。

一、背景:单台机器的隐患

如果你有一台 ECS 把后端、前端、甚至数据库全堆在一个网络里,能跑,但有隐患:

  • 一旦这台机器被攻破,数据库和应用一起裸奔
  • 数据库端口(比如 3306/6379)如果因为图省事开着公网访问,等于把家门钥匙挂门口。

所以这一篇我用 VPC(虚拟私有云) 给项目做一次"网络分层":把能对外提供服务的 Web 层,和只对内通信的数据层,拆进不同的子网,再用安全组卡死跨层访问。这个思路不止适用于待办应用,任何"有数据库"的云上项目都该这么想。

二、先搞清楚 VPC 里几个角色

刚开始看 VPC 控制台容易懵,其实就四样东西:

  • VPC:一块逻辑隔离的私有网络空间,你在里面随便划 IP 段(比如 192.168.0.0/16)。
  • 子网(Subnet):VPC 里再切的小网段,必须落在 VPC 的网段内,且每个子网绑定一个可用区
  • 安全组(Security Group):作用在网卡上的"状态化防火墙",控制进出流量。
  • 路由表(Route Table):决定子网里的流量往哪走(比如去公网要经过 EIP / NAT 网关)。

一句话记忆:VPC 是院子,子网是房间,安全组是门禁,路由表是出门的路。

三、动手:建一个 VPC + 两个子网

我在控制台新建了一个 VPC,网段 192.168.0.0/16,然后在里面开了两个子网:

子网名称 网段 可用区 放什么
web-subnet 192.168.0.0/24 可用区一 前端 + 后端 Web 服务
data-subnet 192.168.1.0/24 可用区一 数据库 / 缓存

注意子网网段要在 VPC 网段内、且互相不重叠。我一开始把 data 也写成 192.168.0.0/24,创建直接报错,改成 192.168.1.0/24 才过。

然后把 Web 层的 ECS 放到 web-subnet,后面要加的数据库实例就规划进 data-subnet

image.png

四、安全组分层:数据层绝不对外

这是整套设计的核心。我建了两个安全组:

web-sg(Web 层)

方向 协议/端口 来源 说明
TCP 22 办公 IP SSH,不放开给全网
TCP 80/443 0.0.0.0/0 用户访问 Web
全部 0.0.0.0/0 允许对外请求(拉镜像等)

data-sg(数据层)

方向 协议/端口 来源 说明
TCP 3306 仅 web-sg 只让 Web 层访问数据库
TCP 6379 仅 web-sg 只让 Web 层访问缓存
全部 0.0.0.0/0 系统更新等

关键点:data-sg 的入方向来源填的是 web-sg 这个安全组 ID,而不是某个 IP。意思是"只有挂着 web-sg 的机器才能连我",这样即使以后 Web 层扩了好几台,也不用一个个加 IP。数据库端口彻底不碰公网,安全感直接拉满。

五、路由表:怎么让 Web 层能上公网

子网默认有个路由表,但默认只通 VPC 内部。Web 层要拉 Docker 镜像、做系统更新,得能出公网。做法有两种:

  1. 给 Web 层 ECS 绑 EIP(最简单,适合单台调试)。
  2. 公网出口统一走 NAT 网关,子网路由指向 NAT,数据层不绑 EIP 也能更新系统又不直接暴露——更规范,适合多实例。

如果你的项目还在单台调试阶段,方案 1 顶着就行;等后面做多实例、或者数据层也要更新系统又不想暴露,再补 NAT 网关。两者的本质区别就是"每台机器自带公网"还是"统一一个出口"。

六、单子网 vs 双子网,值不值?

对比项 单子网(全堆一起) 双子网分层
配置复杂度
数据库暴露风险 高(易误开公网) 低(安全组锁死)
横向扩展 混在一起难管理 各层独立扩
合规审计

说实话,个人小项目,单子网也能跑。但养成"数据层不外网"的习惯,等以后项目变正式、要过等保或客户审计时,就不会推倒重来。这也是我写这篇的初衷:把正确的云上姿势提前练熟。

七、小结

  • 一个 VPC 兜底,Web 层和数据层各占一个子网;
  • 安全组用"引用对方安全组 ID"的方式做分层放行,数据库端口零公网暴露;
  • 出公网先用 EIP 顶着,后续再补 NAT 网关。
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。