扬州市网站建设_网站建设公司_改版升级_seo优化
2025/12/28 22:12:18 网站建设 项目流程

Internet▲ │ ┌───── IGW ─────┐ │ │ ┌───────┴───────┐ ┌───┴────────┐ │PublicSubnet│ │PublicSubnet│ │(ALB/NAT)│ │(ALB/NAT)│ │RouteTableA│ │RouteTableA│ │0.0.0.0/0→ IGW │ │0.0.0.0/0→ IGW │ └───────────────┘ └─────────────┘ ▲ │ ┌───────┴────────┐ │ NATGateway│ └───────▲────────┘ │ ┌──────────┴──────────┐ │PrivateSubnet│ │(EC2/ASG)│ │RouteTableB│ │10.0.0.0/16→ local│ │0.0.0.0/0→ NAT │ │ S3PrefixEndpoint│ └─────────────────────┘

一、Application Load Balancer(ALB)是什么?

一句话定义

ALB 是“对外接客、对内分流”的应用层入口。

ALB 解决什么问题?

没有 ALB 会怎样?

  • 用户直接访问 EC2

  • EC2 挂了 → 服务直接不可用

  • 扩容要改 DNS / IP

  • HTTPS 证书难管理

有了 ALB

用户 → ALB(一个固定公网入口) → 多台后端服务器(自动扩缩容)

ALB 的核心能力

能力说明
第 7 层HTTP / HTTPS
路径转发/api→ A 组,/img→ B 组
Host 转发a.com/b.com
健康检查自动摘掉坏机器
TLS 终结HTTPS 证书放在 ALB
跨 AZ天然高可用

ALB 在网络中的位置

  • 必须放在 Public Subnet

  • 有公网 IP(或公网访问能力)

  • 后端 通常在 Private Subnet

二、NAT Gateway 是什么?

一句话定义

NAT Gateway 是“私网服务器出门用的代理”。

它解决的是反方向问题

组件解决的问题
ALB外部 → 内部
NAT内部 → 外部

Private Subnet 的设计目标是:

❌ 不暴露公网

✅ 还能访问外部资源

例如:

  • yum update

  • 拉 Docker 镜像

  • 调用第三方 API

NAT Gateway 的位置(非常重要)

  • 部署在 Public Subnet

  • 有 EIP

  • 私网路由指向它

PrivateSubnet:0.0.0.0/0→ NATGatewayNATGateway:0.0.0.0/0→ IGW

三、ALB 和 NAT Gateway 之间的关系

先给结论

ALB 和 NAT Gateway 完全不通信、也不依赖彼此。
它们只是:

  • 都在 Public Subnet

  • 服务不同方向的流量

对比表(非常关键)

项目ALBNAT Gateway
流量方向外 → 内内 → 外
OSI 层L7L3 / L4
面向对象用户私有资源
是否接受公网请求
是否给私网用间接直接

正确理解方式

Internet[ALB]→ 私网服务(接客) 私网服务 →[NAT]Internet(出门)

一个负责“进”,一个负责“出”

四、什么叫「成本可控(私网 + Endpoint)」?

这句话是云架构设计的经验总结。

先看“贵”的方案(很多人一开始都会这样)

PrivateSubnet→ NATGatewayInternet→ S3/DynamoDB

问题:

NAT Gateway 按流量收费

  • 大量:

    • 日志

    • 文件

    • 备份

    • 成本非常容易失控

优化方案:私网 + Endpoint

PrivateSubnet→ VPCEndpoint→ AWS 服务(不出 VPC)

好处

❌ 不走 NAT

❌ 不走公网

❌ 不按 NAT 流量计费

✅ 更安全

✅ 延迟更低

👉 这就是“成本可控”

五、VPC Endpoint 是什么?

一句话定义

VPCEndpoint=VPC 内部直连 AWS 服务的“专用通道”。

为什么需要 Endpoint?

AWS 的很多服务(S3、DynamoDB):

  • 不在你的 VPC 里

  • 默认访问方式是:

VPC →Internet→ AWS 公共服务

Endpoint 的作用就是:

  • 让流量“别出 VPC”。

Endpoint 的两种类型(重点)

1️⃣ Gateway Endpoint(最常见)

用于:

  • S3

  • DynamoDB

工作方式:

  • 改路由表

  • 不收费(只有正常流量)

👉 你图里用的就是这个

2️⃣ Interface Endpoint

用于:

  • SSM

  • Secrets Manager

  • CloudWatch

本质:

  • ENI + Private IP

  • 有费用

六、S3 Gateway Endpoint 是什么?

一句话

Private Subnet 访问 S3 的“免 NAT、免公网、免暴露”通道。

有 vs 没有 Endpoint 的区别

❌ 没有

EC2 → NATGateway(收费) →Internet→ S3

✅ 有 S3 Gateway Endpoint

EC2 → S3Endpoint→ S3

它带来的三重好处

维度提升
成本不走 NAT
安全不出公网
架构更干净

七、把所有东西串成一张“逻辑脑图”

Internet[ALB]← 对外入口 ↓PrivateSubnet├─ EC2/ASG │ ├─ 出网 → NATGatewayInternet│ └─ 访问 S3 → S3 VPCEndpoint

八、一句话面试级总结

ALB 负责把公网请求安全地送进私网,
NAT Gateway 负责让私网安全地访问公网,
VPC Endpoint 则让私网访问 AWS 服务时既安全又省钱。

关于路由表

一、一句话先给结论(非常重要)

