前置知识: 云计算

云网络服务

6 min高级

虚拟私有云、子网与安全组、负载均衡、CDN与边缘计算、DNS服务、专线与VPN、网络架构设计。

1. 虚拟私有云(VPC)

1.1 VPC 核心概念

VPC(Virtual Private Cloud)是云上的隔离虚拟网络,用户可自定义 IP 地址范围、子网、路由表和网关:

flowchart TD
    subgraph VPC[VPC 10.0.0.0/16]
        subgraph Pub[公有子网 10.0.1.0/24]
            ALB[ALB]
            BS[Bastion]
        end
        subgraph Priv[私有子网 10.0.2.0/24]
            APP[App]
            DB[DB]
        end
        IGW[Internet Gateway]
    end

1.2 子网设计

三层架构子网规划:

层级子网CIDR可公网访问用途
Web 层公有子网10.0.1.0/24是ALB、NAT、Bastion
App 层私有子网10.0.2.0/24否应用服务器
Data 层私有子网10.0.3.0/24否数据库、缓存

CIDR 容量计算:

可用 IP 数=2(32−前缀长度)−5\text{可用 IP 数} = 2^{(32 - \text{前缀长度})} - 5

其中减去 5 个 AWS 保留地址:网络地址、广播地址,以及 VPC 路由器(网关)、DNS、 预留三个内部地址(即子网前 4 个 IP 与最后 1 个 IP 不可用)。

1.3 安全组与网络 ACL

特性安全组网络 ACL
层级实例级子网级
状态有状态(自动放行返回流量)无状态(需显式放行双向)
规则仅允许规则允许 + 拒绝规则
评估全部规则评估按规则编号顺序评估
默认拒绝所有入站,允许所有出站允许所有入站和出站

最小权限安全组设计:

ALB 安全组:
  入站: 80, 443 from 0.0.0.0/0
  出站: 8080 to App 安全组

App 安全组:
  入站: 8080 from ALB 安全组
  出站: 3306 to DB 安全组, 6379 to Redis 安全组

DB 安全组:
  入站: 3306 from App 安全组
  出站: 无

2. 负载均衡

2.1 负载均衡类型

flowchart LR
    L4[L4 传输层<br/>NLB<br/>TCP/UDP/TLS<br/>超低延迟 百万RPS 保留源IP]
    L7[L7 应用层<br/>ALB<br/>HTTP/HTTPS/gRPC<br/>路径/主机路由 SSL 终止 认证/速率限制]

2.2 ALB 路由规则

ALB 基于请求内容进行路由:

flowchart TD
    R1[IF Host = api.example.com AND Path = /users/* → Forward to user-service]
    R2[IF Host = api.example.com AND Path = /orders/* → Forward to order-service]
    R3[IF Path = /static/* → Redirect to CDN]
    R4[IF Header[X-Canary] = true → Forward to canary-service 10%]

2.3 负载均衡算法

算法描述适用场景
轮询依次分配均匀负载
最少连接分配给连接数最少的长连接
IP 哈希基于客户端 IP 哈希会话保持
加权轮询按权重分配异构实例
随机随机选择简单场景
一致性哈希最小化哈希变更缓存亲和

一致性哈希虚拟节点数选择:

虚拟节点数=物理节点数×150允许的负载偏差百分比\text{虚拟节点数} = \frac{\text{物理节点数} \times 150}{\text{允许的负载偏差百分比}}

3. CDN 与边缘计算

3.1 CDN 工作原理

flowchart TD
    R[请求] --> H{命中缓存?}
    H -- 是 --> RET[直接返回]
    H -- 未命中 --> O[回源获取] --> C[缓存] --> RET

CDN 关键指标:

缓存命中率=缓存命中请求数总请求数×100%\text{缓存命中率} = \frac{\text{缓存命中请求数}}{\text{总请求数}} \times 100\% 目标缓存命中率>95%\text{目标缓存命中率} > 95\%

3.2 CloudFront 功能

功能描述
Lambda@Edge在边缘节点运行 Lambda 函数
CloudFront Functions轻量级 JS 函数(<1ms 启动)
Field Level Encryption敏感字段端到端加密
Origin Access Control限制 S3 仅允许 CDN 访问
Real-time Logs实时访问日志流
Signed URL/Cookie付费内容保护

3.3 边缘计算

边缘计算将计算推到离用户更近的位置:

flowchart LR
    IoT[IoT<br/>&lt;1ms] --> PoP[CDN PoP<br/>&lt;10ms] --> Reg[Regional<br/>&lt;50ms] --> Cen[Central<br/>&lt;100ms]

边缘计算应用场景:

  • IoT 网关:本地数据预处理与过滤
  • 实时视频分析:边缘推理,减少回传带宽
  • AR/VR 渲染:低延迟渲染
  • 游戏加速:就近匹配与计算

4. DNS 服务

4.1 Route 53

AWS Route 53 是高可用的 DNS 服务:

路由策略:

策略描述适用场景
Simple单一记录单服务器
Weighted按权重分配A/B 测试、灰度发布
Latency延迟最优路由多区域部署
Failover主备切换灾难恢复
Geolocation地理位置路由本地化内容
Multi-value返回多个值简单负载均衡

4.2 全局流量管理

多区域部署的 DNS 策略:

flowchart TD
    T0["用户请求 → Route 53"]
    T1["健康检查: 区域 A 健康? → 延迟路由"]
    T2["us-east-1: 20ms"]
    T3["eu-west-1: 80ms"]
    T4["选择最低延迟区域 → 返回 us-east-1 IP"]
    T0 --> T1
    T0 --> T2
    T0 --> T3
    T3 --> T4

4.3 DNS 安全

  • DNSSEC:DNS 响应签名验证,防止 DNS 欺骗
  • DNS over HTTPS (DoH):加密 DNS 查询
  • DNS over TLS (DoT):TLS 加密 DNS 查询
  • 域名锁定:防止未授权的域名转移

5. 专线与 VPN

5.1 VPN 连接

Site-to-Site VPN:IPsec 隧道连接本地网络与 VPC

flowchart LR
    DC[本地数据中心] <-->|IPsec 隧道| VPN[VPN Gateway VPC]
  • 两条隧道自动冗余
  • 带宽:1.25 Gbps/隧道
  • 加密:AES-256
  • 延迟:受公网影响,不稳定

Client VPN:OpenVPN 客户端连接 VPC

5.2 专线连接(Direct Connect)

专线提供专用物理连接:

flowchart LR
    DC[本地数据中心] <-->|专用光纤| DX[DX 位置 Colocation] <-->|专用连接| VPC[VPC]
带宽延迟稳定性成本
1/10/100 Gbps低且稳定高高

专线 + VPN 双路径架构:

flowchart TD
    DC[本地数据中心] -->|专线 主路径 低延迟| V1[VPC]
    DC -->|VPN 备份路径 高可用| V1

5.3 VPC 对等连接与中转网关

VPC Peering:点对点连接两个 VPC

flowchart LR
    A[VPC A] <-->|Peering| B[VPC B]
    B <-->|Peering| C[VPC C]
    A -.->|不支持传递路由| C

Transit Gateway:中心化网络枢纽

flowchart TD
    TG[Transit Gateway] --> A[VPC A 支持传递路由]
    TG --> B[VPC B]
    TG --> C[VPC C]

Transit Gateway 支持路由表、多区域对等、IPsec VPN 附件。

6. 网络架构设计

6.1 多账户网络架构

企业级多账户网络拓扑:

flowchart TD
    TG[Transit Gateway<br/>中心化网络枢纽] --> VPC_A[VPC A<br/>支持传递路由]
    TG --> VPC_B[VPC B]
    TG --> VPC_C[VPC C]

6.2 网络分段与零信任

零信任网络架构原则:

  • 永不信任,始终验证:每次访问都需认证授权
  • 最小权限:仅授予完成任务所需的最小权限
  • 微分段:细粒度网络隔离
  • 持续监控:实时检测异常行为

6.3 网络性能优化

TCP 优化:

BDP=带宽×RTT\text{BDP} = \text{带宽} \times \text{RTT} 最优窗口大小=BDPMSS\text{最优窗口大小} = \frac{\text{BDP}}{\text{MSS}}

例如:10 Gbps 链路,RTT = 10ms,MSS = 1460 字节:

BDP=10 Gbps×0.01 s=108 bit=12.5 MB\text{BDP} = 10 \text{ Gbps} \times 0.01 \text{ s} = 10^{8} \text{ bit} = 12.5 \text{ MB} 窗口大小=12.5×106 B1460 B≈8,562 个报文段\text{窗口大小} = \frac{12.5 \times 10^{6} \text{ B}}{1460 \text{ B}} \approx 8{,}562 \text{ 个报文段}

网络优化清单:

  • 启用 TCP 窗口缩放(Window Scaling)
  • 调整 TCP 缓冲区大小
  • 启用 ECN(Explicit Congestion Notification)
  • 使用 jumbo frame(MTU 9001)
  • 启用 TCP Fast Open
  • 选择合适的 TCP 拥塞控制算法(BBR / Cubic)

小结

  • 初学者要点:VPC 是逻辑隔离网络,公有/私有子网分离是安全设计的地基; 负载均衡 L4 管连接、L7 管内容;跨网络互通按「Peering(同云)→ VPN(便宜)→ 专线(生产)」三级演进。
  • 进阶注意:安全组有状态、NACL 无状态,排障时 NACL 的双向规则最容易漏; Route 53 的延迟路由与故障转移策略组合即可实现”穷人版全球负载均衡”; 长肥网络(高带宽 × 高 RTT)先算 BDP 再调窗口,盲目加带宽不解决吞吐问题。