<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Load Balancer - 東東 GCP 教學 - GCP 實戰講師 - 雲上星辰有限公司</title>
	<atom:link href="https://dongdonggcp.com/tag/load-balancer/feed/" rel="self" type="application/rss+xml" />
	<link>https://dongdonggcp.com</link>
	<description>助你考取證照，轉職成功</description>
	<lastBuildDate>Tue, 28 Oct 2025 09:22:36 +0000</lastBuildDate>
	<language>zh-TW</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://dongdonggcp.com/wp-content/uploads/2025/04/cropped-340838097_121391010914395_5443948698124160121_n-32x32.jpg</url>
	<title>Load Balancer - 東東 GCP 教學 - GCP 實戰講師 - 雲上星辰有限公司</title>
	<link>https://dongdonggcp.com</link>
	<width>32</width>
	<height>32</height>
</image> 
<site xmlns="com-wordpress:feed-additions:1">243235092</site>	<item>
		<title>通訊協定轉送 (Protocol Forwarding) 是什麼？何時會用到？</title>
		<link>https://dongdonggcp.com/2025/10/28/what-is-protocol-forwarding-and-its-usage/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=what-is-protocol-forwarding-and-its-usage</link>
					<comments>https://dongdonggcp.com/2025/10/28/what-is-protocol-forwarding-and-its-usage/#respond</comments>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Tue, 28 Oct 2025 09:22:34 +0000</pubDate>
				<category><![CDATA[Load Balancer]]></category>
		<category><![CDATA[ALB]]></category>
		<category><![CDATA[Firewall Rules]]></category>
		<category><![CDATA[Protocol Forwarding]]></category>
		<category><![CDATA[TCP Proxy LB]]></category>
		<category><![CDATA[負載平衡]]></category>
		<category><![CDATA[通訊協定轉送]]></category>
		<category><![CDATA[防火牆規則]]></category>
		<guid isPermaLink="false">https://dongdonggcp.com/?p=11462</guid>

					<description><![CDATA[<p>通訊協定轉送 (Protocol For [&#8230;]</p>
<p>The post <a href="https://dongdonggcp.com/2025/10/28/what-is-protocol-forwarding-and-its-usage/">通訊協定轉送 (Protocol Forwarding) 是什麼？何時會用到？</a> first appeared on <a href="https://dongdonggcp.com">東東 GCP 教學 - GCP 實戰講師 - 雲上星辰有限公司</a>.</p>]]></description>
										<content:encoded><![CDATA[<h2 class="wp-block-heading">通訊協定轉送 (Protocol Forwarding) </h2>



<p>假設你有一個 VM,你想要讓外面的人可以直接連到這個 VM 的某個 port (通訊埠), 但你又希望有一些網路層的設定或保護。</p>



<p>這時候你就可以用「通訊協定轉送」這個功能。它的作用就是把外部進來的網路流量,按照你設定的規則,轉送到指定的 VM 上面。</p>



<h2 class="wp-block-heading">目標執行個體 (Target Instance)</h2>



<p>當你設定通訊協定轉送的時候, 你需要告訴 GCP「我要把流量轉送到哪裡去」。這個「哪裡」就是你指定的一個 VM 執行個體, 而這個被指定的 VM 在這個情境下就被稱為「目標執行個體」。簡單說, 目標執行個體就是「流量最終要送達的那台 VM」。</p>



<p>假設你有一台 VM 上面跑著一個遊戲伺服器, 這個遊戲使用特殊的網路協定, 不是常見的 HTTP 或 HTTPS。你想要讓玩家可以從網路上連進來,但又想要有一些流量控制。</p>



<p>這時候你就可以設定「通訊協定轉送」,把外部進來的遊戲協定流量轉送到你的 VM 上。在這個設定中,你的這台遊戲伺服器 VM 就是「目標執行個體」。</p>



<figure class="wp-block-image aligncenter size-large"><img fetchpriority="high" decoding="async" width="1024" height="433" src="https://dongdonggcp.com/wp-content/uploads/2025/10/GCP-Protocol-Forwarding-1024x433.png" alt="" class="wp-image-11463" srcset="https://dongdonggcp.com/wp-content/uploads/2025/10/GCP-Protocol-Forwarding-1024x433.png 1024w, https://dongdonggcp.com/wp-content/uploads/2025/10/GCP-Protocol-Forwarding-300x127.png 300w, https://dongdonggcp.com/wp-content/uploads/2025/10/GCP-Protocol-Forwarding-768x325.png 768w, https://dongdonggcp.com/wp-content/uploads/2025/10/GCP-Protocol-Forwarding-1536x649.png 1536w, https://dongdonggcp.com/wp-content/uploads/2025/10/GCP-Protocol-Forwarding-2048x865.png 2048w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">外部通訊協定轉送<br><a href="https://docs.cloud.google.com/load-balancing/docs/protocol-forwarding?hl=zh-tw" target="_blank" rel="noopener" title="">https://docs.cloud.google.com/load-balancing/docs/protocol-forwarding?hl=zh-tw</a></figcaption></figure>



<h3 class="wp-block-heading">到底通訊協定轉送長什麼樣子？</h3>



<p>「通訊協定轉送」不是一台 VM,它是一個「網路規則」或「轉送設定」。這個轉送設定會指向一台 VM (也就是目標執行個體), 流量是從外部先到這個轉送規則,然後再被轉送到你指定的 VM 上。</p>



<p>用更簡單的比喻:通訊協定轉送就像是一個「郵局轉信服務」。你告訴 GCP「寄到地址 A 的信,都轉寄到地址 B」,這裡地址 B 就是你的 VM(目標執行個體),而這個轉信規則本身就是「通訊協定轉送」。整個過程只有一台 VM,不是兩台。</p>



<p>另一個常見的情況是企業的 VPN 服務。</p>



<p>VPN 通常會用 ESP(一種加密協定)或特定的 TCP/UDP port,這些都不是標準的網頁流量。如果你想在 GCP 上建立 VPN Server,就必須透過 Protocol Forwarding 來接收這些特殊協定的連線。</p>



<p>此外,像是資料庫的直接連線、串流媒體伺服器、或者物聯網裝置的通訊,只要不是走 HTTP/HTTPS,基本上都可能需要用到這個功能。</p>



<h2 class="wp-block-heading"><strong>與其他方案的差異</strong></h2>



<h3 class="wp-block-heading">難道 TCP Proxy LB 或 Network LB 做不到嗎?它們不是針對 「不是 HTTP/HTTPS 的流量」嗎?</h3>



<h4 class="wp-block-heading"><strong>Load Balancer 的本質功能</strong></h4>



<p>首先要理解,TCP Proxy Load Balancer 和 Network Load Balancer 的核心目的是「負載平衡」。什麼意思呢?就是當你有多台伺服器在背後提供相同的服務時,Load Balancer 會把進來的流量「分散」到這些伺服器上,避免某台伺服器累死、其他伺服器卻閒著。這就像是一個餐廳有多個櫃台,門口的帶位人員會引導客人到比較空的櫃台去排隊。</p>



<p>這些 Load Balancer 雖然可以處理 TCP、UDP 等協定,但它們會「介入」流量的處理。TCP Proxy Load Balancer 會終止(terminate)連線,也就是說,客戶端先連到 Load Balancer,然後 Load Balancer 再重新建立一條新的連線到後端伺服器。Network Load Balancer 雖然是 passthrough 模式,但它仍然會進行流量的檢查和分配,並且需要配置 backend service 和 health check 等複雜的設定。</p>



<h4 class="wp-block-heading"><strong>Protocol Forwarding 的簡單直接</strong></h4>



<p>相比之下,Protocol Forwarding 就單純多了。它不做負載平衡,不需要 backend service,也不會終止或檢查你的連線內容。它就像是一個「純粹的轉接頭」,把特定 IP 和 port 收到的流量,直接原封不動地送到指定的目標。這個目標可以是單一台 VM instance,也可以是一組 target pool(但 target pool 的分配邏輯比 Load Balancer 簡單很多)。</p>



<p>這種設計在某些情況下反而是優勢。比如說,你只有一台伺服器,根本不需要負載平衡的功能,只是想要一個固定的外部 IP 位址來接收特定協定的流量。這時候用 Load Balancer 就太複雜了,還要設定一堆用不到的功能。或者,你的應用程式本身對連線非常敏感,不希望中間有任何「代理」介入,Protocol Forwarding 的直接轉送特性就很重要。</p>



<h4 class="wp-block-heading"><strong>實際場景的選擇</strong></h4>



<p>再舉個具體例子:假設你要架設一個 IPsec VPN Server。VPN 連線通常使用 ESP(IP Protocol 50)或特定的 UDP port,而且連線的狀態非常重要。如果用 TCP Proxy Load Balancer,它會終止連線並重建,這可能會破壞 VPN 協定的運作。如果用 Network Load Balancer,雖然可以運作,但你需要設定 health check、backend service 等,而且如果你只有一台 VPN Server,這些設定都是多餘的。</p>



<p>這時候 Protocol Forwarding 就很適合,你只需要建立一個 Forwarding Rule,指定「所有到這個 IP 的 ESP 協定流量都轉送到我的 VPN Server」,就完成了。設定簡單,流量處理也最直接。當然,如果你後來需要多台 VPN Server 並做負載平衡,那時候再改用 Network Load Balancer 也不遲。</p>



<h4 class="wp-block-heading"><strong>總結差異</strong></h4>



<p>所以簡單來說,TCP Proxy Load Balancer 和 Network Load Balancer 確實可以處理非 HTTP/HTTPS 流量,但它們是為了「多台伺服器的負載分配」而設計的,功能複雜、設定繁瑣。Protocol Forwarding 則是為了「單純的流量轉送」,當你不需要負載平衡,只想要一個乾淨、直接的流量入口時,它就是最佳選擇。這就是為什麼 GCP 會同時提供這些不同的方案,讓使用者根據實際需求來選擇最適合的工具。</p>



<p>你可能會想,為什麼不直接讓伺服器對外開放就好?</p>



<p>確實可以這樣做,但 Protocol Forwarding 提供了一層額外的管理和保護。</p>



<p>透過 Forwarding Rule(轉送規則),你可以統一管理哪些 IP 位址和 port 可以接收流量,而不需要在每台伺服器上個別設定防火牆規則。這樣的架構讓你的網路設計更有彈性,也更容易維護。</p>



<h3 class="wp-block-heading">為什麼保護 Protocol Forwarding 有保護的功能？</h3>



<p>Forwarding Rule 本身並不是用來「阻擋」流量的,它比較像是「開通一條路」。當你建立一個 Forwarding Rule,你是在說「我要讓這個 External IP 的這個 port(或協定)可以接收流量,並且把這些流量轉送到指定的目標」。但這不代表「沒有設定 Forwarding Rule 的 port 就會被擋下來」,因為 Forwarding Rule 根本不管其他 port 的事。</p>



<p>舉個例子來說明:假設你有一台 VM,它的內部 IP 是 10.0.0.5。你申請了一個 External IP 是 34.80.0.100,然後建立一個 Forwarding Rule,把 34.80.0.100:8080 的流量轉送到 10.0.0.5:8080。這時候,外面的人可以透過 34.80.0.100:8080 連到你的 VM。但如果有人試圖連 34.80.0.100:3306(假設你沒設定這個 port 的 Forwarding Rule),會發生什麼事呢?</p>



<h3 class="wp-block-heading"><strong>防火牆規則才是真正的守門員</strong></h3>



<p>答案是:這個連線會失敗,但不是因為 Forwarding Rule 擋住它,而是因為根本就「沒有路可以通」。</p>



<p>Forwarding Rule 只負責「有設定的 port」,沒設定的 port 就不會被轉送,流量會直接被丟棄或回應連線失敗。從這個角度來看,Forwarding Rule 確實有「只開放特定 port」的效果,但它的本質是「開通」而不是「防禦」。</p>



<p>真正的防火牆功能還是要靠 <a href="https://docs.cloud.google.com/firewall/docs/firewalls?hl=zh-tw" target="_blank" rel="noopener" title="">Firewall Rules</a> 來做。Firewall Rules 才是那個會主動「檢查」並「決定要不要放行」的機制。</p>



<p>即使你設定了 Forwarding Rule 把流量轉到 VM,如果 VM 的 Firewall Rules 沒有允許那個 port,流量還是會被擋下來。</p>



<p>所以完整的流程是:</p>



<p>External IP 的流量 → Forwarding Rule 決定要不要轉送 → Firewall Rules 決定要不要放行 → 最後才到達 VM。</p>



<h3 class="wp-block-heading"><strong>兩者的互補關係</strong></h3>



<p>所以正確的理解應該是:Forwarding Rule 是「入口管理」,它決定哪些流量可以進入你的 GCP 架構;Firewall Rules 是「存取控制」,它決定流量能不能到達特定的資源。</p>



<p>兩者是互補的,不是替代的關係。Forwarding Rule 確實讓你不用在每台伺服器上都開放對外 port,但你還是需要 Firewall Rules 來做更細緻的安全控制。這樣的設計讓你的網路架構既有彈性,又有足夠的安全保護。</p>



<p>以下整理一張完整的功能比較表,讓你能清楚看出這四種方案的差異。</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">GCP 流量轉送方案功能比較表</h2>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>功能項目</th><th>Application Load Balancer (ALB)</th><th>TCP Proxy Load Balancer</th><th>Network Load Balancer</th><th>Protocol Forwarding</th></tr></thead><tbody><tr><td><strong>支援協定</strong></td><td>HTTP、HTTPS、HTTP/2</td><td>TCP (任意 port)</td><td>TCP、UDP、ESP、ICMP、GRE 等所有 IP 協定</td><td>TCP、UDP、ESP、ICMP、GRE 等所有 IP 協定</td></tr><tr><td><strong>OSI 層級</strong></td><td>Layer 7 (應用層)</td><td>Layer 4 (傳輸層)</td><td>Layer 4 (傳輸層)</td><td>Layer 3/4 (網路/傳輸層)</td></tr><tr><td><strong>負載平衡功能</strong></td><td>有,可依據 URL、Header 等內容分配</td><td>有,依據連線分配</td><td>有,依據連線或封包分配</td><td>無(或僅有基本的 target pool 分配)</td></tr><tr><td><strong>連線處理方式</strong></td><td>Terminate(終止並重建連線)</td><td>Terminate(終止並重建連線)</td><td>Passthrough(直接轉送)</td><td>Passthrough(直接轉送)</td></tr><tr><td><strong>保留客戶端 IP</strong></td><td>否(需從 X-Forwarded-For Header 取得)</td><td>否(需從 PROXY Protocol 取得)</td><td>是(客戶端 IP 完整保留)</td><td>是(客戶端 IP 完整保留)</td></tr><tr><td><strong>跨區域負載平衡</strong></td><td>支援(Global Load Balancer)</td><td>支援(Global Load Balancer)</td><td>僅 Regional(區域內)</td><td>僅 Regional(區域內)</td></tr><tr><td><strong>SSL/TLS 終止</strong></td><td>支援</td><td>支援</td><td>不支援</td><td>不支援</td></tr><tr><td><strong>Health Check</strong></td><td>必須設定</td><td>必須設定</td><td>必須設定(使用 Load Balancer 時)</td><td>選擇性(使用 target pool 時)</td></tr><tr><td><strong>Backend Service</strong></td><td>需要</td><td>需要</td><td>需要</td><td>不需要</td></tr><tr><td><strong>主要使用場景</strong></td><td>網站、Web 應用程式、API 服務</td><td>需要全球分布的 TCP 服務(如遊戲、資料庫代理)</td><td>高效能、低延遲的區域性服務</td><td>單一伺服器、特殊協定、簡單轉送需求</td></tr><tr><td><strong>設定複雜度</strong></td><td>高</td><td>中高</td><td>中</td><td>低</td></tr><tr><td><strong>效能延遲</strong></td><td>較高(需解析內容)</td><td>中等(需終止連線)</td><td>低(直接轉送)</td><td>極低(最簡單的轉送)</td></tr><tr><td><strong>適合伺服器數量</strong></td><td>多台(需負載平衡)</td><td>多台(需負載平衡)</td><td>多台(需負載平衡)</td><td>單台或少數幾台</td></tr><tr><td><strong>IP 位址類型</strong></td><td>支援 External IP</td><td>支援 External IP</td><td>支援 External/Internal IP</td><td>支援 External/Internal IP</td></tr><tr><td><strong>Session Affinity</strong></td><td>支援(Cookie-based)</td><td>支援(Client IP-based)</td><td>支援(Client IP、5-tuple)</td><td>有限支援(僅 target pool)</td></tr></tbody></table></figure>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><strong>表格重點說明</strong></h3>



<p>這張表格從上到下,逐漸從「功能豐富但複雜」走向「功能簡單但直接」。<a href="https://www.dongdonggcp.com/2024/09/25/how-to-config-gcp-load-balancer/" target="_blank" rel="noopener" title="">Application Load Balancer </a>功能最完整,可以看懂 HTTP 內容並根據網址或 Header 來分配流量,但也最複雜。TCP Proxy Load Balancer 則退一步,不看內容,只處理 TCP 連線,但仍保有全球負載平衡的能力。</p>



<p>Network Load Balancer 更進一步簡化,它是 passthrough 模式,不會終止連線,所以效能最好,但只能在單一區域內運作。最後的 Protocol Forwarding 則是最純粹的,它幾乎不做任何處理,就是把流量轉過去而已,所以設定最簡單,適合那些「我只想要一個入口」的需求。</p>



<p>選擇哪一種方案,關鍵在於你的需求:如果需要根據內容智慧分配流量,選 ALB;如果需要全球分布的 TCP 服務,選 TCP Proxy LB;如果需要高效能且保留原始 IP,選 Network LB;如果只是簡單轉送不需要複雜功能,選 Protocol Forwarding。這樣的設計讓你可以根據實際情況,選擇最符合成本效益的方案。</p>



<p>詳細介紹可以參考<a href="https://docs.cloud.google.com/load-balancing/docs/protocol-forwarding?hl=zh-tw" target="_blank" rel="noopener" title="">通訊協定轉送總覽，</a>設定方法可以參考<a href="https://docs.cloud.google.com/load-balancing/docs/set-up-protocol-forwarding?hl=zh-tw" target="_blank" rel="noopener" title="">設定通訊協定轉送</a>。</p>



<p>關於更多 GCP 負載平衡的概念和實作教學，都在東東的 <a href="https://dongdonggcp.com/gcp-architect-class/" target="_blank" rel="noopener" title="">GCP 線上課程《雲端架構師養成班》</a>，有需要可以進來看喔！</p><p>The post <a href="https://dongdonggcp.com/2025/10/28/what-is-protocol-forwarding-and-its-usage/">通訊協定轉送 (Protocol Forwarding) 是什麼？何時會用到？</a> first appeared on <a href="https://dongdonggcp.com">東東 GCP 教學 - GCP 實戰講師 - 雲上星辰有限公司</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://dongdonggcp.com/2025/10/28/what-is-protocol-forwarding-and-its-usage/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">11462</post-id>	</item>
		<item>
		<title>[Cloud Run 教學] Cloud Run 如何使用自己的憑證？必須要接到 Load Balancer</title>
		<link>https://dongdonggcp.com/2024/06/26/cloud-run-self-managed-ssl-cert-with-load-balancer/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=cloud-run-self-managed-ssl-cert-with-load-balancer</link>
					<comments>https://dongdonggcp.com/2024/06/26/cloud-run-self-managed-ssl-cert-with-load-balancer/#respond</comments>
		
		<dc:creator><![CDATA[東東]]></dc:creator>
		<pubDate>Wed, 26 Jun 2024 07:50:03 +0000</pubDate>
				<category><![CDATA[Google Cloud Platform]]></category>
		<category><![CDATA[Load Balancer]]></category>
		<category><![CDATA[Cloud Run]]></category>
		<category><![CDATA[DNS]]></category>
		<category><![CDATA[SSL Cert]]></category>
		<category><![CDATA[SSL 憑證]]></category>
		<guid isPermaLink="false">https://dongdonggcp.com/?p=6693</guid>

					<description><![CDATA[<p>Cloud Run 根本能不用自己的憑證，<br />
必須要接到 Load Balancer，<br />
本文詳細介紹設定過程。</p>
<p>The post <a href="https://dongdonggcp.com/2024/06/26/cloud-run-self-managed-ssl-cert-with-load-balancer/">[Cloud Run 教學] Cloud Run 如何使用自己的憑證？必須要接到 Load Balancer</a> first appeared on <a href="https://dongdonggcp.com">東東 GCP 教學 - GCP 實戰講師 - 雲上星辰有限公司</a>.</p>]]></description>
										<content:encoded><![CDATA[<p>上次測式 Cloud Run 和 DNS 名稱解析還蠻順利的，</p>



<p>結果想要用自己的 SSL 憑證，一直測試失敗，</p>



<p>最後才赫然發現，Cloud Run 根本能不用自己的憑證啊啊！</p>



<p>說明文件在<a href="https://cloud.google.com/run/docs/mapping-custom-domains#limitations">這裡</a>：</p>



<figure class="wp-block-image size-large"><img decoding="async" width="895" height="513" src="https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-25-e4b88be58d8812.38.10.png?w=895" alt="" class="wp-image-6696" srcset="https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-25-e4b88be58d8812.38.10.png 895w, https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-25-e4b88be58d8812.38.10-300x172.png 300w, https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-25-e4b88be58d8812.38.10-768x440.png 768w" sizes="(max-width: 895px) 100vw, 895px" /></figure>



<p>看來必須使用 Load Balancer 了，</p>



<p>這裡做一個簡單的 Apache 和 PHP 網頁</p>



<p>vim index.php</p>



<pre class="wp-block-code"><code>&lt;?php
echo "Hello World from web1 Dongdong";
?&gt;
</code></pre>



<figure class="wp-block-image size-large"><img decoding="async" width="2432" height="444" src="https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-25-e4b88be58d884.45.17.png?w=1024" alt="" class="wp-image-6700" srcset="https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-25-e4b88be58d884.45.17.png 2432w, https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-25-e4b88be58d884.45.17-300x55.png 300w, https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-25-e4b88be58d884.45.17-1024x187.png 1024w, https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-25-e4b88be58d884.45.17-768x140.png 768w, https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-25-e4b88be58d884.45.17-1536x280.png 1536w, https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-25-e4b88be58d884.45.17-2048x374.png 2048w" sizes="(max-width: 2432px) 100vw, 2432px" /></figure>



<p>vim Dockerfile</p>



<pre class="wp-block-code"><code># Use the official PHP image
FROM php:7.4-apache

# Copy the PHP file to the Apache document root
COPY index.php /var/www/html/

# Change the default Apache port to 8080
RUN sed -i 's/80/8080/g' /etc/apache2/sites-available/000-default.conf /etc/apache2/ports.conf

# Expose port 8080
EXPOSE 8080

# Set the ServerName to suppress warnings
RUN echo "ServerName localhost" &gt;&gt; /etc/apache2/apache2.conf
</code></pre>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1528" height="442" src="https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-25-e4b88be58d884.44.04.png?w=1024" alt="" class="wp-image-6701" srcset="https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-25-e4b88be58d884.44.04.png 1528w, https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-25-e4b88be58d884.44.04-300x87.png 300w, https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-25-e4b88be58d884.44.04-1024x296.png 1024w, https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-25-e4b88be58d884.44.04-768x222.png 768w" sizes="(max-width: 1528px) 100vw, 1528px" /></figure>



<p></p>



<p>資料夾內只要這兩個檔案：</p>



<p>ls -l</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1082" height="168" src="https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-25-e4b88be58d884.45.35.png?w=1024" alt="" class="wp-image-6699" srcset="https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-25-e4b88be58d884.45.35.png 1082w, https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-25-e4b88be58d884.45.35-300x47.png 300w, https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-25-e4b88be58d884.45.35-1024x159.png 1024w, https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-25-e4b88be58d884.45.35-768x119.png 768w" sizes="(max-width: 1082px) 100vw, 1082px" /></figure>



<p></p>



<p>先在 Arfitact Registry 建立 php 這個 Repository</p>



<p></p>



<p>建立 Docker Image</p>



<p>docker build -t asia-east1-docker.pkg.dev/dong-dong-gcp-3/php/web001 .</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1950" height="516" src="https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-25-e4b88be58d884.49.17.png?w=1024" alt="" class="wp-image-6703" srcset="https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-25-e4b88be58d884.49.17.png 1950w, https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-25-e4b88be58d884.49.17-300x79.png 300w, https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-25-e4b88be58d884.49.17-1024x271.png 1024w, https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-25-e4b88be58d884.49.17-768x203.png 768w, https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-25-e4b88be58d884.49.17-1536x406.png 1536w" sizes="(max-width: 1950px) 100vw, 1950px" /></figure>



<p></p>



<p>測試一下，用 8080 Port 看一下：</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="694" height="400" src="https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-25-e4b88be58d884.49.41.png?w=694" alt="" class="wp-image-6706" srcset="https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-25-e4b88be58d884.49.41.png 694w, https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-25-e4b88be58d884.49.41-300x173.png 300w" sizes="(max-width: 694px) 100vw, 694px" /></figure>



<p>成功看到網頁了！</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1528" height="404" src="https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-25-e4b88be58d884.50.07.png?w=1024" alt="" class="wp-image-6707" srcset="https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-25-e4b88be58d884.50.07.png 1528w, https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-25-e4b88be58d884.50.07-300x79.png 300w, https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-25-e4b88be58d884.50.07-1024x271.png 1024w, https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-25-e4b88be58d884.50.07-768x203.png 768w" sizes="(max-width: 1528px) 100vw, 1528px" /></figure>



<p></p>



<p>快速用 gcloud 部署，指令如下：</p>



<pre class="wp-block-code"><code>gcloud run deploy web001 \
  --image asia-east1-docker.pkg.dev/dong-dong-gcp-3/php/web001 \
  --platform managed \
  --region asia-east1 \
  --port 8080 \
  --allow-unauthenticated \</code></pre>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1620" height="482" src="https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-25-e4b88be58d884.51.48.png?w=1024" alt="" class="wp-image-6710" srcset="https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-25-e4b88be58d884.51.48.png 1620w, https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-25-e4b88be58d884.51.48-300x89.png 300w, https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-25-e4b88be58d884.51.48-1024x305.png 1024w, https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-25-e4b88be58d884.51.48-768x229.png 768w, https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-25-e4b88be58d884.51.48-1536x457.png 1536w" sizes="(max-width: 1620px) 100vw, 1620px" /></figure>



<p>看一下 Cloud Run 主頁：</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1336" height="616" src="https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-25-e4b88be58d884.52.06.png?w=1024" alt="" class="wp-image-6711" srcset="https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-25-e4b88be58d884.52.06.png 1336w, https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-25-e4b88be58d884.52.06-300x138.png 300w, https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-25-e4b88be58d884.52.06-1024x472.png 1024w, https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-25-e4b88be58d884.52.06-768x354.png 768w" sizes="(max-width: 1336px) 100vw, 1336px" /></figure>



<p>點擊 web001</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1274" height="508" src="https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-25-e4b88be58d884.52.15.png?w=1024" alt="" class="wp-image-6712" srcset="https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-25-e4b88be58d884.52.15.png 1274w, https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-25-e4b88be58d884.52.15-300x120.png 300w, https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-25-e4b88be58d884.52.15-1024x408.png 1024w, https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-25-e4b88be58d884.52.15-768x306.png 768w" sizes="(max-width: 1274px) 100vw, 1274px" /></figure>



<p>再點 URL，看到網頁了。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="914" height="326" src="https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-25-e4b88be58d884.52.23.png?w=914" alt="" class="wp-image-6713" srcset="https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-25-e4b88be58d884.52.23.png 914w, https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-25-e4b88be58d884.52.23-300x107.png 300w, https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-25-e4b88be58d884.52.23-768x274.png 768w" sizes="(max-width: 914px) 100vw, 914px" /></figure>



<p>接下來去保留一個固定 IP，準備給 Load Balancer 用</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1476" height="662" src="https://dongdonggcp.com/wp-content/uploads/2024/06/reserver-ip.png?w=1024" alt="" class="wp-image-6715" srcset="https://dongdonggcp.com/wp-content/uploads/2024/06/reserver-ip.png 1476w, https://dongdonggcp.com/wp-content/uploads/2024/06/reserver-ip-300x135.png 300w, https://dongdonggcp.com/wp-content/uploads/2024/06/reserver-ip-1024x459.png 1024w, https://dongdonggcp.com/wp-content/uploads/2024/06/reserver-ip-768x344.png 768w" sizes="(max-width: 1476px) 100vw, 1476px" /></figure>



<p>取一下名字，我們用 Global IP</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1626" height="1380" src="https://dongdonggcp.com/wp-content/uploads/2024/06/global_ip.png?w=1024" alt="" class="wp-image-6716" srcset="https://dongdonggcp.com/wp-content/uploads/2024/06/global_ip.png 1626w, https://dongdonggcp.com/wp-content/uploads/2024/06/global_ip-300x255.png 300w, https://dongdonggcp.com/wp-content/uploads/2024/06/global_ip-1024x869.png 1024w, https://dongdonggcp.com/wp-content/uploads/2024/06/global_ip-768x652.png 768w, https://dongdonggcp.com/wp-content/uploads/2024/06/global_ip-1536x1304.png 1536w" sizes="(max-width: 1626px) 100vw, 1626px" /></figure>



<p>取得 IP 了。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="694" height="378" src="https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-25-e4b88be58d884.57.18.png?w=694" alt="" class="wp-image-6717" srcset="https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-25-e4b88be58d884.57.18.png 694w, https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-25-e4b88be58d884.57.18-300x163.png 300w" sizes="(max-width: 694px) 100vw, 694px" /></figure>



<p>去建立 Load Balancer</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1314" height="614" src="https://dongdonggcp.com/wp-content/uploads/2024/06/create_lb.png?w=1024" alt="" class="wp-image-6719" srcset="https://dongdonggcp.com/wp-content/uploads/2024/06/create_lb.png 1314w, https://dongdonggcp.com/wp-content/uploads/2024/06/create_lb-300x140.png 300w, https://dongdonggcp.com/wp-content/uploads/2024/06/create_lb-1024x478.png 1024w, https://dongdonggcp.com/wp-content/uploads/2024/06/create_lb-768x359.png 768w" sizes="(max-width: 1314px) 100vw, 1314px" /></figure>



<p>選擇 Application Load Balancer</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1972" height="1212" src="https://dongdonggcp.com/wp-content/uploads/2024/06/alb.png?w=1024" alt="" class="wp-image-6721" srcset="https://dongdonggcp.com/wp-content/uploads/2024/06/alb.png 1972w, https://dongdonggcp.com/wp-content/uploads/2024/06/alb-300x184.png 300w, https://dongdonggcp.com/wp-content/uploads/2024/06/alb-1024x629.png 1024w, https://dongdonggcp.com/wp-content/uploads/2024/06/alb-768x472.png 768w, https://dongdonggcp.com/wp-content/uploads/2024/06/alb-1536x944.png 1536w" sizes="(max-width: 1972px) 100vw, 1972px" /></figure>



<p>公開的 Load Balancer (Public Facing)</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1474" height="960" src="https://dongdonggcp.com/wp-content/uploads/2024/06/public-facing.png?w=1024" alt="" class="wp-image-6722" srcset="https://dongdonggcp.com/wp-content/uploads/2024/06/public-facing.png 1474w, https://dongdonggcp.com/wp-content/uploads/2024/06/public-facing-300x195.png 300w, https://dongdonggcp.com/wp-content/uploads/2024/06/public-facing-1024x667.png 1024w, https://dongdonggcp.com/wp-content/uploads/2024/06/public-facing-768x500.png 768w" sizes="(max-width: 1474px) 100vw, 1474px" /></figure>



<p>選 Best for global</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1466" height="1052" src="https://dongdonggcp.com/wp-content/uploads/2024/06/best-for-global.png?w=1024" alt="" class="wp-image-6724" srcset="https://dongdonggcp.com/wp-content/uploads/2024/06/best-for-global.png 1466w, https://dongdonggcp.com/wp-content/uploads/2024/06/best-for-global-300x215.png 300w, https://dongdonggcp.com/wp-content/uploads/2024/06/best-for-global-1024x735.png 1024w, https://dongdonggcp.com/wp-content/uploads/2024/06/best-for-global-768x551.png 768w" sizes="(max-width: 1466px) 100vw, 1466px" /></figure>



<p>選 Global External ALB</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1484" height="1098" src="https://dongdonggcp.com/wp-content/uploads/2024/06/global-external-alb.png?w=1024" alt="" class="wp-image-6726" srcset="https://dongdonggcp.com/wp-content/uploads/2024/06/global-external-alb.png 1484w, https://dongdonggcp.com/wp-content/uploads/2024/06/global-external-alb-300x222.png 300w, https://dongdonggcp.com/wp-content/uploads/2024/06/global-external-alb-1024x758.png 1024w, https://dongdonggcp.com/wp-content/uploads/2024/06/global-external-alb-768x568.png 768w" sizes="(max-width: 1484px) 100vw, 1484px" /></figure>



<p>再按 Create </p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1126" height="620" src="https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-25-e4b88be58d885.03.27.png?w=1024" alt="" class="wp-image-6727" srcset="https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-25-e4b88be58d885.03.27.png 1126w, https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-25-e4b88be58d885.03.27-300x165.png 300w, https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-25-e4b88be58d885.03.27-1024x564.png 1024w, https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-25-e4b88be58d885.03.27-768x423.png 768w" sizes="(max-width: 1126px) 100vw, 1126px" /></figure>



<p>先取個名字 lb-1, 也給 Frontend 取名字 fe-1, 然後 Protocol 選 HTTPS</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1860" height="1034" src="https://dongdonggcp.com/wp-content/uploads/2024/06/lb-name.png?w=1024" alt="" class="wp-image-6729" srcset="https://dongdonggcp.com/wp-content/uploads/2024/06/lb-name.png 1860w, https://dongdonggcp.com/wp-content/uploads/2024/06/lb-name-300x167.png 300w, https://dongdonggcp.com/wp-content/uploads/2024/06/lb-name-1024x569.png 1024w, https://dongdonggcp.com/wp-content/uploads/2024/06/lb-name-768x427.png 768w, https://dongdonggcp.com/wp-content/uploads/2024/06/lb-name-1536x854.png 1536w" sizes="(max-width: 1860px) 100vw, 1860px" /></figure>



<p>IP 可以選擇剛剛建立的 IP</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1094" height="562" src="https://dongdonggcp.com/wp-content/uploads/2024/06/select-ip.png?w=1024" alt="" class="wp-image-6731" srcset="https://dongdonggcp.com/wp-content/uploads/2024/06/select-ip.png 1094w, https://dongdonggcp.com/wp-content/uploads/2024/06/select-ip-300x154.png 300w, https://dongdonggcp.com/wp-content/uploads/2024/06/select-ip-1024x526.png 1024w, https://dongdonggcp.com/wp-content/uploads/2024/06/select-ip-768x395.png 768w" sizes="(max-width: 1094px) 100vw, 1094px" /></figure>



<p>然後在憑證的部份，選擇 Create a new Certificate</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1090" height="610" src="https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-25-e4b88be58d885.09.15.png?w=1024" alt="" class="wp-image-6733" srcset="https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-25-e4b88be58d885.09.15.png 1090w, https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-25-e4b88be58d885.09.15-300x168.png 300w, https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-25-e4b88be58d885.09.15-1024x573.png 1024w, https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-25-e4b88be58d885.09.15-768x430.png 768w" sizes="(max-width: 1090px) 100vw, 1090px" /></figure>



<p>取個名字 cert-web001，然後上傳自己做好的憑證檔案。</p>



<p>這兩個憑證檔案是使用 Letsencrypt 去申請的：</p>



<p>Certificate 使用 ssl_fullchain001.pem 這個檔案</p>



<p>Private Key 使用 ssl_privkey001.pem 這個檔案。</p>



<p>上傳格式如果正確，會看到 GCP 有針對到憑證的資訊，</p>



<p>沒問題就可以按 Create</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1606" height="1474" src="https://dongdonggcp.com/wp-content/uploads/2024/06/upload-a-cert.png?w=1024" alt="" class="wp-image-6735" srcset="https://dongdonggcp.com/wp-content/uploads/2024/06/upload-a-cert.png 1606w, https://dongdonggcp.com/wp-content/uploads/2024/06/upload-a-cert-300x275.png 300w, https://dongdonggcp.com/wp-content/uploads/2024/06/upload-a-cert-1024x940.png 1024w, https://dongdonggcp.com/wp-content/uploads/2024/06/upload-a-cert-768x705.png 768w, https://dongdonggcp.com/wp-content/uploads/2024/06/upload-a-cert-1536x1410.png 1536w" sizes="(max-width: 1606px) 100vw, 1606px" /></figure>



<p>你會看到憑證建立成功</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="790" height="130" src="https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-25-e4b88be58d885.14.29.png?w=790" alt="" class="wp-image-6737" srcset="https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-25-e4b88be58d885.14.29.png 790w, https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-25-e4b88be58d885.14.29-300x49.png 300w, https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-25-e4b88be58d885.14.29-768x126.png 768w" sizes="(max-width: 790px) 100vw, 790px" /></figure>



<p>它還可以讓你把 HTTP 轉到 HTTPS，勾選後按下 Done</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1060" height="730" src="https://dongdonggcp.com/wp-content/uploads/2024/07/e688aae59c96-2024-06-25-e4b88be58d885.15.10.png?w=1024" alt="" class="wp-image-6840" srcset="https://dongdonggcp.com/wp-content/uploads/2024/07/e688aae59c96-2024-06-25-e4b88be58d885.15.10.png 1060w, https://dongdonggcp.com/wp-content/uploads/2024/07/e688aae59c96-2024-06-25-e4b88be58d885.15.10-300x207.png 300w, https://dongdonggcp.com/wp-content/uploads/2024/07/e688aae59c96-2024-06-25-e4b88be58d885.15.10-1024x705.png 1024w, https://dongdonggcp.com/wp-content/uploads/2024/07/e688aae59c96-2024-06-25-e4b88be58d885.15.10-768x529.png 768w" sizes="(max-width: 1060px) 100vw, 1060px" /></figure>



<p>接下來點擊後端，建立一個 Backend Service</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1974" height="1074" src="https://dongdonggcp.com/wp-content/uploads/2024/06/backend-create.png?w=1024" alt="" class="wp-image-6739" srcset="https://dongdonggcp.com/wp-content/uploads/2024/06/backend-create.png 1974w, https://dongdonggcp.com/wp-content/uploads/2024/06/backend-create-300x163.png 300w, https://dongdonggcp.com/wp-content/uploads/2024/06/backend-create-1024x557.png 1024w, https://dongdonggcp.com/wp-content/uploads/2024/06/backend-create-768x418.png 768w, https://dongdonggcp.com/wp-content/uploads/2024/06/backend-create-1536x836.png 1536w" sizes="(max-width: 1974px) 100vw, 1974px" /></figure>



<p>取名字 bk-1， 重要的是 Backend type 要選 Serverless Network Endpoint Group：</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1116" height="1008" src="https://dongdonggcp.com/wp-content/uploads/2024/06/serverless-neg.png?w=1024" alt="" class="wp-image-6741" srcset="https://dongdonggcp.com/wp-content/uploads/2024/06/serverless-neg.png 1116w, https://dongdonggcp.com/wp-content/uploads/2024/06/serverless-neg-300x271.png 300w, https://dongdonggcp.com/wp-content/uploads/2024/06/serverless-neg-1024x925.png 1024w, https://dongdonggcp.com/wp-content/uploads/2024/06/serverless-neg-768x694.png 768w" sizes="(max-width: 1116px) 100vw, 1116px" /></figure>



<p>然後在 New backend 選擇那個 Cloud Run</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1132" height="662" src="https://dongdonggcp.com/wp-content/uploads/2024/06/create-serverless-neg.png?w=1024" alt="" class="wp-image-6770" srcset="https://dongdonggcp.com/wp-content/uploads/2024/06/create-serverless-neg.png 1132w, https://dongdonggcp.com/wp-content/uploads/2024/06/create-serverless-neg-300x175.png 300w, https://dongdonggcp.com/wp-content/uploads/2024/06/create-serverless-neg-1024x599.png 1024w, https://dongdonggcp.com/wp-content/uploads/2024/06/create-serverless-neg-768x449.png 768w" sizes="(max-width: 1132px) 100vw, 1132px" /></figure>



<p>為 Serverless NEG 取名字</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1132" height="1390" src="https://dongdonggcp.com/wp-content/uploads/2024/06/select-cloud-run-service.png?w=834" alt="" class="wp-image-6771" srcset="https://dongdonggcp.com/wp-content/uploads/2024/06/select-cloud-run-service.png 1132w, https://dongdonggcp.com/wp-content/uploads/2024/06/select-cloud-run-service-244x300.png 244w, https://dongdonggcp.com/wp-content/uploads/2024/06/select-cloud-run-service-834x1024.png 834w, https://dongdonggcp.com/wp-content/uploads/2024/06/select-cloud-run-service-768x943.png 768w" sizes="(max-width: 1132px) 100vw, 1132px" /></figure>



<p></p>



<p>其他地方就保持預設，按下 Create</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1118" height="938" src="https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-25-e4b88be58d885.57.15.png?w=1024" alt="" class="wp-image-6772" srcset="https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-25-e4b88be58d885.57.15.png 1118w, https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-25-e4b88be58d885.57.15-300x252.png 300w, https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-25-e4b88be58d885.57.15-1024x859.png 1024w, https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-25-e4b88be58d885.57.15-768x644.png 768w" sizes="(max-width: 1118px) 100vw, 1118px" /></figure>



<p>再按下 ok</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1148" height="556" src="https://dongdonggcp.com/wp-content/uploads/2024/06/bk-ok.png?w=1024" alt="" class="wp-image-6746" srcset="https://dongdonggcp.com/wp-content/uploads/2024/06/bk-ok.png 1148w, https://dongdonggcp.com/wp-content/uploads/2024/06/bk-ok-300x145.png 300w, https://dongdonggcp.com/wp-content/uploads/2024/06/bk-ok-1024x496.png 1024w, https://dongdonggcp.com/wp-content/uploads/2024/06/bk-ok-768x372.png 768w" sizes="(max-width: 1148px) 100vw, 1148px" /></figure>



<p>Routing Rules 看一下，因為前端進來只到一個後端，</p>



<p>所以不用再設定。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1922" height="974" src="https://dongdonggcp.com/wp-content/uploads/2024/06/routing-rules.png?w=1024" alt="" class="wp-image-6748" srcset="https://dongdonggcp.com/wp-content/uploads/2024/06/routing-rules.png 1922w, https://dongdonggcp.com/wp-content/uploads/2024/06/routing-rules-300x152.png 300w, https://dongdonggcp.com/wp-content/uploads/2024/06/routing-rules-1024x519.png 1024w, https://dongdonggcp.com/wp-content/uploads/2024/06/routing-rules-768x389.png 768w, https://dongdonggcp.com/wp-content/uploads/2024/06/routing-rules-1536x778.png 1536w" sizes="(max-width: 1922px) 100vw, 1922px" /></figure>



<p>再看一下 Review and finalize 檢查設定</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1952" height="1464" src="https://dongdonggcp.com/wp-content/uploads/2024/06/review-create.png?w=1024" alt="" class="wp-image-6750" srcset="https://dongdonggcp.com/wp-content/uploads/2024/06/review-create.png 1952w, https://dongdonggcp.com/wp-content/uploads/2024/06/review-create-300x225.png 300w, https://dongdonggcp.com/wp-content/uploads/2024/06/review-create-1024x768.png 1024w, https://dongdonggcp.com/wp-content/uploads/2024/06/review-create-768x576.png 768w, https://dongdonggcp.com/wp-content/uploads/2024/06/review-create-1536x1152.png 1536w" sizes="(max-width: 1952px) 100vw, 1952px" /></figure>



<p>如果都沒問題就按下 Create。</p>



<p>但是還沒完喔，我們要去設定 DNS</p>



<p>DNS 不一定在 GCP 上喔，這裡指的是你註冊 DNS (購買網域) 的地方，</p>



<p>你可能用的是&nbsp;<a href="https://domain.hinet.net/#/">Hinet 的 DNS</a>，或是國外的&nbsp;<a href="https://tw.godaddy.com/">GoDaddy</a>&nbsp;或&nbsp;<a href="https://www.namecheap.com/">Namecheap</a>&nbsp;等等。</p>



<p>像我是在 GoDaddy 註冊 DNS 的，但是我已經<a href="https://cloud.google.com/dns/docs/migrating">轉移管理權限到 Cloud DNS</a>&nbsp;了。</p>



<p>我就點進我的網域：</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1416" height="692" src="https://dongdonggcp.com/wp-content/uploads/2024/06/cloud-dns.png?w=1024" alt="" class="wp-image-6753" srcset="https://dongdonggcp.com/wp-content/uploads/2024/06/cloud-dns.png 1416w, https://dongdonggcp.com/wp-content/uploads/2024/06/cloud-dns-300x147.png 300w, https://dongdonggcp.com/wp-content/uploads/2024/06/cloud-dns-1024x500.png 1024w, https://dongdonggcp.com/wp-content/uploads/2024/06/cloud-dns-768x375.png 768w" sizes="(max-width: 1416px) 100vw, 1416px" /></figure>



<p>然後再點 Add Standard</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1120" height="592" src="https://dongdonggcp.com/wp-content/uploads/2024/06/add-standard-1.png?w=1024" alt="" class="wp-image-6755" srcset="https://dongdonggcp.com/wp-content/uploads/2024/06/add-standard-1.png 1120w, https://dongdonggcp.com/wp-content/uploads/2024/06/add-standard-1-300x159.png 300w, https://dongdonggcp.com/wp-content/uploads/2024/06/add-standard-1-1024x541.png 1024w, https://dongdonggcp.com/wp-content/uploads/2024/06/add-standard-1-768x406.png 768w" sizes="(max-width: 1120px) 100vw, 1120px" /></figure>



<p>然後輸入要解析的子網域 web001，</p>



<p>使用 A Record，然後輸入 Load Balancer 使用的 IP，</p>



<p>再按下 Create。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1102" height="1060" src="https://dongdonggcp.com/wp-content/uploads/2024/06/add-a-record.png?w=1024" alt="" class="wp-image-6757" srcset="https://dongdonggcp.com/wp-content/uploads/2024/06/add-a-record.png 1102w, https://dongdonggcp.com/wp-content/uploads/2024/06/add-a-record-300x289.png 300w, https://dongdonggcp.com/wp-content/uploads/2024/06/add-a-record-1024x985.png 1024w, https://dongdonggcp.com/wp-content/uploads/2024/06/add-a-record-768x739.png 768w" sizes="(max-width: 1102px) 100vw, 1102px" /></figure>



<p>完成後去&nbsp;<a href="https://toolbox.googleapps.com/apps/dig/#CNAME/">Google Admin Toolbox</a>，</p>



<p>確認 Google 的解析結果有沒有設定正確，</p>



<p>看起來會像這樣：</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="630" height="635" src="https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-25-e4b88be58d885.31.30.png?w=630" alt="" class="wp-image-6761" srcset="https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-25-e4b88be58d885.31.30.png 630w, https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-25-e4b88be58d885.31.30-298x300.png 298w, https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-25-e4b88be58d885.31.30-150x150.png 150w" sizes="(max-width: 630px) 100vw, 630px" /></figure>



<p>那接下來就等待 Load Balancer 生效並且解析成功。</p>



<p>同時我們也看一下 Load balancer 頁面有兩個</p>



<p>上面那個是幫你把 HTTP 轉到 HTTPS 的</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1758" height="530" src="https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-25-e4b88be58d885.32.47.png?w=1024" alt="" class="wp-image-6763" srcset="https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-25-e4b88be58d885.32.47.png 1758w, https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-25-e4b88be58d885.32.47-300x90.png 300w, https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-25-e4b88be58d885.32.47-1024x309.png 1024w, https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-25-e4b88be58d885.32.47-768x232.png 768w, https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-25-e4b88be58d885.32.47-1536x463.png 1536w" sizes="(max-width: 1758px) 100vw, 1758px" /></figure>



<p>我們點下面 lb-1 進去看，</p>



<p>看到有 SSL 憑證，再點進去</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1282" height="540" src="https://dongdonggcp.com/wp-content/uploads/2024/06/cert-web001.png?w=1024" alt="" class="wp-image-6765" srcset="https://dongdonggcp.com/wp-content/uploads/2024/06/cert-web001.png 1282w, https://dongdonggcp.com/wp-content/uploads/2024/06/cert-web001-300x126.png 300w, https://dongdonggcp.com/wp-content/uploads/2024/06/cert-web001-1024x431.png 1024w, https://dongdonggcp.com/wp-content/uploads/2024/06/cert-web001-768x323.png 768w" sizes="(max-width: 1282px) 100vw, 1282px" /></figure>



<p>會看到憑證是有效的，還有它的到期日。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1076" height="754" src="https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-25-e4b88be58d885.36.16.png?w=1024" alt="" class="wp-image-6766" srcset="https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-25-e4b88be58d885.36.16.png 1076w, https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-25-e4b88be58d885.36.16-300x210.png 300w, https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-25-e4b88be58d885.36.16-1024x718.png 1024w, https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-25-e4b88be58d885.36.16-768x538.png 768w" sizes="(max-width: 1076px) 100vw, 1076px" /></figure>



<p></p>



<p>最後我們在瀏覽器輸入網址 <a href="https://web001.dongdonggcp.com/">https://web001.dongdonggcp.com/</a></p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="896" height="276" src="https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-25-e4b88be58d886.02.41.png?w=896" alt="" class="wp-image-6774" srcset="https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-25-e4b88be58d886.02.41.png 896w, https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-25-e4b88be58d886.02.41-300x92.png 300w, https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-25-e4b88be58d886.02.41-768x237.png 768w" sizes="(max-width: 896px) 100vw, 896px" /></figure>



<p>我們也開無痕模式，輸入 http://web001.dongdonggcp.com</p>



<p>也看到 http 成功轉 https 了</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="806" height="276" src="https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-25-e4b88be58d886.03.48.png?w=806" alt="" class="wp-image-6775" srcset="https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-25-e4b88be58d886.03.48.png 806w, https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-25-e4b88be58d886.03.48-300x103.png 300w, https://dongdonggcp.com/wp-content/uploads/2024/06/e688aae59c96-2024-06-25-e4b88be58d886.03.48-768x263.png 768w" sizes="(max-width: 806px) 100vw, 806px" /></figure>



<p>整個步驟機關很多，如果你做完發現一直都看不到網頁，</p>



<p>你可以從 Load Balancer 一層一層點擊到 Cloud Run，</p>



<p>如果秀不出 Cloud Run 的頁面，表示你可能有接錯服務。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1560" height="840" src="https://dongdonggcp.com/wp-content/uploads/2024/06/check.png?w=1024" alt="" class="wp-image-6778" srcset="https://dongdonggcp.com/wp-content/uploads/2024/06/check.png 1560w, https://dongdonggcp.com/wp-content/uploads/2024/06/check-300x162.png 300w, https://dongdonggcp.com/wp-content/uploads/2024/06/check-1024x551.png 1024w, https://dongdonggcp.com/wp-content/uploads/2024/06/check-768x414.png 768w, https://dongdonggcp.com/wp-content/uploads/2024/06/check-1536x827.png 1536w" sizes="(max-width: 1560px) 100vw, 1560px" /></figure>



<p>在各個環境多檢查一下，</p>



<p>多點耐心就能設定成功喔！</p>



<p>官方文件可參考<a href="https://cloud.google.com/load-balancing/docs/https/setup-global-ext-https-serverless">這裡</a>。</p><p>The post <a href="https://dongdonggcp.com/2024/06/26/cloud-run-self-managed-ssl-cert-with-load-balancer/">[Cloud Run 教學] Cloud Run 如何使用自己的憑證？必須要接到 Load Balancer</a> first appeared on <a href="https://dongdonggcp.com">東東 GCP 教學 - GCP 實戰講師 - 雲上星辰有限公司</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://dongdonggcp.com/2024/06/26/cloud-run-self-managed-ssl-cert-with-load-balancer/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">6693</post-id>	</item>
		<item>
		<title>[GCP 線上課程] GCP 負載平衡依照權重分流 Load Balancer weight-based traffic splitting</title>
		<link>https://dongdonggcp.com/2024/03/30/gcp-load-balancer-weight-based-traffic-splitting/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=gcp-load-balancer-weight-based-traffic-splitting</link>
					<comments>https://dongdonggcp.com/2024/03/30/gcp-load-balancer-weight-based-traffic-splitting/#respond</comments>
		
		<dc:creator><![CDATA[東東]]></dc:creator>
		<pubDate>Sat, 30 Mar 2024 05:20:22 +0000</pubDate>
				<category><![CDATA[Google Cloud Platform]]></category>
		<category><![CDATA[Load Balancer]]></category>
		<category><![CDATA[GCP]]></category>
		<category><![CDATA[分流]]></category>
		<category><![CDATA[負載平衡]]></category>
		<guid isPermaLink="false">https://dongdonggcp.wordpress.com/?p=6019</guid>

					<description><![CDATA[<p>在 GCP 上要做到依權重分流的方法很多 [&#8230;]</p>
<p>The post <a href="https://dongdonggcp.com/2024/03/30/gcp-load-balancer-weight-based-traffic-splitting/">[GCP 線上課程] GCP 負載平衡依照權重分流 Load Balancer weight-based traffic splitting</a> first appeared on <a href="https://dongdonggcp.com">東東 GCP 教學 - GCP 實戰講師 - 雲上星辰有限公司</a>.</p>]]></description>
										<content:encoded><![CDATA[<p>在 GCP 上要做到依權重分流的方法很多，</p>



<p>如下：</p>



<p>1.Cloud DNS 依權重解析到不同 IP (超簡單)</p>



<p>2.Google App Engine 不同版本分流 (超簡單)</p>



<p>3.Cloud Function 不同版本分流 (超簡單)</p>



<p>4.Cloud Run 不同版本分流 (超簡單)</p>



<p>5.Nginx 設定檔 (非GCP但也很簡單)</p>



<p>6.HTTP(S) Load Balancer 依權重分流 </p>



<p>偏偏 Load Balancer 是最複雜的，</p>



<p>明明就很單純的功能，</p>



<p>不知道 GCP 為什麼要搞得這麼複雜？</p>



<p>這裡快速分享一下步驟。</p>



<p>目標：依照 70%，30%的權重，分配流量到2個後端。</p>



<p>為了簡化，我在後端都用非代管執行個體群組，</p>



<p>各自接到一台 VM，hello-world-a 和 hello-world-b</p>



<p>Load Balancer 部分，</p>



<p>前端通訊協定就用 HTTP，</p>



<p>接2個後端，分別接到2個非代管執行個體群組。</p>



<p>架構圖如下：</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="2082" height="940" src="https://dongdonggcp.com/wp-content/uploads/2024/03/e688aae59c96-2024-03-30-e4b88be58d8812.42.42.png?w=1024" alt="" class="wp-image-6023" srcset="https://dongdonggcp.com/wp-content/uploads/2024/03/e688aae59c96-2024-03-30-e4b88be58d8812.42.42.png 2082w, https://dongdonggcp.com/wp-content/uploads/2024/03/e688aae59c96-2024-03-30-e4b88be58d8812.42.42-300x135.png 300w, https://dongdonggcp.com/wp-content/uploads/2024/03/e688aae59c96-2024-03-30-e4b88be58d8812.42.42-1024x462.png 1024w, https://dongdonggcp.com/wp-content/uploads/2024/03/e688aae59c96-2024-03-30-e4b88be58d8812.42.42-768x347.png 768w, https://dongdonggcp.com/wp-content/uploads/2024/03/e688aae59c96-2024-03-30-e4b88be58d8812.42.42-1536x693.png 1536w, https://dongdonggcp.com/wp-content/uploads/2024/03/e688aae59c96-2024-03-30-e4b88be58d8812.42.42-2048x925.png 2048w" sizes="(max-width: 2082px) 100vw, 2082px" /></figure>



<p>一、上述建立主機、執行個體群組的部分省略，兩張網頁呈現如下：</p>



<p>vm: hello-world-a</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="480" height="192" src="https://dongdonggcp.com/wp-content/uploads/2024/03/e688aae59c96-2024-03-30-e4b88be58d8812.45.13.png?w=480" alt="" class="wp-image-6025" srcset="https://dongdonggcp.com/wp-content/uploads/2024/03/e688aae59c96-2024-03-30-e4b88be58d8812.45.13.png 480w, https://dongdonggcp.com/wp-content/uploads/2024/03/e688aae59c96-2024-03-30-e4b88be58d8812.45.13-300x120.png 300w" sizes="(max-width: 480px) 100vw, 480px" /></figure>



<p>vm: hello-world-b</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="518" height="178" src="https://dongdonggcp.com/wp-content/uploads/2024/03/e688aae59c96-2024-03-30-e4b88be58d8812.45.17.png?w=518" alt="" class="wp-image-6026" srcset="https://dongdonggcp.com/wp-content/uploads/2024/03/e688aae59c96-2024-03-30-e4b88be58d8812.45.17.png 518w, https://dongdonggcp.com/wp-content/uploads/2024/03/e688aae59c96-2024-03-30-e4b88be58d8812.45.17-300x103.png 300w" sizes="(max-width: 518px) 100vw, 518px" /></figure>



<p>二、接下來要建立負載平衡了，要注意，</p>



<p>前端先不要建，建立兩個後端，接到兩個執行個體群組。</p>



<p>完成如下：</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="538" height="222" src="https://dongdonggcp.com/wp-content/uploads/2024/03/e688aae59c96-2024-03-30-e4b88be58d8812.49.51.png?w=538" alt="" class="wp-image-6028" srcset="https://dongdonggcp.com/wp-content/uploads/2024/03/e688aae59c96-2024-03-30-e4b88be58d8812.49.51.png 538w, https://dongdonggcp.com/wp-content/uploads/2024/03/e688aae59c96-2024-03-30-e4b88be58d8812.49.51-300x124.png 300w" sizes="(max-width: 538px) 100vw, 538px" /></figure>



<p>三、接下來要打指令了，</p>



<p>分流的關鍵物件叫做 urm-map</p>



<p>先寫好一個 YAML 檔，我取名 map，</p>



<p>紅色部分請各位自行替換。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1318" height="658" src="https://dongdonggcp.com/wp-content/uploads/2024/03/e688aae59c96-2024-03-30-e4b88be58d8812.51.27.png?w=1024" alt="" class="wp-image-6030" srcset="https://dongdonggcp.com/wp-content/uploads/2024/03/e688aae59c96-2024-03-30-e4b88be58d8812.51.27.png 1318w, https://dongdonggcp.com/wp-content/uploads/2024/03/e688aae59c96-2024-03-30-e4b88be58d8812.51.27-300x150.png 300w, https://dongdonggcp.com/wp-content/uploads/2024/03/e688aae59c96-2024-03-30-e4b88be58d8812.51.27-1024x511.png 1024w, https://dongdonggcp.com/wp-content/uploads/2024/03/e688aae59c96-2024-03-30-e4b88be58d8812.51.27-768x383.png 768w" sizes="(max-width: 1318px) 100vw, 1318px" /></figure>



<p>為了方便大家複製貼上，我就貼在這裡，語法我就不解釋了。</p>



<pre class="wp-block-code alignwide"><code>defaultService: https://www.googleapis.com/compute/v1/projects/dong-dong-gcp-2-bigquery/global/backendServices/bk-a
kind: compute #urlMap
name: web-map-http
hostRules:
- hosts:
  - '*'
  pathMatcher: matcher1
pathMatchers:
- defaultService: https://www.googleapis.com/compute/v1/projects/dong-dong-gcp-2-bigquery/global/backendServices/bk-a
  name: matcher1
  routeRules:
  - matchRules:
    - prefixMatch: /
    priority: 2
    routeAction:
        weightedBackendServices:
        - backendService: https://www.googleapis.com/compute/v1/projects/dong-dong-gcp-2-bigquery/global/backendServices/bk-a
          weight: 70
        - backendService: https://www.googleapis.com/compute/v1/projects/dong-dong-gcp-2-bigquery/global/backendServices/bk-b
          weight: 30</code></pre>



<p>四、YAML 檔準備好，用指令來建立 url-map：</p>



<p>gcloud beta compute url-maps import web-map-http &#8211;source map &#8211;global</p>



<p>五、再來建立 target-http-proxies</p>



<p>gcloud beta compute target-http-proxies create http-lb-proxy-adv &#8211;url-map=web-map-http</p>



<p>六、在建立前端之前，先保留一個靜態 IP</p>



<p>gcloud compute addresses create lb-ipv4 &nbsp; &nbsp; &#8211;ip-version=IPV4 &nbsp; &nbsp; &#8211;global</p>



<p>七、確認取得 IP</p>



<p>gcloud compute addresses describe lb-ipv4 &nbsp; &nbsp; &#8211;format=&#8221;get(address)&#8221; &nbsp; &nbsp; &#8211;global</p>



<p>八、建立 forwarding-rules</p>



<p>gcloud beta compute forwarding-rules create http-content-rule &nbsp; &nbsp; &#8211;load-balancing-scheme EXTERNAL_MANAGED &nbsp; &nbsp; &#8211;address=lb-ipv4-2 &nbsp; &nbsp; &#8211;global &nbsp; &nbsp; &#8211;target-http-proxy=http-lb-proxy-adv &nbsp; &nbsp; &#8211;ports=80</p>



<p>建立過程截圖如下：</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="2660" height="820" src="https://dongdonggcp.com/wp-content/uploads/2024/03/e688aae59c96-2024-03-28-e4b88be58d8812.26.47.png?w=1024" alt="" class="wp-image-6034" srcset="https://dongdonggcp.com/wp-content/uploads/2024/03/e688aae59c96-2024-03-28-e4b88be58d8812.26.47.png 2660w, https://dongdonggcp.com/wp-content/uploads/2024/03/e688aae59c96-2024-03-28-e4b88be58d8812.26.47-300x92.png 300w, https://dongdonggcp.com/wp-content/uploads/2024/03/e688aae59c96-2024-03-28-e4b88be58d8812.26.47-1024x316.png 1024w, https://dongdonggcp.com/wp-content/uploads/2024/03/e688aae59c96-2024-03-28-e4b88be58d8812.26.47-768x237.png 768w, https://dongdonggcp.com/wp-content/uploads/2024/03/e688aae59c96-2024-03-28-e4b88be58d8812.26.47-1536x474.png 1536w, https://dongdonggcp.com/wp-content/uploads/2024/03/e688aae59c96-2024-03-28-e4b88be58d8812.26.47-2048x631.png 2048w" sizes="(max-width: 2660px) 100vw, 2660px" /></figure>



<p>接下來點網頁看看，</p>



<p>會發現很多次是 v1，有幾次是 v2。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="411" height="300" src="https://dongdonggcp.com/wp-content/uploads/2024/03/e688aae59c96-2024-03-28-e4b88be58d8812.37.41.png?w=411" alt="" class="wp-image-6035" srcset="https://dongdonggcp.com/wp-content/uploads/2024/03/e688aae59c96-2024-03-28-e4b88be58d8812.37.41.png 411w, https://dongdonggcp.com/wp-content/uploads/2024/03/e688aae59c96-2024-03-28-e4b88be58d8812.37.41-300x219.png 300w" sizes="(max-width: 411px) 100vw, 411px" /></figure>



<p>想多打一點流量進去，使用 siege，</p>



<p>在 Cloud Shell 安裝 siege：</p>



<p>sudo apt-get install siege</p>



<p>開始測試，例如打個200下：</p>



<p>siege -c 10 -r 2- -d1 http://34.49.24.227</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1542" height="502" src="https://dongdonggcp.com/wp-content/uploads/2024/03/e688aae59c96-2024-03-28-e4b88be58d8812.31.58.png?w=1024" alt="" class="wp-image-6038" srcset="https://dongdonggcp.com/wp-content/uploads/2024/03/e688aae59c96-2024-03-28-e4b88be58d8812.31.58.png 1542w, https://dongdonggcp.com/wp-content/uploads/2024/03/e688aae59c96-2024-03-28-e4b88be58d8812.31.58-300x98.png 300w, https://dongdonggcp.com/wp-content/uploads/2024/03/e688aae59c96-2024-03-28-e4b88be58d8812.31.58-1024x333.png 1024w, https://dongdonggcp.com/wp-content/uploads/2024/03/e688aae59c96-2024-03-28-e4b88be58d8812.31.58-768x250.png 768w, https://dongdonggcp.com/wp-content/uploads/2024/03/e688aae59c96-2024-03-28-e4b88be58d8812.31.58-1536x500.png 1536w" sizes="(max-width: 1542px) 100vw, 1542px" /></figure>



<p>然後 Load Balancer 監控頁面可以看到分流的圖：</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="591" height="908" src="https://dongdonggcp.com/wp-content/uploads/2024/03/e688aae59c96-2024-03-28-e4b88be58d8812.39.22.png?w=591" alt="" class="wp-image-6044" srcset="https://dongdonggcp.com/wp-content/uploads/2024/03/e688aae59c96-2024-03-28-e4b88be58d8812.39.22.png 591w, https://dongdonggcp.com/wp-content/uploads/2024/03/e688aae59c96-2024-03-28-e4b88be58d8812.39.22-195x300.png 195w" sizes="(max-width: 591px) 100vw, 591px" /></figure>



<p>我們去 Cloud Logging 去看結果，</p>



<p>看到2個後端接收 Request 的次數比較，</p>



<p>包含我最初手動點擊網頁的次數，和 siege 200 次，</p>



<p>2個後端分別收到 209 次和 91次，大概是69.67%：30.30%，</p>



<p>如果打更多次，比例會更接近 70%：30%。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1849" height="1038" src="https://dongdonggcp.com/wp-content/uploads/2024/03/e688aae59c96-2024-03-28-e4b88be58d8812.32.27.png?w=1024" alt="" class="wp-image-6040" srcset="https://dongdonggcp.com/wp-content/uploads/2024/03/e688aae59c96-2024-03-28-e4b88be58d8812.32.27.png 1849w, https://dongdonggcp.com/wp-content/uploads/2024/03/e688aae59c96-2024-03-28-e4b88be58d8812.32.27-300x168.png 300w, https://dongdonggcp.com/wp-content/uploads/2024/03/e688aae59c96-2024-03-28-e4b88be58d8812.32.27-1024x575.png 1024w, https://dongdonggcp.com/wp-content/uploads/2024/03/e688aae59c96-2024-03-28-e4b88be58d8812.32.27-768x431.png 768w, https://dongdonggcp.com/wp-content/uploads/2024/03/e688aae59c96-2024-03-28-e4b88be58d8812.32.27-1536x862.png 1536w" sizes="(max-width: 1849px) 100vw, 1849px" /></figure>



<p>也可以從 Cloud Monitoring 看到兩個後端接收 Reuqest 的圖表：</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="2478" height="1486" src="https://dongdonggcp.com/wp-content/uploads/2024/03/e688aae59c96-2024-03-30-e4b88be58d881.15.04.png?w=1024" alt="" class="wp-image-6042" srcset="https://dongdonggcp.com/wp-content/uploads/2024/03/e688aae59c96-2024-03-30-e4b88be58d881.15.04.png 2478w, https://dongdonggcp.com/wp-content/uploads/2024/03/e688aae59c96-2024-03-30-e4b88be58d881.15.04-300x180.png 300w, https://dongdonggcp.com/wp-content/uploads/2024/03/e688aae59c96-2024-03-30-e4b88be58d881.15.04-1024x614.png 1024w, https://dongdonggcp.com/wp-content/uploads/2024/03/e688aae59c96-2024-03-30-e4b88be58d881.15.04-768x461.png 768w, https://dongdonggcp.com/wp-content/uploads/2024/03/e688aae59c96-2024-03-30-e4b88be58d881.15.04-1536x921.png 1536w, https://dongdonggcp.com/wp-content/uploads/2024/03/e688aae59c96-2024-03-30-e4b88be58d881.15.04-2048x1228.png 2048w" sizes="(max-width: 2478px) 100vw, 2478px" /></figure>



<p>以上分享。</p>



<p>來源可參考這份文件：</p>



<p><a href="https://codelabs.developers.google.com/externalhttplb-adv#4">https://codelabs.developers.google.com/externalhttplb-adv#4</a></p>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<p>順便置入一下，關於更多 GCP 負載平衡的概念和實作教學，都在東東的 <a href="https://dongdonggcp.com/gcp-architect-class/" target="_blank" rel="noopener" title="">GCP 線上課程《雲端架構師養成班》</a>，有需要可以進來看喔！</p><p>The post <a href="https://dongdonggcp.com/2024/03/30/gcp-load-balancer-weight-based-traffic-splitting/">[GCP 線上課程] GCP 負載平衡依照權重分流 Load Balancer weight-based traffic splitting</a> first appeared on <a href="https://dongdonggcp.com">東東 GCP 教學 - GCP 實戰講師 - 雲上星辰有限公司</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://dongdonggcp.com/2024/03/30/gcp-load-balancer-weight-based-traffic-splitting/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">6019</post-id>	</item>
		<item>
		<title>[GCP 線上課程] GCP &#8211; 對 IT 自媒體最友善的雲端平台</title>
		<link>https://dongdonggcp.com/2024/03/14/gcp-the-best-cloud-platform-for-self-media/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=gcp-the-best-cloud-platform-for-self-media</link>
					<comments>https://dongdonggcp.com/2024/03/14/gcp-the-best-cloud-platform-for-self-media/#respond</comments>
		
		<dc:creator><![CDATA[東東]]></dc:creator>
		<pubDate>Thu, 14 Mar 2024 07:02:54 +0000</pubDate>
				<category><![CDATA[Compute Engine (VM)]]></category>
		<category><![CDATA[Google Cloud Platform]]></category>
		<category><![CDATA[Cloud CDN]]></category>
		<category><![CDATA[Cloud Storage]]></category>
		<category><![CDATA[GCP]]></category>
		<category><![CDATA[Load Balancer]]></category>
		<category><![CDATA[SSL憑證]]></category>
		<category><![CDATA[VM]]></category>
		<category><![CDATA[自媒體]]></category>
		<guid isPermaLink="false">https://dongdonggcp.wordpress.com/?p=5979</guid>

					<description><![CDATA[<p>對自媒體創業者來說， 剛開始通常經費不足 [&#8230;]</p>
<p>The post <a href="https://dongdonggcp.com/2024/03/14/gcp-the-best-cloud-platform-for-self-media/">[GCP 線上課程] GCP – 對 IT 自媒體最友善的雲端平台</a> first appeared on <a href="https://dongdonggcp.com">東東 GCP 教學 - GCP 實戰講師 - 雲上星辰有限公司</a>.</p>]]></description>
										<content:encoded><![CDATA[<p>對自媒體創業者來說，</p>



<p>剛開始通常經費不足，</p>



<p>但還是必須要架設一個網站，</p>



<p>來宣傳你的服務和內容。</p>



<p>如果你是資訊背景，可以自行架設網站的話，</p>



<p>使用 GCP 架設網站是最划算的。</p>



<p>為什麼？</p>



<p>以下分四點說明 GCP 的功能、架構和好處：</p>



<h2 class="wp-block-heading">1. 費用節省</h2>



<p>GCP 是 Pay-as-you-go 依照使用量計費，</p>



<p>剛開始流量不大，</p>



<p>你可以建立最小規格的機器 &#8211; N1系列的 f1-micro，</p>



<p>每月費用大約 5~6 美金，折合台幣不到200元，</p>



<p>如果不用機器時，可以直接刪掉，</p>



<p>那根本就不會有費用發生。</p>



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="2298" height="986" src="https://dongdonggcp.wordpress.com/wp-content/uploads/2024/03/e688aae59c96-2024-03-14-e4b88be58d882.49.40.png?w=1024" alt="最小規格的 GCP 主機 f1-micro 的費用" class="wp-image-5988" srcset="https://dongdonggcp.com/wp-content/uploads/2024/03/e688aae59c96-2024-03-14-e4b88be58d882.49.40.png 2298w, https://dongdonggcp.com/wp-content/uploads/2024/03/e688aae59c96-2024-03-14-e4b88be58d882.49.40-300x129.png 300w, https://dongdonggcp.com/wp-content/uploads/2024/03/e688aae59c96-2024-03-14-e4b88be58d882.49.40-1024x439.png 1024w, https://dongdonggcp.com/wp-content/uploads/2024/03/e688aae59c96-2024-03-14-e4b88be58d882.49.40-768x330.png 768w, https://dongdonggcp.com/wp-content/uploads/2024/03/e688aae59c96-2024-03-14-e4b88be58d882.49.40-1536x659.png 1536w, https://dongdonggcp.com/wp-content/uploads/2024/03/e688aae59c96-2024-03-14-e4b88be58d882.49.40-2048x879.png 2048w" sizes="(max-width: 2298px) 100vw, 2298px" /><figcaption class="wp-element-caption">最小規格的 GCP 主機 f1-micro 的費用</figcaption></figure>



<p>不覺得超便宜嗎？</p>



<p>網站流量還不高時，用這個最划算。</p>



<p>當然這裡必須提醒一下，</p>



<p>因為它是共用核心，和其他機器共用同一個 CPU，</p>



<p>所以它的效能會有突發 (Burst) 效果，</p>



<p>代表有時候可以免費用到&#8221;額外&#8221;的CPU資源。</p>



<p>反過來說，效能有時候突然會「非常好」，</p>



<p>但大多數時間還是原有的效能。</p>



<p>如果要避免效能不穩定，</p>



<p>那還是建議選用例如 e2-medium 的機器，</p>



<p>(2 vCPU 和 4 GB 記憶體)</p>



<p>每月費用約 26 美金，約台幣 800 元左右(也不算太貴)。</p>



<h2 class="wp-block-heading">2. 使用 Cloud Storage 減輕主機負載</h2>



<p>通常網頁會有大量圖片或影片，</p>



<p>每當使用者存取網頁時，</p>



<p>Client 端對網頁讀取，會造成主機很大的負擔。</p>



<p>其實你可以把圖片和影片放在 Cloud Storage (GCS)，</p>



<p>而網頁 HTML 的圖片和影片超連結指向 GCS 公開網址，</p>



<p>這樣主機只要負責載入純文字的 HTML 和相關網頁原始碼，</p>



<p>負擔直接少減 90% 以上，</p>



<p>你也就省下很多維護主機、調校效能的時間。</p>



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="1606" height="1018" src="https://dongdonggcp.wordpress.com/wp-content/uploads/2024/03/e688aae59c96-2024-03-14-e4b88be58d882.48.56.png?w=1024" alt="使用 Cloud Storage 儲存媒體資料，減輕主機負擔" class="wp-image-5990" srcset="https://dongdonggcp.com/wp-content/uploads/2024/03/e688aae59c96-2024-03-14-e4b88be58d882.48.56.png 1606w, https://dongdonggcp.com/wp-content/uploads/2024/03/e688aae59c96-2024-03-14-e4b88be58d882.48.56-300x190.png 300w, https://dongdonggcp.com/wp-content/uploads/2024/03/e688aae59c96-2024-03-14-e4b88be58d882.48.56-1024x649.png 1024w, https://dongdonggcp.com/wp-content/uploads/2024/03/e688aae59c96-2024-03-14-e4b88be58d882.48.56-768x487.png 768w, https://dongdonggcp.com/wp-content/uploads/2024/03/e688aae59c96-2024-03-14-e4b88be58d882.48.56-1536x974.png 1536w" sizes="(max-width: 1606px) 100vw, 1606px" /><figcaption class="wp-element-caption">使用 Cloud Storage 儲存媒體資料，減輕主機負擔</figcaption></figure>



<h2 class="wp-block-heading">3.免費自動更新的 SSL 憑證</h2>



<p>自架網站通常也要處理憑證的問題，</p>



<p>到期還要手動更新，很麻煩。</p>



<p>但如果搭配 Google Load Balancer，</p>



<p>除了防禦大流量的 DDoS 攻擊之外，</p>



<p>免費自動更新的憑證，非常方便。</p>



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="2560" height="1048" src="https://dongdonggcp.wordpress.com/wp-content/uploads/2024/03/e688aae59c96-2024-03-14-e4b88be58d882.52.22.png?w=1024" alt="使用 Google Load Balancer 可以附帶免費且自動更新的憑證" class="wp-image-5992" srcset="https://dongdonggcp.com/wp-content/uploads/2024/03/e688aae59c96-2024-03-14-e4b88be58d882.52.22.png 2560w, https://dongdonggcp.com/wp-content/uploads/2024/03/e688aae59c96-2024-03-14-e4b88be58d882.52.22-300x123.png 300w, https://dongdonggcp.com/wp-content/uploads/2024/03/e688aae59c96-2024-03-14-e4b88be58d882.52.22-1024x419.png 1024w, https://dongdonggcp.com/wp-content/uploads/2024/03/e688aae59c96-2024-03-14-e4b88be58d882.52.22-768x314.png 768w, https://dongdonggcp.com/wp-content/uploads/2024/03/e688aae59c96-2024-03-14-e4b88be58d882.52.22-1536x629.png 1536w, https://dongdonggcp.com/wp-content/uploads/2024/03/e688aae59c96-2024-03-14-e4b88be58d882.52.22-2048x838.png 2048w" sizes="(max-width: 2560px) 100vw, 2560px" /><figcaption class="wp-element-caption">使用 Google Load Balancer 可以附帶免費且自動更新的憑證</figcaption></figure>



<h2 class="wp-block-heading">4. 加速媒體發佈的 Cloud CDN</h2>



<p>除此之外，在 Load Balancer 上可一鍵勾選 CDN 功能，</p>



<p>除了幫你把媒體暫存在靠近使用者的位置，</p>



<p>加速媒體發佈以外，</p>



<p>也能更進一步減輕主機負擔，</p>



<p>因為 Client 端就不用去源頭主機拉圖片和影片了，</p>



<p>尤其是以影音串流的網站來說，更是必備的工具。</p>



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="2112" height="732" src="https://dongdonggcp.wordpress.com/wp-content/uploads/2024/03/e688aae59c96-2024-03-14-e4b88be58d882.53.55.png?w=1024" alt="使用 Load Balancer 可以附帶 Cloud CDN，加速媒體發佈" class="wp-image-5993" srcset="https://dongdonggcp.com/wp-content/uploads/2024/03/e688aae59c96-2024-03-14-e4b88be58d882.53.55.png 2112w, https://dongdonggcp.com/wp-content/uploads/2024/03/e688aae59c96-2024-03-14-e4b88be58d882.53.55-300x104.png 300w, https://dongdonggcp.com/wp-content/uploads/2024/03/e688aae59c96-2024-03-14-e4b88be58d882.53.55-1024x355.png 1024w, https://dongdonggcp.com/wp-content/uploads/2024/03/e688aae59c96-2024-03-14-e4b88be58d882.53.55-768x266.png 768w, https://dongdonggcp.com/wp-content/uploads/2024/03/e688aae59c96-2024-03-14-e4b88be58d882.53.55-1536x532.png 1536w, https://dongdonggcp.com/wp-content/uploads/2024/03/e688aae59c96-2024-03-14-e4b88be58d882.53.55-2048x710.png 2048w" sizes="(max-width: 2112px) 100vw, 2112px" /><figcaption class="wp-element-caption">使用 Load Balancer 可以附帶 Cloud CDN，加速媒體發佈</figcaption></figure>



<p>以上分享 4 個使用 GCP 的好處，</p>



<p>希望可以對 IT 自媒體創業者有所幫助。</p>



<div style="height:8px" aria-hidden="true" class="wp-block-spacer"></div>



<p>順便置入一下，關於更多 GCP VM、Cloud Storage、Load Balancer 的概念和實作教學，都在東東的 <a href="https://dongdonggcp.wordpress.com/gcp-architect-class/">GCP 線上課程《雲端架構師養成班》</a>，有需要可以進來看喔！</p><p>The post <a href="https://dongdonggcp.com/2024/03/14/gcp-the-best-cloud-platform-for-self-media/">[GCP 線上課程] GCP – 對 IT 自媒體最友善的雲端平台</a> first appeared on <a href="https://dongdonggcp.com">東東 GCP 教學 - GCP 實戰講師 - 雲上星辰有限公司</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://dongdonggcp.com/2024/03/14/gcp-the-best-cloud-platform-for-self-media/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">5979</post-id>	</item>
	</channel>
</rss>