路由表决定:一台资源发出去的流量“下一跳去哪”。

不是“能不能访问”,而是 “往哪走”。

二、路由表到底在解决什么问题?

想象你在一个城市开车:

  • 你知道目的地(IP)

  • 但你不知道走哪条路

👉 路由表 = 地图 + 交通指示牌

三、路由表里面到底有什么?

每一条路由,本质都是这 3 个东西:

字段意义
Destination目标地址段
Target下一跳
Priority谁更具体谁先用

示例(AWS VPC)

DestinationTarget
10.0.0.0/16local
0.0.0.0/0igw-xxxx

四、在 AWS 里,路由表“绑在哪里”?

重点来了:

AWS 的路由表是绑定在 Subnet 上的

不是:

  • EC2

  • 不是 Security Group

而是:

  • Subnet → Route Table

👉 同一个 Subnet 里的所有资源,共用一套路由

五、路由表 vs Security Group(非常容易混)

路由表Security Group
决定往哪走让不让过
层级网络层防火墙
是否状态无状态有状态
控制对象Subnet资源

👉 路由表不管“允许不允许”,只管“往哪走”

六、Public Subnet 为什么叫 Public?

不是因为“放了公网 IP”,
而是因为 路由表:

0.0.0.0/0InternetGateway

意味着什么?

  • 任何“不知道去哪”的流量

  • 都可以出公网

👉 这才是 Public 的本质

七、Private Subnet 为什么叫 Private?

因为它的路由表里:

❌ 没有 IGW

❌ 没有直达公网

典型配置:

10.0.0.0/16→ local0.0.0.0/0→ NATGateway
  • 外部进不来

  • 但可以“借道” NAT 出去

八、路由表如何“串起”你之前问的所有组件?

我们用真实路径串一遍 👇

1️⃣ 用户访问网站(ALB)

用户 →Internet→ IGW → ALB(PublicSubnet

Public Subnet 路由表:

0.0.0.0/0→ IGW

2️⃣ ALB 转发到私有服务器

ALB → EC2(PrivateSubnet)

Private Subnet 路由表:

10.0.0.0/16→ local

3️⃣ 私有服务器访问互联网(NAT)

EC2 → NAT → IGW →Internet

Private Subnet 路由表:

0.0.0.0/0→ NATGateway

NAT 所在 Subnet 路由表:

0.0.0.0/0→ IGW

4️⃣ 私有服务器访问 S3(Endpoint)

EC2 → S3Endpoint→ S3

Private Subnet 路由表:

pl-xxxx(S3PrefixList)→ S3Endpoint

👉 完全绕过 NAT 和公网

九、为什么说“路由表是架构的灵魂”?

因为:

  • Subnet 是否公有 ❌

  • NAT 是否生效 ❌

  • Endpoint 是否省钱 ❌

  • 高可用是否成立 ❌

  • 全靠路由表

十、非常好用的“判断口诀”

看到 Subnet,先看路由表。
看到路由表,先看 0.0.0.0/0。

十一、一句话面试级总结(直接可用)

路由表定义了子网中资源的流量走向,是区分 Public 与 Private Subnet、连接 ALB、NAT 和 VPC Endpoint 的核心机制。

简单介绍0.0.0.0/0

0.0.0.0/0 = 默认路由(Default Route)
“如果不知道该往哪走,就走这条路。”

把它拆开看(非常关键)

1️⃣ 0.0.0.0 是什么?

  • 表示 “任意 IPv4 地址”

  • 本身不是一个具体主机

  • 是一个占位符

2️⃣ /0 是什么?

  • CIDR 掩码

  • /0 = 0 位匹配

意味着:
👉 不要求任何前缀匹配

合起来就是:

0.0.0.0/0=匹配所有IPv4地址
  • 路由表是“匹配规则”,不是“顺序执行”

  • 路由表的核心规则是:

  • 最长前缀匹配(Longest Prefix Match)

举个例子

目标地址匹配哪条路由
10.0.1.1510.0.0.0/16
52.95.x.x(S3)pl-xxxx
8.8.8.80.0.0.0/0

👉 0.0.0.0/0 永远是最后兜底

为什么说「看到路由表,先看 0.0.0.0/0」?

因为它直接决定这三个生死问题:

① 子网是不是 Public?

0.0.0.0/0InternetGateway

✅ Public Subnet

② Private Subnet 能不能出网?

0.0.0.0/0→ NATGateway

✅ 能出
❌ 但外部进不来

③ 真·私网(完全隔离)

❌ 没有0.0.0.0/0
  • 不能访问公网

  • 常用于数据库

用“人话”再解释一次

你可以把路由表理解成问路:

  • 问:“我要去这个 IP,怎么走?”

  • 路由表回答顺序是:

    • 有没有更具体的?

    • 没有?
      👉 那就走 0.0.0.0/0

在 AWS 中的三种经典写法(你一定会见到)

Public Subnet

0.0.0.0/0→ igw-xxxx

Private Subnet(可出网)

0.0.0.0/0→ nat-xxxx

完全内网

(没有0.0.0.0/0

一个特别重要的澄清(很多人会误会)

❌ 0.0.0.0/0 ≠ 允许所有流量

它只表示:

  • “怎么走”

至于:

  • 能不能过

  • 能不能访问

👉 那是 Security Group / NACL 的事

用一句话帮你彻底记牢

0.0.0.0/0 不是“所有人都能来”,
而是“所有不知道去哪的流量,都从这里走”。

判断子网属性,先看 0.0.0.0/0 指向谁。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询