云计算网络架构设计:VPC、子网与安全组配置指南

在云计算面试中,网络架构设计是考察候选人基础设施理解深度的核心领域。一个设计良好的网络是应用安全、稳定、高效运行的基石。本文将围绕虚拟私有云(VPC)、子网与安全组这三个关键组件,解析其设计原则、配置要点及常见面试问题。

一、核心概念解析

1.1 虚拟私有云(VPC)

VPC是您在云上自定义的逻辑隔离网络空间。您可以完全掌控IP地址范围、子网划分、路由策略和网关设置。它如同您在云数据中心中的专属私有网络。

面试常问:VPC与经典网络的区别是什么?
要点:经典网络由云服务商统一规划,多租户共享网络段;VPC则提供用户独享、可自定义的隔离网络,安全性、灵活性和可控性更高。

1.2 子网(Subnet)

子网是VPC内的IP地址范围块,用于将VPC划分成更小、更易管理的网络单元。通常根据业务模块(如Web层、应用层、数据层)或可用区(AZ)进行划分,以实现隔离和容灾。

1.3 安全组(Security Group)

安全组是一种虚拟防火墙,用于控制一个或多个云服务器(ECS)的入站和出站流量。它是状态化的,即如果您允许了某个入站请求,其对应的出站响应会自动被允许,无需额外配置出站规则。

二、架构设计与配置实践

2.1 VPC与子网规划示例

一个典型的三层Web应用架构网络规划如下:

# 假设我们创建一个VPC,CIDR为 10.0.0.0/16
VPC: my-prod-vpc (10.0.0.0/16)
    |
    |-- 子网A: public-subnet-az1 (10.0.1.0/24) [可用区1 - 公网]
    |      用途:部署面向公网的负载均衡器、NAT网关
    |
    |-- 子网B: private-app-subnet-az1 (10.0.2.0/24) [可用区1 - 私有]
    |      用途:部署应用服务器(如Tomcat/Node.js)
    |
    |-- 子网C: private-data-subnet-az1 (10.0.3.0/24) [可用区1 - 私有]
    |      用途:部署数据库、缓存等数据层服务
    |
    |-- 子网D: private-app-subnet-az2 (10.0.4.0/24) [可用区2 - 私有]
    |      用途:跨AZ部署应用服务器,实现高可用
    |
    `-- 子网E: private-data-subnet-az2 (10.0.5.0/24) [可用区2 - 私有]
            用途:跨AZ部署数据层副本

设计原则

  • 最小权限原则:子网按需划分,避免过大地址段。
  • 业务与AZ隔离:不同业务层、不同可用区使用不同子网,便于管理和故障隔离。
  • 公私网分离:仅有必要的资源(如LB)放在公网子网,业务核心放在私有子网。

2.2 安全组配置代码示例

以下是一个应用服务器安全组的配置示例(以AWS CLI风格为例):

// 创建安全组
aws ec2 create-security-group \
    --group-name my-app-sg \
    --description "Security group for application servers" \
    --vpc-id vpc-12345678

// 添加入站规则:允许来自公网负载均衡器(SG-ID: sg-lb123)的HTTP/HTTPS流量
aws ec2 authorize-security-group-ingress \
    --group-id sg-abcdefgh \
    --protocol tcp \
    --port 8080 \
    --source-group sg-lb123

// 添加入站规则:允许来自同安全组内其他实例的ALL流量(用于内部通信)
aws ec2 authorize-security-group-ingress \
    --group-id sg-abcdefgh \
    --protocol all \
    --source-group sg-abcdefgh

// 添加入站规则:允许运维人员通过SSH从特定IP(如公司网络)访问
aws ec2 authorize-security-group-ingress \
    --group-id sg-abcdefgh \
    --protocol tcp \
    --port 22 \
    --cidr 203.0.113.0/24

// 出站规则通常默认允许所有流量(可根据需要限制,如只允许访问数据库端口)

关键点:安全组规则是允许性的,默认拒绝所有非明确允许的流量。规则优先级无顺序,所有规则都会被评估。

三、高级场景与面试题剖析

3.1 VPC对等连接与终端节点

当需要多个VPC互通或让VPC内服务私密访问云服务(如S3、DynamoDB)时,需用到VPC对等连接和终端节点。

面试题:VPC对等连接与中转网关(Transit Gateway)有何区别?
:VPC对等连接是点对点连接,适用于少量VPC互联,但不支持传递性路由(即A与B对等,B与C对等,不意味着A与C互通)。中转网关是中心化枢纽,可连接大量VPC、VPN和专线,支持传递性路由和集中管理,适合复杂混合云架构。

3.2 网络ACL与安全组的区别

这是高频面试题。两者都是防火墙,但层级和特性不同:

特性 安全组 (Security Group) 网络ACL (Network ACL)
操作层级 实例级别(第二层) 子网级别(第三层)
状态性 有状态:允许的入站,其出站自动允许 无状态:入站出站需分别配置
规则评估 所有规则均被评估 按规则号顺序评估,遇匹配则执行
默认规则 默认拒绝所有入站,允许所有出站 默认拒绝所有入站和出站

实践建议:通常使用安全组做精细的实例级控制,而使用网络ACL作为子网级的额外、粗粒度的安全防线(例如,在子网级别直接屏蔽某个恶意IP段)。

四、运维与诊断工具

网络配置完成后,运维和故障诊断至关重要。除了云商自带的VPC流日志、网络诊断工具外,使用专业的数据库与SQL工具能极大提升排查效率。例如,当需要分析数据库访问是否受安全组规则影响时,可以借助 dblens SQL编辑器。它提供直观的界面连接云端数据库,快速执行查询,验证网络连通性。

在复杂的微服务架构中,多个服务间的网络调用链需要清晰记录。这时,像 QueryNote 这样的工具就非常有用。它不仅能保存和管理你的诊断查询语句,还能将网络拓扑、安全组规则与具体的SQL查询关联记录,形成完整的运维笔记,方便团队协作和知识沉淀。访问 https://note.dblens.com 了解更多。

五、总结

设计云计算网络架构时,应牢记以下核心:

  1. 规划先行:根据业务架构、合规要求和增长预期,合理规划VPC CIDR和子网。
  2. 分层隔离:利用子网实现网络分层(Web/App/Data)和物理隔离(多AZ),提升安全性与可用性。
  3. 最小权限:安全组配置务必遵循最小权限原则,只开放必要的端口和源地址。
  4. 理解差异:清晰掌握安全组(有状态、实例级)与网络ACL(无状态、子网级)的区别与适用场景。
  5. 善用工具:结合云平台监控日志以及像 dblens 提供的专业数据库工具进行日常运维和深度诊断,能事半功倍。

掌握VPC、子网与安全组的精髓,不仅能帮助你在技术面试中脱颖而出,更是构建健壮、安全云上应用的必备技能。

posted on 2026-01-30 14:19  DBLens数据库开发工具  阅读(0)  评论(0)    收藏  举报