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 的分散式系统进行实作。
在开始讲 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 与 HTTPS 的 Load Balancing 属於全球性的 Load Balancing,HTTP 针对了 80 与 8080 Port,而 HTTPS 则针对 443 Port,同时支援 IPv4 与 IPv6。
使用者也可以藉由 URL map 来针对,将指定的 URL 资讯导到指定的服务器中,可以让服务器的工作更单一化,更方便进行管理与维护。例如 http://example.com/dog
与 http://example.com/cat
导到不同台的机器。
Load Balancing 背後的机器就是由 Instance Group 组成的 Backend Service,可以藉由 Health Cheak 的规则自动的对机器进行缩放。
SSL Proxy 透过加密的方式进行传输,主要针对各种非 HTTP 的加密封包,它可以自动化的管理凭证,也提供了安全性的更新,以及设定 SSL 的政策等功能。以凭证的角度来看,我们只需要将凭证放在一个地方,不需要重新的部属在多台机器上面。
TCP Proxy 则与 SSL Proxy 相似,一样是针对非 HTTP 的 TCP 封包进行 Load Balancing,而 Proxy 与 Backend 的连线可以选择使用 TCP 与 SSL,使用 SSL 会相对比较安全。
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 支援 TCP 以及 UDP 的流量,它透过 VPC 的 Private IP 进行流量的传递,这种形式的 Load Balancing 是完全提供给 Internal 使用的,因此也不需要有外网的 IP。透过这种方式设定 Internal 的 Load Balancing ,可以让所有的网路流量都在 Google 的网路内,降低延迟。
>>: Day_24: 让 Vite 来开启你的Vue 之 VueUse
最近这几年,电子书阅读器的技术愈来愈成熟。除了 Amazon Kindle 和 Kobo 这些老牌...
“从概念上讲,大多数人在日常生活中都采用了某种形式的威胁建模,甚至没有意识到这一点。” (维基百科)...
呼,想当初在铁人赛开赛前还在犹豫到底要不要开赛呢? 参赛後是要写什麽主题呢? 一探 React Na...
Given a language, the Interpreter design pattern d...
今日题目 题目连结:572. Subtree of Another Tree 题目主题:Tree, ...