IDC 拓扑
课程(6 节,按顺序学)
第 1 课 · 一个 region 里有哪几种数据中心
入门 · 约 10 分钟
本课目标:认清八种机房各在什么位置、各干什么——这是看懂后面所有关系的前提。
先分清三层:核心、汇聚、外围
一个 region 的流量是自下而上汇聚的:
· 核心机房(AWS 的可用区)——放算力和存储的地方,一个 region 通常 2~3 个,互为双活
· 汇聚机房(AWS 的 Transit Center)——核心、外围站点的流量都先汇到这里,再上骨干网或出互联网;里面是骨干路由器,几乎不放业务服务器
· 外围站点——业务机房、卫星机房、PoP、托管点,都靠一条或两条上联挂在汇聚层上
★ 记住这个结构:汇聚层是枢纽,它一挂,下面全断。
★ 对外的两种:互联点和高防
三方互联机房是 region 和外部世界握手的地方——运营商中立的第三方机房,里面有 IX、各家运营商、云厂商的专线接入点。它是 region 的互联网出口,AWS Direct Connect 的接入位置就在这类楼里。
高防机房专门吃 DDoS:平时几乎没流量,攻击来了把受攻击的地址段牵引过来清洗,干净流量再回注。它总是放在互联点旁边——那里带宽最充裕。
★★ 卫星、PoP、托管的区别
三个都在 region 外面、都靠上联回来,但不是一回事:
· 卫星机房 = 自建的分支(AWS Local Zone):有算力,但没有自己的控制面,全靠母 region
· PoP = 流量的出入口(CloudFront 边缘节点):几个机柜放缓存和接入路由器,没有算力腹地
· 托管点 = 租来的位置:在第三方机房租机柜,可以放真正的算力,供电制冷房东管
动手:把每个机房点一遍
去拓扑与故障演练页(已加载 us-east-1 解剖场景),点画布上每一个机房,右边会显示它的类型、职责、所在城市,以及它挂在谁下面。先把"谁在哪、干什么"看清楚,再做后面的故障演练。
实验重点
- 一个 region = 核心(算力)+ 汇聚(枢纽)+ 外围(业务/卫星/PoP/托管)+ 对外(互联点/高防)
- ★ 汇聚层是整个 region 的枢纽,最不能单点
- ★★ 卫星是自建分支,托管是租的位置,PoP 只是流量出入口
第 2 课 · 位置决定关系——距离、时延与同步复制
入门 · 约 8 分钟
本课目标:两个机房离多远,直接决定了它们之间能做什么关系。
光在光纤里只有 200 km/ms
光在光纤里的速度约 200,000 km/s,也就是 200 公里 1 毫秒——往返要走两趟,所以往返时延 ≈ 光缆长度(km) ÷ 100 ms。
光缆不走直线:沿公路、铁路、海底路由绕,比两点之间的大圆距离长 20%~50%。本模块统一按 × 1.3 估算光缆长度。
★★ 同步复制的边界:往返 ≤ 2ms
同步复制意味着每一次写入都要等对端确认才算完成。往返 1ms,每次写就多等 1ms;往返 50ms,数据库基本就没法用了。
业界的经验边界是往返 ≤ 2ms,对应 100~200 公里光缆——这就是"同城"的定义,也是为什么可用区之间相隔几十公里:够远,一场火灾/一次停电波及不到;够近,同步复制做得了。
看看北京解剖场景里的天津卫星机房:120 公里、往返约 1.5ms——已经在边缘上了。
跨 region 只能异步
弗吉尼亚到俄勒冈约 5,000 公里光缆、往返约 50ms;跨大西洋、跨太平洋更远。这种距离上只能异步复制:写入在本地完成就返回,数据稍后再到对端。
代价是 RPO(故障时可能丢失的那段数据)不再是 0——通常是秒到分钟级。
动手:看距离与时延表
去距离 · 时延 · 流量页,每条线都标着按经纬度算出来的光缆长度、往返时延,以及"能不能同步"。找一找哪几条线是能同步的、哪几条不能。
实验重点
- 往返时延 ≈ 光缆长度(km) ÷ 100 ms,光缆长度 ≈ 大圆距离 × 1.3
- ★★ 同步复制要求往返 ≤ 2ms,对应 100~200 公里——这就是"同城"
- 跨 region 只能异步复制,RPO 不再是 0
第 3 课 · ★★★ 双活与主备
进阶 · 约 12 分钟
本课目标:两个机房之间最重要的两种关系,以及故障时各自会发生什么。
双活:两边都在服务
双活(active-active)= 两个机房同时对外服务、互相复制。
· 同城双活:同步复制,RPO = 0,一侧故障另一侧秒级接管
· 跨 region 双活:只能异步,最终一致,接管时最近几秒的写入可能丢,业务层要能容忍
★ 代价:每一侧平时都不能跑超过 50% 的负载——否则接管时扛不住对方那一半。
主备:一边服务,一边等着
主备(active-standby)= 一侧对外服务,另一侧只接收复制、平时不接流量。跨 region 的容灾(DR)基本都是这个形态。
两个关键指标:RPO(切换时会丢多少数据,异步复制下通常分钟级)和 RTO(多久能切完,要切 DNS / 切流量、预热缓存,分钟到小时级)。
★★★ 动手:打掉一个核心
去拓扑与故障演练页(已加载 AWS 全球场景):
① 打掉 CORE-IAD(弗吉尼亚主用)——看俄勒冈的 CORE-PDX 从备用提升为主用,事件里写着 RPO / RTO 的量级
② 打掉 CORE-DUB(都柏林)——看法兰克福的 CORE-FRA 接管全部流量,注意事件里说的是"异步复制、最近几秒可能丢失"
③ 剪断 AGG-IAD – AGG-PDX 那段骨干——两个核心都没坏,但复制流量改绕地球另一边,看时延涨了多少
回切不是自动的
本模块里主用一恢复,备用就自动退回去——那是为了让你能反复实验。真实系统里跨 region 的回切是一次计划内操作:要确认数据已经同步回来、选一个低峰时段、逐步切流量。自动回切在网络抖动时会来回摆,比故障本身更危险。
实验重点
- ★★★ 双活 = 两边都服务,同城可同步、跨 region 只能异步;主备 = 一边服务一边等
- ★★ 双活每侧负载不能超过 50%,否则接管是假的
- RPO 是切换会丢的数据,RTO 是切换要花的时间;回切是计划内操作,不会自动发生
第 4 课 · 上联与单归属——外围站点怎么挂上去
进阶 · 约 8 分钟
本课目标:拓扑里最常见、也最容易被省掉的那份冗余。
一切外围都靠上联活着
业务机房、卫星机房、PoP、托管点——甚至核心机房——都靠上联接到汇聚层。上联通了它们才存在于网络里;上联全断,它们就成了孤岛,里面的算力再多也没人用得到。
★ 单归属 vs 双归属
只有一条上联叫单归属:省一条线、省一台设备,但上级机房或那条光缆一坏就孤立。
两条上联到不同的上级叫双归属:注意必须是不同的上级——两条线都接到同一个汇聚机房,那个机房挂了照样断,只是防住了单根光缆被挖断。
解剖场景里核心机房是双归属(到 AGG-A 和 AGG-B),业务机房和卫星机房是单归属(只到 AGG-A)。
★★ 动手:打掉汇聚 A
去拓扑与故障演练页(已加载 us-east-1 解剖场景),打掉 AGG-A:
· 两个核心机房没事——它们还有 AGG-B
· 业务机房 BIZ、卫星机房 SAT 孤立了——它们只上联到 AGG-A
· 高防 SCRUB 也孤立了——清洗后的流量回注不进来,region 失去高防保护
再打掉 AGG-B:现在连核心也孤立了,整个 region 与外界断开。
实验重点
- 外围站点靠上联活着,上联全断就是孤岛
- ★ 双归属必须是两条线到两个不同的上级,同一个上级的两条线只防光缆不防机房
- ★★ 汇聚层是 region 的枢纽:一个汇聚机房挂了单归属的站点全孤立,两个都挂了整个 region 断
第 5 课 · 出口与高防——互联点挂了怎么办
进阶 · 约 10 分钟
本课目标:region 的互联网出口和 DDoS 保护是怎么互相兜底的。
互联点是出口
每个 region 的汇聚机房都接到一个三方互联机房:运营商中立的楼,里面有 IX 和各家运营商。我们在这里和别人的网络对接(peering / 专线),这就是 region 的互联网出口。
出向(我们发给互联网的内容)通常远大于入向。
★ 出口能绕
互联点挂了,region 并不会立刻断网:汇聚机房还连着骨干环,可以经骨干绕到别的 region 的互联点出去。代价是时延——弗吉尼亚绕到都柏林出,多走 5,000 多公里、往返多 50ms 左右。
★ 所以真实 region 会有多个互联点(多个 Direct Connect 位置),本场景每个 region 只放了一个,就是为了让你看到"绕行"这件事。
高防:平时空着,攻击时牵引
高防机房平时几乎没流量;攻击来了,用 BGP 把受攻击的地址段牵引到高防清洗,干净流量再回注汇聚层。清洗能力按 Tbps 级设计,容量就是它的意义。
全球通常只建少数几个。本场景只有弗吉尼亚一个——欧洲、亚洲的 region 遭攻击时,流量要绕到弗吉尼亚清洗。
★★ 动手:打掉互联点和高防
去拓扑与故障演练页(已加载 AWS 全球场景):
① 打掉 IX-IAD——看弗吉尼亚的出口改走哪个 region、绕了多远
② 打掉 SCRUB-IAD——六个 region 同时失去高防保护
③ 点一下右边的 region 面板,每个 region 的出口和高防现在从哪走都列在那里
实验重点
- 互联点 = region 的互联网出口,运营商中立机房里的 peering / 专线
- ★ 互联点挂了出口能经骨干绕到别的 region,代价是时延
- 高防平时空闲、攻击时牵引清洗,全球只有少数几个,别的 region 要绕过来
第 6 课 · 流量的数量级——同城 Tbps,跨洲百 Gbps
入门 · 约 8 分钟
本课目标:两个机房之间大概有多少流量——不是精确数,是要能说出数量级。
这些数字从哪来
AWS 这类厂商不公开机房之间的真实流量。本模块的数字是按公开的架构资料(区域间带宽的量级、可用区之间东西向流量的量级、边缘节点回源的比例)给出的数量级估算,页面上永远带着"~"。
★ 目标不是背数字,是遇到一条线能说出它大概是 Tbps 级、百 Gbps 级还是十 Gbps 级。
★ 三个数量级
· 同城核心之间:Tbps 级——同步复制 + 大量东西向流量(服务之间互相调用)
· 核心到汇聚、汇聚到互联点:数百 Gbps 到 Tbps 级
· 跨 region 骨干:一两百到几百 Gbps——跨洋海缆的容量是租的,贵
· PoP、卫星、托管:几十到几百 Gbps,而且下行远大于上行(内容是往用户方向流的)
· 出口:出向远大于入向(我们发出去的内容多)
东西向 vs 南北向
东西向流量 = 机房内部、机房之间服务互相调用的流量;南北向流量 = 进出互联网的流量。
现代应用的东西向流量远大于南北向——用户一个请求,后端可能有几十次服务间调用。这就是为什么同城核心之间的线比出口还粗。
动手:看流量列
去距离 · 时延 · 流量页,按流量排序,看看最粗的几条线是哪几条、最细的是哪几条,对照上面的数量级。
实验重点
- 流量数字是数量级估算,不是官方数据
- ★ 同城核心之间 Tbps 级 > 核心到汇聚数百 Gbps > 跨 region 骨干一两百 Gbps > 边缘站点几十 Gbps
- 东西向远大于南北向,下行远大于上行,出向远大于入向