[Day21] Load Balancer

Load Balancer (负载平衡器) 与 Auto Scaling 都算是云端设备中非常重要的一部分,负载平衡器可以将流量分散到多台不同的机器,而这些服务对外只需要一个 IP 即可。透过 Load Balancer , 我们可以增加资料的可用性与稳定性,并且可以透过 Auto Scaling 的方式自动增减在 Load Balancer 後的服务器数量。

在 GCP 中, Load Balancer 被分为两种,Global 与 Regional。Global 的 Load Balancer 有 HTTP(S)、SSL Proxy 与 TCP Proxy,在全球的使用者可以使用相同的 IP ,存取到就近国家的主机,减少传输的延迟;Regional 的 Load Balancer 则有 Internal 与 Network Load Balancer,Internal Load Balancer 基於 Google 开发的 SDN Andromeda进行实作,而 Network Load Balancer 则使用 Maglev 的分散式系统进行实作。

Instance Template / Group

在开始讲 Load Balancer 之前,我们需要先了解 Instances Group,在假设我们 Load Balancer 背後每一台机器都是一样的前提下,我们会需要建立很多台内容完全一样的 Compute Engine VM Instances,这种状况下,我们就可以使用 Compute Engine 中的 Instance Template,作为 Load Balancer 未来开启的模板。Instance Template 就像是一个 VM 的模板,他的建立方式与建立 Instances 将近完全一样,设定 VM 的 Image、Startup Script 等。

当我们建立好 Instance Template 後,接下来需要建立 Instance Group,在这个时候我们就可以开始设定机器的细节与 Auto scaling 的规则。例如假设这个 Instance 是 Web Server,则我们需要开启 Health Check 来对网页进行监控,我们也可以设定这个 Group 最多可以开多少台机器等资讯。

在这边,我们也可以对规则进行设定,例如针对 CPU 的使用率、 Load Balancing 的容量、各种监控的指标等。

HTTP(S) Load Balancing

HTTP 与 HTTPS 的 Load Balancing 属於全球性的 Load Balancing,HTTP 针对了 80 与 8080 Port,而 HTTPS 则针对 443 Port,同时支援 IPv4 与 IPv6。

使用者也可以藉由 URL map 来针对,将指定的 URL 资讯导到指定的服务器中,可以让服务器的工作更单一化,更方便进行管理与维护。例如 http://example.com/doghttp://example.com/cat 导到不同台的机器。

Load Balancing 背後的机器就是由 Instance Group 组成的 Backend Service,可以藉由 Health Cheak 的规则自动的对机器进行缩放。

SSL / TCP Proxy Load Balancing

SSL Proxy 透过加密的方式进行传输,主要针对各种非 HTTP 的加密封包,它可以自动化的管理凭证,也提供了安全性的更新,以及设定 SSL 的政策等功能。以凭证的角度来看,我们只需要将凭证放在一个地方,不需要重新的部属在多台机器上面。

TCP Proxy 则与 SSL Proxy 相似,一样是针对非 HTTP 的 TCP 封包进行 Load Balancing,而 Proxy 与 Backend 的连线可以选择使用 TCP 与 SSL,使用 SSL 会相对比较安全。

Network Load Balancing

Network Load Balancing 是 Regional 的服务,它属於非 Proxy 形式的 Load Balancing,支援 UDP 、TCP / SSL 的封包,而後端则支援 Instances Group 与 Target Pool。

Target Pool 定义了一群 Instances,负责针对 Forwarding rule 进行接收,而这些 Instances 必须在同一个 Region 中,每一个 Target Pool 只能有一个 Health Check。

Internal Load Balancing

Internal Load Balancing 支援 TCP 以及 UDP 的流量,它透过 VPC 的 Private IP 进行流量的传递,这种形式的 Load Balancing 是完全提供给 Internal 使用的,因此也不需要有外网的 IP。透过这种方式设定 Internal 的 Load Balancing ,可以让所有的网路流量都在 Google 的网路内,降低延迟。


<<:  [Day21] HTB Archetype

>>:  Day_24: 让 Vite 来开启你的Vue 之 VueUse

电子书阅读器上的浏览器 [Day01] 初衷与功能总览

最近这几年,电子书阅读器的技术愈来愈成熟。除了 Amazon Kindle 和 Kobo 这些老牌...

威胁建模(Threat modeling)

“从概念上讲,大多数人在日常生活中都采用了某种形式的威胁建模,甚至没有意识到这一点。” (维基百科)...

[Day 30] - 终成行男

呼,想当初在铁人赛开赛前还在犹豫到底要不要开赛呢? 参赛後是要写什麽主题呢? 一探 React Na...

【C#】Behavioral Patterns Interpreter Mode

Given a language, the Interpreter design pattern d...

Day 27:572. Subtree of Another Tree

今日题目 题目连结:572. Subtree of Another Tree 题目主题:Tree, ...