<?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>東東 GCP 教學 &#8211; GCP 實戰講師</title>
	<atom:link href="https://dongdonggcp.com/feed/" rel="self" type="application/rss+xml" />
	<link>https://dongdonggcp.com</link>
	<description>助你考取證照，轉職成功</description>
	<lastBuildDate>Wed, 29 Jul 2026 09:54:10 +0000</lastBuildDate>
	<language>zh-TW</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0.4</generator>

<image>
	<url>https://dongdonggcp.com/wp-content/uploads/2025/04/cropped-340838097_121391010914395_5443948698124160121_n-32x32.jpg</url>
	<title>東東 GCP 教學 &#8211; GCP 實戰講師</title>
	<link>https://dongdonggcp.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>雲端職缺大解析：雲端工程師、架構師、SRE、DevOps、資料工程師差在哪？</title>
		<link>https://dongdonggcp.com/2026/07/29/cloud-jobs-comparison/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=cloud-jobs-comparison</link>
					<comments>https://dongdonggcp.com/2026/07/29/cloud-jobs-comparison/#respond</comments>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Wed, 29 Jul 2026 09:41:27 +0000</pubDate>
				<category><![CDATA[轉職 IT]]></category>
		<category><![CDATA[DevOps]]></category>
		<category><![CDATA[SRE]]></category>
		<category><![CDATA[數據工程師]]></category>
		<category><![CDATA[轉職]]></category>
		<category><![CDATA[雲端工程師]]></category>
		<category><![CDATA[雲端架構師]]></category>
		<guid isPermaLink="false">https://dongdonggcp.com/?p=12325</guid>

					<description><![CDATA[<p>台灣常見的雲端職缺分成 5 種：雲端工程 [&#8230;]</p>
<p>The post <a href="https://dongdonggcp.com/2026/07/29/cloud-jobs-comparison/">雲端職缺大解析：雲端工程師、架構師、SRE、DevOps、資料工程師差在哪？</a> first appeared on <a href="https://dongdonggcp.com">東東 GCP 教學 - GCP 實戰講師</a>.</p>]]></description>
										<content:encoded><![CDATA[<p class="wp-block-paragraph">台灣常見的雲端職缺分成 5 種：雲端工程師負責把系統蓋出來、架構師決定系統該長什麼樣、SRE 顧穩定、DevOps 顧交付速度、資料工程師鋪資料管線。</p>



<p class="wp-block-paragraph">零經驗轉職，從雲端工程師入門最快。 </p>



<p class="wp-block-paragraph">打開 104，搜尋「雲端」或「GCP」，你會看到一堆職稱跳出來：雲端工程師、雲端架構師、SRE、DevOps 工程師、資料工程師⋯⋯</p>



<p class="wp-block-paragraph">看起來都跟雲端有關，但薪資區間、要會的技能、日常工作內容差距很大，光是月薪區間的起點，架構師就比工程師高 2 萬以上。</p>



<p class="wp-block-paragraph">這是轉職者最常卡住的第一個問題：<strong>「我到底該投哪一個？」</strong></p>



<h3 class="wp-block-heading">為什麼一定要先搞懂職缺差別？</h3>



<p class="wp-block-paragraph">搞錯職缺，你會浪費半年學錯東西。</p>



<p class="wp-block-paragraph">想當架構師卻先去學 Python 、想走 SRE 卻只考了 Associate 認證，這兩種情況都是真實發生過的彎路。</p>



<p class="wp-block-paragraph">5 種角色的技能重疊度不到一半，證照方向也不同。<strong>先確定要走哪一條，再開始學，是最省時間的做法。</strong> </p>



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



<h2 class="wp-block-heading"><strong>先用一個比喻，30 秒秒懂 5 種角色</strong></h2>



<p class="wp-block-paragraph">把一個跑在雲端上的系統，想像成「一棟蓋在雲上、24 小時營業的大樓」：</p>



<ul class="wp-block-list">
<li><strong>雲端架構師（Cloud Architect）</strong>＝<strong>設計師</strong>：決定這棟樓怎麼蓋、幾層、水電怎麼配、消防怎麼做。動手少，但方向錯了全樓要打掉重來。</li>



<li><strong>雲端工程師（Cloud Engineer）</strong>＝<strong>施工與水電師傅</strong>：照著設計圖把樓蓋起來、把服務一個一個裝上去、平常的修修補補。</li>



<li><strong>SRE（網站可靠性工程師）</strong>＝<strong>大樓的保全兼維修隊</strong>：確保這棟樓 24 小時不斷電、不出事，出事能最快修好，還會想辦法用自動化讓自己少值班。</li>



<li><strong>DevOps 工程師</strong>＝<strong>生產線的自動化總管</strong>：讓「設計→施工→開張」這條線跑得又快又順，蓋新東西不用每次都手工搬磚。</li>



<li><strong>資料工程師（Data Engineer）</strong>＝<strong>專門鋪水管的人</strong>：把散在各處的資料，用管線接到一個大水塔（資料倉儲），讓需要用水（分析、AI）的人隨時打開就有。</li>
</ul>



<p class="wp-block-paragraph">記住這個比喻，下面每一段就很好懂了。</p>



<figure class="wp-block-image aligncenter size-large"><img fetchpriority="high" decoding="async" width="1024" height="550" src="https://dongdonggcp.com/wp-content/uploads/2026/07/雲端工程師、架構師、SRE、DevOps、資料工程師的差異-1024x550.png" alt="" class="wp-image-12349" srcset="https://dongdonggcp.com/wp-content/uploads/2026/07/雲端工程師、架構師、SRE、DevOps、資料工程師的差異-1024x550.png 1024w, https://dongdonggcp.com/wp-content/uploads/2026/07/雲端工程師、架構師、SRE、DevOps、資料工程師的差異-300x161.png 300w, https://dongdonggcp.com/wp-content/uploads/2026/07/雲端工程師、架構師、SRE、DevOps、資料工程師的差異-768x412.png 768w, https://dongdonggcp.com/wp-content/uploads/2026/07/雲端工程師、架構師、SRE、DevOps、資料工程師的差異.png 1490w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">雲端工程師、架構師、SRE、DevOps、資料工程師差在哪？</figcaption></figure>



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



<h2 class="wp-block-heading"><strong>雲端工程師（Cloud Engineer）：最好的轉職起點</strong></h2>



<h3 class="wp-block-heading">在做什麼？</h3>



<p class="wp-block-paragraph">雲端工程師是負責在雲端平台上實際建置與維運系統的執行角色，用來把架構師畫好的藍圖變成真的跑得起來的服務。 </p>



<p class="wp-block-paragraph">架構師畫好藍圖之後，由雲端工程師到 GCP、AWS、Azure 上把資源建起來。</p>



<p class="wp-block-paragraph">日常工作包括：開 VM、設定虛擬私有網路（VPC，你在雲上的專屬網段）、部署 Cloud Run、設定權限（IAM）、處理維運和排錯。</p>



<p class="wp-block-paragraph">一句話：<strong>架構師決定「要怎麼蓋」，雲端工程師負責「把它蓋出來、顧好它」。</strong></p>



<h3 class="wp-block-heading">需要什麼技能？</h3>



<ul class="wp-block-list">
<li>一朵雲的基本操作（建議先專精 <a href="https://dongdonggcp.com/gcp-architect-class/" target="_blank" rel="noopener" title="">GCP</a> 或 AWS 一朵）</li>



<li>Linux 基本指令、網路基礎（IP、DNS、防火牆）</li>



<li>容器基礎（Docker）</li>



<li>會看 Log、會排簡單的錯</li>
</ul>



<h3 class="wp-block-heading">薪水與適合誰</h3>



<p class="wp-block-paragraph">台灣月薪參考區間約 <strong>5～8 萬</strong>，同一個職稱在不同公司的落差可達 3 萬。</p>



<p class="wp-block-paragraph">這是 5 種角色裡<strong>入門門檻最低、需求量最大</strong>的職缺，適合零經驗和非本科。</p>



<p class="wp-block-paragraph">先卡進這個位置累積實戰，再往架構師發展，是最務實的路線。</p>



<figure class="wp-block-image aligncenter size-large"><img decoding="async" width="1024" height="543" src="https://dongdonggcp.com/wp-content/uploads/2026/07/雲端工程師Cloud-Engineer-v2-1024x543.png" alt="" class="wp-image-12358" srcset="https://dongdonggcp.com/wp-content/uploads/2026/07/雲端工程師Cloud-Engineer-v2-1024x543.png 1024w, https://dongdonggcp.com/wp-content/uploads/2026/07/雲端工程師Cloud-Engineer-v2-300x159.png 300w, https://dongdonggcp.com/wp-content/uploads/2026/07/雲端工程師Cloud-Engineer-v2-768x407.png 768w, https://dongdonggcp.com/wp-content/uploads/2026/07/雲端工程師Cloud-Engineer-v2-1536x815.png 1536w, https://dongdonggcp.com/wp-content/uploads/2026/07/雲端工程師Cloud-Engineer-v2.png 1872w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">雲端工程師(Cloud Engineer)</figcaption></figure>



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



<h2 class="wp-block-heading"><strong>雲端架構師（Cloud Architect）：薪資天花板最高</strong></h2>



<h3 class="wp-block-heading">在做什麼？</h3>



<p class="wp-block-paragraph">雲端架構師是負責規劃整體雲端方案的設計角色，用來在系統動工前決定架構、成本與資安要怎麼配。</p>



<p class="wp-block-paragraph">他要跟業務單位溝通需求，回答這些問題：系統要不要自動擴充（Autoscaling）？資料庫怎麼配才不會掛？成本怎麼壓？資安怎麼守？</p>



<p class="wp-block-paragraph">架構師動手寫程式的比例比工程師低，<strong>但這不代表「不用懂 code」</strong>。</p>



<p class="wp-block-paragraph">好的架構判斷，正是建立在「知道底層怎麼實作、會踩到什麼坑」之上。</p>



<p class="wp-block-paragraph">差別在於，架構師的價值在「判斷怎麼設計才不會出事」，而不是「把功能刻出來的速度」。</p>



<h3 class="wp-block-heading">需要什麼技能？</h3>



<ul class="wp-block-list">
<li>工程師那一整套技能，再往上加</li>



<li>整體架構設計能力（網路、運算、資料庫、資安怎麼串在一起）</li>



<li>成本意識（CUD／SUD 折扣、預算控制）</li>



<li>溝通能力：把技術講給非技術主管聽</li>



<li>當你要應徵架構師職缺時，Professional 等級認證是明確的加分條件</li>
</ul>



<h3 class="wp-block-heading">薪水與適合誰</h3>



<p class="wp-block-paragraph">台灣月薪參考區間約 <strong>6～12 萬以上</strong>，資深加上業務開發能力可以更高（詳細分級可看我另一篇《<a href="https://dongdonggcp.com/2026/03/10/cloud-architect-salary-taiwan-guide/" target="_blank" rel="noopener" title="">雲端架構師薪水完整指南</a>》）。</p>



<p class="wp-block-paragraph">適合<strong>已經有一些 IT 底子、想往上走、想突破薪資天花板</strong>的人。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">雲端工程師和架構師的差別，最簡單記法：工程師「把系統做出來、顧好」，架構師「決定整個系統該長什麼樣」。同年資下，架構師的月薪區間起點比工程師高 3 萬以上。</p>
</blockquote>



<p class="wp-block-paragraph">轉職者最務實的路徑是：先當工程師卡位，累積各種架構經驗之後，再升架構師。</p>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="549" src="https://dongdonggcp.com/wp-content/uploads/2026/07/雲端架構師Cloud-Architect-1024x549.png" alt="" class="wp-image-12359" srcset="https://dongdonggcp.com/wp-content/uploads/2026/07/雲端架構師Cloud-Architect-1024x549.png 1024w, https://dongdonggcp.com/wp-content/uploads/2026/07/雲端架構師Cloud-Architect-300x161.png 300w, https://dongdonggcp.com/wp-content/uploads/2026/07/雲端架構師Cloud-Architect-768x412.png 768w, https://dongdonggcp.com/wp-content/uploads/2026/07/雲端架構師Cloud-Architect-1536x824.png 1536w, https://dongdonggcp.com/wp-content/uploads/2026/07/雲端架構師Cloud-Architect.png 1836w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



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



<h2 class="wp-block-heading"><strong>SRE 與 DevOps 工程師：高度重疊、常常混用</strong></h2>



<p class="wp-block-paragraph">這兩個職稱在台灣的職缺裡界線非常模糊，有些公司直接混著用。但概念上還是有差別。</p>



<h3 class="wp-block-heading">DevOps 是一種「文化與做法」</h3>



<p class="wp-block-paragraph">DevOps 原本不是一個職稱，而是一種「把開發（Dev）和維運（Ops）打通」的做法。</p>



<p class="wp-block-paragraph">目標是讓「寫好程式→測試→上線」這條路自動化、又快又穩，不要每次上線都手忙腳亂。</p>



<p class="wp-block-paragraph">DevOps 工程師的日常，圍繞在三件事：</p>



<ol class="wp-block-list">
<li>建立 CI/CD 流水線（CI/CD 是「持續整合／持續交付」，指程式一改好就自動測試、自動上線的機制）</li>



<li>用 IaC（基礎架構即程式碼，例如 Terraform）把環境設定寫成可重複執行的檔案</li>



<li>把重複的部署工作自動化</li>
</ol>



<h3 class="wp-block-heading">SRE 是「用軟體工程的方法做維運」</h3>



<p class="wp-block-paragraph"><a href="https://cloud.google.com/sre?hl=zh-TW" target="_blank" rel="noopener" title="">SRE（Site Reliability Engineering）</a>是 Google 提出的可靠度工程方法，用來以軟體工程的手段確保系統穩定，可以理解成 DevOps 的一種具體實作。 </p>



<p class="wp-block-paragraph">SRE 更強調用數據和工程手段顧穩定：</p>



<ul class="wp-block-list">
<li><strong>SLO／SLI</strong>：訂出可量化的可靠度目標，例如「一個月內成功率要達 99.9%」</li>



<li><strong>Error Budget（錯誤預算）</strong>：從 SLO 反推出「這個月還能容忍多少故障時間」，用完就停止上新功能</li>



<li><strong>Toil（重複勞務）</strong>：指可以被自動化卻還在手動做的工作，SRE 的任務之一就是把它消滅</li>
</ul>



<p class="wp-block-paragraph">一句話：<strong>DevOps 是理念，SRE 是把這套理念工程化落地的做法。</strong></p>



<h3 class="wp-block-heading">需要什麼技能 &amp; 適合誰</h3>



<ul class="wp-block-list">
<li>兩者都要：熟一朵雲、容器與 <a href="https://dongdonggcp.com/2025/07/20/google-kubernetes-engine-tutorials/" target="_blank" rel="noopener" title="">Kubernetes（GKE）</a>、CI/CD 工具、監控告警、寫腳本自動化（Python／Shell）</li>



<li>SRE 職缺對寫程式和數據思維的要求，比 DevOps 更明確</li>



<li>台灣月薪參考區間約 <strong>7～14 萬</strong></li>



<li>適合<strong>已經有開發或系統維運經驗、喜歡用自動化消滅重複工作</strong>的人；零經驗要先補不少底子</li>
</ul>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">SRE 和 DevOps 差在哪？DevOps 是「理念」，把開發和維運打通、追求自動化交付；SRE 是「其中一種工程化做法」，用 SLO、error budget、削減 toil 來顧穩定。在台灣的職缺裡兩者常混用，看職務說明（JD）比看職稱準。</p>
</blockquote>



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="539" src="https://dongdonggcp.com/wp-content/uploads/2026/07/SRE與-DevOps-高度重疊的模糊界線-1024x539.png" alt="" class="wp-image-12360" srcset="https://dongdonggcp.com/wp-content/uploads/2026/07/SRE與-DevOps-高度重疊的模糊界線-1024x539.png 1024w, https://dongdonggcp.com/wp-content/uploads/2026/07/SRE與-DevOps-高度重疊的模糊界線-300x158.png 300w, https://dongdonggcp.com/wp-content/uploads/2026/07/SRE與-DevOps-高度重疊的模糊界線-768x405.png 768w, https://dongdonggcp.com/wp-content/uploads/2026/07/SRE與-DevOps-高度重疊的模糊界線.png 1477w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">SRE與 DevOps:高度重疊的模糊界線</figcaption></figure>



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



<h2 class="wp-block-heading"><strong>資料工程師（Data Engineer）：最需要寫程式的</strong>工作</h2>



<h3 class="wp-block-heading">在做什麼？</h3>



<p class="wp-block-paragraph">資料工程師是負責建置與維護資料管線的角色，用來把散落各系統的資料收乾淨、送進資料倉儲，讓分析和 AI 隨時有料可用。 </p>



<p class="wp-block-paragraph">他要把資料透過資料管道（Data Pipeline）收集、清理、轉換，送進資料倉儲（像 <a href="https://dongdonggcp.com/2024/11/23/what-is-bigquery-functions-advantages/" target="_blank" rel="noopener" title="">BigQuery</a>，一個專門存放大量分析用資料的地方）。</p>



<p class="wp-block-paragraph">在 GCP 上，這個角色天天碰的是 BigQuery、<a href="https://dongdonggcp.com/2024/11/23/what-is-dataflow-vs-apache-beam/" target="_blank" rel="noopener" title="">Dataflow</a>、<a href="https://dongdonggcp.com/2025/08/06/cloud-pub-sub-tutorial-better-than-rabbitmq-mqtt/" target="_blank" rel="noopener" title="">Pub/Sub</a>、Cloud Composer 這些服務。</p>



<h3 class="wp-block-heading">需要什麼技能？</h3>



<ul class="wp-block-list">
<li><strong>要會寫程式</strong>：SQL 是基本，Python 是資料工程師職缺最常列出的語言（這一點跟架構師很不一樣，別搞混）</li>



<li>資料庫與資料建模概念</li>



<li>資料管道工具（ETL／ELT，指把資料「抽取→轉換→載入」的兩種流程順序）</li>



<li>大數據處理（批次 vs 串流），串流資料 (Streaming Data) 指的是「每分每秒持續不斷產生的資料」。</li>
</ul>



<h3 class="wp-block-heading">薪水與適合誰</h3>



<p class="wp-block-paragraph">台灣月薪參考區間約 <strong>8～16 萬</strong>，AI 熱潮下需求持續走高。</p>



<p class="wp-block-paragraph">適合<strong>喜歡跟資料打交道、不排斥寫程式</strong>的人。</p>



<p class="wp-block-paragraph">如果你本來就是後端工程師、或做過數據相關工作，這是很順的轉職方向。</p>



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="547" src="https://dongdonggcp.com/wp-content/uploads/2026/07/資料工程師Data-Engineer-1024x547.png" alt="" class="wp-image-12361" srcset="https://dongdonggcp.com/wp-content/uploads/2026/07/資料工程師Data-Engineer-1024x547.png 1024w, https://dongdonggcp.com/wp-content/uploads/2026/07/資料工程師Data-Engineer-300x160.png 300w, https://dongdonggcp.com/wp-content/uploads/2026/07/資料工程師Data-Engineer-768x410.png 768w, https://dongdonggcp.com/wp-content/uploads/2026/07/資料工程師Data-Engineer-1536x821.png 1536w, https://dongdonggcp.com/wp-content/uploads/2026/07/資料工程師Data-Engineer.png 1849w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">資料工程師(Data Engineer)</figcaption></figure>



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



<h2 class="wp-block-heading"><strong>一張表看懂 5 種雲端職缺</strong></h2>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>職缺</th><th>一句話定位</th><th>核心工作</th><th>要寫 code 嗎</th><th>台灣月薪參考</th><th>最適合誰轉</th></tr></thead><tbody><tr><td>雲端工程師</td><td>把系統蓋出來、顧好</td><td>部署、設定、維運雲端資源</td><td>少量</td><td>4～8 萬</td><td>零經驗／非本科入門首選</td></tr><tr><td>雲端架構師</td><td>決定系統該長什麼樣</td><td>架構設計、成本、資安規劃</td><td>較少（但要懂）</td><td>6～12 萬+</td><td>有底子、想突破薪資天花板</td></tr><tr><td>SRE</td><td>用工程方法顧穩定</td><td>SLO、監控、自動化削減人工</td><td>要</td><td>7～14 萬</td><td>有維運／開發經驗</td></tr><tr><td>DevOps 工程師</td><td>讓交付又快又順</td><td>CI/CD、IaC、自動化流程</td><td>要</td><td>7～14 萬</td><td>有開發／維運經驗</td></tr><tr><td>資料工程師</td><td>把資料管道 (Data Pipeline) 接好</td><td>資料管道、資料倉儲</td><td>一定要</td><td>8～16 萬</td><td>喜歡資料、不排斥寫程式</td></tr></tbody></table></figure>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">⚠️ 薪資皆為市場「參考區間」，實際受公司規模、產業、年資、面試表現影響，不是保證數字。最準的方式是自己上 104 搜尋對應職稱，看你所在地區實際開出來的薪資與職缺量。</p>
</blockquote>



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



<h2 class="wp-block-heading"><strong>重要提醒：這些職稱的界線，在台灣其實很模糊</strong></h2>



<p class="wp-block-paragraph">上面的分法是「理想中的分工」，但台灣的中小型公司沒有分這麼細。</p>



<p class="wp-block-paragraph">一個人同時做架構設計、資源部署、CI/CD 維護，甚至兼顧資料庫，在中小型團隊是常態。</p>



<p class="wp-block-paragraph">反過來，當公司規模大到有獨立的 SRE 團隊時，角色會切得很細，SRE 就是 SRE，不碰資料管道。</p>



<p class="wp-block-paragraph">所以我的建議是：<strong>別太糾結職稱，要看「職務說明（JD）」裡實際列的工作內容和技能要求。</strong></p>



<p class="wp-block-paragraph">職稱只是入口，JD 才是你真正要做的事。</p>



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="590" src="https://dongdonggcp.com/wp-content/uploads/2026/07/台灣市場的現實-職務說明大於職稱-1024x590.png" alt="" class="wp-image-12352" srcset="https://dongdonggcp.com/wp-content/uploads/2026/07/台灣市場的現實-職務說明大於職稱-1024x590.png 1024w, https://dongdonggcp.com/wp-content/uploads/2026/07/台灣市場的現實-職務說明大於職稱-300x173.png 300w, https://dongdonggcp.com/wp-content/uploads/2026/07/台灣市場的現實-職務說明大於職稱-768x442.png 768w, https://dongdonggcp.com/wp-content/uploads/2026/07/台灣市場的現實-職務說明大於職稱.png 1398w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">台灣市場的現實 職務說明大於職稱</figcaption></figure>



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



<h2 class="wp-block-heading"><strong>我該從哪一個入門？轉職路徑建議</strong></h2>



<p class="wp-block-paragraph">如果你正在轉職，我會這樣建議：</p>



<ol class="wp-block-list">
<li><strong>零經驗／非本科</strong>：從<strong>雲端工程師</strong>入門。入門門檻最低、需求最大，先考一張 Associate 等級認證（如 GCP Associate Cloud Engineer）卡進去，累積實戰。</li>



<li><strong>已有 IT 底子（後端、網管、系統）</strong>：可以直接朝<strong>雲端架構師</strong>或 <strong>SRE／DevOps</strong> 準備，考 Professional 等級認證。</li>



<li><strong>做過資料、喜歡寫程式</strong>：<strong>資料工程師</strong>會是很順的方向。</li>
</ol>



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="540" src="https://dongdonggcp.com/wp-content/uploads/2026/07/我該從哪一個入門轉職路徑決策樹-1024x540.png" alt="" class="wp-image-12353" srcset="https://dongdonggcp.com/wp-content/uploads/2026/07/我該從哪一個入門轉職路徑決策樹-1024x540.png 1024w, https://dongdonggcp.com/wp-content/uploads/2026/07/我該從哪一個入門轉職路徑決策樹-300x158.png 300w, https://dongdonggcp.com/wp-content/uploads/2026/07/我該從哪一個入門轉職路徑決策樹-768x405.png 768w, https://dongdonggcp.com/wp-content/uploads/2026/07/我該從哪一個入門轉職路徑決策樹.png 1452w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">我該從哪一個入門?轉職路徑決策樹</figcaption></figure>



<p class="wp-block-paragraph">不管走哪一條，共同的起手式都是這三步：</p>



<ol class="wp-block-list">
<li>選定一朵雲（建議先專精 GCP 或 AWS）</li>



<li>考一張對應等級的證照</li>



<li>想辦法碰到真實專案 （你可以叫 AI 出題目，也能教你手把手實作專案）</li>
</ol>



<p class="wp-block-paragraph">這三件事同步做，比漫無目的地自學快得多。</p>



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="460" src="https://dongdonggcp.com/wp-content/uploads/2026/07/不管走哪一條共通的轉職雲端起手式-1024x460.png" alt="" class="wp-image-12354" srcset="https://dongdonggcp.com/wp-content/uploads/2026/07/不管走哪一條共通的轉職雲端起手式-1024x460.png 1024w, https://dongdonggcp.com/wp-content/uploads/2026/07/不管走哪一條共通的轉職雲端起手式-300x135.png 300w, https://dongdonggcp.com/wp-content/uploads/2026/07/不管走哪一條共通的轉職雲端起手式-768x345.png 768w, https://dongdonggcp.com/wp-content/uploads/2026/07/不管走哪一條共通的轉職雲端起手式.png 1446w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">不管走哪一條,共通的轉職雲端起手式</figcaption></figure>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">到底該考哪一張 GCP 證照？非 IT 背景建議先考 Associate 拿手感，有 IT 背景可以直接攻 Professional。（這部分我<a href="https://dongdonggcp.com/2025/01/13/how-to-prepare-google-cloud-architect-exam/" target="_blank" rel="noopener" title="">另有專文詳談</a>。）</p>
</blockquote>



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



<h2 class="wp-block-heading"><strong>雲端職缺 FAQ 常見問題</strong></h2>



<h3 class="wp-block-heading"><strong>Q1：完全沒經驗，我該投哪一個雲端職缺？</strong></h3>



<p class="wp-block-paragraph"><strong>A：</strong> 投雲端工程師（Cloud Engineer）。這是 5 種雲端職缺裡入門門檻最低、需求量最大的職缺，適合零經驗和非本科。先考一張 Associate 等級認證卡進去，邊做邊學，再往架構師或 SRE／DevOps 發展。</p>



<h3 class="wp-block-heading"><strong>Q2：SRE 和 DevOps 到底差在哪？</strong></h3>



<p class="wp-block-paragraph"><strong>A：</strong> DevOps 是一種「把開發和維運打通、追求自動化交付」的理念與做法；SRE 則是 Google 提出的具體實作，用 SLO、Error Budget、削減 Toil 這些工程手段來落實它。在台灣的職缺裡兩者經常混用，看職務說明比看職稱準。</p>



<h3 class="wp-block-heading"><strong>Q3：資料工程師需要很會寫程式嗎？</strong></h3>



<p class="wp-block-paragraph"><strong>A：</strong> 需要。資料工程師是這 5 個角色裡最需要寫程式的，SQL 是基本，Python 是職缺中最常出現的語言要求。這一點和雲端架構師剛好相反（架構師寫 code 較少、重在設計判斷），常被搞混，轉職前要想清楚自己喜不喜歡寫程式。</p>



<h3 class="wp-block-heading"><strong>Q4：這幾個職缺，哪個薪水最高？</strong></h3>



<p class="wp-block-paragraph"><strong>A：</strong> 以台灣市場的天花板來看，資料工程師最高，其次資深 SRE 與雲端架構師。但同一個職稱在不同公司可以差兩倍以上，認證、實戰成果和產業別對薪資的影響比職稱本身更大。</p>



<h3 class="wp-block-heading"><strong>Q5：這些職缺都要會 Kubernetes 嗎？</strong></h3>



<p class="wp-block-paragraph"><strong>A：</strong> 不一定，但會是加分。SRE、DevOps 幾乎一定要碰 Kubernetes（在 GCP 上就是 <a href="https://dongdonggcp.com/2025/07/20/google-kubernetes-engine-tutorials/" target="_blank" rel="noopener" title="">GKE</a>）；雲端工程師和架構師要懂概念、知道何時該用，不見得天天操作；資料工程師相對碰得少。想走 SRE／DevOps，Kubernetes 是必補的一塊。</p>



<h3 class="wp-block-heading"><strong>Q6：非資訊科系、學歷普通，投雲端職缺會被刷掉嗎？</strong></h3>



<p class="wp-block-paragraph"><strong>A：</strong> 雲端職缺看的是「你能不能操作」，不是科系。104 上的雲端工程師職缺，多數把證照和專案經驗列在必要條件，學歷欄常是「不拘」。與其糾結學歷，不如把一個能展示的實作專案做出來，面試時能講清楚你怎麼建、遇到什麼錯、怎麼解，比科系有用。</p>



<h3 class="wp-block-heading"><strong>Q7：沒有證照可以直接應徵雲端工程師嗎？</strong></h3>



<p class="wp-block-paragraph"><strong>A：</strong> 可以，但會辛苦很多。證照的功能是幫你通過履歷篩選這一關，尤其在你沒有相關工作經驗時，它是唯一能證明你懂的東西。如果你已經有 3 年以上系統或後端經驗，實戰成果可以取代證照；零經驗的話，證照是最短的敲門磚。</p>



<h3 class="wp-block-heading"><strong>Q8：雲端職缺會不會被 AI 取代？</strong></h3>



<p class="wp-block-paragraph"><strong>A：</strong> 短期內不會，但工作內容會變。AI 已經能生成 Terraform 設定檔和排錯建議，取代的是「手動打指令」這一層，也就是 SRE 口中的 toil。留下來的是判斷力：架構怎麼設計、成本怎麼取捨、出事時怎麼決策。越往架構和設計端走，越不容易被取代。</p>



<h3 class="wp-block-heading"><strong>Q9：應該先學 GCP 還是 AWS？</strong></h3>



<p class="wp-block-paragraph"><strong>A：</strong> 先選一朵學到會，比兩朵都學一半有用。AWS 在台灣的職缺數量較多，GCP 在資料分析和 Kubernetes 領域強勢、證照考試對非本科相對友善。兩者的核心概念（VM、網路、IAM、容器）有七成相通，學會一朵之後跳到另一朵，通常 1～2 個月能上手。</p>



<h3 class="wp-block-heading"><strong>Q10：從傳統 IT（網管、MIS）轉雲端，要補什麼？</strong></h3>



<p class="wp-block-paragraph"><strong>A：</strong> 補三塊：<a href="https://dongdonggcp.com/2026/07/29/what-is-container-technology-docker-guide/" target="_blank" rel="noopener" title="">容器</a>（Docker 與 <a href="https://dongdonggcp.com/2026/07/21/what-is-kubernetes/" target="_blank" rel="noopener" title="">Kubernetes</a>）、自動化腳本（Python 或 Shell）、雲端平台的權限與網路模型（<a href="https://dongdonggcp.com/2024/12/10/what-is-gcp-cloud-iam-role-and-permission-introduction/" target="_blank" rel="noopener" title="">IAM</a>、VPC）。網管和 MIS 的網路與系統底子在雲端仍然通用，這是你的優勢，缺的多半是「把手動流程變成程式碼」這個習慣。</p>



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



<h2 class="wp-block-heading"><strong>結論：先搞懂差別，再選對入門的位置</strong></h2>



<p class="wp-block-paragraph">雲端職缺拆開來就是 5 種角色：<strong>工程師蓋、架構師設計、SRE 顧穩定、DevOps 顧交付、資料工程師鋪資料水管。</strong></p>



<p class="wp-block-paragraph">對想轉職的人來說，最務實的路線是：<strong>從雲端工程師入門卡位，再依興趣和底子往架構師、SRE／DevOps 或資料工程師發展。</strong></p>



<p class="wp-block-paragraph">別被職稱嚇到，也別被職稱綁死——看清楚 JD、選定一朵雲、考一張證照、碰到真實專案，方向就會越來越清楚。</p>



<p class="wp-block-paragraph">如果你看完還是不確定自己適合哪一條路，我做了一份免費的評估工具，花 3 分鐘就能幫你抓出方向：</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">👉 <a href="https://dongdonggcp.com/ca-assessment/" target="_blank" rel="noopener" title="">你適合轉職 GCP 雲端架構師嗎？3 分鐘職涯評估</a></p>
</blockquote>



<p class="wp-block-paragraph">想更有系統地從零開始，也可以看看我的 <a href="https://dongdonggcp.com/gcp-architect-class/" target="_blank" rel="noopener" title="">雲端架構師養成班</a>，或直接加 <a href="https://line.me/R/ti/p/@754xlakm" target="_blank" rel="noopener" title="">Line: @754xlakm</a> 跟我聊聊你的背景，我幫你看適合先從哪個職缺、哪張證照下手。</p><p>The post <a href="https://dongdonggcp.com/2026/07/29/cloud-jobs-comparison/">雲端職缺大解析：雲端工程師、架構師、SRE、DevOps、資料工程師差在哪？</a> first appeared on <a href="https://dongdonggcp.com">東東 GCP 教學 - GCP 實戰講師</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://dongdonggcp.com/2026/07/29/cloud-jobs-comparison/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>容器 (Container) 技術是什麼？從零開始看懂 Docker 與容器化應用</title>
		<link>https://dongdonggcp.com/2026/07/29/what-is-container-technology-docker-guide/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=what-is-container-technology-docker-guide</link>
					<comments>https://dongdonggcp.com/2026/07/29/what-is-container-technology-docker-guide/#respond</comments>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Wed, 29 Jul 2026 08:19:58 +0000</pubDate>
				<category><![CDATA[無伺服器]]></category>
		<category><![CDATA[CI/CD]]></category>
		<category><![CDATA[Container]]></category>
		<category><![CDATA[DevOps]]></category>
		<category><![CDATA[Docker]]></category>
		<category><![CDATA[Kubernetes]]></category>
		<category><![CDATA[容器]]></category>
		<guid isPermaLink="false">https://dongdonggcp.com/?p=12323</guid>

					<description><![CDATA[<p>容器技術是一種將應用程式和其執行環境打包的技術，確保程式在不同環境中穩定運行。它比虛擬機更輕量和快速，是雲端開發的基石。Docker和Kubernetes使容器化的使用變得更簡單，適合微服務和CI/CD流程。</p>
<p>The post <a href="https://dongdonggcp.com/2026/07/29/what-is-container-technology-docker-guide/">容器 (Container) 技術是什麼？從零開始看懂 Docker 與容器化應用</a> first appeared on <a href="https://dongdonggcp.com">東東 GCP 教學 - GCP 實戰講師</a>.</p>]]></description>
										<content:encoded><![CDATA[<p class="wp-block-paragraph">容器技術是一種讓應用程式可以在任何環境中穩定執行的打包技術，不需要擔心「在我電腦上可以跑，你電腦上不行」的問題。</p>



<p class="wp-block-paragraph">它比虛擬機輕量、啟動快，是現代雲端開發的核心基礎。</p>



<p class="wp-block-paragraph">只要你理解它的概念，Docker、Kubernetes 這些詞就不會再讓你頭痛。</p>



<h3 class="wp-block-heading">容器技術的定義</h3>



<p class="wp-block-paragraph">一種「把應用程式和它需要的所有東西打包在一起」的技術，確保程式在任何環境都能穩定執行。</p>



<p class="wp-block-paragraph">這個「所有東西」包含：</p>



<ol class="wp-block-list">
<li>程式碼本身</li>



<li>執行環境 (不同程式需要的環境都不一樣)</li>



<li>相依套件 (像是函式庫 Library 或模組，沒有裝就不能順利跑起來，像 python 要處理資料就要再裝 pandas)</li>



<li>容器設定檔 (Dockerfile)</li>
</ol>



<p class="wp-block-paragraph">打包完之後，這個容器可以在任何支援容器的機器上執行。</p>



<p class="wp-block-paragraph">不管你的作業系統是 Ubuntu、CentOS 還是 Windows Server，甚至在你的 Mac 電腦，只要先裝好 Docker，同一個容器都可以順利跑起來。</p>



<h4 class="wp-block-heading">容器和「貨櫃」的關係：生活化比喻</h4>



<p class="wp-block-paragraph">容器的英文是 Container，這個字本來就是「貨櫃」的意思。</p>



<p class="wp-block-paragraph">以前船運貨物，每次都要重新裝箱、綁繩、確認尺寸，而每艘船、每個港口規格不同，搬運過程很容易出錯。</p>



<p class="wp-block-paragraph">貨櫃標準化之後，不管是船運、火車還是卡車，同一個貨櫃直接搬上去就能走，裡面的東西不需要重新整理。</p>



<p class="wp-block-paragraph">容器技術做的事情一模一樣：把你的應用程式裝進一個標準化的「盒子」，這個盒子搬到哪裡都能直接執行。</p>



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="551" src="https://dongdonggcp.com/wp-content/uploads/2026/07/從實體貨運到數位標準-容器-Container-的本質-1024x551.png" alt="" class="wp-image-12328" srcset="https://dongdonggcp.com/wp-content/uploads/2026/07/從實體貨運到數位標準-容器-Container-的本質-1024x551.png 1024w, https://dongdonggcp.com/wp-content/uploads/2026/07/從實體貨運到數位標準-容器-Container-的本質-300x161.png 300w, https://dongdonggcp.com/wp-content/uploads/2026/07/從實體貨運到數位標準-容器-Container-的本質-768x413.png 768w, https://dongdonggcp.com/wp-content/uploads/2026/07/從實體貨運到數位標準-容器-Container-的本質.png 1493w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">從實體貨運到數位標準 容器 (Container) 的本質</figcaption></figure>



<h4 class="wp-block-heading">容器技術解決了什麼問題？</h4>



<p class="wp-block-paragraph">在它出現之前，工程師最常遇到這個情境：</p>



<p class="wp-block-paragraph">開發環境裝的是 Python 3.8，測試環境是 Python 3.6，上線環境是 Python 3.11。</p>



<p class="wp-block-paragraph">程式在開發機跑得好好的，一到正式環境就報錯，花兩天找問題，最後發現程式根本沒寫錯，而是套件版本不對。</p>



<p class="wp-block-paragraph">容器從根本解決這個問題：開發、測試、上線用的是同一個容器映像檔，環境完全一致，不會出現版本差異。</p>



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="530" src="https://dongdonggcp.com/wp-content/uploads/2026/07/在我電腦上可以跑！！-1024x530.png" alt="" class="wp-image-12327" srcset="https://dongdonggcp.com/wp-content/uploads/2026/07/在我電腦上可以跑！！-1024x530.png 1024w, https://dongdonggcp.com/wp-content/uploads/2026/07/在我電腦上可以跑！！-300x155.png 300w, https://dongdonggcp.com/wp-content/uploads/2026/07/在我電腦上可以跑！！-768x398.png 768w, https://dongdonggcp.com/wp-content/uploads/2026/07/在我電腦上可以跑！！-1536x795.png 1536w, https://dongdonggcp.com/wp-content/uploads/2026/07/在我電腦上可以跑！！.png 1820w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">在我電腦上可以跑！！</figcaption></figure>



<h3 class="wp-block-heading">容器技術的運作原理</h3>



<h4 class="wp-block-heading">容器是怎麼隔離環境的？</h4>



<p class="wp-block-paragraph">容器使用 Linux 核心內建的兩個機制來做隔離：</p>



<ol class="wp-block-list">
<li><strong>Namespace</strong>：讓每個容器有自己的「視角」，容器 A 看不到容器 B 的處理程序、網路介面、檔案系統。</li>



<li><strong>Cgroups（Control Groups）</strong>：限制每個容器能用多少 CPU、記憶體、磁碟 I/O，避免一個容器把整台機器的資源吃光。</li>
</ol>



<p class="wp-block-paragraph">這兩個機制讓多個容器可以同時在同一台機器上執行，彼此不干擾，也不互搶資源。</p>



<p class="wp-block-paragraph">如果你是初學者來，不需要記住 Namespace 和 Cgroups 的細節。</p>



<p class="wp-block-paragraph">只要記住一件事：<strong>容器的隔離是靠作業系統核心直接支援的，不是靠模擬出另一台電腦</strong>。這就是容器比虛擬機輕量的根本原因。</p>



<h4 class="wp-block-heading">為什麼容器可以這麼輕量？</h4>



<p class="wp-block-paragraph">虛擬機要模擬一整台電腦，包含硬體層、作業系統、核心。</p>



<p class="wp-block-paragraph">光是一個虛擬機就要佔用 10–20 GB 的空間，啟動需要 30 秒到幾分鐘，所以開機才這麼慢。</p>



<p class="wp-block-paragraph">容器不模擬硬體，也不需要自己的作業系統核心，直接借用宿主機（Host）的 Linux 核心。</p>



<p class="wp-block-paragraph">一個容器映像檔大約只有 100–200 MB，啟動時間在 1–3 秒以內。</p>



<p class="wp-block-paragraph">這個差異在大規模部署時非常明顯：一台實體機器可能只能跑 10–20 個虛擬機，但可以輕鬆跑超過 100 個容器。</p>



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="549" src="https://dongdonggcp.com/wp-content/uploads/2026/07/容器-Container-輕量化的秘密-作業系統級別的隔離-1024x549.png" alt="" class="wp-image-12330" srcset="https://dongdonggcp.com/wp-content/uploads/2026/07/容器-Container-輕量化的秘密-作業系統級別的隔離-1024x549.png 1024w, https://dongdonggcp.com/wp-content/uploads/2026/07/容器-Container-輕量化的秘密-作業系統級別的隔離-300x161.png 300w, https://dongdonggcp.com/wp-content/uploads/2026/07/容器-Container-輕量化的秘密-作業系統級別的隔離-768x411.png 768w, https://dongdonggcp.com/wp-content/uploads/2026/07/容器-Container-輕量化的秘密-作業系統級別的隔離.png 1411w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">容器 (Container) 輕量化的秘密 作業系統級別的隔離</figcaption></figure>



<h4 class="wp-block-heading">容器映像檔（Image）是什麼？</h4>



<p class="wp-block-paragraph">容器映像檔（Image）是容器的「範本」，是一個唯讀的打包檔案，裡面包含程式碼和所有執行環境，用來啟動容器實例。</p>



<p class="wp-block-paragraph">「實例」這個名詞有點難解釋，你可以理解爲一臺虛擬的小電腦，隨時可以產生出來或刪除掉。</p>



<p class="wp-block-paragraph">你可以把 Image 想成「食譜」，容器是「用這份食譜做出來的菜」。</p>



<p class="wp-block-paragraph">同一份食譜可以做出很多份菜，同一個 Image 可以啟動很多個容器實例，彼此獨立、互不影響。</p>



<p class="wp-block-paragraph">你也可以把 Image 想成遊戲光碟片，那容器就是光碟片開始轉，裡面的遊戲檔被讀出來執行的樣子。</p>



<p class="wp-block-paragraph">Image 採用分層結構：</p>



<ol class="wp-block-list">
<li>底層是作業系統基礎（例如 Ubuntu slim）</li>



<li>上面一層是語言環境（例如 Node.js 18）</li>



<li>最上面才是你的應用程式</li>
</ol>



<p class="wp-block-paragraph">如果你第一次打包映像檔，它會先上網下載作業系統環境的相關檔案；然後第二層再下載你的程式語言所需要的環境檔案，以及一些相依性的套件。</p>



<p class="wp-block-paragraph">由於它每一層都可以快取 (暫存在你電腦裡面)，如果你的程式碼有改，更新容器只需要重新打包有變動的那層，不用再下載作業系統跟程式語言環境，效率很高。</p>



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="534" src="https://dongdonggcp.com/wp-content/uploads/2026/07/容器映像檔Image-唯讀的應用程式食譜-1024x534.png" alt="" class="wp-image-12331" srcset="https://dongdonggcp.com/wp-content/uploads/2026/07/容器映像檔Image-唯讀的應用程式食譜-1024x534.png 1024w, https://dongdonggcp.com/wp-content/uploads/2026/07/容器映像檔Image-唯讀的應用程式食譜-300x157.png 300w, https://dongdonggcp.com/wp-content/uploads/2026/07/容器映像檔Image-唯讀的應用程式食譜-768x401.png 768w, https://dongdonggcp.com/wp-content/uploads/2026/07/容器映像檔Image-唯讀的應用程式食譜.png 1437w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">容器映像檔 (Image) 唯讀的應用程式食譜</figcaption></figure>



<h3 class="wp-block-heading">容器 vs 虛擬機：哪裡不一樣？</h3>



<p class="wp-block-paragraph">容器（Container）和虛擬機（Virtual Machine，VM）都是用來隔離執行環境的技術，但架構完全不同：</p>



<p class="wp-block-paragraph">容器共用宿主機的 OS 核心，虛擬機則模擬出一整台獨立的電腦。這個差異直接決定了兩者在速度、體積和資源消耗上的巨大差距。 </p>



<h4 class="wp-block-heading">架構差異一次看懂</h4>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>比較項目</th><th>容器</th><th>虛擬機</th></tr></thead><tbody><tr><td>作業系統</td><td>共用宿主機核心</td><td>每個 VM 有自己的 OS</td></tr><tr><td>啟動時間</td><td>1–3 秒</td><td>30 秒–幾分鐘</td></tr><tr><td>映像檔大小</td><td>100–500 MB</td><td>10–40 GB</td></tr><tr><td>隔離程度</td><td>程序層隔離</td><td>完整硬體層隔離</td></tr><tr><td>資源消耗</td><td>低</td><td>高</td></tr><tr><td>移植性</td><td>高（跨平台執行）</td><td>中（依賴 Hypervisor）</td></tr></tbody></table></figure>



<h4 class="wp-block-heading">啟動速度與資源佔用的比較</h4>



<p class="wp-block-paragraph">容器啟動快，不是因為硬體更好，而是架構不同。</p>



<p class="wp-block-paragraph">虛擬機每次啟動的流程：</p>



<ol class="wp-block-list">
<li>初始化虛擬硬體</li>



<li>載入 BIOS</li>



<li>啟動 OS 核心</li>



<li>載入系統服務</li>



<li>才能執行你的程式</li>
</ol>



<p class="wp-block-paragraph">容器啟動的流程：</p>



<ol class="wp-block-list">
<li>在宿主機核心上建立隔離空間</li>



<li>載入映像檔</li>



<li>執行程式</li>
</ol>



<p class="wp-block-paragraph">跳過了模擬硬體和啟動 OS 這兩個最耗時的步驟，所以快。</p>



<p class="wp-block-paragraph">在資源佔用方面：一台 8 GB RAM 的伺服器，跑虛擬機時每個 VM 至少需要 1–2 GB RAM 給 OS 本身；</p>



<p class="wp-block-paragraph">跑容器時 OS 的 RAM 消耗幾乎為零，幾乎所有記憶體都給應用程式用。</p>



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="542" src="https://dongdonggcp.com/wp-content/uploads/2026/07/核心架構對決-為什麼容器能取代虛擬機-1024x542.png" alt="" class="wp-image-12329" srcset="https://dongdonggcp.com/wp-content/uploads/2026/07/核心架構對決-為什麼容器能取代虛擬機-1024x542.png 1024w, https://dongdonggcp.com/wp-content/uploads/2026/07/核心架構對決-為什麼容器能取代虛擬機-300x159.png 300w, https://dongdonggcp.com/wp-content/uploads/2026/07/核心架構對決-為什麼容器能取代虛擬機-768x406.png 768w, https://dongdonggcp.com/wp-content/uploads/2026/07/核心架構對決-為什麼容器能取代虛擬機.png 1429w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">核心架構對決 為什麼容器能取代虛擬機?</figcaption></figure>



<h4 class="wp-block-heading">什麼情況該用容器？什麼情況該用虛擬機？</h4>



<p class="wp-block-paragraph"><strong>適合容器的情況：</strong></p>



<ol class="wp-block-list">
<li>微服務架構，需要大量部署小型服務</li>



<li>CI/CD 流程，需要快速啟動、測試、銷毀環境</li>



<li>開發環境一致性，多人協作的專案</li>



<li>雲端部署，需要彈性擴充和縮減的應用程式</li>
</ol>



<p class="wp-block-paragraph"><strong>適合虛擬機的情況：</strong></p>



<ol class="wp-block-list">
<li>需要完整 OS 隔離（例如執行不信任的第三方程式）</li>



<li>Windows 應用程式（容器對 Windows 的支援較複雜）</li>



<li>需要模擬不同作業系統進行相容性測試</li>



<li>對安全隔離要求極高的金融或醫療系統</li>
</ol>



<p class="wp-block-paragraph">兩者不是非此即彼的關係。</p>



<p class="wp-block-paragraph">實際生產環境中，常見做法是：虛擬機作為底層基礎設施，容器在虛擬機上運行。</p>



<h3 class="wp-block-heading">Docker 容器：最主流的容器工具</h3>



<h4 class="wp-block-heading">Docker 是什麼？和容器的關係</h4>



<p class="wp-block-paragraph">容器技術這個概念在 Docker 之前就存在，但當時提供容器技術的廠商非常多，而且操作複雜、工具不統一，只有少數工程師會用。</p>



<p class="wp-block-paragraph">Docker 是目前最主流的容器工具，由 <a href="https://www.docker.com/" target="_blank" rel="noopener" title="">Docker</a> Inc. 於 2013 年發布。</p>



<p class="wp-block-paragraph">它讓開發者可以用簡單的指令打包、分發、執行容器，大幅降低容器技術的使用門檻。</p>



<p class="wp-block-paragraph">並且提供統一的指令介面、映像檔格式，以及 <a href="https://hub.docker.com/" target="_blank" rel="noopener" title="">Docker Hub</a> 這個映像檔共享平台。</p>



<p class="wp-block-paragraph">所以 Docker 幾乎一統江湖，成為容器技術的獨佔廠商。</p>



<p class="wp-block-paragraph"><strong>容器技術是概念，Docker </strong>則是<strong>最受歡迎的容器</strong>廠商。</p>



<p class="wp-block-paragraph">現在說「用容器部署」，90% 的情況都是在用 Docker 或基於 Docker 格式的工具。</p>



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="516" src="https://dongdonggcp.com/wp-content/uploads/2026/07/Docker-將複雜概念轉化為開發標準-1024x516.png" alt="" class="wp-image-12333" srcset="https://dongdonggcp.com/wp-content/uploads/2026/07/Docker-將複雜概念轉化為開發標準-1024x516.png 1024w, https://dongdonggcp.com/wp-content/uploads/2026/07/Docker-將複雜概念轉化為開發標準-300x151.png 300w, https://dongdonggcp.com/wp-content/uploads/2026/07/Docker-將複雜概念轉化為開發標準-768x387.png 768w, https://dongdonggcp.com/wp-content/uploads/2026/07/Docker-將複雜概念轉化為開發標準.png 1372w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">Docker: 將複雜概念轉化為開發標準</figcaption></figure>



<h4 class="wp-block-heading">Docker Hub：映像檔從哪裡來？</h4>



<p class="wp-block-paragraph">Docker Hub 是 Docker 官方的映像檔倉庫（Repository），可以把它想成「容器的 App Store」。</p>



<p class="wp-block-paragraph">想跑一個 <a href="https://hub.docker.com/hardened-images/catalog/dhi/mysql" target="_blank" rel="noopener" title="">MySQL</a> 資料庫？不需要自己安裝，一行指令就能從 Docker Hub 下載官方的 MySQL 映像檔，直接啟動。</p>



<p class="wp-block-paragraph">Docker Hub 上有超過 1,000 萬個映像檔，包含：</p>



<ul class="wp-block-list">
<li>各種語言的執行環境（<a href="https://hub.docker.com/hardened-images/catalog/dhi/python" target="_blank" rel="noopener" title="">Python</a>、<a href="https://hub.docker.com/hardened-images/catalog/dhi/node" target="_blank" rel="noopener" title="">Node.js</a>、Go）</li>



<li>資料庫（<a href="https://hub.docker.com/hardened-images/catalog/dhi/mysql" target="_blank" rel="noopener" title="">MySQL</a>、<a href="https://hub.docker.com/hardened-images/catalog/dhi/postgres" target="_blank" rel="noopener" title="">PostgreSQL</a>、<a href="https://hub.docker.com/hardened-images/catalog/dhi/redis" target="_blank" rel="noopener" title="">Redis</a>）</li>



<li>Web 伺服器（<a href="https://hub.docker.com/hardened-images/catalog/dhi/nginx" target="_blank" rel="noopener" title="">Nginx</a>、<a href="https://hub.docker.com/_/httpd" target="_blank" rel="noopener" title="">Apache</a>）</li>
</ul>



<p class="wp-block-paragraph">你也可以把自己打包好的映像檔推上去，私有或公開都支援。</p>



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="718" src="https://dongdonggcp.com/wp-content/uploads/2026/07/Docker-Hub-1024x718.png" alt="" class="wp-image-12334" srcset="https://dongdonggcp.com/wp-content/uploads/2026/07/Docker-Hub-1024x718.png 1024w, https://dongdonggcp.com/wp-content/uploads/2026/07/Docker-Hub-300x210.png 300w, https://dongdonggcp.com/wp-content/uploads/2026/07/Docker-Hub-768x539.png 768w, https://dongdonggcp.com/wp-content/uploads/2026/07/Docker-Hub.png 1430w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">Docker 官方的映像檔倉庫（Repository）Docker Hub</figcaption></figure>



<h4 class="wp-block-heading">用 Docker 跑第一個容器：3 個步驟</h4>



<p class="wp-block-paragraph">假設你已經安裝好 Docker，跑第一個 Docker 容器只需要：</p>



<ol class="wp-block-list">
<li>開啟終端機，輸入 <code>docker pull nginx</code>，從 Docker Hub 下載 Nginx 的映像檔</li>



<li>輸入 <code>docker run -d -p 8080:80 nginx</code>，啟動容器並把 8080 port 對應到容器內的 80 port</li>



<li>開啟瀏覽器，前往 <code>http://localhost:8080</code>，看到 Nginx 歡迎頁面就代表成功</li>
</ol>



<p class="wp-block-paragraph">從下載到執行，整個過程在 30 秒內完成。你不需要安裝、設定 Nginx，只要這三步就有一個完整運行的 Web 伺服器。這就是 Docker 容器改變開發流程的地方。</p>



<h3 class="wp-block-heading">Kubernetes 容器編排：容器多了之後怎麼管？</h3>



<h4 class="wp-block-heading">為什麼需要 Kubernetes？</h4>



<p class="wp-block-paragraph">3–5 個容器，Docker 指令就夠用。300 個容器分散在 20 台伺服器上，Docker 指令完全不夠用。你需要解決：</p>



<ul class="wp-block-list">
<li>某個容器掛掉，要怎麼自動重啟？</li>



<li>流量暴增，要怎麼自動增加容器數量？</li>



<li>新版本要怎麼在不停機的情況下更新？</li>



<li>20 台伺服器的資源要怎麼統一分配？</li>
</ul>



<p class="wp-block-paragraph">這些問題就是「容器編排」要解決的事。</p>



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="568" src="https://dongdonggcp.com/wp-content/uploads/2026/07/從單一容器到艦隊管理-規模化的挑戰-1024x568.png" alt="" class="wp-image-12335" srcset="https://dongdonggcp.com/wp-content/uploads/2026/07/從單一容器到艦隊管理-規模化的挑戰-1024x568.png 1024w, https://dongdonggcp.com/wp-content/uploads/2026/07/從單一容器到艦隊管理-規模化的挑戰-300x167.png 300w, https://dongdonggcp.com/wp-content/uploads/2026/07/從單一容器到艦隊管理-規模化的挑戰-768x426.png 768w, https://dongdonggcp.com/wp-content/uploads/2026/07/從單一容器到艦隊管理-規模化的挑戰.png 1409w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">從單一容器到艦隊管理 規模化的挑戰</figcaption></figure>



<p class="wp-block-paragraph"><a href="https://kubernetes.io/" target="_blank" rel="noopener" title="">Kubernetes</a>（簡稱 K8s）是目前最主流的容器編排平台，由 Google 於 2014 年開源，現在由 <a href="https://www.cncf.io/" target="_blank" rel="noopener" title="">CNCF</a>（雲端原生運算基金會）維護，是大規模容器化應用的業界標準。</p>



<h4 class="wp-block-heading">Kubernetes 和 Docker 的分工</h4>



<p class="wp-block-paragraph">Docker 負責：<strong>建立和執行單個容器</strong>。</p>



<p class="wp-block-paragraph">Kubernetes 負責：<strong>管理大量容器的生命週期</strong>，包含排程、擴縮、自我修復、網路和儲存配置。</p>



<p class="wp-block-paragraph">兩者是互補關係，不是競爭關係。在大多數生產環境中，Kubernetes 會呼叫容器執行時（Container Runtime）來實際啟動和停止容器，Docker 就是最常見的容器執行時之一。</p>



<h4 class="wp-block-heading">容器編排解決的三個核心問題</h4>



<p class="wp-block-paragraph">Kubernetes 解決了容器規模化之後最常見的三個痛點：</p>



<ol class="wp-block-list">
<li><strong>自我修復（Self-healing）</strong>：容器掛掉，Kubernetes 在幾秒內自動重新啟動，不需要人工介入</li>



<li><strong>水平擴展（Horizontal Scaling）</strong>：CPU 使用率超過 80% 時，Kubernetes 自動新增容器副本；流量下降後自動縮減，節省成本</li>



<li><strong>滾動更新（Rolling Update）</strong>：新版本部署時，Kubernetes 逐步替換舊容器，零停機時間，出問題可以一鍵回滾到上一版</li>
</ol>



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="527" src="https://dongdonggcp.com/wp-content/uploads/2026/07/Kubernetes-K8s-現代容器編排-管理-的業界標準-1024x527.png" alt="" class="wp-image-12336" srcset="https://dongdonggcp.com/wp-content/uploads/2026/07/Kubernetes-K8s-現代容器編排-管理-的業界標準-1024x527.png 1024w, https://dongdonggcp.com/wp-content/uploads/2026/07/Kubernetes-K8s-現代容器編排-管理-的業界標準-300x154.png 300w, https://dongdonggcp.com/wp-content/uploads/2026/07/Kubernetes-K8s-現代容器編排-管理-的業界標準-768x395.png 768w, https://dongdonggcp.com/wp-content/uploads/2026/07/Kubernetes-K8s-現代容器編排-管理-的業界標準.png 1401w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">Kubernetes (K8s) 現代容器編排 (管理) 的業界標準</figcaption></figure>



<h3 class="wp-block-heading">容器技術的實際應用場景</h3>



<h4 class="wp-block-heading">開發環境一致性：再也不會「我電腦上可以跑」</h4>



<p class="wp-block-paragraph">這是最直接、最普遍的應用場景。</p>



<p class="wp-block-paragraph">10 人的開發團隊，每個人的電腦環境都不一樣：Windows、macOS、不同版本的 Linux，不同版本的 Node.js、Python、資料庫。</p>



<p class="wp-block-paragraph">用容器技術，把開發環境定義在一個 <code>docker-compose.yml</code> 檔案中。新成員加入團隊，執行一個指令就能啟動和資深工程師完全相同的開發環境，從加入到開始寫程式只需要 15 分鐘，而不是過去光設定環境就要花一整天的「環境設定地獄」。</p>



<h4 class="wp-block-heading">微服務架構與容器化應用</h4>



<p class="wp-block-paragraph">微服務架構是把一個大型應用程式拆成很多個小型、獨立的服務，每個服務負責一個功能，可以獨立開發、部署、擴展。容器化應用是微服務架構的最佳搭配：每個微服務打包成一個容器，可以用不同的程式語言撰寫、獨立部署、獨立擴展。 </p>



<p class="wp-block-paragraph">舉個例子：一個電商平台有訂單服務、庫存服務、推薦系統、金流服務各自獨立。促銷期間推薦系統需要大量 CPU，你可以只針對推薦系統的容器擴展，不需要把整個平台都擴展，省下大量成本。</p>



<h4 class="wp-block-heading">CI/CD 流程中的容器角色</h4>



<p class="wp-block-paragraph">CI/CD（持續整合 / 持續交付）是現代軟體開發的標準流程：工程師提交程式碼後，自動執行測試、打包、部署，不需要人工介入。</p>



<p class="wp-block-paragraph">容器在 CI/CD 流程中扮演關鍵角色：</p>



<ol class="wp-block-list">
<li>測試環境用容器啟動，每次測試都在乾淨的環境中執行，不受之前測試殘留的狀態影響</li>



<li>打包成容器映像檔，確保開發、測試、正式環境用完全相同的產物</li>



<li>部署時直接替換容器，速度快、可回滾，比傳統部署方式風險低很多</li>
</ol>



<h3 class="wp-block-heading">容器技術的限制與常見誤解</h3>



<h4 class="wp-block-heading">容器不是萬能的：三種不適合用容器的情境</h4>



<p class="wp-block-paragraph">它很強，但不是所有情境都適合：</p>



<ol class="wp-block-list">
<li><strong>需要 GUI 的桌面應用程式</strong>：容器設計上是無頭（Headless）的，跑有圖形介面的軟體需要額外設定</li>



<li><strong>需要直接存取硬體的應用程式</strong>：例如需要存取特定 GPU、USB 裝置，容器的隔離層會增加複雜度</li>



<li><strong>狀態複雜的單體式舊系統（Legacy System）</strong>：把有幾十年歷史的大型系統容器化，往往需要大量改寫，成本超過效益</li>
</ol>



<p class="wp-block-paragraph">容器技術最適合「雲端原生（Cloud Native）」的應用程式——從設計之初就考慮到分散式部署、無狀態、水平擴展的架構。</p>



<h4 class="wp-block-heading">容器安全性：常見疑慮與對應做法</h4>



<p class="wp-block-paragraph">容器的隔離比虛擬機弱——這是事實，但不代表容器不安全。</p>



<p class="wp-block-paragraph">常見的安全疑慮和對應做法：</p>



<ol class="wp-block-list">
<li><strong>容器逃逸（Container Escape）</strong>：攻擊者從容器內部突破隔離，存取宿主機。<br>對應方式：不以 root 身分執行容器、定期更新容器映像檔、使用 Seccomp 和 AppArmor 限制系統呼叫</li>



<li><strong>映像檔安全性</strong>：從 Docker Hub 下載的映像檔可能包含漏洞或惡意程式。<br>對應方式：只使用官方映像檔或自建基礎映像、在 CI/CD 流程中加入映像檔掃描（例如 Trivy、Snyk）</li>



<li><strong>密鑰管理</strong>：不要把密碼、API Key 直接寫進映像檔。<br>對應方式：使用 Kubernetes Secret 或 HashiCorp Vault 管理敏感資訊</li>
</ol>



<p class="wp-block-paragraph">容器安全是可以管理的問題，只要遵守基本的安全實踐，風險完全在可接受的範圍內。</p>



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="554" src="https://dongdonggcp.com/wp-content/uploads/2026/07/技術界線與安全防護-容器並非萬靈丹-1-1024x554.png" alt="" class="wp-image-12339" srcset="https://dongdonggcp.com/wp-content/uploads/2026/07/技術界線與安全防護-容器並非萬靈丹-1-1024x554.png 1024w, https://dongdonggcp.com/wp-content/uploads/2026/07/技術界線與安全防護-容器並非萬靈丹-1-300x162.png 300w, https://dongdonggcp.com/wp-content/uploads/2026/07/技術界線與安全防護-容器並非萬靈丹-1-768x416.png 768w, https://dongdonggcp.com/wp-content/uploads/2026/07/技術界線與安全防護-容器並非萬靈丹-1.png 1365w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">技術界線與安全防護 容器並非萬靈丹</figcaption></figure>



<h3 class="wp-block-heading">學容器的建議路徑</h3>



<h4 class="wp-block-heading">從 Docker 開始還是從概念開始？</h4>



<p class="wp-block-paragraph">建議先從概念開始，再動手。</p>



<p class="wp-block-paragraph">很多人第一步就打開終端機跑 Docker 指令，結果遇到錯誤不知道為什麼，也不知道自己在做什麼，很快就放棄。</p>



<p class="wp-block-paragraph">理解「容器是什麼、解決什麼問題、和虛擬機有什麼差別」之後，再開始動手，每一個指令都有清楚的脈絡，遇到問題也更容易判斷方向。</p>



<h4 class="wp-block-heading">推薦的學習順序與資源</h4>



<p class="wp-block-paragraph">從零開始學容器技術，建議依這個順序：</p>



<ol class="wp-block-list">
<li><strong>理解概念</strong>：搞清楚容器 vs 虛擬機、Image vs 容器的關係（本文就是起點）</li>



<li><strong>安裝 Docker Desktop</strong>：官網提供 <a href="https://docs.docker.com/desktop/setup/install/windows-install/" target="_blank" rel="noopener" title="">Windows</a> 和 <a href="https://docs.docker.com/desktop/setup/install/mac-install/" target="_blank" rel="noopener" title="">macOS</a> 的圖形化安裝包，10 分鐘內完成</li>



<li><strong>跑第一個容器</strong>：用 <code>docker run hello-world</code> 確認環境正常，再跑 Nginx 或 Python 應用程式</li>



<li><strong>學習 Dockerfile</strong>：學會自己撰寫 Dockerfile，把自己的應用程式打包成映像檔</li>



<li><strong>學習 Docker Compose</strong>：用 YAML 檔案定義多容器環境，例如「應用程式 + 資料庫」的組合</li>



<li><strong>入門 Kubernetes</strong>：理解 Docker 之後再學 K8s，不要跳過 Docker 直接學 K8s</li>
</ol>



<p class="wp-block-paragraph">每個階段大約需要 1–2 週，有實作練習的情況下，2–3 個月可以達到在工作中使用容器技術的基本水準。</p>



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="545" src="https://dongdonggcp.com/wp-content/uploads/2026/07/零基礎實戰路徑-從概念到生產力-1024x545.png" alt="" class="wp-image-12340" srcset="https://dongdonggcp.com/wp-content/uploads/2026/07/零基礎實戰路徑-從概念到生產力-1024x545.png 1024w, https://dongdonggcp.com/wp-content/uploads/2026/07/零基礎實戰路徑-從概念到生產力-300x160.png 300w, https://dongdonggcp.com/wp-content/uploads/2026/07/零基礎實戰路徑-從概念到生產力-768x409.png 768w, https://dongdonggcp.com/wp-content/uploads/2026/07/零基礎實戰路徑-從概念到生產力.png 1419w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">零基礎實戰路徑 從概念到生產力</figcaption></figure>



<h3 class="wp-block-heading">結語：容器技術值得學嗎？</h3>



<p class="wp-block-paragraph">值得，而且越早學越好。</p>



<p class="wp-block-paragraph">容器技術已經不是「進階技能」，而是現代後端工程師和 DevOps 工程師的基本配備。</p>



<p class="wp-block-paragraph">人才需求中出現 Docker、Kubernetes 的頻率，在過去五年內增加了超過三倍。</p>



<p class="wp-block-paragraph">從理解容器的概念開始，裝好 Docker，跑幾個練習專案，這樣就夠了。Kubernetes 和進階的容器編排，等你對容器有基本掌握之後再學，不會太晚。</p>



<p class="wp-block-paragraph">容器技術的學習曲線在前兩週最陡，一旦度過那段，後面會越來越順。</p>



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="512" src="https://dongdonggcp.com/wp-content/uploads/2026/07/容器化已非進階選項-而是現代雲端的必備基石-1024x512.png" alt="" class="wp-image-12341" srcset="https://dongdonggcp.com/wp-content/uploads/2026/07/容器化已非進階選項-而是現代雲端的必備基石-1024x512.png 1024w, https://dongdonggcp.com/wp-content/uploads/2026/07/容器化已非進階選項-而是現代雲端的必備基石-300x150.png 300w, https://dongdonggcp.com/wp-content/uploads/2026/07/容器化已非進階選項-而是現代雲端的必備基石-768x384.png 768w, https://dongdonggcp.com/wp-content/uploads/2026/07/容器化已非進階選項-而是現代雲端的必備基石-1536x768.png 1536w, https://dongdonggcp.com/wp-content/uploads/2026/07/容器化已非進階選項-而是現代雲端的必備基石.png 1821w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">容器化已非進階選項, 而是現代雲端的必備基石</figcaption></figure>



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



<h3 class="wp-block-heading">常見問題（FAQ）</h3>



<p class="wp-block-paragraph"><strong>Q1：容器技術是什麼？用一句話說明。</strong><br>A：容器技術是一種把應用程式和它的執行環境打包在一起的技術，確保程式在任何機器上都能穩定執行，不受底層作業系統差異影響。<br>它比虛擬機輕量、啟動更快，是現代雲端部署的核心基礎。<br>尤其是它在開發、測試、上線環境完全一致，是容器技術解決的最核心問題。</p>



<p class="wp-block-paragraph"><strong>Q2：一個容器可以同時跑多個應用程式嗎？</strong><br>A：技術上可以，但不建議。容器的設計哲學是「一個容器、一個程序」，這樣才能充分發揮容器的輕量性和獨立性。<br>如果你需要跑多個應用程式，應該用多個容器，再用 Docker Compose 或 Kubernetes 讓它們協同工作。</p>



<p class="wp-block-paragraph"><strong>Q3：容器和 Serverless 有什麼關係？</strong><br>A：Serverless（如 AWS Lambda、GCP Cloud Functions）是更高階的抽象，你不需要管理伺服器或容器，只要上傳函數程式碼就好。<br>但實際上，很多 Serverless 平台的底層就是用容器技術來隔離和執行函數，只是這個細節被平台隱藏起來了。<br>最有名的就是 <a href="https://dongdonggcp.com/2025/07/20/cloud-run-tutorials/" target="_blank" rel="noopener" title="">Cloud Run</a>，它可以直接讓你的容器跑起來。</p>



<p class="wp-block-paragraph"><strong>Q4：Docker 和 Podman 有什麼差別？</strong><br>A：Podman 是 Red Hat 推出的容器工具，最大差別是不需要常駐的 Daemon（背景服務），以及預設不需要 root 權限執行，安全性稍高。<br>指令格式和 Docker 幾乎完全相同，可以直接替換使用。<br>對初學者來說，先學 Docker 就好，兩者概念完全通用。Podman 知名度低很多。</p>



<p class="wp-block-paragraph"><strong>Q5：容器映像檔更新了，跑起來的容器會自動更新嗎？</strong><br>A：不會。已經在跑的容器使用的是啟動時的映像檔版本，不會自動套用新映像檔。<br>你需要停止舊容器、拉取新映像檔、再啟動新容器。<br>這也是為什麼 Kubernetes 的滾動更新（Rolling Update）功能很重要，它可以幫你自動完成這個過程，而且不停機。</p>



<p class="wp-block-paragraph"><strong>Q6：容器的資料存放在哪裡？容器刪掉資料會不見嗎？</strong><br>A：預設情況下，容器內部產生的資料在容器刪除後就消失了。這是容器「無狀態」設計的一部分。如果你需要持久保存資料（例如資料庫的資料），要使用 Volume（磁碟掛載），把資料存在宿主機的指定路徑，容器刪除後資料仍然存在。</p>



<p class="wp-block-paragraph"><strong>Q7：學容器技術需要先學 Linux 嗎？</strong><br>A：不需要精通，但需要基本熟悉。你需要能看懂基本的 Linux 指令（ls、cd、cat、chmod）、了解檔案系統結構，以及知道什麼是 Port 和環境變數。<br>如果這些概念對你完全陌生，建議先花 1–2 週補一下 Linux 基礎，之後學容器技術會順很多。</p>



<p class="wp-block-paragraph"><strong>Q8：免費使用 Docker 有限制嗎？</strong><br>A：Docker Desktop（桌面版）對個人使用和小型公司（員工數少於 250 人、年營收低於 1,000 萬美元）免費。超過這個規模需要付費訂閱。<br>Docker Engine（命令列版本，在 Linux 伺服器上使用）則是完全免費且開源的。Docker Hub 免費帳號有 Image 下載次數限制，付費帳號則無限制。</p>



<p class="wp-block-paragraph"><strong>Q9：GCP、AWS、Azure 上的容器服務有什麼差別？</strong><br>A：三大雲端平台都提供託管的 Kubernetes 服務：GCP 是 <a href="https://dongdonggcp.com/2025/07/20/google-kubernetes-engine-tutorials/" target="_blank" rel="noopener" title="">GKE（Google Kubernetes Engine）</a>、AWS 是 EKS（Elastic Kubernetes Service）、Azure 是 AKS（Azure Kubernetes Service）。<br>三者核心功能相似，差異在於和各自雲端生態系的整合程度。GKE 因為 Kubernetes 本身就是 Google 開發的，整合度和功能被認為是最成熟的。</p>



<p class="wp-block-paragraph"><strong>Q10：公司說要「容器化」現有的系統，這有多難？</strong><br>A：難度差異很大，取決於現有系統的架構。<br>如果是相對現代的應用程式（有明確的相依套件清單、設定可以用環境變數注入），架構清晰的應用程式， 1–3 週就能完成基礎版本。<br>如果是有幾十年歷史的大型單體式系統，深度依賴特定硬體或作業系統功能，容器化可能需要數個月甚至不值得做。<br>建議先評估系統架構，再決定是否容器化以及容器化的範圍，有可能需要大幅的更動甚至重寫程式碼。</p>



<p class="wp-block-paragraph"></p><p>The post <a href="https://dongdonggcp.com/2026/07/29/what-is-container-technology-docker-guide/">容器 (Container) 技術是什麼？從零開始看懂 Docker 與容器化應用</a> first appeared on <a href="https://dongdonggcp.com">東東 GCP 教學 - GCP 實戰講師</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://dongdonggcp.com/2026/07/29/what-is-container-technology-docker-guide/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Kubernetes 是什麼？白話解釋 + 判斷你是否真的需要它</title>
		<link>https://dongdonggcp.com/2026/07/21/what-is-kubernetes/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=what-is-kubernetes</link>
					<comments>https://dongdonggcp.com/2026/07/21/what-is-kubernetes/#respond</comments>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Tue, 21 Jul 2026 06:46:13 +0000</pubDate>
				<category><![CDATA[Google Kubernetes Engine]]></category>
		<category><![CDATA[Docker]]></category>
		<category><![CDATA[GKE]]></category>
		<category><![CDATA[K8s]]></category>
		<category><![CDATA[Kubernetes]]></category>
		<category><![CDATA[容器]]></category>
		<category><![CDATA[容器編排]]></category>
		<guid isPermaLink="false">https://dongdonggcp.com/?p=12244</guid>

					<description><![CDATA[<p>Kubernetes 是一套開源的容器管 [&#8230;]</p>
<p>The post <a href="https://dongdonggcp.com/2026/07/21/what-is-kubernetes/">Kubernetes 是什麼？白話解釋 + 判斷你是否真的需要它</a> first appeared on <a href="https://dongdonggcp.com">東東 GCP 教學 - GCP 實戰講師</a>.</p>]]></description>
										<content:encoded><![CDATA[<p class="wp-block-paragraph"><a href="https://kubernetes.io/" target="_blank" rel="noopener" title="">Kubernetes</a> 是一套開源的容器管理平台，專門用來自動化管理大量容器化應用程式的部署、擴展與故障恢復。服務數量少於 5 個時不需要它；當服務超過 5 個、彼此有依賴關係，而且不好管理，Kubernetes 就是讓你不用半夜手動救火的關鍵工具。</p>



<p class="wp-block-paragraph">這篇文章從「你的系統規模」出發，帶你判斷 Kubernetes 是什麼、解決什麼問題，以及你現在是否真的需要學它。</p>



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



<h3 class="wp-block-heading">Kubernetes 是什麼？一句話先說清楚</h3>



<p class="wp-block-paragraph">Kubernetes 是一套容器編排（Container Orchestration）系統，讓你可以用一套統一的方式，管理跑在不同機器上的幾十甚至幾百個容器，包含自動部署、自動重啟、自動擴展、流量路由，全部都能自動化處理。 </p>



<p class="wp-block-paragraph">容器編排的意思是：當你的應用程式被打包成容器之後，你需要有人負責「指揮」這些容器在什麼機器上跑、出問題時怎麼處理、流量大的時候要不要多開幾個。</p>



<p class="wp-block-paragraph">Kubernetes 就是扮演這個「指揮家」的角色。</p>



<h4 class="wp-block-heading">K8s 這個縮寫怎麼來的</h4>



<p class="wp-block-paragraph">你在技術文章裡看到「K8s」，指的就是 Kubernetes。</p>



<p class="wp-block-paragraph">縮寫的由來很簡單：Kubernetes 這個字在 K 和 s 之間剛好有 8 個字母（ubernete），所以工程師直接縮寫成 K8s。</p>



<p class="wp-block-paragraph">這個命名方式在技術圈很常見，例如 i18n 代表 internationalization（i 和 n 之間有 18 個字母）。</p>



<p class="wp-block-paragraph">往後你在搜尋資料、看文件的時候，K8s 和 Kubernetes 指的完全是同一件事，可以互換使用。</p>



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="565" src="https://dongdonggcp.com/wp-content/uploads/2026/07/Kubernetes-K8s-1024x565.png" alt="" class="wp-image-12245" srcset="https://dongdonggcp.com/wp-content/uploads/2026/07/Kubernetes-K8s-1024x565.png 1024w, https://dongdonggcp.com/wp-content/uploads/2026/07/Kubernetes-K8s-300x166.png 300w, https://dongdonggcp.com/wp-content/uploads/2026/07/Kubernetes-K8s-768x424.png 768w, https://dongdonggcp.com/wp-content/uploads/2026/07/Kubernetes-K8s.png 1167w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">Kubernetes K8s</figcaption></figure>



<h4 class="wp-block-heading">Kubernetes 和 Docker 的差別：不是競爭，是合作</h4>



<p class="wp-block-paragraph">這是新手最常搞混的一個問題。</p>



<p class="wp-block-paragraph"><a href="https://www.docker.com/" target="_blank" rel="noopener" title="">Docker</a> 是用來「建立和執行單一容器」的工具。你用 Dockerfile 定義應用程式環境，用 <code>docker run</code> 把容器跑起來，就這樣。</p>



<p class="wp-block-paragraph">PS. <a href="https://dongdonggcp.com/2026/07/29/what-is-container-technology-docker-guide/" target="_blank" rel="noopener" title="">容器 (Container)</a> 是一種技術，而在這個技術上出現非常多「廠商」，Docker 是巿佔率最高的一家，因為巿佔率太高了，所以大家很容易把 Docker 等同於 Container。</p>



<p class="wp-block-paragraph">Kubernetes 則是用來「管理一大群容器」的平台。它自己不負責建立容器，而是依賴 Docker（或其他容器執行環境）把容器跑起來，然後在上面做調度、監控、擴展。</p>



<p class="wp-block-paragraph">換句話說：Docker 是廚師，負責做出一道菜；Kubernetes 是餐廳的排班系統，負責決定今天要幾個廚師上班、哪個廚師負責哪個爐台、某個廚師請假時要怎麼補位。</p>



<p class="wp-block-paragraph">兩者分工不同，實際上是一起搭配運作的。</p>



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="540" src="https://dongdonggcp.com/wp-content/uploads/2026/07/Kubernetes-和-Docker-的關係-1024x540.png" alt="" class="wp-image-12246" srcset="https://dongdonggcp.com/wp-content/uploads/2026/07/Kubernetes-和-Docker-的關係-1024x540.png 1024w, https://dongdonggcp.com/wp-content/uploads/2026/07/Kubernetes-和-Docker-的關係-300x158.png 300w, https://dongdonggcp.com/wp-content/uploads/2026/07/Kubernetes-和-Docker-的關係-768x405.png 768w, https://dongdonggcp.com/wp-content/uploads/2026/07/Kubernetes-和-Docker-的關係.png 1398w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">Kubernetes 和 Docker 的關係</figcaption></figure>



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



<h3 class="wp-block-heading">沒有 Kubernetes 之前，工程師怎麼管容器？</h3>



<h4 class="wp-block-heading">單一容器的時代：在虛擬機上跑</h4>



<p class="wp-block-paragraph">當你的應用程式只有一個服務，例如一個 API 或一個網站，你根本不需要 Kubernetes，你可以直接在原有的虛擬機器上跑。</p>



<p class="wp-block-paragraph">因為環境很單純，容器就像一個更小的虛擬器，可以直接 SSH 連進去做各種管理工作。</p>



<p class="wp-block-paragraph">而在 GCP 上，<a href="https://dongdonggcp.com/2025/07/20/cloud-run-tutorials/" title="">Cloud Run</a> 就能幫你把單一容器跑起來，自動處理 HTTPS、自動擴展、用多少付多少，設定時間不超過 10 分鐘。</p>



<p class="wp-block-paragraph">這個階段引入 Kubernetes 反而是過度工程，徒增複雜度。很多團隊在這個階段就已經運作得很好，完全不需要 K8s。</p>



<h4 class="wp-block-heading">系統變複雜之後，手動管理的三個痛點</h4>



<p class="wp-block-paragraph">當系統從 1 個服務成長到 5 個、10 個服務之後，手動管理容器會出現三個具體問題：</p>



<ol class="wp-block-list">
<li><strong>故障處理靠人工</strong>：某個容器因為記憶體不足崩潰，你必須自己登入伺服器、手動重啟。如果是凌晨三點發生，就要凌晨三點爬起來。</li>



<li><strong>流量暴增應變慢</strong>：當某個服務突然湧入大量流量，你要手動判斷要多開幾個容器實例、在哪台機器上開、開完之後流量要怎麼導過去，每一步都是手動作業。</li>



<li><strong>服務間通訊難維護</strong>：A 服務要找 B 服務，B 服務的 IP 在容器重啟後會改變，你要手動更新設定檔。這個問題在服務數量超過 5 個之後會變得非常頻繁。</li>
</ol>



<p class="wp-block-paragraph">這三個痛點，就是 Kubernetes 出現要解決的核心問題。 </p>



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="413" src="https://dongdonggcp.com/wp-content/uploads/2026/07/使用-Kubernetes-的情境v2-1024x413.png" alt="" class="wp-image-12247" srcset="https://dongdonggcp.com/wp-content/uploads/2026/07/使用-Kubernetes-的情境v2-1024x413.png 1024w, https://dongdonggcp.com/wp-content/uploads/2026/07/使用-Kubernetes-的情境v2-300x121.png 300w, https://dongdonggcp.com/wp-content/uploads/2026/07/使用-Kubernetes-的情境v2-768x310.png 768w, https://dongdonggcp.com/wp-content/uploads/2026/07/使用-Kubernetes-的情境v2-1536x620.png 1536w, https://dongdonggcp.com/wp-content/uploads/2026/07/使用-Kubernetes-的情境v2.png 1814w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">使用 Kubernetes 的情境</figcaption></figure>



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



<h3 class="wp-block-heading">Kubernetes 解決了什麼問題？</h3>



<h4 class="wp-block-heading">自動重啟：容器掛掉不用半夜爬起來</h4>



<p class="wp-block-paragraph">Kubernetes 持續監控每一個容器的健康狀態。</p>



<p class="wp-block-paragraph">當某個容器因為程式錯誤、記憶體溢出或其他原因停止回應時，Kubernetes 會在 30 秒內自動偵測到異常，並在同一台或另一台節點上重新啟動一個新的容器來替代它。</p>



<p class="wp-block-paragraph">整個過程不需要人工介入。對使用者來說，服務中斷的時間可以壓縮到幾秒鐘以內，而不是「等工程師醒來處理」的幾十分鐘。</p>



<h4 class="wp-block-heading">自動擴展：流量暴增時不用手動加機器</h4>



<p class="wp-block-paragraph">Kubernetes 的 Horizontal Pod Autoscaler（水平自動擴展，簡稱 HPA）是一套根據指標自動調整容器執行數量的機制，可以根據 CPU 使用率或自定義指標，自動增加或減少容器的執行數量。</p>



<p class="wp-block-paragraph">例如你設定「當 CPU 使用率超過 70% 時，自動增加容器數量」，Kubernetes 就會在流量高峰時自動擴展，在流量退去後自動縮減。</p>



<p class="wp-block-paragraph">這個功能讓你不需要在流量高峰前手動預估資源、提前擴容，也不用擔心流量退潮後忘記縮容浪費費用。</p>



<h4 class="wp-block-heading">服務發現：多個服務之間怎麼找到彼此</h4>



<p class="wp-block-paragraph">在傳統部署方式下，服務 A 要連線到服務 B，需要知道服務 B 的 IP 位址。</p>



<p class="wp-block-paragraph">但容器每次重啟後 IP 都會改變，這讓服務間的連線設定變成一場惡夢。</p>



<p class="wp-block-paragraph">Kubernetes 用「Service」物件解決了這個問題。每個服務都有一個固定的 <a href="https://dongdonggcp.com/2025/11/19/what-is-dns-domain-name-system-guide/" target="_blank" rel="noopener" title="">DNS</a> 名稱，例如 <code>user-service.default.svc.cluster.local</code>，不管後面的容器 IP 怎麼變，這個 DNS 名稱永遠有效。</p>



<p class="wp-block-paragraph">服務 A 只要用這個名稱呼叫服務 B，Kubernetes 自動幫你把請求導到正確的容器上。</p>



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="534" src="https://dongdonggcp.com/wp-content/uploads/2026/07/Kubernetes-解決了什麼問題？自動重啟、自動擴展和服務發現-1024x534.png" alt="" class="wp-image-12248" srcset="https://dongdonggcp.com/wp-content/uploads/2026/07/Kubernetes-解決了什麼問題？自動重啟、自動擴展和服務發現-1024x534.png 1024w, https://dongdonggcp.com/wp-content/uploads/2026/07/Kubernetes-解決了什麼問題？自動重啟、自動擴展和服務發現-300x156.png 300w, https://dongdonggcp.com/wp-content/uploads/2026/07/Kubernetes-解決了什麼問題？自動重啟、自動擴展和服務發現-768x400.png 768w, https://dongdonggcp.com/wp-content/uploads/2026/07/Kubernetes-解決了什麼問題？自動重啟、自動擴展和服務發現.png 1508w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">Kubernetes 解決了什麼問題？自動重啟、自動擴展和服務發現</figcaption></figure>



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



<h3 class="wp-block-heading">你需要 Kubernetes 嗎？用系統規模來判斷</h3>



<h4 class="wp-block-heading">情境一：單一服務、流量穩定 → 不需要</h4>



<p class="wp-block-paragraph">如果你的系統只有 1 到 3 個獨立服務，彼此之間沒有複雜的依賴關係，流量也相對穩定，引入 Kubernetes 只會讓你多花時間在維護基礎設施，而不是開發功能。</p>



<p class="wp-block-paragraph">這個階段最適合的工具是 Cloud Run（GCP）、App Engine，或者是最單純的 Compute Engine VM。</p>



<p class="wp-block-paragraph">設定快、成本低、出問題好追蹤。</p>



<h4 class="wp-block-heading">情境二：多個服務互相依賴 → 開始考慮</h4>



<p class="wp-block-paragraph">當你的系統開始出現微服務架構，例如前端、後端 API、資料處理服務、通知服務各自獨立部署，服務之間的相依關係會讓你管理越來越繁雜。</p>



<p class="wp-block-paragraph">手動管理的痛點開始產生：服務上線順序要協調、某個服務掛掉其他服務跟著受影響、部署新版本要小心翼翼，因為牽一髮而動全身。</p>



<p class="wp-block-paragraph">這是開始評估要不要用 Kubernetes 的時機。</p>



<h4 class="wp-block-heading">情境三：需要高可用、自動擴展 → 強烈建議</h4>



<p class="wp-block-paragraph">如果你的系統有以下任何一個需求，Kubernetes 幾乎是必選項：</p>



<ol class="wp-block-list">
<li>服務不能中斷超過 1 分鐘（高可用需求）</li>



<li>流量有明顯的尖峰與離峰（需要彈性擴縮）</li>



<li>需要零停機時間的滾動更新部署</li>



<li>有超過 10 個以上的微服務需要統一管理</li>
</ol>



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="557" src="https://dongdonggcp.com/wp-content/uploads/2026/07/你需要用-Kubernetes-嗎v2-1024x557.png" alt="" class="wp-image-12256" srcset="https://dongdonggcp.com/wp-content/uploads/2026/07/你需要用-Kubernetes-嗎v2-1024x557.png 1024w, https://dongdonggcp.com/wp-content/uploads/2026/07/你需要用-Kubernetes-嗎v2-300x163.png 300w, https://dongdonggcp.com/wp-content/uploads/2026/07/你需要用-Kubernetes-嗎v2-768x418.png 768w, https://dongdonggcp.com/wp-content/uploads/2026/07/你需要用-Kubernetes-嗎v2.png 1177w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">你需要用 Kubernetes 嗎</figcaption></figure>



<h5 class="wp-block-heading">判斷要不要導入 K8s 的 3 個問題</h5>



<p class="wp-block-paragraph">在決定要不要導入 Kubernetes 之前，先問自己這 3 個問題：</p>



<ol class="wp-block-list">
<li><strong>我的系統有幾個獨立部署的服務？</strong> 少於 5 個，先考慮更簡單的方案。</li>



<li><strong>我的團隊有沒有人願意負責維護 K8s 叢集？</strong> 沒有專人維護，建議直接選 <a href="https://dongdonggcp.com/2025/07/20/google-kubernetes-engine-tutorials/#elementor-toc__heading-anchor-12" target="_blank" rel="noopener" title="">GKE Autopilot</a> 或其他代管服務。</li>



<li><strong>我現在的痛點是什麼？</strong> 如果痛點不是「容器管理太複雜」，Kubernetes 不是解答。</li>
</ol>



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



<h3 class="wp-block-heading">Kubernetes 的核心概念：看懂這 5 個詞就夠了</h3>



<p class="wp-block-paragraph">學 Kubernetes 不需要一次搞懂所有東西。</p>



<p class="wp-block-paragraph">以下 5 個核心物件是你一定會碰到的，先建立基本印象就夠了。</p>



<h4 class="wp-block-heading">Pod：容器的最小包裝單位</h4>



<p class="wp-block-paragraph">Pod 是 Kubernetes 中最小的部署單位，一個 Pod 裡面通常包含 1 個容器，但在特殊情況下也可以包含 2 到 3 個緊密相關的容器，它們共享同一個網路和儲存空間。</p>



<p class="wp-block-paragraph">你可以把 Pod 想成是一個「容器的宿舍」——裡面住的是你的應用程式容器，宿舍本身負責提供網路連線和磁碟空間。</p>



<p class="wp-block-paragraph">Pod 的生命週期很短，隨時可能被建立或銷毀，所以不要把重要資料直接存在 Pod 裡面。</p>



<h4 class="wp-block-heading">Node：跑 Pod 的工作機器</h4>



<p class="wp-block-paragraph">Node 是 Kubernetes 叢集裡的工作節點，也就是實際跑 Pod 的機器。</p>



<p class="wp-block-paragraph">Node 可以是實體伺服器，也可以是雲端上的虛擬機器（在 <a href="https://dongdonggcp.com/2025/07/20/google-kubernetes-engine-tutorials/" target="_blank" rel="noopener" title="">GKE</a> 上就是 <a href="https://dongdonggcp.com/2024/10/23/what-is-google-vm-compute-engine-introduction/" target="_blank" rel="noopener" title="">Compute Engine VM</a>）。</p>



<p class="wp-block-paragraph">一個 Kubernetes 叢集裡會有多個 Node，Kubernetes 的調度器會自動決定每個 Pod 要跑在哪個 Node 上，確保資源使用均衡。</p>



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="515" src="https://dongdonggcp.com/wp-content/uploads/2026/07/Kubernetes-的-Node-和-Pod-是什麼？-1024x515.png" alt="" class="wp-image-12249" srcset="https://dongdonggcp.com/wp-content/uploads/2026/07/Kubernetes-的-Node-和-Pod-是什麼？-1024x515.png 1024w, https://dongdonggcp.com/wp-content/uploads/2026/07/Kubernetes-的-Node-和-Pod-是什麼？-300x151.png 300w, https://dongdonggcp.com/wp-content/uploads/2026/07/Kubernetes-的-Node-和-Pod-是什麼？-768x386.png 768w, https://dongdonggcp.com/wp-content/uploads/2026/07/Kubernetes-的-Node-和-Pod-是什麼？.png 1524w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">Kubernetes 的 Node 和 Pod 是什麼？</figcaption></figure>



<h4 class="wp-block-heading">Deployment：告訴 K8s「我要幾個副本」</h4>



<p class="wp-block-paragraph">Deployment 是 Kubernetes 中用來管理應用程式副本數量與更新策略的物件，你告訴它「我要這個應用程式跑幾份」，它就負責維持這個狀態。</p>



<p class="wp-block-paragraph">例如你設定 <code>replicas: 3</code>，Kubernetes 就會確保永遠有 3 個相同的 Pod 在運行。如果其中一個 Pod 掛掉，Deployment 會立刻建立新的 Pod 來補位，讓總數維持在 3 個。</p>



<p class="wp-block-paragraph">當你要更新應用程式版本時，Deployment 也會協調滾動更新的過程，讓新舊版本交替上線，不中斷服務。</p>



<h4 class="wp-block-heading">Service：讓其他人找得到你的 Pod</h4>



<p class="wp-block-paragraph">因為 Pod 的 IP 會隨著重啟而改變，Kubernetes 用 Service 物件提供一個穩定的網路端點。</p>



<p class="wp-block-paragraph">Service 就像是 Pod 群組的「固定門牌」，不管後面的 Pod 怎麼換，外部呼叫方只要記住這個門牌（DNS 名稱），就永遠能找到正確的 Pod。</p>



<p class="wp-block-paragraph">Service 同時也做負載平衡，當有 3 個 Pod 在跑同一個服務時，Service 會把流量平均分配給這 3 個 Pod。</p>



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://dongdonggcp.com/wp-content/uploads/2026/07/Kubernetes-的-Node、Deployment-和-Service-是什麼？-1024x576.png" alt="" class="wp-image-12250" srcset="https://dongdonggcp.com/wp-content/uploads/2026/07/Kubernetes-的-Node、Deployment-和-Service-是什麼？-1024x576.png 1024w, https://dongdonggcp.com/wp-content/uploads/2026/07/Kubernetes-的-Node、Deployment-和-Service-是什麼？-300x169.png 300w, https://dongdonggcp.com/wp-content/uploads/2026/07/Kubernetes-的-Node、Deployment-和-Service-是什麼？-768x432.png 768w, https://dongdonggcp.com/wp-content/uploads/2026/07/Kubernetes-的-Node、Deployment-和-Service-是什麼？-1536x864.png 1536w, https://dongdonggcp.com/wp-content/uploads/2026/07/Kubernetes-的-Node、Deployment-和-Service-是什麼？.png 1548w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">Kubernetes 的 Node、Deployment 和 Service 是什麼？</figcaption></figure>



<h4 class="wp-block-heading">Ingress：對外開放的統一入口</h4>



<p class="wp-block-paragraph">Ingress 是 Kubernetes 叢集對外的流量入口物件，負責把外部的 HTTP 和 HTTPS 請求，根據 URL 路徑或網域名稱，路由到叢集內正確的 Service。</p>



<p class="wp-block-paragraph">舉例來說，當使用者訪問 <code>api.example.com/users</code> 時，Ingress 把請求導向 user-service；訪問 <code>api.example.com/orders</code> 時，導向 order-service。</p>



<p class="wp-block-paragraph">這樣你只需要一個對外 IP，就能管理多個內部服務的流量入口。</p>



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="563" src="https://dongdonggcp.com/wp-content/uploads/2026/07/Kubernetes-的-Pod、Node、Deployment、Service-和-Ingress-的關係-1024x563.png" alt="" class="wp-image-12251" srcset="https://dongdonggcp.com/wp-content/uploads/2026/07/Kubernetes-的-Pod、Node、Deployment、Service-和-Ingress-的關係-1024x563.png 1024w, https://dongdonggcp.com/wp-content/uploads/2026/07/Kubernetes-的-Pod、Node、Deployment、Service-和-Ingress-的關係-300x165.png 300w, https://dongdonggcp.com/wp-content/uploads/2026/07/Kubernetes-的-Pod、Node、Deployment、Service-和-Ingress-的關係-768x422.png 768w, https://dongdonggcp.com/wp-content/uploads/2026/07/Kubernetes-的-Pod、Node、Deployment、Service-和-Ingress-的關係.png 1415w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">Kubernetes 的 Pod、Node、Deployment、Service 和 Ingress 的關係</figcaption></figure>



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



<h3 class="wp-block-heading">自己架 Kubernetes vs 用雲端代管服務</h3>



<h4 class="wp-block-heading">自己架的成本：光設定環境就要幾天</h4>



<p class="wp-block-paragraph">自己在虛擬機器上架設 Kubernetes（俗稱 self-hosted K8s）需要處理以下步驟：</p>



<ol class="wp-block-list">
<li>安裝並設定 Control Plane（Master Node）</li>



<li>設定 Worker Node 並讓它們加入叢集</li>



<li>設定網路插件（CNI Plugin）讓 Pod 之間可以通訊</li>



<li>設定儲存方案（Storage Class）</li>



<li>設定監控、日誌收集、備份機制</li>
</ol>



<p class="wp-block-paragraph">從零開始，一個有經驗的工程師要花 2 到 5 天才能把環境架好，更別說後續的版本升級和安全性維護。</p>



<p class="wp-block-paragraph">這些時間成本，對大多數團隊來說都不划算。</p>



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="524" src="https://dongdonggcp.com/wp-content/uploads/2026/07/要自建-Kubernetes-還是用雲端代管的？-1024x524.png" alt="" class="wp-image-12252" srcset="https://dongdonggcp.com/wp-content/uploads/2026/07/要自建-Kubernetes-還是用雲端代管的？-1024x524.png 1024w, https://dongdonggcp.com/wp-content/uploads/2026/07/要自建-Kubernetes-還是用雲端代管的？-300x154.png 300w, https://dongdonggcp.com/wp-content/uploads/2026/07/要自建-Kubernetes-還是用雲端代管的？-768x393.png 768w, https://dongdonggcp.com/wp-content/uploads/2026/07/要自建-Kubernetes-還是用雲端代管的？.png 1404w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">要自建 Kubernetes 還是用雲端代管的？</figcaption></figure>



<h4 class="wp-block-heading">GKE、EKS、AKS 的差別在哪裡</h4>



<p class="wp-block-paragraph">三大雲端平台都有提供代管 Kubernetes 服務：</p>



<ol class="wp-block-list">
<li><a href="https://dongdonggcp.com/2025/07/20/google-kubernetes-engine-tutorials/" target="_blank" rel="noopener" title=""><strong>GKE</strong>（Google Kubernetes Engine）</a>：Google Cloud 的代管 K8s。因為 Kubernetes 本身就是 Google 開源的，GKE 在相容性和新功能支援上往往最快。</li>



<li><a href="https://aws.amazon.com/tw/eks/" target="_blank" rel="noopener" title=""><strong>EKS</strong>（Amazon Elastic Kubernetes Service）</a>：AWS 的代管 K8s，與 AWS 其他服務（IAM、VPC、ALB）整合最深。</li>



<li><a href="https://learn.microsoft.com/zh-tw/azure/aks/what-is-aks" target="_blank" rel="noopener" title=""><strong>AKS</strong>（Azure Kubernetes Service）</a>：Microsoft Azure 的代管 K8s，與 Azure DevOps 和 Active Directory 整合完善。</li>
</ol>



<p class="wp-block-paragraph">三者核心功能差異不大，選擇的關鍵通常是「你已經在用哪家雲」，而不是 K8s 功能本身的差異。</p>



<h5 class="wp-block-heading">在 GCP 上為什麼推薦 GKE</h5>



<p class="wp-block-paragraph">GKE 有兩個對初學者特別友善的優點。</p>



<p class="wp-block-paragraph">第一，GKE Autopilot 模式讓你完全不需要管理 Node。你只要定義要跑什麼應用程式，Google 自動幫你配置和維護底層節點，費用也只針對你實際使用的 Pod 資源計算，沒有部署應用程式的時候不收 Node 的費用。</p>



<p class="wp-block-paragraph">第二，GKE 是 Kubernetes 的發源地，新功能和安全性修補的支援速度在三大雲中最快，官方文件和社群資源也最豐富。</p>



<p class="wp-block-paragraph">如果你的雲端環境已經在 GCP 上，GKE 是進入 Kubernetes 世界成本最低的起點。 </p>



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="560" src="https://dongdonggcp.com/wp-content/uploads/2026/07/為什麼在GCP上推薦-GKE-Autopilot--1024x560.png" alt="" class="wp-image-12253" srcset="https://dongdonggcp.com/wp-content/uploads/2026/07/為什麼在GCP上推薦-GKE-Autopilot--1024x560.png 1024w, https://dongdonggcp.com/wp-content/uploads/2026/07/為什麼在GCP上推薦-GKE-Autopilot--300x164.png 300w, https://dongdonggcp.com/wp-content/uploads/2026/07/為什麼在GCP上推薦-GKE-Autopilot--768x420.png 768w, https://dongdonggcp.com/wp-content/uploads/2026/07/為什麼在GCP上推薦-GKE-Autopilot-.png 1292w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">為什麼在GCP上推薦 GKE Autopilot ?</figcaption></figure>



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



<h3 class="wp-block-heading">Kubernetes 值不值得學？給不同背景的人的建議</h3>



<h4 class="wp-block-heading">後端工程師：了解概念就夠，不一定要會操作</h4>



<p class="wp-block-paragraph">如果你是後端工程師，工作內容以開發功能為主，你需要的是「看得懂 K8s 設定檔、能和 DevOps 溝通」的程度，不一定需要自己架叢集或寫 YAML 設定。</p>



<p class="wp-block-paragraph">重點是理解 Pod、Deployment、Service 這幾個核心物件的用途，知道你的程式碼被打包成容器之後，在 K8s 上是怎麼跑起來的。</p>



<p class="wp-block-paragraph">這個程度大概需要 2 到 3 天的學習時間就能建立起來。</p>



<h4 class="wp-block-heading">DevOps / 雲端架構師：必學，沒有例外</h4>



<p class="wp-block-paragraph">如果你的職涯目標是 DevOps 工程師或雲端架構師，Kubernetes 是 2024 年之後幾乎所有大型企業的標配基礎設施，不會 K8s 等於少了一張重要的入場券。</p>



<p class="wp-block-paragraph">你需要學到的程度包含：</p>



<ol class="wp-block-list">
<li>能夠自己建立和管理叢集</li>



<li>寫 Kubernetes YAML 設定檔</li>



<li>設定 CI/CD 流水線整合 K8s 部署</li>



<li>處理常見的故障排查</li>
</ol>



<h4 class="wp-block-heading">想考 GCP 證照的人：考前要懂的 K8s 核心考點</h4>



<p class="wp-block-paragraph">GCP 的 Associate Cloud Engineer 和 <a href="https://dongdonggcp.com/2025/01/13/how-to-prepare-google-cloud-architect-exam/" target="_blank" rel="noopener" title="">Professional Cloud Architect</a> 兩張證照，都會考到 GKE 和 Kubernetes 相關知識。</p>



<p class="wp-block-paragraph">考試中高頻出現的考點包含：</p>



<ol class="wp-block-list">
<li>GKE Standard 和 Autopilot 模式的差異與適用情境</li>



<li>Deployment、Service、Ingress 物件的用途</li>



<li>kubectl 常用指令（get、apply、delete）</li>



<li>GKE 和 Cloud Run 的選擇判斷題</li>
</ol>



<p class="wp-block-paragraph">考前不需要實際操作建叢集，但要能看懂題目描述的情境，並判斷哪個 K8s 物件或哪種 GKE 設定最合適。</p>



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="533" src="https://dongdonggcp.com/wp-content/uploads/2026/07/Kubernetes-要學多深？-1024x533.png" alt="" class="wp-image-12254" srcset="https://dongdonggcp.com/wp-content/uploads/2026/07/Kubernetes-要學多深？-1024x533.png 1024w, https://dongdonggcp.com/wp-content/uploads/2026/07/Kubernetes-要學多深？-300x156.png 300w, https://dongdonggcp.com/wp-content/uploads/2026/07/Kubernetes-要學多深？-768x400.png 768w, https://dongdonggcp.com/wp-content/uploads/2026/07/Kubernetes-要學多深？.png 1391w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">Kubernetes 要學多深？</figcaption></figure>



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



<h3 class="wp-block-heading">結語：搞懂 Kubernetes 是什麼之後，下一步去哪？</h3>



<p class="wp-block-paragraph">Kubernetes 是管理容器化系統的標準平台，但它不是每個人都需要的工具。</p>



<p class="wp-block-paragraph">系統服務數量少於 5 個，先用 Cloud Run。服務開始互相依賴、需要高可用，再評估 GKE。你在 GCP 上，GKE Autopilot 是成本和複雜度最平衡的起點。</p>



<p class="wp-block-paragraph">搞懂概念之後，下一步建議直接動手：<a href="https://dongdonggcp.com/2025/07/20/google-kubernetes-engine-tutorials/">在 GKE 上建立你的第一個 Cluster，部署一個真實的容器應用程式</a>——這篇文章有完整的手把手操作流程，從建 Cluster 到部署 Ingress 全部都有截圖說明。 </p>



<p class="wp-block-paragraph">如果想看實際操作影片，可以參考 YouTube 上的 <a href="https://www.youtube.com/playlist?list=PLvYsUzEf9kaNxAK4Vc9TaabjLuQqrZ_tM" target="_blank" rel="noopener" title="">GKE 教學手把手實作</a>。</p>



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



<h3 class="wp-block-heading">常見問題（FAQ）</h3>



<p class="wp-block-paragraph"><strong>Q1：Kubernetes 和 Docker Compose 有什麼不同？</strong><br>A：Docker Compose 是在單台機器上同時啟動多個容器的工具，適合本機開發或小型部署。Kubernetes 是設計給跨多台機器、需要高可用和自動擴展的生產環境使用的容器編排平台。當你的應用程式需要跑在超過 1 台機器上，Docker Compose 就不夠用了，這時候才是 Kubernetes 的用武之地。</p>



<p class="wp-block-paragraph"><strong>Q2：Kubernetes 學起來難嗎？需要多久？</strong><br>A：入門概念（Pod、Deployment、Service）大約需要 1 週時間可以理解並動手操作。能夠獨立管理生產環境的 K8s 叢集，需要 3 到 6 個月的實際操作經驗。最快的學習方式是直接在 GKE 上操作真實的叢集，而不是只看文件。</p>



<p class="wp-block-paragraph"><strong>Q3：不用 Kubernetes，能不能用其他方式管理多個容器？</strong><br>A：可以。常見的替代方案包含 Docker Swarm（較簡單，但功能有限）、HashiCorp Nomad（支援非容器工作負載）、或直接用雲端平台的託管服務（GCP 的 Cloud Run、AWS 的 ECS）。當你的規模不需要 Kubernetes 的全部功能時，這些替代方案的維護成本更低。</p>



<p class="wp-block-paragraph"><strong>Q4：Kubernetes 本身是免費的嗎？費用從哪裡來？</strong><br>A：Kubernetes 開源軟體本身是免費的。費用來自於執行叢集所需的基礎設施：你需要付費給雲端平台使用的虛擬機器（Node）、儲存空間和網路流量。GKE 在 Autopilot 模式下另外收取叢集管理費，但在 Standard 模式下每個帳號有 1 個免費的區域性叢集。</p>



<p class="wp-block-paragraph"><strong>Q5：Kubernetes 適合個人專案或小型新創嗎？</strong><br>A：在 95% 的情況下，個人專案和小型新創（團隊少於 5 人、服務數量少於 5 個）使用 Kubernetes 是過度工程。Cloud Run 或類似的 serverless 容器服務，在這個規模下成本更低、維護更簡單。等到服務複雜度真的撐不住了，再遷移到 Kubernetes 也不遲。</p>



<p class="wp-block-paragraph"><strong>Q6：什麼是 Helm？學 Kubernetes 一定要學 Helm 嗎？</strong><br>A：Helm 是 Kubernetes 的套件管理工具，讓你可以用「Helm Chart」的格式打包和部署應用程式，類似 npm 之於 Node.js。對初學者來說，先學會基本的 <code>kubectl</code> 操作和 YAML 設定之後，再學 Helm 比較合理。Helm 不是必學，但在實際工作環境中使用率極高。</p>



<p class="wp-block-paragraph"><strong>Q7：Kubernetes 和 Service Mesh（如 Istio）是什麼關係？</strong><br>A：Service Mesh 是建立在 Kubernetes 上的進階網路管理層，提供服務間流量的加密（mTLS）、詳細的流量觀測、流量控制（金絲雀部署）等功能。Istio 是目前最主流的 Service Mesh 實作之一。你需要先學會 Kubernetes，才有辦法理解 Service Mesh 解決的是什麼層次的問題。</p>



<p class="wp-block-paragraph"><strong>Q8：GKE 和 <a href="https://dongdonggcp.com/2025/07/20/cloud-run-tutorials/" target="_blank" rel="noopener" title="">Cloud Run</a> 怎麼選？</strong><br>A：Cloud Run 最適合無狀態的 HTTP 服務，設定簡單、自動擴展到零、按請求計費。GKE 適合有複雜部署需求、多個相互依賴的服務、或需要自定義網路和儲存設定的情況。判斷關鍵在於：你的應用程式是否有狀態（Stateful），以及你需不需要精細控制 Kubernetes 的部署設定。</p>



<p class="wp-block-paragraph"><strong>Q9：Kubernetes 的 YAML 設定檔看起來很複雜，有沒有簡化的方法？</strong><br>A：有 3 個方向可以降低 YAML 的複雜度。第一，使用 Helm Chart 把常用設定打包成模板；第二，使用 Kustomize 做環境差異的設定管理（開發環境和生產環境共用同一份基礎設定）；第三，在 GKE 上使用 Google Cloud Console 的圖形介面建立基本物件，再從介面上匯出對應的 YAML 來學習格式。</p>



<p class="wp-block-paragraph"><strong>Q10：Kubernetes 版本更新很快，學了會不會很快過時？</strong><br>A：Kubernetes 核心概念（Pod、Deployment、Service、Ingress）從 1.0 版本至今幾乎沒有根本性的改變，這些概念不會過時。版本更新主要是功能新增、效能改善和安全性修補，不會讓你原本學的知識失效。建議追蹤每個版本的 Changelog 了解新增功能，但不需要因為版本更新而重新學習基礎。</p>



<p class="wp-block-paragraph"></p><p>The post <a href="https://dongdonggcp.com/2026/07/21/what-is-kubernetes/">Kubernetes 是什麼？白話解釋 + 判斷你是否真的需要它</a> first appeared on <a href="https://dongdonggcp.com">東東 GCP 教學 - GCP 實戰講師</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://dongdonggcp.com/2026/07/21/what-is-kubernetes/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>轉職 IT 新手必學知識完整指南：從零基礎到雲端技術入門</title>
		<link>https://dongdonggcp.com/2026/07/21/t-career-change-beginners-guide-cloud-technology/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=t-career-change-beginners-guide-cloud-technology</link>
					<comments>https://dongdonggcp.com/2026/07/21/t-career-change-beginners-guide-cloud-technology/#respond</comments>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Tue, 21 Jul 2026 03:25:20 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[轉職 IT]]></category>
		<category><![CDATA[IT]]></category>
		<category><![CDATA[職涯]]></category>
		<category><![CDATA[資訊產業]]></category>
		<category><![CDATA[資訊科技]]></category>
		<category><![CDATA[轉職]]></category>
		<category><![CDATA[雲端架構師]]></category>
		<guid isPermaLink="false">https://dongdonggcp.com/?p=12230</guid>

					<description><![CDATA[<p>想轉職 IT 掌握三件事：IT 產業的全貌、職涯路徑的核心技能需求，現代 IT 工作幾乎都和雲端技術直接相關，本文會幫你建立完整的轉職 IT 知識地圖，讓你清楚知道該學什麼、照什麼順序學。</p>
<p>The post <a href="https://dongdonggcp.com/2026/07/21/t-career-change-beginners-guide-cloud-technology/">轉職 IT 新手必學知識完整指南：從零基礎到雲端技術入門</a> first appeared on <a href="https://dongdonggcp.com">東東 GCP 教學 - GCP 實戰講師</a>.</p>]]></description>
										<content:encoded><![CDATA[<p class="wp-block-paragraph">想轉職 IT 卻不知道從哪裡開始？你需要先掌握三件事：IT 產業的全貌、各條職涯路徑的核心技能需求，以及一個關鍵事實，現代 IT 工作幾乎都和雲端技術直接相關。這篇文章會幫你建立完整的轉職 IT 知識地圖，讓你清楚知道該學什麼、照什麼順序學。 </p>



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



<h3 class="wp-block-heading">轉職 IT 前，你需要先搞清楚一件事</h3>



<p class="wp-block-paragraph">很多人說「我想轉職 IT」，但還沒想清楚自己想做哪一種 IT。</p>



<p class="wp-block-paragraph">這不是在挑剔你，而是因為 IT 產業太大了，大到「轉職 IT」這四個字，幾乎沒辦法直接告訴你該學什麼。</p>



<h4 class="wp-block-heading">「IT」不是一個職業，是一個產業</h4>



<p class="wp-block-paragraph">IT 是 Information Technology 的縮寫，中文是「資訊科技」，指的是所有與電腦、網路、資料處理相關的技術領域。</p>



<p class="wp-block-paragraph">它不是一個職位，而是涵蓋超過 20 種不同專業的產業。</p>



<p class="wp-block-paragraph">網路工程師、系統管理員、資料庫管理員、雲端架構師、資安工程師、DevOps 工程師&#8230;&#8230;等，這些都叫 IT，但工作內容差距非常大。</p>



<p class="wp-block-paragraph">舉個例子：網路工程師每天在設定路由器和防火牆規則；雲端工程師每天在 GCP 或 AWS 上建立基礎設施；資安工程師每天在分析系統漏洞和攻擊日誌。</p>



<p class="wp-block-paragraph">三個人都叫 IT，但幾乎不會有工作上的交集。</p>



<p class="wp-block-paragraph">所以，轉職 IT 的第一步不是「學技術」，而是「選方向」。</p>



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="530" src="https://dongdonggcp.com/wp-content/uploads/2026/07/「IT」不是一個職業，是一個產業-1024x530.png" alt="" class="wp-image-12231" srcset="https://dongdonggcp.com/wp-content/uploads/2026/07/「IT」不是一個職業，是一個產業-1024x530.png 1024w, https://dongdonggcp.com/wp-content/uploads/2026/07/「IT」不是一個職業，是一個產業-300x155.png 300w, https://dongdonggcp.com/wp-content/uploads/2026/07/「IT」不是一個職業，是一個產業-768x398.png 768w, https://dongdonggcp.com/wp-content/uploads/2026/07/「IT」不是一個職業，是一個產業.png 1325w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">「IT」不是一個職業，是一個產業</figcaption></figure>



<h4 class="wp-block-heading">轉職 IT 最常見的三條路徑</h4>



<p class="wp-block-paragraph">新手最容易上手的 IT 路徑有三條，各有不同的技能要求和薪資天花板。</p>



<h5 class="wp-block-heading">路徑一：系統管理／IT 維運（SysAdmin / IT Ops）</h5>



<p class="wp-block-paragraph">負責公司內部的電腦、伺服器、帳號、網路設備的日常管理與維護。</p>



<p class="wp-block-paragraph">這是 IT 新手最容易切入的路徑，因為許多中小企業都需要這類人才，對學歷和程式能力的要求相對較低。</p>



<p class="wp-block-paragraph">入門建議先取得 Microsoft 相關認證，例如 MSCA (初級)、MCSE (進階) 等等。</p>



<p class="wp-block-paragraph">薪資範圍（台灣）：月薪 30,000–50,000 元為常見起點，資深後可達 60,000 元以上。</p>



<h5 class="wp-block-heading">路徑二：網路工程師（Network Engineer）</h5>



<p class="wp-block-paragraph">負責設計、建置、維護企業的網路架構，包含路由器、交換器、防火牆、VPN 等設備。</p>



<p class="wp-block-paragraph">這條路技術門檻較高，需要紮實的網路知識。</p>



<p class="wp-block-paragraph">建議以 Cisco CCNA 作為入門認證目標。</p>



<p class="wp-block-paragraph">薪資範圍（台灣）：月薪 40,000–70,000 元，CCIE 等高階認證持有者可達 10 萬以上。</p>



<h5 class="wp-block-heading">路徑三：雲端工程師（Cloud Engineer）</h5>



<p class="wp-block-paragraph">負責在 GCP、AWS 或 Azure 等雲端平台上建置和管理基礎設施，是目前市場需求成長最快的 IT 職位之一。</p>



<p class="wp-block-paragraph">這條路需要先有一定的 IT 基礎知識，再疊加雲端平台的操作能力。</p>



<p class="wp-block-paragraph">本文後半會詳細說明為什麼這條路值得優先考慮。</p>



<p class="wp-block-paragraph">薪資範圍（台灣）：月薪 50,000–90,000 元，資深雲端架構師突破 12 萬並不罕見。</p>



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



<h3 class="wp-block-heading">轉職 IT 必懂的基礎概念：網路知識</h3>



<p class="wp-block-paragraph">不管你選哪條 IT 路徑，網路知識都是必備的地基。</p>



<p class="wp-block-paragraph">就像蓋房子一定要先打地基，IT 的所有技術：伺服器、雲端、資安、虛擬化&#8230;&#8230;等等，都建立在網路之上。</p>



<p class="wp-block-paragraph">跳過網路直接學雲端，就像跳過地基直接蓋牆，遲早會垮。</p>



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="569" src="https://dongdonggcp.com/wp-content/uploads/2026/07/現代IT的基礎架構-為什麼不能直接學雲端-1024x569.png" alt="" class="wp-image-12232" srcset="https://dongdonggcp.com/wp-content/uploads/2026/07/現代IT的基礎架構-為什麼不能直接學雲端-1024x569.png 1024w, https://dongdonggcp.com/wp-content/uploads/2026/07/現代IT的基礎架構-為什麼不能直接學雲端-300x167.png 300w, https://dongdonggcp.com/wp-content/uploads/2026/07/現代IT的基礎架構-為什麼不能直接學雲端-768x427.png 768w, https://dongdonggcp.com/wp-content/uploads/2026/07/現代IT的基礎架構-為什麼不能直接學雲端.png 1279w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">現代IT的基礎架構:為什麼不能直接學雲端?</figcaption></figure>



<h4 class="wp-block-heading">IP 位址、DNS、HTTP 是什麼？</h4>



<p class="wp-block-paragraph">這三個是網路世界最基礎的概念，新手一定要先搞清楚。</p>



<p class="wp-block-paragraph"><strong>IP 位址</strong>是網路上每台裝置的「地址」。就像你家的門牌號碼，IP 位址讓資料知道要送到哪裡。常見格式是 192.168.1.1（IPv4），新版格式是 IPv6（IPv6 到 2026 年都還不常用，很多設備都不支援，聽過就好）。</p>



<p class="wp-block-paragraph"><strong>DNS</strong>（Domain Name System）是「網路的電話簿」，負責將人類看得懂的網域名稱（如 google.com）翻譯成機器看得懂的 IP 位址（如 142.250.185.46）。沒有 DNS，你就得背一堆 IP 位址才能上網，而且伺服器的 IP 會一直變來變去，所以才需要 DNS 幫你記。</p>



<p class="wp-block-paragraph"><strong>HTTP</strong>（HyperText Transfer Protocol）是瀏覽器和伺服器之間溝通的語言。你點一個連結，瀏覽器用 HTTP 向伺服器說「我要這個頁面」，伺服器用 HTTP 把頁面傳回來。HTTPS 是加密版本 (S 是 Secure 的意思)，現在幾乎所有網站都用 HTTPS。</p>



<h4 class="wp-block-heading">防火牆和 VPN 的基本概念</h4>



<p class="wp-block-paragraph"><strong>防火牆</strong>是網路的守門員，根據設定好的規則決定哪些流量可以進來、哪些要擋掉。</p>



<p class="wp-block-paragraph">企業防火牆可以設定「只允許特定 IP 存取內部系統」，或者「封鎖所有來自某個國家的連線」。</p>



<p class="wp-block-paragraph"><strong>VPN</strong>（Virtual Private Network）是「加密的網路隧道」，雖然我們的封包大部分已經是用 HTTPS 協定在網路上傳送，但有心的駭客還是會想辦法破解，而 VPN 是讓你的網路流量再加密一次，雖然駭客能夠攔截到我們傳送的封包，但要破解內容的難度更高。</p>



<p class="wp-block-paragraph">企業常用 VPN 讓遠端工作的員工安全連回公司內網。員工安裝客戶端 VPN 軟體，連到公司的 VPN 伺服器，這叫做 Client to Site VPN 模式。</p>



<p class="wp-block-paragraph">PS. 而你的手機透過 VPN APP 到其他國家看劇，則是連到國外的 VPN 伺服器，所以也是  Client to Site VPN。</p>



<p class="wp-block-paragraph">另一種情況是，企業的內部網路要跟雲端環境以安全的方式通訊，也會使用 VPN，是由公司的 VPN 設備跟雲端 VPN 對接，員工不用裝 VPN 軟體，這叫做 Site to Site VPN 模式。</p>



<h4 class="wp-block-heading">為什麼網路知識是 IT 的地基？</h4>



<p class="wp-block-paragraph">因為現代 IT 基礎設施的每一個元件，都需要透過網路溝通。</p>



<p class="wp-block-paragraph">伺服器需要網路才能對外提供服務。雲端平台需要網路才能讓使用者存取資源。容器化應用需要網路設定才能互相溝通。資安防護需要分析網路流量才能發現攻擊。</p>



<p class="wp-block-paragraph">如果你不懂網路，就沒辦法理解系統為什麼連不上、為什麼速度慢、為什麼被攻擊。</p>



<p class="wp-block-paragraph">這就是為什麼幾乎所有 IT 認證（包含雲端認證）都會考網路基礎知識。</p>



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="553" src="https://dongdonggcp.com/wp-content/uploads/2026/07/地基一-網路知識現代-IT-溝通的公路-1024x553.png" alt="" class="wp-image-12233" srcset="https://dongdonggcp.com/wp-content/uploads/2026/07/地基一-網路知識現代-IT-溝通的公路-1024x553.png 1024w, https://dongdonggcp.com/wp-content/uploads/2026/07/地基一-網路知識現代-IT-溝通的公路-300x162.png 300w, https://dongdonggcp.com/wp-content/uploads/2026/07/地基一-網路知識現代-IT-溝通的公路-768x415.png 768w, https://dongdonggcp.com/wp-content/uploads/2026/07/地基一-網路知識現代-IT-溝通的公路.png 1292w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">地基一 網路知識 (現代 IT 溝通的公路)</figcaption></figure>



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



<h3 class="wp-block-heading">轉職 IT 必懂的基礎概念：作業系統</h3>



<p class="wp-block-paragraph">作業系統（Operating System，OS）是管理電腦硬體資源、讓應用程式可以運行的核心軟體，是 IT 人員每天工作的主戰場。</p>



<p class="wp-block-paragraph">設定服務、管理帳號、排查問題，全都在作業系統層面進行。</p>



<h4 class="wp-block-heading">Windows Server vs Linux：新手該學哪個？</h4>



<p class="wp-block-paragraph">這是轉職 IT 新手最常問的問題之一，答案取決於你想走的路徑。</p>



<p class="wp-block-paragraph"><strong>Windows Server</strong> 在台灣的中小企業環境非常普遍，尤其是需要和 Microsoft 365、Active Directory 整合的公司。如果你的目標是 SysAdmin 或 IT 維運，Windows Server 是優先學習的選項。</p>



<p class="wp-block-paragraph"><strong>Linux</strong> 在伺服器、雲端、開發環境中佔主導地位。根據 <a href="https://w3techs.com/technologies/details/os-linux" target="_blank" rel="noopener" title="">W3Techs</a> 的統計，全球超過 61% 的網站伺服器運行在 Linux 上，廣義的 Unix 還高達  91%。如果你的目標是雲端工程師、DevOps 或後端開發，Linux 是必學項目，而 Windows &#8230;&#8230; 則是 8.3%。</p>



<p class="wp-block-paragraph">尤其在 Google Cloud Platform (簡稱 GCP) 上，<a href="https://fosspost.org/linux-server-market-share-statistics/" target="_blank" rel="noopener" title="">超過 90% 的虛擬機器都是 Linux</a>。</p>



<p class="wp-block-paragraph">建議新手的策略：先學 Windows Server 建立基礎信心，同時開始接觸 Linux 指令列操作。兩個都懂的人，在職場上的競爭力會高出許多。</p>



<h4 class="wp-block-heading">指令列操作（CLI）為什麼不能跳過？</h4>



<p class="wp-block-paragraph">CLI（Command Line Interface）就是那個黑色視窗——你用鍵盤打指令來操作電腦，而不是用滑鼠點圖示。</p>



<p class="wp-block-paragraph">很多新手看到 CLI 就想跳過，覺得「現在不是都有圖形介面了嗎」。</p>



<p class="wp-block-paragraph">這個想法在 IT 職場行不通，原因有 3 個：</p>



<ol class="wp-block-list">
<li>伺服器環境幾乎不安裝圖形介面，因為圖形介面會消耗額外資源。</li>



<li>自動化腳本（Shell Script、PowerShell）需要透過 CLI 執行。</li>



<li>雲端平台的進階操作幾乎都透過 CLI 工具（就是下指令的意思，如 gcloud、aws cli）完成。</li>
</ol>



<p class="wp-block-paragraph">建議新手從 Linux 的基礎指令開始：<code>ls</code>、<code>cd</code>、<code>mkdir</code>、<code>chmod</code>、<code>grep</code>、<code>ssh</code>。這些指令學會之後，你會發現很多 IT 操作快很多。</p>



<h4 class="wp-block-heading">常見作業系統概念：權限、程序、服務</h4>



<p class="wp-block-paragraph">這三個概念在 IT 日常工作中出現頻率極高，新手要先建立基本認識。</p>



<p class="wp-block-paragraph"><strong>權限（Permissions）</strong>：決定「誰可以對這個檔案或資源做什麼」。Linux 用 rwx（讀/寫/執行）表示，Windows 用 ACL（存取控制清單）管理。IT 工作中有大量問題是「權限設定錯誤」造成的。</p>



<p class="wp-block-paragraph"><strong>程序（Process）</strong>：正在執行中的程式。每個應用程式運行時都是一個程序，IT 人員需要知道如何查看程序狀態、終止異常程序、分析程序資源使用情況。</p>



<p class="wp-block-paragraph"><strong>服務（Service）</strong>：在背景持續運行的程序，通常隨系統啟動自動執行。網頁伺服器（Apache、Nginx）、資料庫（MySQL）、DNS 伺服器都是以服務形式運行。IT 人員需要知道如何啟動、停止、重啟服務。</p>



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="539" src="https://dongdonggcp.com/wp-content/uploads/2026/07/地基二-作業系統-管理硬體資源的引擎-1024x539.png" alt="" class="wp-image-12234" srcset="https://dongdonggcp.com/wp-content/uploads/2026/07/地基二-作業系統-管理硬體資源的引擎-1024x539.png 1024w, https://dongdonggcp.com/wp-content/uploads/2026/07/地基二-作業系統-管理硬體資源的引擎-300x158.png 300w, https://dongdonggcp.com/wp-content/uploads/2026/07/地基二-作業系統-管理硬體資源的引擎-768x405.png 768w, https://dongdonggcp.com/wp-content/uploads/2026/07/地基二-作業系統-管理硬體資源的引擎.png 1306w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">地基二:作業系統 (管理硬體資源的引擎)</figcaption></figure>



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



<h3 class="wp-block-heading">轉職 IT 必懂的基礎概念：虛擬化與容器</h3>



<p class="wp-block-paragraph">虛擬化和容器技術是現代 IT 基礎設施的核心，也是理解雲端技術的關鍵橋樑。</p>



<p class="wp-block-paragraph">學完網路和作業系統之後，這是轉職 IT 的第三個必懂基礎。</p>



<h4 class="wp-block-heading">虛擬機器（VM）是什麼？</h4>



<p class="wp-block-paragraph">虛擬機器（Virtual Machine，VM）是用軟體模擬出來的電腦，讓一台實體伺服器能同時運行多個獨立的作業系統環境。</p>



<p class="wp-block-paragraph">想像你的實體伺服器是一棟大樓，虛擬機器就是大樓裡的一間間獨立套房。每間套房有自己的空間（CPU、記憶體、儲存空間），互不干擾，但共用同一棟大樓的基礎設施（實體硬體）。</p>



<p class="wp-block-paragraph">透過虛擬化技術，一台實體伺服器可以同時運行 10 台、20 台甚至更多的虛擬機器，大幅提升硬體使用效率。</p>



<p class="wp-block-paragraph">這也是雲端服務能夠快速提供「一台伺服器」給用戶的技術基礎。</p>



<p class="wp-block-paragraph">常見的虛擬化平台包含 VMware vSphere、Microsoft Hyper-V，以及雲端平台上的 GCP Compute Engine、AWS EC2。</p>



<h4 class="wp-block-heading">Docker 和容器技術的基本觀念</h4>



<p class="wp-block-paragraph">容器（Container）是比虛擬機器更輕量的應用程式打包方式，讓應用程式連同它所需的環境一起打包，在任何地方執行結果都一樣。</p>



<p class="wp-block-paragraph">用同一個大樓比喻：如果虛擬機器是獨立套房（有自己的廚房、浴室），容器就像是共用廚房和浴室的雅房——更省空間，但也能保持一定程度的獨立性。</p>



<p class="wp-block-paragraph">Docker 是目前最主流的容器平台。</p>



<p class="wp-block-paragraph">它讓你可以把應用程式和它需要的所有依賴（函式庫、設定、環境）打包成一個「容器映像檔」，在任何支援 Docker 的環境上執行，結果都一樣。</p>



<p class="wp-block-paragraph">這解決了 IT 工作中最讓人頭痛的問題之一：「在我電腦上可以跑，到伺服器上就壞了。」</p>



<p class="wp-block-paragraph">PS. 很多人會把 Docker 和 Container 混在一起，簡單的區分方式，Container 是一種技術，而在這個技術上出現非常多「廠商」，Docker 是巿佔率最高的一家，因為巿佔率太高了，所以大家很容易把 Docker 等同於 Container。</p>



<h4 class="wp-block-heading">虛擬化技術和雲端技術的關係</h4>



<p class="wp-block-paragraph">雲端技術的底層，就是大規模的虛擬化基礎設施。之所以叫大規模，是因為 Amazon、Azure 和 GCP 在全世界蓋了資料中心，也就是「超級無敵大的機房」。</p>



<p class="wp-block-paragraph">每個資料中心都有數十萬甚至百萬台硬體伺服器在運作，然後分租給全世界的使用者。</p>



<p class="wp-block-paragraph">當你在 GCP 開一台 Compute Engine 虛擬機，你實際上是在 Google 的實體資料中心裡，分配到一個虛擬化的運算資源。</p>



<p class="wp-block-paragraph">當你在 AWS 執行一個 Lambda 函數，你的程式碼是在一個高度優化的容器環境中運行。</p>



<p class="wp-block-paragraph">理解虛擬化和容器的概念，會讓你在學習雲端技術時快很多——因為你已經知道「這些資源在底層是怎麼運作的」。</p>



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="558" src="https://dongdonggcp.com/wp-content/uploads/2026/07/鋼骨結構-虛擬化與容器技術-1024x558.png" alt="" class="wp-image-12235" srcset="https://dongdonggcp.com/wp-content/uploads/2026/07/鋼骨結構-虛擬化與容器技術-1024x558.png 1024w, https://dongdonggcp.com/wp-content/uploads/2026/07/鋼骨結構-虛擬化與容器技術-300x163.png 300w, https://dongdonggcp.com/wp-content/uploads/2026/07/鋼骨結構-虛擬化與容器技術-768x419.png 768w, https://dongdonggcp.com/wp-content/uploads/2026/07/鋼骨結構-虛擬化與容器技術.png 1312w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">鋼骨結構 虛擬化與容器技術</figcaption></figure>



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



<h3 class="wp-block-heading">IT 新手也要懂的開發基礎概念</h3>



<p class="wp-block-paragraph">你不需要變成軟體工程師，但以下幾個開發基礎概念，會讓你在轉職 IT 之後溝通更順暢、解決問題更有效率。</p>



<p class="wp-block-paragraph">很多人以為 IT 維運和開發完全無關，但現代 IT 環境中，這條界線已經越來越模糊。</p>



<h4 class="wp-block-heading">寫程式是什麼？IT 一定要會寫 code 嗎？</h4>



<p class="wp-block-paragraph">程式是給電腦看的「操作指令集合」。你寫下一連串指令，電腦按照順序執行，完成你想要的任務。</p>



<p class="wp-block-paragraph">IT 人員不一定要會寫複雜的應用程式，但以下 3 種程式能力在 IT 工作中非常實用：</p>



<ol class="wp-block-list">
<li><strong>Shell Script（Bash）</strong>：自動化 Linux 系統操作，例如每天自動備份、批次新增帳號。</li>



<li><strong>PowerShell</strong>：Windows 環境的自動化腳本，SysAdmin 的必備工具。</li>



<li><strong>Python 基礎</strong>：處理資料、呼叫 API、寫簡單的自動化工具，雲端和 DevOps 工作中非常常用。</li>
</ol>



<p class="wp-block-paragraph">建議新手從 Shell Script 或 Python 入門，能寫出「讓電腦幫我做重複工作」的腳本，就達到 IT 工作需要的基本門檻。</p>



<h4 class="wp-block-heading">網站是怎麼運作的？網頁伺服器的角色</h4>



<p class="wp-block-paragraph">每次你在瀏覽器輸入一個網址，背後發生了以下流程：</p>



<ol class="wp-block-list">
<li>瀏覽器透過 DNS 查詢，找到這個網址對應的伺服器 IP。</li>



<li>瀏覽器用 HTTP/HTTPS 向伺服器發送「請給我這個頁面」的請求。</li>



<li>伺服器上的<strong>網頁伺服器軟體</strong>（如 Nginx 或 Apache）接收請求，找到對應的資源。</li>



<li>網頁伺服器把頁面內容回傳給瀏覽器，瀏覽器顯示出來。</li>
</ol>



<p class="wp-block-paragraph">網頁伺服器（Web Server）是負責接收 HTTP 請求、回傳網頁內容的軟體。Nginx 和 <a href="https://dongdonggcp.com/2023/08/01/build-2-apache-virtual-hosts-on-ubuntu-on-gcp/" target="_blank" rel="noopener" title="">Apache</a> 是最常見的兩種，在雲端環境中也經常以容器形式部署。</p>



<p class="wp-block-paragraph">IT 人員不需要會設計網站，但需要知道如何安裝、設定、管理網頁伺服器，以及如何排查「網站連不上」這類問題。</p>



<h4 class="wp-block-heading">前端和後端的差別是什麼？</h4>



<p class="wp-block-paragraph">這兩個詞在 IT 工作中非常常見，新手要先建立基本認識。</p>



<h5 class="wp-block-heading">前端（Frontend）</h5>



<p class="wp-block-paragraph">是使用者直接看到、互動的部分，以 HTML、CSS、JavaScript 為核心技術。網頁的版面、按鈕、動畫、表單都屬於前端範疇。</p>



<h5 class="wp-block-heading">後端（Backend）</h5>



<p class="wp-block-paragraph">是使用者看不到、但在背景運作的部分，負責處理商業邏輯、資料存取、API 溝通。後端技術包含 Python、Node.js、Java、Go 等程式語言。</p>



<p class="wp-block-paragraph">IT 維運人員雖然不需要親自開發前後端，但理解這個架構有 2 個實際好處：</p>



<ol class="wp-block-list">
<li>當應用程式出問題時，你能判斷「問題是在前端、後端還是基礎設施層」。</li>



<li>和開發團隊溝通時，你能聽懂他們在說什麼，合作效率會高很多。</li>
</ol>



<h4 class="wp-block-heading">資料庫是什麼？IT 人員需要懂到什麼程度？</h4>



<p class="wp-block-paragraph">資料庫（Database）是儲存和管理結構化資料的系統，幾乎所有應用程式都依賴它運作。</p>



<p class="wp-block-paragraph">電商網站的商品資料、使用者帳號、訂單記錄；企業的員工資料、財務數據；社群平台的貼文和互動——這些全都存在資料庫裡。</p>



<p class="wp-block-paragraph">常見的資料庫分 2 大類：</p>



<p class="wp-block-paragraph"><strong>關聯式資料庫（SQL）</strong>：以表格形式儲存資料，資料之間有明確的關聯。代表工具：MySQL、PostgreSQL、Microsoft SQL Server。這類資料庫在企業環境中非常普遍。</p>



<p class="wp-block-paragraph"><strong>非關聯式資料庫（NoSQL）</strong>：以更彈性的格式（文件、鍵值、圖形等）儲存資料，適合大量、多樣化的資料。代表工具：MongoDB、Redis、Google Firestore。</p>



<p class="wp-block-paragraph">IT 人員至少要能讀懂基本的 SQL 查詢（SELECT、WHERE、JOIN），知道如何備份和還原資料庫，以及了解資料庫的基本權限管理。進階的資料庫調效和架構設計，通常是資料庫管理員（DBA）的專責工作。</p>



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="535" src="https://dongdonggcp.com/wp-content/uploads/2026/07/內部線路-IT-必須懂的開發基礎架構-1024x535.png" alt="" class="wp-image-12237" srcset="https://dongdonggcp.com/wp-content/uploads/2026/07/內部線路-IT-必須懂的開發基礎架構-1024x535.png 1024w, https://dongdonggcp.com/wp-content/uploads/2026/07/內部線路-IT-必須懂的開發基礎架構-300x157.png 300w, https://dongdonggcp.com/wp-content/uploads/2026/07/內部線路-IT-必須懂的開發基礎架構-768x402.png 768w, https://dongdonggcp.com/wp-content/uploads/2026/07/內部線路-IT-必須懂的開發基礎架構.png 1182w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">內部線路: IT 必須懂的開發基礎架構</figcaption></figure>



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



<h3 class="wp-block-heading">轉職 IT 的學習路徑建議</h3>



<p class="wp-block-paragraph">有了以上的知識地圖，最重要的問題來了：照什麼順序學？</p>



<p class="wp-block-paragraph">很多新手的問題不是「不想學」，而是「不知道先學哪個」，結果每個都學一點、每個都沒學完，半年後還是在原地踏步。</p>



<p class="wp-block-paragraph">以下是一個實際可行的三階段學習路徑。 </p>



<h4 class="wp-block-heading">第一階段：打好地基（0–3 個月）</h4>



<p class="wp-block-paragraph">這個階段的目標只有一個：建立基礎概念，不求深入，求「聽得懂」。</p>



<p class="wp-block-paragraph">學習內容：</p>



<ol class="wp-block-list">
<li>網路基礎：IP、<a href="https://dongdonggcp.com/2025/11/19/what-is-dns-domain-name-system-guide/" target="_blank" rel="noopener" title="">DNS</a>、HTTP、防火牆、<a href="https://dongdonggcp.com/2026/06/01/what-is-routing-gcp-cloud-shell-basic-commands/" target="_blank" rel="noopener" title="">路由</a> </li>



<li>作業系統基礎：Windows 基本操作 + Linux 入門指令（推薦：<a href="https://linux.vbird.org/" target="_blank" rel="noopener" title="">鳥哥的 Linux 私房菜</a>）</li>



<li>虛擬化入門：在自己電腦上安裝 <a href="https://www.virtualbox.org/" target="_blank" rel="noopener" title="">VirtualBox</a> (免費的)，建立一台 Linux 虛擬機練習</li>



<li>開發基礎概念：了解前後端架構、資料庫基本概念（不需要動手寫 code）</li>
</ol>



<p class="wp-block-paragraph">這個階段不建議報名付費課程，先用免費資源確認自己有興趣再說。</p>



<h4 class="wp-block-heading">第二階段：選定方向，取得入門認證（3–6 個月）</h4>



<p class="wp-block-paragraph">這個階段要做 2 件事：選定職涯路徑，以及取得一張能證明基礎能力的認證。</p>



<p class="wp-block-paragraph">建議的入門認證：</p>



<ol class="wp-block-list">
<li><strong><a href="https://zh.wikipedia.org/zh-tw/%E6%80%9D%E7%A7%91%E8%AE%A4%E8%AF%81%E7%BD%91%E7%BB%9C%E5%B7%A5%E7%A8%8B%E5%B8%88" target="_blank" rel="noopener" title="">Cisco CCNA</a></strong>：網路工程方向的入門認證，考核網路概念、設備操作、故障排查。</li>



<li><strong><a href="https://cloud.google.com/learn/certification/cloud-digital-leader?hl=zh-tw" target="_blank" rel="noopener" title="">Google Cloud Digital Leader</a></strong>：雲端方向的非技術入門認證，了解雲端概念和 GCP 服務，難度最低，適合完全沒有雲端背景的新手。(免費學習網站：<a href="https://www.skills.google/paths/9?locale=zh_TW" target="_blank" rel="noopener" title="">Google Skills</a>)</li>
</ol>



<p class="wp-block-paragraph">取得認證不是目的。它的作用是：給你一個明確的學習目標，以及一個可以放在履歷上的具體成果。</p>



<h4 class="wp-block-heading">第三階段：上手雲端平台（6 個月後）</h4>



<p class="wp-block-paragraph">完成前兩個階段後，你已經有足夠的基礎知識來學習雲端技術。</p>



<p class="wp-block-paragraph">這個階段的目標：在 GCP 或 AWS 上動手操作，建立真實的雲端實作經驗。</p>



<p class="wp-block-paragraph">建議從免費試用帳號開始（<a href="https://dongdonggcp.com/2024/02/01/how-to-apply-gcp-free-usage-credit-300-dollars/" target="_blank" rel="noopener" title="">GCP 提供 300 美元的免費額度</a>，<a href="https://docs.aws.amazon.com/zh_tw/whitepapers/latest/how-aws-pricing-works/get-started-with-the-aws-free-tier.html" target="_blank" rel="noopener" title="">AWS 提供 12 個月的免費方案</a>），練習建立虛擬機、設定網路、部署簡單的應用程式。</p>



<p class="wp-block-paragraph">同時，開始準備一張雲端技術認證，例如 Google Cloud Associate Cloud Engineer 或 AWS Solutions Architect Associate。這兩張認證在台灣的雲端工程師職缺中認可度很高。</p>



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



<h3 class="wp-block-heading">為什麼現代 IT 轉職者都要學雲端技術？</h3>



<p class="wp-block-paragraph">如果你問現在的 IT 主管「新人最需要補強哪個技能」，超過 6 成的人會回答：雲端。</p>



<p class="wp-block-paragraph">這不是趨勢，這是現況。</p>



<h4 class="wp-block-heading">雲端技術已成為 IT 職缺的標準要求</h4>



<p class="wp-block-paragraph">打開 104 或 LinkedIn，搜尋「IT 工程師」或「系統管理員」的職缺，超過 70% 的職缺在「加分條件」或「必備技能」欄位裡，明確寫著 AWS、GCP 或 Azure 的相關經驗。</p>



<p class="wp-block-paragraph">原因很直接：過去 10 年，企業的 IT 基礎設施從自建機房大規模遷移到雲端。</p>



<p class="wp-block-paragraph">根據 Gartner 的預測，到 2026 年，<a href="https://www.linkedin.com/posts/tierpoint_the-latest-cloud-computing-innovation-trends-activity-7381745959850078208-7bLz" target="_blank" rel="noopener" title="">全球超過 75% 的企業將採用雲端優先策略</a>。這意味著 IT 人員的日常工作環境，已經從管理實體伺服器，轉變為管理雲端資源。</p>



<p class="wp-block-paragraph">不懂雲端技術的 IT 人員，正在快速失去競爭力。 </p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="567" src="https://dongdonggcp.com/wp-content/uploads/2026/07/頂層建築-為什麼雲端技術是最終目的地-1024x567.png" alt="" class="wp-image-12238" srcset="https://dongdonggcp.com/wp-content/uploads/2026/07/頂層建築-為什麼雲端技術是最終目的地-1024x567.png 1024w, https://dongdonggcp.com/wp-content/uploads/2026/07/頂層建築-為什麼雲端技術是最終目的地-300x166.png 300w, https://dongdonggcp.com/wp-content/uploads/2026/07/頂層建築-為什麼雲端技術是最終目的地-768x426.png 768w, https://dongdonggcp.com/wp-content/uploads/2026/07/頂層建築-為什麼雲端技術是最終目的地.png 1321w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<h4 class="wp-block-heading">GCP、AWS、Azure 三大平台哪個適合新手？</h4>



<p class="wp-block-paragraph">三大平台各有優勢，但對轉職 IT 新手來說，選擇標準只有 2 個：市場需求和學習資源。</p>



<p class="wp-block-paragraph"><strong>AWS</strong>（Amazon Web Services）是全球市佔率最高的雲端平台，約佔 33%。職缺數量最多，學習資源最豐富，但服務項目多到讓新手眼花撩亂。</p>



<p class="wp-block-paragraph"><strong>GCP</strong>（Google Cloud Platform）是 Google 旗下的雲端平台，市佔率約 11%，在資料工程、機器學習、生成式 AI、Kubernetes 等領域有明顯優勢。介面相對友善，適合有 Google 產品使用習慣的新手。</p>



<p class="wp-block-paragraph"><strong>Azure</strong>（Microsoft Azure）市佔率約 22%，在企業環境中非常普遍，尤其是已使用 Microsoft 365 和 Windows Server 的公司。如果你的目標是進入傳統大型企業的 IT 部門，Azure 是很好的選擇。</p>



<p class="wp-block-paragraph">新手建議：先選一個平台深入學習，不要三個同時學。選定之後，把免費試用額度拿來做實驗，動手操作比看教學影片有效 3 倍。</p>



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="547" src="https://dongdonggcp.com/wp-content/uploads/2026/07/雲端平台選擇指南-新手該從哪裡開始-1024x547.png" alt="" class="wp-image-12239" srcset="https://dongdonggcp.com/wp-content/uploads/2026/07/雲端平台選擇指南-新手該從哪裡開始-1024x547.png 1024w, https://dongdonggcp.com/wp-content/uploads/2026/07/雲端平台選擇指南-新手該從哪裡開始-300x160.png 300w, https://dongdonggcp.com/wp-content/uploads/2026/07/雲端平台選擇指南-新手該從哪裡開始-768x410.png 768w, https://dongdonggcp.com/wp-content/uploads/2026/07/雲端平台選擇指南-新手該從哪裡開始.png 1392w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">雲端平台選擇指南 新手該從哪裡開始?</figcaption></figure>



<h4 class="wp-block-heading">從 IT 基礎到雲端技術：你已經準備好了</h4>



<p class="wp-block-paragraph">看到這裡，你已經建立了轉職 IT 最重要的知識骨架：</p>



<ul class="wp-block-list">
<li>網路知識：你知道資料在網路上怎麼流動</li>



<li>作業系統：你知道 Linux 和 Windows Server 各自的角色</li>



<li>虛擬化與容器：你知道雲端服務的底層邏輯</li>



<li>開發基礎：你知道前後端和資料庫在整個系統中的位置</li>
</ul>



<p class="wp-block-paragraph">這些知識，正好是學習雲端技術需要的前置條件。</p>



<p class="wp-block-paragraph">你不需要全部精通，但每個概念都要「聽得懂、說得出來」。</p>



<p class="wp-block-paragraph">雲端技術不是 IT 的終點，但它是現在最值得投資的方向。從這裡開始，你的轉職 IT 學習路徑會越來越清晰。</p>



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="554" src="https://dongdonggcp.com/wp-content/uploads/2026/07/施工排程-三階段轉職學習藍圖v2-1024x554.png" alt="" class="wp-image-12241" srcset="https://dongdonggcp.com/wp-content/uploads/2026/07/施工排程-三階段轉職學習藍圖v2-1024x554.png 1024w, https://dongdonggcp.com/wp-content/uploads/2026/07/施工排程-三階段轉職學習藍圖v2-300x162.png 300w, https://dongdonggcp.com/wp-content/uploads/2026/07/施工排程-三階段轉職學習藍圖v2-768x416.png 768w, https://dongdonggcp.com/wp-content/uploads/2026/07/施工排程-三階段轉職學習藍圖v2-1536x831.png 1536w, https://dongdonggcp.com/wp-content/uploads/2026/07/施工排程-三階段轉職學習藍圖v2.png 1822w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">轉職 IT 三階段 學習藍圖</figcaption></figure>



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



<h3 class="wp-block-heading">常見問題（FAQ）</h3>



<p class="wp-block-paragraph"><strong>Q1：轉職 IT 一定要有大學學歷嗎？</strong><br>A：不需要。台灣中小企業和新創公司更看重實際能力，而非學歷。取得 Google Cloud 等認證，搭配有作品集（Portfolio），可以有效彌補學歷不足，在轉職 IT 面試中取得競爭優勢。</p>



<p class="wp-block-paragraph"><strong>Q2：IT 工作需要會英文嗎？</strong><br>A：基礎英文閱讀能力是必要的。IT 的技術文件、官方手冊、錯誤訊息幾乎都是英文。不需要流利口說，但能讀懂技術文件的英文閱讀能力是基本門檻。如果完全不懂英文，解決問題的速度會慢很多。</p>



<p class="wp-block-paragraph"><strong>Q3：轉職 IT 需要買什麼設備？</strong><br>A：入門階段不需要購買昂貴設備。一台能流暢運行虛擬機的電腦（建議 8 GB 記憶體以上）就夠了。雲端平台的免費試用額度可以讓你在不花錢的情況下練習大多數技術。</p>



<p class="wp-block-paragraph"><strong>Q4：IT 工作壓力大嗎？</strong><br>A：壓力程度因職位而異。系統當機、資安事件、緊急維護確實存在，但不是每天都會發生。建立好的監控和自動化機制，可以大幅降低緊急事件的頻率。</p>



<p class="wp-block-paragraph"><strong>Q5：女生適合轉職 IT 嗎？</strong><br>A：完全適合。IT 產業的技術工作以能力論英雄，性別不是障礙。台灣的 IT 職場女性比例雖然仍低於男性，但正在逐年成長，特別是在雲端、資料分析、專案管理等方向。</p>



<p class="wp-block-paragraph"><strong>Q6：轉職 IT 之後薪資一定會提升嗎？</strong><br>A：不保證，但機率很高。根據 104 人力銀行的薪資調查，IT 相關職位的平均薪資高於台灣整體職場平均水準約 20–30%。入門職位薪資可能和目前差不多，但晉升空間和薪資天花板通常更高。</p>



<p class="wp-block-paragraph"><strong>Q7：需要同時學多個雲端平台嗎？</strong><br>A：不建議同時學多個平台。初期選定 AWS、GCP 或 Azure 其中一個深入學習，取得對應認證後再擴展到其他平台，是轉職 IT 最有效率的雲端學習策略。</p>



<p class="wp-block-paragraph"><strong>Q8：IT 認證有效期限是多久？</strong><br>A：大多數 IT 認證有 2–3 年的有效期，到期前需要通過繼續教育或重新考試來更新。Google Cloud 和 AWS 的認證有效期為 2–3 年不等。</p>



<p class="wp-block-paragraph"><strong>Q9：可以邊工作邊準備轉職 IT 嗎？</strong><br>A：可以，而且這是大多數成功轉職者的做法。建議每週至少投入 10–15 小時的學習時間，利用下班後和週末。<a href="https://dongdonggcp.com/gcp-architect-class/" target="_blank" rel="noopener" title="">線上課程</a>和自學資源讓你不需要請假也能系統性學習。</p>



<p class="wp-block-paragraph"><strong>Q10：IT 產業會被 AI 取代嗎？</strong><br>A：IT 基礎設施管理、雲端架構設計、資安防護等核心工作，在可預見的未來仍然需要人類判斷，尤其是這些工作所需的「軟實力」，包含溝通協調與團隊合作，是 AI 很難取代的。而懂得善用 AI 工具的轉職 IT 人員，生產力和競爭力反而會大幅提升，而非被取代。</p><p>The post <a href="https://dongdonggcp.com/2026/07/21/t-career-change-beginners-guide-cloud-technology/">轉職 IT 新手必學知識完整指南：從零基礎到雲端技術入門</a> first appeared on <a href="https://dongdonggcp.com">東東 GCP 教學 - GCP 實戰講師</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://dongdonggcp.com/2026/07/21/t-career-change-beginners-guide-cloud-technology/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>路由是什麼？白話概念與實作教學</title>
		<link>https://dongdonggcp.com/2026/06/01/what-is-routing-gcp-cloud-shell-basic-commands/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=what-is-routing-gcp-cloud-shell-basic-commands</link>
					<comments>https://dongdonggcp.com/2026/06/01/what-is-routing-gcp-cloud-shell-basic-commands/#respond</comments>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Mon, 01 Jun 2026 07:38:44 +0000</pubDate>
				<category><![CDATA[轉職 IT]]></category>
		<category><![CDATA[Route]]></category>
		<category><![CDATA[網路]]></category>
		<category><![CDATA[路由]]></category>
		<guid isPermaLink="false">https://dongdonggcp.com/?p=11989</guid>

					<description><![CDATA[<p>路由</p>
<p>The post <a href="https://dongdonggcp.com/2026/06/01/what-is-routing-gcp-cloud-shell-basic-commands/">路由是什麼？白話概念與實作教學</a> first appeared on <a href="https://dongdonggcp.com">東東 GCP 教學 - GCP 實戰講師</a>.</p>]]></description>
										<content:encoded><![CDATA[<h3 class="wp-block-heading">什麼是路由？</h3>



<p class="wp-block-paragraph">路由（Routing）是網路世界裡「決定資料封包要走哪條路」的機制。</p>



<p class="wp-block-paragraph">每一筆網路請求——不管是你打開網頁、傳訊息還是下載檔案——背後都是一包一包的資料在傳送。</p>



<p class="wp-block-paragraph">這些資料包不會自己知道要去哪，需要有人告訴它「往這個方向走」。這個「決定方向」的過程，就叫路由。 </p>



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="478" src="https://dongdonggcp.com/wp-content/uploads/2026/06/路由是決定資料封包怎麼走的導航大腦-1024x478.png" alt="" class="wp-image-12009" srcset="https://dongdonggcp.com/wp-content/uploads/2026/06/路由是決定資料封包怎麼走的導航大腦-1024x478.png 1024w, https://dongdonggcp.com/wp-content/uploads/2026/06/路由是決定資料封包怎麼走的導航大腦-300x140.png 300w, https://dongdonggcp.com/wp-content/uploads/2026/06/路由是決定資料封包怎麼走的導航大腦-768x359.png 768w, https://dongdonggcp.com/wp-content/uploads/2026/06/路由是決定資料封包怎麼走的導航大腦-1536x717.png 1536w, https://dongdonggcp.com/wp-content/uploads/2026/06/路由是決定資料封包怎麼走的導航大腦-2048x956.png 2048w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">路由是決定資料封包怎麼走的導航大腦</figcaption></figure>



<h4 class="wp-block-heading">用生活類比理解路由：郵差怎麼決定走哪條路</h4>



<p class="wp-block-paragraph">想像你寄一封信給台北市大安區的朋友。</p>



<p class="wp-block-paragraph">郵差不會隨機亂走，他會查地址，然後依照規則：</p>



<ol class="wp-block-list">
<li>台北市的信先送到台北郵局</li>



<li>大安區的信再分配到大安郵局</li>



<li>最後才送到那條街</li>
</ol>



<p class="wp-block-paragraph">這個「查地址、決定往哪送」的流程，就是路由在做的事。</p>



<p class="wp-block-paragraph">網路裡的路由器（Router）就是那個郵差。</p>



<p class="wp-block-paragraph">它負責看每一個資料包的目的地 IP，然後決定要從哪個介面把它轉出去。</p>



<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" width="944" height="464" src="https://dongdonggcp.com/wp-content/uploads/2026/06/封包不會自己找路它需要「地址」與「方向」.png" alt="" class="wp-image-12011" srcset="https://dongdonggcp.com/wp-content/uploads/2026/06/封包不會自己找路它需要「地址」與「方向」.png 944w, https://dongdonggcp.com/wp-content/uploads/2026/06/封包不會自己找路它需要「地址」與「方向」-300x147.png 300w, https://dongdonggcp.com/wp-content/uploads/2026/06/封包不會自己找路它需要「地址」與「方向」-768x377.png 768w" sizes="(max-width: 944px) 100vw, 944px" /><figcaption class="wp-element-caption">封包不會自己找路, 它需要「地址」與「方向」</figcaption></figure>



<h4 class="wp-block-heading">路由和交換器的差別：別再搞混了</h4>



<p class="wp-block-paragraph">很多新手會把路由器和交換器（Switch）搞混。這兩個東西做的事完全不同。</p>



<p class="wp-block-paragraph"><strong>交換器</strong>工作在第二層（Layer 2）。</p>



<p class="wp-block-paragraph">負責在同一個區域網路（LAN）內，根據 MAC 地址把資料送到對的設備。</p>



<p class="wp-block-paragraph"><strong>路由器</strong>工作在第三層（Layer 3）。</p>



<p class="wp-block-paragraph">負責在不同網路之間，根據 IP 地址決定資料要往哪個方向走。</p>



<p class="wp-block-paragraph">簡單說：交換器負責同一棟大樓裡的傳遞，路由器負責跨城市的快遞。</p>



<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" width="952" height="438" src="https://dongdonggcp.com/wp-content/uploads/2026/06/別把交換器與路由器搞混.png" alt="" class="wp-image-12010" srcset="https://dongdonggcp.com/wp-content/uploads/2026/06/別把交換器與路由器搞混.png 952w, https://dongdonggcp.com/wp-content/uploads/2026/06/別把交換器與路由器搞混-300x138.png 300w, https://dongdonggcp.com/wp-content/uploads/2026/06/別把交換器與路由器搞混-768x353.png 768w" sizes="(max-width: 952px) 100vw, 952px" /><figcaption class="wp-element-caption">別把交換器與路由器搞混</figcaption></figure>



<h4 class="wp-block-heading">路由器、路由表、路由協定：三個核心名詞一次搞懂</h4>



<p class="wp-block-paragraph">學路由會遇到三個常見名詞，先把它們搞清楚。</p>



<p class="wp-block-paragraph"><strong>路由器（Router）</strong> 是負責轉發資料包的設備或系統，可以是實體硬體，也可以是軟體模擬的。</p>



<p class="wp-block-paragraph"><strong>路由表（Routing Table）</strong> 是路由器內部存的一張「地圖」，記錄了「去哪個網段，要走哪個介面、經過哪個 Gateway」。路由器每次轉發資料包，都是查這張表做決定。</p>



<p class="wp-block-paragraph"><strong>路由協定（Routing Protocol）</strong> 是路由器之間互相溝通、交換路由資訊的規則，常見的有 OSPF、BGP、RIP。這篇文章不深入這個主題，你只需要知道它的存在。</p>



<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" width="950" height="383" src="https://dongdonggcp.com/wp-content/uploads/2026/06/路由器、路由表、路由協定.png" alt="" class="wp-image-12012" srcset="https://dongdonggcp.com/wp-content/uploads/2026/06/路由器、路由表、路由協定.png 950w, https://dongdonggcp.com/wp-content/uploads/2026/06/路由器、路由表、路由協定-300x121.png 300w, https://dongdonggcp.com/wp-content/uploads/2026/06/路由器、路由表、路由協定-768x310.png 768w" sizes="(max-width: 950px) 100vw, 950px" /><figcaption class="wp-element-caption">路由器、路由表、路由協定</figcaption></figure>



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



<h3 class="wp-block-heading">學路由對你的職涯有什麼幫助？</h3>



<p class="wp-block-paragraph">路由不是只有網路工程師才需要懂，它的應用範圍比你想的寬。</p>



<p class="wp-block-paragraph">懂路由基礎，能讓你在排查問題、評估架構、技術面試這三個場景，明顯比不懂的人更有效率。 </p>



<h4 class="wp-block-heading">哪些工作會用到路由知識？</h4>



<p class="wp-block-paragraph">以下這些職位，在日常工作中都會直接或間接碰到路由。</p>



<p class="wp-block-paragraph"><strong>IT 支援／網路管理員</strong>：</p>



<p class="wp-block-paragraph">公司網路出問題，第一個被叫去查的就是這個職位。能看懂路由表、會用 traceroute 追蹤封包，排查速度至少快 3 倍。</p>



<p class="wp-block-paragraph"><strong>後端工程師</strong>：</p>



<p class="wp-block-paragraph">部署服務到雲端時，常遇到「服務起來了但連不到」的問題。這類問題中，超過 80% 和網路設定有關，路由是最常見的原因之一。</p>



<p class="wp-block-paragraph">懂路由，能自己排查，不用每次都等網路部門。</p>



<p class="wp-block-paragraph"><strong>DevOps／SRE 工程師</strong>：</p>



<p class="wp-block-paragraph">管理 Kubernetes 叢集、設定 VPC、處理跨區域連線，每天都在和路由打交道。</p>



<p class="wp-block-paragraph">這個職位對路由的要求是「不只懂概念，還要能動手設定」。</p>



<p class="wp-block-paragraph"><strong><a href="https://dongdonggcp.com/2023/06/29/can-i-enter-google-what-to-do-as-a-cloud-architect/" title="">雲端架構師</a></strong>：</p>



<p class="wp-block-paragraph">設計多雲或混合雲架構時，路由決定了不同環境之間怎麼互通。架構設計錯了，後面的問題會很難收拾。</p>



<p class="wp-block-paragraph"><strong>資安工程師</strong>：</p>



<p class="wp-block-paragraph">滲透測試、網路隔離、零信任架構，都需要理解路由才能判斷流量走向和攻擊面。</p>



<p class="wp-block-paragraph">就算你現在的工作完全不碰網路，懂路由基礎也能讓你在跨部門溝通時更有效率。</p>



<p class="wp-block-paragraph">你看得懂網路部門在說什麼，他們說的問題你能快速判斷是不是和你有關。</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="984" height="511" src="https://dongdonggcp.com/wp-content/uploads/2026/06/為什麼你必須懂路由.png" alt="" class="wp-image-12013" srcset="https://dongdonggcp.com/wp-content/uploads/2026/06/為什麼你必須懂路由.png 984w, https://dongdonggcp.com/wp-content/uploads/2026/06/為什麼你必須懂路由-300x156.png 300w, https://dongdonggcp.com/wp-content/uploads/2026/06/為什麼你必須懂路由-768x399.png 768w" sizes="(max-width: 984px) 100vw, 984px" /></figure>



<h4 class="wp-block-heading">懂路由，能讓你在團隊裡做什麼？</h4>



<p class="wp-block-paragraph">懂路由不會讓你變成網路專家，但會讓你在以下 3 個場景明顯不同於不懂的人。</p>



<p class="wp-block-paragraph"><strong>場景一：服務上線後出現連線問題</strong></p>



<p class="wp-block-paragraph">不懂路由的人：「我的程式沒問題，是網路的事，讓網路部門來看。」</p>



<p class="wp-block-paragraph">懂路由的人：先跑 <code>ip route show</code> 和 <code>traceroute</code>，3 分鐘內確認問題是在路由層還是應用層，再決定要找誰。</p>



<p class="wp-block-paragraph">這個差異在緊急事故（Incident）時非常明顯。</p>



<p class="wp-block-paragraph"><strong>場景二：評估雲端架構方案</strong></p>



<p class="wp-block-paragraph">不懂路由的人：看著架構圖點頭，但不知道兩個 VPC 之間的流量怎麼走。</p>



<p class="wp-block-paragraph">懂路由的人：能直接問「這兩個網段之間的路由是怎麼設定的？有沒有非對稱路由的風險？」，讓討論更具體。</p>



<p class="wp-block-paragraph"><strong>場景三：技術面試</strong></p>



<p class="wp-block-paragraph">後端、MIS、網管 的技術面試，網路基礎幾乎是必考題。</p>



<p class="wp-block-paragraph">能說「我實際操作過 ip route 和 traceroute」，比只說「我知道路由的概念」有說服力得多。</p>



<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" width="969" height="430" src="https://dongdonggcp.com/wp-content/uploads/2026/06/懂路由能做什麼？.png" alt="" class="wp-image-12014" srcset="https://dongdonggcp.com/wp-content/uploads/2026/06/懂路由能做什麼？.png 969w, https://dongdonggcp.com/wp-content/uploads/2026/06/懂路由能做什麼？-300x133.png 300w, https://dongdonggcp.com/wp-content/uploads/2026/06/懂路由能做什麼？-768x341.png 768w" sizes="(max-width: 969px) 100vw, 969px" /><figcaption class="wp-element-caption">懂路由能做什麼？</figcaption></figure>



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



<h3 class="wp-block-heading">為什麼要學路由指令？</h3>



<h4 class="wp-block-heading">工程師遇到網路問題，路由是第一個要查的地方</h4>



<p class="wp-block-paragraph">當你遇到「連不到某台主機」「某個服務突然無法訪問」這類問題，在 90% 的情況下可以用路由指令在 3 分鐘內縮小範圍。</p>



<p class="wp-block-paragraph">不是說路由一定是問題所在，而是查路由表的成本最低、最快能排除或確認。</p>



<p class="wp-block-paragraph">常見的排查邏輯是這樣：</p>



<ol class="wp-block-list">
<li>查路由表，確認有沒有通往目標網段的路徑</li>



<li>如果路徑存在，用 traceroute 看封包卡在哪一跳</li>



<li>根據結果判斷是路由問題、防火牆問題還是目標主機問題</li>
</ol>



<h4 class="wp-block-heading">路由指令能幫你做什麼：診斷、追蹤、設定</h4>



<p class="wp-block-paragraph">路由指令不只能「查」，還能做 3 件事。</p>



<p class="wp-block-paragraph"><strong>診斷</strong>：確認目前這台機器的路由表長什麼樣，有沒有缺少某個網段的路徑。</p>



<p class="wp-block-paragraph"><strong>追蹤</strong>：用 traceroute 看資料包實際走了哪幾跳，每一跳花了多少時間，找出延遲或中斷的位置。</p>



<p class="wp-block-paragraph"><strong>設定</strong>：手動新增或刪除靜態路由，讓特定流量走特定的路徑。</p>



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



<h3 class="wp-block-heading">用 GCP Cloud Shell 練習路由指令：不用付費、不用安裝環境</h3>



<h4 class="wp-block-heading">什麼是 GCP Cloud Shell？</h4>



<p class="wp-block-paragraph">GCP Cloud Shell 是 Google Cloud Platform 提供的免費線上終端機環境，讓使用者直接在瀏覽器裡執行指令，不需要在自己的電腦安裝任何工具。它的底層是一台 Debian Linux 虛擬機，預裝了 <code>gcloud</code>、<code>git</code>、<code>python</code>、<code>vim</code> 等常用工具，每個 Google 帳號都可以免費使用，不需要信用卡。 </p>



<h4 class="wp-block-heading">如何開啟 GCP Cloud Shell：只需要 Google 帳號</h4>



<p class="wp-block-paragraph">不需要建立任何 GCP 專案，也不需要輸入付款資訊，只要有 Google 帳號就能開啟。</p>



<h5 class="wp-block-heading">Step 1：登入 Google Cloud Console</h5>



<p class="wp-block-paragraph">打開瀏覽器，前往 <a href="https://console.cloud.google.com">console.cloud.google.com</a>，用你的 Google 帳號登入。</p>



<p class="wp-block-paragraph">如果是第一次使用，Google 會要求你同意服務條款，接受即可，不會產生任何費用。</p>



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="766" src="https://dongdonggcp.com/wp-content/uploads/2026/06/登入-GCP-Console-同意服務條款-1024x766.png" alt="" class="wp-image-11990" srcset="https://dongdonggcp.com/wp-content/uploads/2026/06/登入-GCP-Console-同意服務條款-1024x766.png 1024w, https://dongdonggcp.com/wp-content/uploads/2026/06/登入-GCP-Console-同意服務條款-300x224.png 300w, https://dongdonggcp.com/wp-content/uploads/2026/06/登入-GCP-Console-同意服務條款-768x574.png 768w, https://dongdonggcp.com/wp-content/uploads/2026/06/登入-GCP-Console-同意服務條款.png 1218w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">登入 GCP Console 同意服務條款</figcaption></figure>



<h5 class="wp-block-heading">Step 2：點擊右上角 Cloud Shell 圖示</h5>



<p class="wp-block-paragraph">登入後，畫面右上角有一個「<code>&gt;_</code>」的圖示，點擊它。</p>



<p class="wp-block-paragraph">這個圖示在通知鈴鐺的左邊，滑鼠移過去會顯示「啟用 Cloud Shell」。</p>



<figure class="wp-block-image aligncenter size-full is-resized"><img loading="lazy" decoding="async" width="1007" height="703" src="https://dongdonggcp.com/wp-content/uploads/2026/06/點擊右上角-Cloud-Shell-圖示.png" alt="" class="wp-image-11991" style="width:609px;height:auto" srcset="https://dongdonggcp.com/wp-content/uploads/2026/06/點擊右上角-Cloud-Shell-圖示.png 1007w, https://dongdonggcp.com/wp-content/uploads/2026/06/點擊右上角-Cloud-Shell-圖示-300x209.png 300w, https://dongdonggcp.com/wp-content/uploads/2026/06/點擊右上角-Cloud-Shell-圖示-768x536.png 768w" sizes="(max-width: 1007px) 100vw, 1007px" /><figcaption class="wp-element-caption">點擊右上角 Cloud Shell 圖示</figcaption></figure>



<h5 class="wp-block-heading">Step 3：等待環境啟動</h5>



<p class="wp-block-paragraph">點擊後，畫面下方會出現一個終端機視窗，Cloud Shell 環境需要約 30 秒啟動。</p>



<p class="wp-block-paragraph">啟動完成後，你會看到類似這樣的提示符：</p>



<pre class="wp-block-code"><code>user@cloudshell:~ (your-project-id)$</code></pre>



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="448" src="https://dongdonggcp.com/wp-content/uploads/2026/06/進入-Cloud-Shell-終端機視窗-1024x448.png" alt="" class="wp-image-11992" srcset="https://dongdonggcp.com/wp-content/uploads/2026/06/進入-Cloud-Shell-終端機視窗-1024x448.png 1024w, https://dongdonggcp.com/wp-content/uploads/2026/06/進入-Cloud-Shell-終端機視窗-300x131.png 300w, https://dongdonggcp.com/wp-content/uploads/2026/06/進入-Cloud-Shell-終端機視窗-768x336.png 768w, https://dongdonggcp.com/wp-content/uploads/2026/06/進入-Cloud-Shell-終端機視窗.png 1343w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">進入 Cloud Shell 終端機視窗.png</figcaption></figure>



<p class="wp-block-paragraph">這代表你已經在 Cloud Shell 環境裡了，可以開始輸入指令。</p>



<h4 class="wp-block-heading">Cloud Shell 的限制與注意事項：路由設定重啟後會還原</h4>



<p class="wp-block-paragraph">開始操作之前，有一件事要先說清楚。</p>



<p class="wp-block-paragraph">Cloud Shell 是臨時環境，每次關閉視窗或閒置超過 20 分鐘後，系統可能會重置。</p>



<p class="wp-block-paragraph">你用指令手動新增的路由，重啟後會消失。這是正常行為，不是你操作錯誤。</p>



<p class="wp-block-paragraph">對學習來說這反而是好事：你可以放心嘗試各種指令，不用擔心把環境搞壞。</p>



<p class="wp-block-paragraph">但如果你是要在正式環境設定路由，Cloud Shell 不適合，要改用固定的伺服器或網路設備。</p>



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



<h3 class="wp-block-heading">安裝路由相關套件</h3>



<h4 class="wp-block-heading">確認環境：Cloud Shell 預裝了什麼</h4>



<p class="wp-block-paragraph">Cloud Shell 的底層是 Debian Linux，部分路由工具已經預裝，部分需要手動安裝。</p>



<p class="wp-block-paragraph">先執行以下指令確認目前有哪些工具可用：</p>



<pre class="wp-block-code"><code>which ip route traceroute netstat</code></pre>



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="322" src="https://dongdonggcp.com/wp-content/uploads/2026/06/查詢是否安裝路由相關套件-1024x322.png" alt="" class="wp-image-11993" srcset="https://dongdonggcp.com/wp-content/uploads/2026/06/查詢是否安裝路由相關套件-1024x322.png 1024w, https://dongdonggcp.com/wp-content/uploads/2026/06/查詢是否安裝路由相關套件-300x94.png 300w, https://dongdonggcp.com/wp-content/uploads/2026/06/查詢是否安裝路由相關套件-768x241.png 768w, https://dongdonggcp.com/wp-content/uploads/2026/06/查詢是否安裝路由相關套件-1536x482.png 1536w, https://dongdonggcp.com/wp-content/uploads/2026/06/查詢是否安裝路由相關套件-2048x643.png 2048w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">查詢是否安裝路由相關套件</figcaption></figure>



<p class="wp-block-paragraph">有出現路徑的代表已安裝，顯示空白的代表需要手動安裝。</p>



<h4 class="wp-block-heading">安裝 net-tools（提供 route、netstat 指令）</h4>



<p class="wp-block-paragraph"><code>net-tools</code> 是舊版網路工具套件，提供 <code>route</code> 和 <code>netstat</code> 這兩個指令。</p>



<p class="wp-block-paragraph">雖然這些指令在新版 Linux 上已被 <code>iproute2</code> 取代，但很多教學文件和舊系統還在用，學起來有備無患。</p>



<p class="wp-block-paragraph">在 Cloud Shell 執行：</p>



<pre class="wp-block-code"><code>sudo apt-get install -y net-tools</code></pre>



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="393" src="https://dongdonggcp.com/wp-content/uploads/2026/06/安裝-net-tools（提供-route、netstat-指令）-1024x393.png" alt="" class="wp-image-11994" srcset="https://dongdonggcp.com/wp-content/uploads/2026/06/安裝-net-tools（提供-route、netstat-指令）-1024x393.png 1024w, https://dongdonggcp.com/wp-content/uploads/2026/06/安裝-net-tools（提供-route、netstat-指令）-300x115.png 300w, https://dongdonggcp.com/wp-content/uploads/2026/06/安裝-net-tools（提供-route、netstat-指令）-768x295.png 768w, https://dongdonggcp.com/wp-content/uploads/2026/06/安裝-net-tools（提供-route、netstat-指令）-1536x589.png 1536w, https://dongdonggcp.com/wp-content/uploads/2026/06/安裝-net-tools（提供-route、netstat-指令）.png 1652w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">安裝 net-tools（提供 route、netstat 指令）</figcaption></figure>



<p class="wp-block-paragraph">安裝完成後確認：</p>



<pre class="wp-block-code"><code>route --version</code></pre>



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="121" src="https://dongdonggcp.com/wp-content/uploads/2026/06/確認-route-指令是否安裝成功-1024x121.png" alt="" class="wp-image-11995" srcset="https://dongdonggcp.com/wp-content/uploads/2026/06/確認-route-指令是否安裝成功-1024x121.png 1024w, https://dongdonggcp.com/wp-content/uploads/2026/06/確認-route-指令是否安裝成功-300x36.png 300w, https://dongdonggcp.com/wp-content/uploads/2026/06/確認-route-指令是否安裝成功-768x91.png 768w, https://dongdonggcp.com/wp-content/uploads/2026/06/確認-route-指令是否安裝成功-1536x182.png 1536w, https://dongdonggcp.com/wp-content/uploads/2026/06/確認-route-指令是否安裝成功-2048x243.png 2048w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">確認 route 指令是否安裝成功</figcaption></figure>



<p class="wp-block-paragraph">有顯示版本號代表安裝成功。</p>



<h4 class="wp-block-heading">安裝 iproute2（提供 ip route 指令）</h4>



<p class="wp-block-paragraph"><code>iproute2</code> 是現代 Linux 的標準網路工具套件，提供 <code>ip</code> 這個主指令，包含路由管理、網路介面管理等功能。</p>



<p class="wp-block-paragraph">Cloud Shell 通常已預裝 <code>iproute2</code>，但還是確認一下：</p>



<pre class="wp-block-code"><code>ip -V</code></pre>



<p class="wp-block-paragraph">目前看來應該已經有安裝了</p>



<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" width="858" height="134" src="https://dongdonggcp.com/wp-content/uploads/2026/06/確認-ip-指令是否已安裝.png" alt="" class="wp-image-11996" srcset="https://dongdonggcp.com/wp-content/uploads/2026/06/確認-ip-指令是否已安裝.png 858w, https://dongdonggcp.com/wp-content/uploads/2026/06/確認-ip-指令是否已安裝-300x47.png 300w, https://dongdonggcp.com/wp-content/uploads/2026/06/確認-ip-指令是否已安裝-768x120.png 768w" sizes="(max-width: 858px) 100vw, 858px" /><figcaption class="wp-element-caption">確認 ip 指令是否已安裝</figcaption></figure>



<p class="wp-block-paragraph">如果顯示「command not found」，執行以下指令安裝：</p>



<pre class="wp-block-code"><code>sudo apt-get install -y iproute2</code></pre>



<h4 class="wp-block-heading">安裝 traceroute（提供封包追蹤功能）</h4>



<p class="wp-block-paragraph"><code>traceroute</code> 用來追蹤資料包從你的機器到目標 IP 經過了哪幾個節點。</p>



<p class="wp-block-paragraph">Cloud Shell 不一定預裝這個工具，執行以下指令安裝：</p>



<pre class="wp-block-code"><code>sudo apt-get install -y traceroute</code></pre>



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="639" src="https://dongdonggcp.com/wp-content/uploads/2026/06/安裝-traceroute-1024x639.png" alt="" class="wp-image-11997" srcset="https://dongdonggcp.com/wp-content/uploads/2026/06/安裝-traceroute-1024x639.png 1024w, https://dongdonggcp.com/wp-content/uploads/2026/06/安裝-traceroute-300x187.png 300w, https://dongdonggcp.com/wp-content/uploads/2026/06/安裝-traceroute-768x479.png 768w, https://dongdonggcp.com/wp-content/uploads/2026/06/安裝-traceroute.png 1196w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">安裝 traceroute</figcaption></figure>



<p class="wp-block-paragraph">安裝完成後確認：</p>



<pre class="wp-block-code"><code>traceroute --version</code></pre>



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



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="130" src="https://dongdonggcp.com/wp-content/uploads/2026/06/確認-traceroute-指令是否安裝成功-1024x130.png" alt="" class="wp-image-11998" srcset="https://dongdonggcp.com/wp-content/uploads/2026/06/確認-traceroute-指令是否安裝成功-1024x130.png 1024w, https://dongdonggcp.com/wp-content/uploads/2026/06/確認-traceroute-指令是否安裝成功-300x38.png 300w, https://dongdonggcp.com/wp-content/uploads/2026/06/確認-traceroute-指令是否安裝成功-768x97.png 768w, https://dongdonggcp.com/wp-content/uploads/2026/06/確認-traceroute-指令是否安裝成功.png 1452w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">確認 traceroute 指令是否安裝成功</figcaption></figure>



<h3 class="wp-block-heading">基本路由指令實作</h3>



<p class="wp-block-paragraph">套件都裝好後，現在開始實際操作。</p>



<h4 class="wp-block-heading">查看目前的路由表：ip route show</h4>



<p class="wp-block-paragraph"><code>ip route show</code> 是查看路由表最常用的現代指令，在 Cloud Shell 執行：</p>



<pre class="wp-block-code"><code>ip route show</code></pre>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="146" src="https://dongdonggcp.com/wp-content/uploads/2026/06/查看目前的路由表-ip-route-show-1024x146.png" alt="" class="wp-image-11999" srcset="https://dongdonggcp.com/wp-content/uploads/2026/06/查看目前的路由表-ip-route-show-1024x146.png 1024w, https://dongdonggcp.com/wp-content/uploads/2026/06/查看目前的路由表-ip-route-show-300x43.png 300w, https://dongdonggcp.com/wp-content/uploads/2026/06/查看目前的路由表-ip-route-show-768x109.png 768w, https://dongdonggcp.com/wp-content/uploads/2026/06/查看目前的路由表-ip-route-show-1536x219.png 1536w, https://dongdonggcp.com/wp-content/uploads/2026/06/查看目前的路由表-ip-route-show.png 1784w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">你會看到類似這樣的輸出：</p>



<pre class="wp-block-code"><code>default via 10.88.0.1 dev eth0 
10.88.0.0/16 dev eth0 proto kernel scope link src 10.88.0.4 
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 linkdown</code></pre>



<h5 class="wp-block-heading">輸出結果怎麼看：每個欄位的意思</h5>



<p class="wp-block-paragraph">這些看起來很陌生的文字，其實每個欄位都有明確意思：</p>



<h6 class="wp-block-heading">第一段：如果包裹要寄到「外縣市」或「國外」怎麼辦？</h6>



<p class="wp-block-paragraph">當你的 Cloud Shell 需要連上網際網路（例如去 Google 抓資料），它通常不知道全世界每一台電腦的確切位置。這時候，它需要一個「預設」的處理方式，這就帶出了第一行輸出：</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><code>default via 10.88.0.1 dev eth0</code></p>
</blockquote>



<ul class="wp-block-list">
<li><strong>default（預設路由）</strong>：這代表「其他所有不知道該送去哪裡的包裹」。只要目的地不在我們家附近，就套用這個規則。</li>



<li><strong>via 10.88.0.1（經由）</strong>：把包裹交給 <code>10.88.0.1</code> 這個 IP 位址。這個角色叫做 <strong>Gateway（通訊閘 / 閘道器）</strong>，你可以把它想成是「郵件總處理中心」。你的電腦只要把包裹丟給總中心，總中心就會幫你轉送到外部網路。</li>



<li><strong>dev eth0（網路介面卡裝置）</strong>：<code>dev</code> 是 device（裝置）的縮寫。<code>eth0</code> 是你這台電腦主要對外的<strong>Network Interface（網路介面卡）</strong>。你可以把它想成是郵局的「大門」或「主要的送貨卡車」。</li>
</ul>



<p class="wp-block-paragraph"><strong>小結一下這行的意思：</strong>「只要不知道送去哪的資料，一律從大門 (<code>eth0</code>) 送出去，交給總中心 (<code>10.88.0.1</code>) 幫忙處理。」</p>



<h6 class="wp-block-heading">第二段：如果包裹只是要寄給「同一個社區的鄰居」呢？</h6>



<p class="wp-block-paragraph">既然我們知道怎麼把資料送到外部網路了，那如果你的 Cloud Shell 只是想跟「同一個 GCP 內部網路」裡的其他機器講話呢？這時候把包裹送到「總中心」就太繞路了，我們應該直接走社區通道送過去就好。這就是第二行規則存在的目的：</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><code>10.88.0.0/16 dev eth0 proto kernel scope link src 10.88.0.4</code></p>
</blockquote>



<ul class="wp-block-list">
<li><strong>10.88.0.0/16（目標網段）</strong>：這代表你所在的「本地社區」，在網路術語中稱為 <strong>Subnet（子網路）</strong>。只要目標地址是 <code>10.88</code> 開頭的，就代表是鄰居。</li>



<li><strong>dev eth0</strong>：一樣，要出門還是得走郵局的大門（主要的網路卡）。</li>



<li><strong>proto kernel（通訊協定）</strong>：這表示這條規則是由作業系統的 <strong>Kernel（核心）</strong> 自動建立的，不是人類手動輸入的。</li>



<li><strong>scope link（範圍）</strong>：這代表目的地跟我們是在同一個實體或虛擬網路上（Link-local），可以直接對話，不需要經過剛剛那個總中心（Gateway）。</li>



<li><strong>src 10.88.0.4（來源 IP）</strong>：這個資訊非常關鍵！<code>src</code> 是 source（來源）的縮寫。它告訴我們，你現在正在使用的這台 Cloud Shell，它自己的 <strong>IP Address（IP 位址）</strong> 就是 <code>10.88.0.4</code>。這就像是你寄信時，寫在信封背面的「寄件人地址」。</li>
</ul>



<p class="wp-block-paragraph"><strong>小結一下這行的意思：</strong>「如果資料是要寄給同社區的鄰居 (<code>10.88.0.0/16</code>)，就直接從大門 (<code>eth0</code>) 送過去，並在信封寫上我的地址 (<code>10.88.0.4</code>)。」</p>



<h6 class="wp-block-heading">第三段：電腦裡面如果還有「房中房」，該怎麼送信？</h6>



<p class="wp-block-paragraph">現在我們知道怎麼對外（第一行）和對鄰居（第二行）溝通了。但是，Cloud Shell 是一個專門給工程師用的環境，它裡面內建了一個叫做 <strong>Docker</strong> 的工具。Docker 可以在你的電腦裡面再切出很多個獨立的「虛擬小房間」（稱為 <strong>Container 容器</strong>）來跑程式。</p>



<p class="wp-block-paragraph">既然是獨立的小房間，它們就需要專屬的內部信箱系統。這就自然接到了最後一行規則：</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><code>172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 linkdown</code></p>
</blockquote>



<ul class="wp-block-list">
<li><strong>172.17.0.0/16</strong>：這是專門保留給 Docker 虛擬小房間（容器）使用的「內部專用網段」。</li>



<li><strong>dev docker0</strong>：這是一個 <strong>Virtual Bridge（虛擬網橋）</strong>。你可以把它想成通往那些內部小房間的「專屬內部門」。這扇門的名字叫 <code>docker0</code>。</li>



<li><strong>proto kernel scope link</strong>：跟上一段一樣，這是系統核心自動建立的直接連線規則。</li>



<li><strong>src 172.17.0.1</strong>：這是這扇「內部門」本身的 IP 位址，也就是小房間們的內部管理員地址。</li>



<li><strong>linkdown（連線狀態中斷）</strong>：這是一個很重要的狀態提示。它代表 <code>docker0</code> 這扇門目前是「關閉 / 未啟用」的狀態。為什麼呢？因為你現在可能還沒有在 Cloud Shell 裡面啟動任何 Docker 容器（小房間裡沒人），所以系統暫時把這個內部通道關閉以節省資源。</li>
</ul>



<p class="wp-block-paragraph"><strong>小結一下這行的意思：</strong>「如果要送信給內部的 Docker 小房間 (<code>172.17.0.0/16</code>)，要走專屬的內部門 (<code>docker0</code>)，不過這扇門目前是關著的 (<code>linkdown</code>)。」</p>



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="531" src="https://dongdonggcp.com/wp-content/uploads/2026/06/拆解路由表-三層架構的網路藍圖-1024x531.png" alt="" class="wp-image-12015" srcset="https://dongdonggcp.com/wp-content/uploads/2026/06/拆解路由表-三層架構的網路藍圖-1024x531.png 1024w, https://dongdonggcp.com/wp-content/uploads/2026/06/拆解路由表-三層架構的網路藍圖-300x156.png 300w, https://dongdonggcp.com/wp-content/uploads/2026/06/拆解路由表-三層架構的網路藍圖-768x398.png 768w, https://dongdonggcp.com/wp-content/uploads/2026/06/拆解路由表-三層架構的網路藍圖.png 1139w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">拆解路由表 三層架構的網路藍圖</figcaption></figure>



<h3 class="wp-block-heading">總結</h3>



<p class="wp-block-paragraph">這三行連貫起來，就是你的 Cloud Shell 完整的網路溝通藍圖：</p>



<ol start="1" class="wp-block-list">
<li><strong>對外</strong>交給閘道器（Gateway）。</li>



<li><strong>對鄰居</strong>自己直接送（並秀出了你自己的 IP 是 <code>10.88.0.4</code>）。</li>



<li><strong>對內部虛擬容器</strong>有專屬通道，但目前沒在使用中。</li>
</ol>



<h4 class="wp-block-heading">查看路由表（舊指令）：route -n</h4>



<p class="wp-block-paragraph"><code>route -n</code> 是舊版的路由表查詢指令。<code>-n</code> 代表不要解析 hostname，直接顯示 IP 數字，速度比較快。</p>



<pre class="wp-block-code"><code>route -n</code></pre>



<p class="wp-block-paragraph">輸出格式像這樣：</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="184" src="https://dongdonggcp.com/wp-content/uploads/2026/06/查看路由表（舊指令）-route-n-1024x184.png" alt="" class="wp-image-12000" srcset="https://dongdonggcp.com/wp-content/uploads/2026/06/查看路由表（舊指令）-route-n-1024x184.png 1024w, https://dongdonggcp.com/wp-content/uploads/2026/06/查看路由表（舊指令）-route-n-300x54.png 300w, https://dongdonggcp.com/wp-content/uploads/2026/06/查看路由表（舊指令）-route-n-768x138.png 768w, https://dongdonggcp.com/wp-content/uploads/2026/06/查看路由表（舊指令）-route-n-1536x276.png 1536w, https://dongdonggcp.com/wp-content/uploads/2026/06/查看路由表（舊指令）-route-n.png 1914w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<pre class="wp-block-code"><code>Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.88.0.1       0.0.0.0         UG    0      0        0 eth0
10.88.0.0       0.0.0.0         255.255.0.0     U     0      0        0 eth0
172.17.0.0      0.0.0.0         255.255.0.0     U     0      0        0 docker0</code></pre>



<h5 class="wp-block-heading">ip route 和 route -n 的差別</h5>



<p class="wp-block-paragraph">這兩個指令看的是同一份路由表，只是顯示格式不同。</p>



<p class="wp-block-paragraph"><code>ip route show</code> 是現代指令，輸出用 CIDR 格式（如 <code>/28</code>），功能更完整，建議優先使用。</p>



<p class="wp-block-paragraph"><code>route -n</code> 是舊指令，輸出用傳統子網路遮罩格式（如 <code>255.255.255.240</code>），在舊系統或舊教學文件上比較常見。</p>



<p class="wp-block-paragraph">兩個都會，在任何環境下都不會被卡住。</p>



<h4 class="wp-block-heading">新增靜態路由：ip route add</h4>



<p class="wp-block-paragraph">靜態路由（Static Route）是指你手動告訴系統「去這個網段，要走這個 Gateway」，不透過任何路由協定自動學習。</p>



<h5 class="wp-block-heading">Step 1：確認目標網段</h5>



<p class="wp-block-paragraph">假設你要新增一條路由，讓去 <code>192.168.100.0/24</code> 這個網段的流量，走 Gateway <code>10.88.0.1</code>。</p>



<p class="wp-block-paragraph">先確認這個網段目前沒有路由：</p>



<pre class="wp-block-code"><code>ip route show | grep 192.168.100</code></pre>



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="86" src="https://dongdonggcp.com/wp-content/uploads/2026/06/先確認這個網段目前沒有路由-1024x86.png" alt="" class="wp-image-12001" srcset="https://dongdonggcp.com/wp-content/uploads/2026/06/先確認這個網段目前沒有路由-1024x86.png 1024w, https://dongdonggcp.com/wp-content/uploads/2026/06/先確認這個網段目前沒有路由-300x25.png 300w, https://dongdonggcp.com/wp-content/uploads/2026/06/先確認這個網段目前沒有路由-768x64.png 768w, https://dongdonggcp.com/wp-content/uploads/2026/06/先確認這個網段目前沒有路由.png 1386w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">先確認這個網段目前沒有路由</figcaption></figure>



<p class="wp-block-paragraph">如果沒有輸出，代表目前沒有這條路由，可以新增。</p>



<h5 class="wp-block-heading">Step 2：指定 Gateway</h5>



<p class="wp-block-paragraph">確認你的 Gateway IP 是否可以到達：</p>



<pre class="wp-block-code"><code>ping -c 3 10.88.0.1</code></pre>



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="321" src="https://dongdonggcp.com/wp-content/uploads/2026/06/確認你的-Gateway-IP-是否可以到達-1024x321.png" alt="" class="wp-image-12002" srcset="https://dongdonggcp.com/wp-content/uploads/2026/06/確認你的-Gateway-IP-是否可以到達-1024x321.png 1024w, https://dongdonggcp.com/wp-content/uploads/2026/06/確認你的-Gateway-IP-是否可以到達-300x94.png 300w, https://dongdonggcp.com/wp-content/uploads/2026/06/確認你的-Gateway-IP-是否可以到達-768x241.png 768w, https://dongdonggcp.com/wp-content/uploads/2026/06/確認你的-Gateway-IP-是否可以到達-1536x482.png 1536w, https://dongdonggcp.com/wp-content/uploads/2026/06/確認你的-Gateway-IP-是否可以到達.png 1542w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">確認你的 Gateway IP 是否可以到達</figcaption></figure>



<p class="wp-block-paragraph">看到 <code>3 packets transmitted, 3 received</code> 代表 Gateway 可以連通。</p>



<h5 class="wp-block-heading">Step 3：執行新增指令並確認結果</h5>



<p class="wp-block-paragraph">執行以下指令新增路由：</p>



<pre class="wp-block-code"><code>sudo ip route add 192.168.100.0/24 via 10.88.0.1</code></pre>



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="63" src="https://dongdonggcp.com/wp-content/uploads/2026/06/執行以下指令新增路由-1024x63.png" alt="" class="wp-image-12003" srcset="https://dongdonggcp.com/wp-content/uploads/2026/06/執行以下指令新增路由-1024x63.png 1024w, https://dongdonggcp.com/wp-content/uploads/2026/06/執行以下指令新增路由-300x19.png 300w, https://dongdonggcp.com/wp-content/uploads/2026/06/執行以下指令新增路由-768x47.png 768w, https://dongdonggcp.com/wp-content/uploads/2026/06/執行以下指令新增路由-1536x95.png 1536w, https://dongdonggcp.com/wp-content/uploads/2026/06/執行以下指令新增路由.png 1714w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">執行以下指令新增路由</figcaption></figure>



<p class="wp-block-paragraph">新增後，立刻確認有沒有成功加進路由表：</p>



<pre class="wp-block-code"><code>ip route show | grep 192.168.100</code></pre>



<p class="wp-block-paragraph">如果看到：</p>



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="120" src="https://dongdonggcp.com/wp-content/uploads/2026/06/確認是否成功新增路由-1024x120.png" alt="" class="wp-image-12004" srcset="https://dongdonggcp.com/wp-content/uploads/2026/06/確認是否成功新增路由-1024x120.png 1024w, https://dongdonggcp.com/wp-content/uploads/2026/06/確認是否成功新增路由-300x35.png 300w, https://dongdonggcp.com/wp-content/uploads/2026/06/確認是否成功新增路由-768x90.png 768w, https://dongdonggcp.com/wp-content/uploads/2026/06/確認是否成功新增路由.png 1336w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">確認是否成功新增路由</figcaption></figure>



<pre class="wp-block-code"><code>192.168.100.0/24 via 10.88.0.1 dev eth0</code></pre>



<p class="wp-block-paragraph">代表新增成功。</p>



<h4 class="wp-block-heading">刪除路由：ip route del</h4>



<p class="wp-block-paragraph">刪除路由的語法和新增幾乎一樣，只是把 <code>add</code> 換成 <code>del</code>：</p>



<pre class="wp-block-code"><code>sudo ip route del 192.168.100.0/24 via 10.88.0.1</code></pre>



<p class="wp-block-paragraph">刪除後確認：</p>



<pre class="wp-block-code"><code>ip route show | grep 192.168.100</code></pre>



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="90" src="https://dongdonggcp.com/wp-content/uploads/2026/06/確認是否成功刪除路由-1024x90.png" alt="" class="wp-image-12005" srcset="https://dongdonggcp.com/wp-content/uploads/2026/06/確認是否成功刪除路由-1024x90.png 1024w, https://dongdonggcp.com/wp-content/uploads/2026/06/確認是否成功刪除路由-300x26.png 300w, https://dongdonggcp.com/wp-content/uploads/2026/06/確認是否成功刪除路由-768x68.png 768w, https://dongdonggcp.com/wp-content/uploads/2026/06/確認是否成功刪除路由-1536x135.png 1536w, https://dongdonggcp.com/wp-content/uploads/2026/06/確認是否成功刪除路由.png 1746w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">確認是否成功新增路由</figcaption></figure>



<p class="wp-block-paragraph">沒有輸出代表刪除成功。</p>



<h4 class="wp-block-heading">追蹤封包走哪條路：traceroute</h4>



<p class="wp-block-paragraph"><code>traceroute</code> 會顯示封包從你的機器出發，每經過一個路由節點就記錄一次，讓你看到完整的路徑。</p>



<p class="wp-block-paragraph">試著追蹤到 Google DNS 的路徑：</p>



<pre class="wp-block-code"><code>traceroute 8.8.8.8</code></pre>



<p class="wp-block-paragraph">輸出：</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="634" height="273" src="https://dongdonggcp.com/wp-content/uploads/2026/06/查看-traceroute-輸出.png" alt="" class="wp-image-12006" srcset="https://dongdonggcp.com/wp-content/uploads/2026/06/查看-traceroute-輸出.png 634w, https://dongdonggcp.com/wp-content/uploads/2026/06/查看-traceroute-輸出-300x129.png 300w" sizes="(max-width: 634px) 100vw, 634px" /></figure>



<p class="wp-block-paragraph">每一行是一個「跳」（hop），左邊的數字是第幾跳，後面是那個節點的 IP 和三次往返時間。</p>



<p class="wp-block-paragraph"><code>* * *</code> 代表那個節點沒有回應，可能設定了不回應 ICMP，不一定是問題。</p>



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



<h3 class="wp-block-heading">實際案例：用路由指令診斷網路問題</h3>



<h4 class="wp-block-heading">情境：連不到某個 IP，怎麼用路由指令找出問題</h4>



<p class="wp-block-paragraph">假設你在 Cloud Shell 裡 ping <code>192.168.50.1</code> 完全沒有回應，不知道問題出在哪。</p>



<p class="wp-block-paragraph">以下是標準的排查流程。</p>



<h4 class="wp-block-heading">Step 1：先查路由表，確認有沒有對應路徑</h4>



<pre class="wp-block-code"><code>ip route show | grep 192.168.50</code></pre>



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="92" src="https://dongdonggcp.com/wp-content/uploads/2026/06/查詢路由是否存在-1024x92.png" alt="" class="wp-image-12007" srcset="https://dongdonggcp.com/wp-content/uploads/2026/06/查詢路由是否存在-1024x92.png 1024w, https://dongdonggcp.com/wp-content/uploads/2026/06/查詢路由是否存在-300x27.png 300w, https://dongdonggcp.com/wp-content/uploads/2026/06/查詢路由是否存在-768x69.png 768w, https://dongdonggcp.com/wp-content/uploads/2026/06/查詢路由是否存在.png 1340w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">查詢路由是否存在</figcaption></figure>



<p class="wp-block-paragraph">如果沒有輸出，代表路由表裡根本沒有去 <code>192.168.50.0/24</code> 的路徑。</p>



<p class="wp-block-paragraph">這時封包會走 default 路由（<code>default via 10.88.0.1</code>）。</p>



<p class="wp-block-paragraph">但如果 default Gateway 也不知道怎麼到那個網段，封包就會被丟棄。</p>



<p class="wp-block-paragraph">這種情況下，問題就是「缺少路由」。解法是新增一條靜態路由，或確認這個網段是否真的可達。</p>



<h4 class="wp-block-heading">Step 2：用 traceroute 找出封包卡在哪一跳</h4>



<p class="wp-block-paragraph">如果路由表有對應路徑，但還是連不到，執行：</p>



<pre class="wp-block-code"><code>traceroute 192.168.50.1</code></pre>



<p class="wp-block-paragraph">看封包在哪一跳停下來（顯示連續的 <code>* * *</code>）。</p>



<p class="wp-block-paragraph">如果第 1 跳就是 <code>* * *</code>，問題在 Gateway 這層。</p>



<p class="wp-block-paragraph">如果走了幾跳後才停，問題在中間某個路由節點或目標主機。</p>



<h4 class="wp-block-heading">Step 3：根據結果判斷是路由問題還是其他問題</h4>



<p class="wp-block-paragraph">排查路由問題後，如果路徑是通的但還是連不到，問題通常在以下 3 個地方：</p>



<ol class="wp-block-list">
<li>目標主機的防火牆擋掉了 ICMP（ping 不通但服務可能正常）</li>



<li>目標主機根本沒有在監聽</li>



<li>兩邊的路由不對稱（你能到它，但它的回程路由不知道怎麼回到你）</li>
</ol>



<p class="wp-block-paragraph">路由指令能幫你排除「路徑本身」的問題，剩下的就要用其他工具（如 <code>curl</code>、<code>telnet</code>、<code>nmap</code>）繼續追查。</p>



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



<h3 class="wp-block-heading">常見錯誤與排查</h3>



<h4 class="wp-block-heading">指令找不到（command not found）：套件沒裝好</h4>



<p class="wp-block-paragraph">執行指令時出現 <code>command not found</code>，代表那個套件還沒安裝。</p>



<p class="wp-block-paragraph">對照前面「安裝路由相關套件」的章節，確認對應套件有沒有裝好。</p>



<p class="wp-block-paragraph">如果安裝過程中出現錯誤，先執行：</p>



<pre class="wp-block-code"><code>sudo apt-get update</code></pre>



<p class="wp-block-paragraph">更新套件清單後再重新安裝。</p>



<h4 class="wp-block-heading">新增路由後 ping 還是不通：Gateway 設定錯誤</h4>



<p class="wp-block-paragraph">新增路由成功，但目標還是 ping 不通，最常見的原因是 Gateway IP 設錯了。</p>



<p class="wp-block-paragraph">確認你指定的 Gateway 在路由表裡是可達的：</p>



<pre class="wp-block-code"><code>ip route get &lt;你的 Gateway IP&gt;</code></pre>



<p class="wp-block-paragraph">正常會看到像這樣：</p>



<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" width="479" height="81" src="https://dongdonggcp.com/wp-content/uploads/2026/06/確認-Gateway-可以達到.png" alt="" class="wp-image-12008" srcset="https://dongdonggcp.com/wp-content/uploads/2026/06/確認-Gateway-可以達到.png 479w, https://dongdonggcp.com/wp-content/uploads/2026/06/確認-Gateway-可以達到-300x51.png 300w" sizes="(max-width: 479px) 100vw, 479px" /><figcaption class="wp-element-caption">確認 Gateway 可以達到</figcaption></figure>



<p class="wp-block-paragraph">如果顯示 <code>RTNETLINK answers: Network is unreachable</code>，代表這個 Gateway 本身就不可達，路由設定沒有意義。</p>



<h4 class="wp-block-heading">Cloud Shell 重啟後路由消失：這是正常行為</h4>



<p class="wp-block-paragraph">手動新增的路由，Cloud Shell 重啟後會消失。</p>



<p class="wp-block-paragraph">這是 Cloud Shell 的設計限制，不是你的操作問題。</p>



<p class="wp-block-paragraph">如果你需要每次啟動 Cloud Shell 都自動套用路由設定，可以把指令寫進 <code>~/.bashrc</code>：</p>



<pre class="wp-block-code"><code>echo "sudo ip route add 192.168.100.0/24 via 10.88.0.1" &gt;&gt; ~/.bashrc</code></pre>



<p class="wp-block-paragraph">這只適合學習和測試用途，正式環境不應該這樣做。</p>



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



<h3 class="wp-block-heading">總結：路由指令你只需要記住這幾條</h3>



<p class="wp-block-paragraph">學路由不需要記很多東西。把這 5 條指令在 GCP Cloud Shell 跑過一遍，下次遇到網路問題，你就有具體的排查起點。</p>



<ol class="wp-block-list">
<li><code>ip route show</code> — 查看路由表</li>



<li><code>route -n</code> — 查看路由表（舊格式，舊系統適用）</li>



<li><code>sudo ip route add &lt;網段> via &lt;Gateway></code> — 新增靜態路由</li>



<li><code>sudo ip route del &lt;網段> via &lt;Gateway></code> — 刪除路由</li>



<li><code>traceroute &lt;目標 IP></code> — 追蹤封包路徑</li>
</ol>



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="540" src="https://dongdonggcp.com/wp-content/uploads/2026/06/3分鐘網路診斷決策樹-1024x540.png" alt="" class="wp-image-12016" srcset="https://dongdonggcp.com/wp-content/uploads/2026/06/3分鐘網路診斷決策樹-1024x540.png 1024w, https://dongdonggcp.com/wp-content/uploads/2026/06/3分鐘網路診斷決策樹-300x158.png 300w, https://dongdonggcp.com/wp-content/uploads/2026/06/3分鐘網路診斷決策樹-768x405.png 768w, https://dongdonggcp.com/wp-content/uploads/2026/06/3分鐘網路診斷決策樹.png 1188w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">3分鐘網路診斷決策樹</figcaption></figure>



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



<h3 class="wp-block-heading">常見問題（FAQ）</h3>



<p class="wp-block-paragraph"><strong>Q1：我沒有 GCP 帳號，可以用 Cloud Shell 嗎？</strong> A：只要有 Google 帳號（例如 Gmail）就可以使用 GCP Cloud Shell，不需要額外<a href="https://dongdonggcp.com/2024/02/01/how-to-apply-gcp-free-usage-credit-300-dollars/" title="">申請 GCP 帳號</a>，也不需要信用卡。前往 console.cloud.google.com 登入後，點右上角「<code>>_</code>」圖示即可開啟，整個流程不會產生任何費用。</p>



<p class="wp-block-paragraph"><strong>Q2：Cloud Shell 的免費額度會用完嗎？</strong> A：Cloud Shell 每個月提供 50 小時的免費使用時間，一般學習和練習完全夠用。這篇文章示範的所有路由指令都在免費額度內，不會產生任何費用。</p>



<p class="wp-block-paragraph"><strong>Q3：ip route 和 route -n 哪一個比較建議用？</strong> A：優先使用 <code>ip route show</code>。它是現代 Linux 的標準路由查詢指令，輸出格式更清楚、功能更完整。<code>route -n</code> 在舊系統或舊文件上還是很常見，兩個都知道，在任何環境下都不會被卡住。</p>



<p class="wp-block-paragraph"><strong>Q4：靜態路由和動態路由有什麼差別？</strong> A：靜態路由是你手動設定的，告訴系統「去這個網段走這條路」，不會自動更新。動態路由透過路由協定（如 OSPF、BGP）讓路由器之間自動學習路徑，網路拓撲改變時會自動調整。學習階段用靜態路由就夠了，大型正式環境幾乎都用動態路由。</p>



<p class="wp-block-paragraph"><strong>Q5：traceroute 輸出中的 <code>* * *</code> 是什麼意思？</strong> A：<code>* * *</code> 代表那個節點在規定時間內沒有回應。這不一定是問題——很多路由器或防火牆設定為不回應 traceroute 的封包。如果最終能到達目標，中間出現 <code>* * *</code> 通常不影響實際連線。</p>



<p class="wp-block-paragraph"><strong>Q6：怎麼知道我的預設 Gateway 是什麼？</strong> A：執行 <code>ip route show</code>，找開頭是 <code>default via</code> 的那一行，後面的 IP 就是預設 Gateway。例如 <code>default via 10.88.0.1 dev eth0</code>，預設 Gateway 就是 <code>10.88.0.1</code>。</p>



<p class="wp-block-paragraph"><strong>Q7：新增路由時出現 <code>Error: any valid prefix is expected rather than</code>，是什麼問題？</strong> A：這個錯誤代表網段格式有誤。路由指令的網段必須用 CIDR 格式，例如 <code>192.168.100.0/24</code>，不能只寫 <code>192.168.100</code>。確認網段後面有加 <code>/數字</code> 的子網路遮罩，再重新執行。</p>



<p class="wp-block-paragraph"><strong>Q8：可以用 Cloud Shell 練習路由以外的網路指令嗎？</strong> A：可以。Cloud Shell 是完整的 Linux 環境，<code>ping</code>、<code>curl</code>、<code>nslookup</code>、<code>dig</code>、<code>netstat</code>、<code>ss</code> 等常見網路指令都能在這裡使用，部分需要先安裝套件。對於想從零學習 Linux 網路指令的人，Cloud Shell 是免費又方便的練習環境。</p>



<p class="wp-block-paragraph"><strong>Q9：路由表裡的 Metric 數字代表什麼？</strong> A：Metric 是路由的優先權分數，數字越小代表優先權越高。當路由表裡有超過 2 條都能到達同一目標的路由時，系統會選擇 Metric 較小的那條。在有多張網路卡或多個 Gateway 的環境裡，Metric 的設定會直接影響流量走向。</p>



<p class="wp-block-paragraph"><strong>Q10：這篇文章的路由指令可以直接用在 GCP 的 VM 上嗎？</strong> A：可以，但要注意：GCP VM 的網路由 VPC 管理，單純在 VM 內新增路由不一定能讓流量真正改道，還需要在 GCP Console 的 VPC 路由設定裡同步調整。Cloud Shell 適合學習路由指令語法，正式環境需要搭配 GCP 網路架構一起考慮。</p>



<p class="wp-block-paragraph"></p><p>The post <a href="https://dongdonggcp.com/2026/06/01/what-is-routing-gcp-cloud-shell-basic-commands/">路由是什麼？白話概念與實作教學</a> first appeared on <a href="https://dongdonggcp.com">東東 GCP 教學 - GCP 實戰講師</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://dongdonggcp.com/2026/06/01/what-is-routing-gcp-cloud-shell-basic-commands/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>GCP 帳單爆炸防護指南：5 個步驟讓你不再睡醒崩潰</title>
		<link>https://dongdonggcp.com/2026/05/19/gcp-bill-explosion-prevention-guide/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=gcp-bill-explosion-prevention-guide</link>
					<comments>https://dongdonggcp.com/2026/05/19/gcp-bill-explosion-prevention-guide/#respond</comments>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Tue, 19 May 2026 04:28:55 +0000</pubDate>
				<category><![CDATA[Google Cloud Platform]]></category>
		<category><![CDATA[Cloud Run]]></category>
		<category><![CDATA[GCP]]></category>
		<category><![CDATA[GCP Billing]]></category>
		<category><![CDATA[Gemini]]></category>
		<category><![CDATA[Google API Key]]></category>
		<category><![CDATA[Google Cloud]]></category>
		<guid isPermaLink="false">https://dongdonggcp.com/?p=11835</guid>

					<description><![CDATA[<p>睡一覺起來帳單暴增 2,500 倍？真實案例揭露 GCP 帳單爆炸的 3 大原因，以及用 5 個步驟完整防護：API 金鑰保護、Cloud Run 清查、消費上限設定、9 項安全機制啟用與即時監控建立。</p>
<p>The post <a href="https://dongdonggcp.com/2026/05/19/gcp-bill-explosion-prevention-guide/">GCP 帳單爆炸防護指南：5 個步驟讓你不再睡醒崩潰</a> first appeared on <a href="https://dongdonggcp.com">東東 GCP 教學 - GCP 實戰講師</a>.</p>]]></description>
										<content:encoded><![CDATA[<p class="wp-block-paragraph">防止 GCP 帳單爆炸，核心是做好 5 件事：保護 API 金鑰、刪除閒置服務、設定消費上限、啟用預設關閉的安全機制、建立即時監控。這 5 個步驟每步不超過一小時，但少做任何一步，就有機會讓你跟 Jesse 一樣，一覺醒來帳單多出台幣 58 萬。</p>



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="581" src="https://dongdonggcp.com/wp-content/uploads/2026/05/一覺醒來帳單多了58-萬台幣-1024x581.png" alt="" class="wp-image-11848" srcset="https://dongdonggcp.com/wp-content/uploads/2026/05/一覺醒來帳單多了58-萬台幣-1024x581.png 1024w, https://dongdonggcp.com/wp-content/uploads/2026/05/一覺醒來帳單多了58-萬台幣-300x170.png 300w, https://dongdonggcp.com/wp-content/uploads/2026/05/一覺醒來帳單多了58-萬台幣-768x435.png 768w, https://dongdonggcp.com/wp-content/uploads/2026/05/一覺醒來帳單多了58-萬台幣.png 1321w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">一覺醒來,帳單多了58 萬台幣</figcaption></figure>



<h3 class="wp-block-heading">真實案例：一覺醒來帳單暴增 2,500 倍</h3>



<h4 class="wp-block-heading">澳洲開發者的 25,000 澳幣慘劇</h4>



<p class="wp-block-paragraph">澳洲 AI 顧問 Jesse Davies 在 LinkedIn 和 Reddit 分享了他的親身經歷。</p>



<p class="wp-block-paragraph">他在 Google AI Studio 做了一個小測試專案，用「Deploy to Cloud Run」一鍵部署到雲端，之後就沒再理它。</p>



<p class="wp-block-paragraph">帳戶預算通知設定是 10 澳幣（約新台幣 210 元）。</p>



<p class="wp-block-paragraph">某天早上起床，信用卡已經被扣了 10,000 澳幣。</p>



<p class="wp-block-paragraph">他立刻聯絡 Google 客服。但在等待回覆的過程中，帳戶又被多刷了 15,000 澳幣。</p>



<p class="wp-block-paragraph">最終帳單是 25,672.86 澳幣，折合約 18,391 美元（新台幣 58 萬左右）。</p>



<p class="wp-block-paragraph">攻擊者做了什麼？他們根本沒有偷走 API 金鑰。</p>



<p class="wp-block-paragraph">他們只是找到 Jesse 部署在 Cloud Run 上的公開網址，直接朝這個網址送請求。</p>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph">Cloud Run 容器裡以明碼形式存放的 API 金鑰，就會幫攻擊者一筆一筆簽好請求，送到 Vertex AI 上去跑。</p>



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="541" src="https://dongdonggcp.com/wp-content/uploads/2026/05/攻擊者根本沒偷你的金鑰是你「開門迎客」-1024x541.png" alt="" class="wp-image-11849" srcset="https://dongdonggcp.com/wp-content/uploads/2026/05/攻擊者根本沒偷你的金鑰是你「開門迎客」-1024x541.png 1024w, https://dongdonggcp.com/wp-content/uploads/2026/05/攻擊者根本沒偷你的金鑰是你「開門迎客」-300x159.png 300w, https://dongdonggcp.com/wp-content/uploads/2026/05/攻擊者根本沒偷你的金鑰是你「開門迎客」-768x406.png 768w, https://dongdonggcp.com/wp-content/uploads/2026/05/攻擊者根本沒偷你的金鑰是你「開門迎客」.png 1356w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">攻擊者根本沒偷你的金鑰,是你「開門迎客」</figcaption></figure>



<p class="wp-block-paragraph">短短一個晚上，攻擊者送出了超過 60,000 次請求。</p>



<p class="wp-block-paragraph">最後 Google 同意撤銷這筆費用，但這個過程讓 Jesse 整整驚嚇了好幾天。</p>



<p class="wp-block-paragraph">原始貼文如下：</p>



<figure class="wp-block-embed is-type-rich is-provider-reddit wp-block-embed-reddit"><div class="wp-block-embed__wrapper">
<div class="ast-oembed-container " style="height: 100%;"><blockquote class="reddit-embed-bq" style="height:316px" ><a href="https://www.reddit.com/r/googlecloud/comments/1srwom6/google_cloud_detected_975_of_api_key_fraud_on_my/">Google Cloud detected $975 of API key fraud on my account, sent one email at 11 PM, then let the bill grow to $18,596 — 5 support agents have refused to help (case 70257996)</a><br> by<a href="https://www.reddit.com/user/juanpare/">u/juanpare</a> in<a href="https://www.reddit.com/r/googlecloud/">googlecloud</a></blockquote><script async src="https://embed.reddit.com/widgets.js" charset="UTF-8"></script></div>
</div></figure>



<h4 class="wp-block-heading">Google Cloud 自動升級消費上限的隱藏機制</h4>



<p class="wp-block-paragraph">這個案例裡還有一個關鍵細節，很多人不知道。</p>



<p class="wp-block-paragraph">Davies 的帳戶原本是 Tier 2，消費上限大約是 2,000 美元。</p>



<p class="wp-block-paragraph">Google Cloud 的帳單/用量層級可能會依帳戶歷史消費與資格自動提升；在某些案例中，Tier 2 帳戶累積消費達到門檻後，可能被提升到更高層級，對應上限可達 20,000 至 100,000 美元以上。</p>



<p class="wp-block-paragraph">雖然不是「偷偷加額度」，但確實代表預設風控不足時，帳單風險會被放大 。</p>



<p class="wp-block-paragraph">注意 Google 的 AI Studio 帳戶建立超過 30 天、且終生消費達 1,000 美元的帳戶，系統可能自動將可用消費額提高至 100,000 美元。這個機制設計初衷是讓正常業務不中斷，但在 GCP 帳單爆炸的情境下，它反而成為放大損失的燃料。 </p>



<p class="wp-block-paragraph">詳情可以查看以下連結：</p>



<p class="wp-block-paragraph"><a href="https://ai.google.dev/gemini-api/docs/rate-limits?hl=zh-tw">https://ai.google.dev/gemini-api/docs/rate-limits?hl=zh-tw</a></p>



<p class="wp-block-paragraph">後來 Google 就在 AI Studio 加入每月專案支出上限設定，一旦專案的支出超過上限，系統將在約 10 分鐘內暫停該專案的請求。</p>



<p class="wp-block-paragraph">但也因為這個延遲，在這段期間內仍可能產生超額費用，並且還是由使用者自行負擔。</p>



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="552" src="https://dongdonggcp.com/wp-content/uploads/2026/05/為什麼損失會放大50倍-1024x552.png" alt="" class="wp-image-11850" srcset="https://dongdonggcp.com/wp-content/uploads/2026/05/為什麼損失會放大50倍-1024x552.png 1024w, https://dongdonggcp.com/wp-content/uploads/2026/05/為什麼損失會放大50倍-300x162.png 300w, https://dongdonggcp.com/wp-content/uploads/2026/05/為什麼損失會放大50倍-768x414.png 768w, https://dongdonggcp.com/wp-content/uploads/2026/05/為什麼損失會放大50倍.png 1353w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">為什麼損失會放大50倍? (GCP 的隱藏機制)</figcaption></figure>



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



<h3 class="wp-block-heading">為什麼 GCP 帳單爆炸這麼容易發生？</h3>



<p class="wp-block-paragraph">GCP 帳單爆炸之所以容易發生，是因為 Google Cloud 的預設設定把 9 項安全機制全部關閉、消費上限設計成可自動升級，而開發者往往在測試後忘記關閉公開服務。三個條件同時成立，帳單爆炸就只差一個攻擊者。 </p>



<h4 class="wp-block-heading">API 金鑰公開在前端的致命風險</h4>



<p class="wp-block-paragraph">API 金鑰（API Key）是一組用來識別呼叫者身份的字串，當它出現在公開的前端程式碼或 URL 中，任何人都能用它以你的身份呼叫付費服務。</p>



<p class="wp-block-paragraph">Google Maps API 金鑰數年前被設計成允許放在前端使用，因為當時 Maps API 的計費邏輯相對友善。</p>



<p class="wp-block-paragraph">但後來 Gemini、Veo 等高價模型加入之後，這個設計就變成潛在漏洞：如果同一把 API 金鑰被賦予存取 Gemini 的權限，任何拿到這把金鑰的人都能用它呼叫 Gemini，費用算在你頭上。</p>



<p class="wp-block-paragraph">資安公司 Truffle Security 在 2026 年 2 月已公開警告這個問題，詳情可以看<a href="https://trufflesecurity.com/blog/google-api-keys-werent-secrets-but-then-gemini-changed-the-rules" target="_blank" rel="noopener" title="">這篇文章</a>。</p>



<h4 class="wp-block-heading">Cloud Run 部署後忘記關閉的代價</h4>



<p class="wp-block-paragraph">Cloud Run 是 GCP 的容器化服務執行平台，讓你可以把應用程式打包成容器並部署到雲端對外提供服務，預設為公開可存取。</p>



<p class="wp-block-paragraph">問題在於：你的服務有一個公開的 HTTPS 網址，任何人都可以發請求給它。如果你的容器裡有 API 金鑰（特別是明碼形式存放的），每一次外部請求都會觸發真實的 API 呼叫，並產生費用。</p>



<p class="wp-block-paragraph">很多開發者在測試完之後，只是停用服務，沒有完整刪除。</p>



<p class="wp-block-paragraph">只要網址還在、API 還沒停掉，攻擊者只要找到這個網址，就能開始刷費用。</p>



<h4 class="wp-block-heading">GCP 預設關閉的 9 項安全機制是什麼</h4>



<p class="wp-block-paragraph">Davies 在事後整理發現，Google Cloud 內建了 9 項安全機制，可以有效阻擋這類攻擊。</p>



<p class="wp-block-paragraph">但它們全部預設關閉，需要你自己進設定頁面逐一啟用。</p>



<p class="wp-block-paragraph">這 9 項機制包含：</p>



<ul class="wp-block-list">
<li>API 金鑰的 HTTP referrer 限制</li>



<li>IP 位址限制</li>



<li>Cloud Audit Logs 稽核日誌</li>



<li>Cost Anomaly Detection 成本異常偵測</li>



<li>Cloud Armor 防護規則</li>



<li>VPC Service Controls</li>



<li>Budget Alert 預算警報</li>



<li>Cloud Run 的身份驗證要求</li>



<li>IAM 最小權限原則</li>
</ul>



<p class="wp-block-paragraph">後面的步驟章節會逐一說明如何啟用其中最關鍵的幾項。</p>



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



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="531" src="https://dongdonggcp.com/wp-content/uploads/2026/05/第一道防線-將-API-金鑰移出前線-1024x531.png" alt="" class="wp-image-11851" srcset="https://dongdonggcp.com/wp-content/uploads/2026/05/第一道防線-將-API-金鑰移出前線-1024x531.png 1024w, https://dongdonggcp.com/wp-content/uploads/2026/05/第一道防線-將-API-金鑰移出前線-300x156.png 300w, https://dongdonggcp.com/wp-content/uploads/2026/05/第一道防線-將-API-金鑰移出前線-768x398.png 768w, https://dongdonggcp.com/wp-content/uploads/2026/05/第一道防線-將-API-金鑰移出前線.png 1306w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">第一道防線:將 API 金鑰移出前線</figcaption></figure>



<h3 class="wp-block-heading">防止 GCP 帳單爆炸：Step 1 保護你的 API 金鑰</h3>



<p class="wp-block-paragraph">API 金鑰是整個問題的核心。把它保護好，GCP 帳單爆炸的機率就降低 80% 以上。</p>



<h4 class="wp-block-heading">不要把 API 金鑰以明碼形式放進環境變數</h4>



<p class="wp-block-paragraph">明碼環境變數（Plaintext Environment Variable）是指直接把 API 金鑰字串寫進容器設定或程式碼的做法，這樣做會讓任何能存取容器的人直接讀到金鑰值，是造成 GCP 帳單爆炸最常見的根本原因之一。</p>



<p class="wp-block-paragraph">這樣做有 2 個根本問題：</p>



<ol class="wp-block-list">
<li>任何能存取容器的人（包含攻擊者）都能直接讀到金鑰值</li>



<li>金鑰跟著容器映像一起存在，就算你之後想換金鑰，舊的映像版本裡還是有原本的金鑰</li>
</ol>



<p class="wp-block-paragraph">正確的做法是改用 GCP Secret Manager 或短期憑證來取代長期金鑰。</p>



<h4 class="wp-block-heading">使用 GCP Secret Manager 管理敏感憑證</h4>



<p class="wp-block-paragraph">GCP Secret Manager 是 Google Cloud 提供的機密管理服務，讓你可以把 API 金鑰、密碼、憑證等敏感資料集中存放，並透過 IAM 權限控制誰可以讀取。</p>



<h5 class="wp-block-heading">Secret Manager 的基本設定步驟</h5>



<ol class="wp-block-list">
<li>在 GCP Console 搜尋「Secret Manager」，進入服務頁面</li>



<li>點擊「建立密鑰」（Create Secret），輸入名稱（例如 <code>gemini-api-key</code>）</li>



<li>在「密鑰值」欄位貼上你的 API 金鑰，點擊「建立密鑰版本」</li>



<li>進入 IAM 頁面，只賦予你的 Cloud Run 服務帳號「Secret Manager Secret Accessor」這個角色</li>



<li>在 Cloud Run 的程式碼中，改用 Secret Manager SDK 動態讀取金鑰，而不是從環境變數讀取</li>
</ol>



<p class="wp-block-paragraph">設定完成後，你的 API 金鑰不再存放於容器內部。就算攻擊者拿到容器映像，也讀不到金鑰內容。</p>



<h5 class="wp-block-heading">搭配服務帳號短期 Token 取代長期金鑰</h5>



<p class="wp-block-paragraph">更進一步的做法是完全不使用 API 金鑰，改用服務帳號（Service Account）搭配短期 Token（OAuth 2.0 access token，一種有時效限制的身份驗證憑證）。</p>



<p class="wp-block-paragraph">短期 Token 的有效期間最長為 3,600 秒（1 小時），到期後自動失效。</p>



<p class="wp-block-paragraph">就算被攻擊者截取，也只有在有效期間內能被使用，損失窗口遠比長期 API 金鑰小得多。</p>



<p class="wp-block-paragraph">設定方式：讓你的 Cloud Run 服務以特定服務帳號身份運行，並透過 Workload Identity 機制自動取得短期 Token，不需要手動管理任何長期憑證。</p>



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



<h3 class="wp-block-heading">防止 GCP 帳單爆炸：Step 2 關閉或刪除閒置服務</h3>



<p class="wp-block-paragraph">就算你的 API 金鑰保護做得再好，只要有一個公開的服務端點還在運行，就是潛在的攻擊入口。</p>



<h4 class="wp-block-heading">如何找出帳號內所有公開的 Cloud Run 服務</h4>



<ol class="wp-block-list">
<li>進入 GCP Console，在左側選單點擊「Cloud Run」</li>



<li>選擇你要檢查的專案，查看所有已部署的服務列表</li>



<li>對每個服務點擊進入，查看「觸發條件」（Triggers）和「安全性」（Security）分頁</li>



<li>確認「需要驗證」（Require authentication）是否已勾選，未勾選代表該服務完全公開</li>



<li>如果你不確定這個服務還有沒有在用，查看「指標」（Metrics）分頁，若過去 30 天請求數為 0，直接刪除</li>
</ol>



<p class="wp-block-paragraph"></p>



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="592" src="https://dongdonggcp.com/wp-content/uploads/2026/05/Cloud-Run-可以設定需要驗證，而非允許公開存取-v2-1024x592.png" alt="Cloud Run 可以設定需要驗證，而非允許公開存取 v2" class="wp-image-11852" srcset="https://dongdonggcp.com/wp-content/uploads/2026/05/Cloud-Run-可以設定需要驗證，而非允許公開存取-v2-1024x592.png 1024w, https://dongdonggcp.com/wp-content/uploads/2026/05/Cloud-Run-可以設定需要驗證，而非允許公開存取-v2-300x174.png 300w, https://dongdonggcp.com/wp-content/uploads/2026/05/Cloud-Run-可以設定需要驗證，而非允許公開存取-v2-768x444.png 768w, https://dongdonggcp.com/wp-content/uploads/2026/05/Cloud-Run-可以設定需要驗證，而非允許公開存取-v2-1536x888.png 1536w, https://dongdonggcp.com/wp-content/uploads/2026/05/Cloud-Run-可以設定需要驗證，而非允許公開存取-v2.png 1741w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">Cloud Run 可以設定需要驗證，而非允許公開存取 v2</figcaption></figure>



<p class="wp-block-paragraph">建議每季做一次這個檢查，把所有不再使用的服務清掉。</p>



<p class="wp-block-paragraph">這些服務沒在使用時，沒有機器也沒有費用產生，但設定和網址仍然保留，你點擊一下網址它們就恢復運行。</p>



<p class="wp-block-paragraph">除非你直接刪除，要不然隨時都會有被啟動的風險。</p>



<p class="wp-block-paragraph">如果你擔心刪除後需要回復，可以先把部署設定（Cloud Run YAML 或 Terraform 設定）存到版本控制系統，之後需要時重新部署即可。</p>



<h4 class="wp-block-heading">App Engine 和 Cloud Functions 的相同風險</h4>



<p class="wp-block-paragraph">Cloud Run 不是唯一有這個問題的服務。App Engine 和 Cloud Functions 也有相同的風險：</p>



<ol class="wp-block-list">
<li>App Engine 的版本（Version）在停用後，對應的 URL 在某些情況下仍然可存取</li>



<li>Cloud Functions 的 HTTP 觸發函式預設也是公開的</li>



<li>這 2 個服務都需要同樣的定期清查動作</li>
</ol>



<p class="wp-block-paragraph">原則一樣：凡是超過 90 天沒有收到任何請求的服務，就直接刪除，不要只是停用。</p>



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="431" src="https://dongdonggcp.com/wp-content/uploads/2026/05/Google-App-Engine-即使沒有在服務-點擊還是會打開網頁-1024x431.png" alt="" class="wp-image-11841" srcset="https://dongdonggcp.com/wp-content/uploads/2026/05/Google-App-Engine-即使沒有在服務-點擊還是會打開網頁-1024x431.png 1024w, https://dongdonggcp.com/wp-content/uploads/2026/05/Google-App-Engine-即使沒有在服務-點擊還是會打開網頁-300x126.png 300w, https://dongdonggcp.com/wp-content/uploads/2026/05/Google-App-Engine-即使沒有在服務-點擊還是會打開網頁-768x323.png 768w, https://dongdonggcp.com/wp-content/uploads/2026/05/Google-App-Engine-即使沒有在服務-點擊還是會打開網頁-1536x647.png 1536w, https://dongdonggcp.com/wp-content/uploads/2026/05/Google-App-Engine-即使沒有在服務-點擊還是會打開網頁.png 1881w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">Google App Engine 即使沒有在服務 點擊還是會打開網頁</figcaption></figure>



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



<h3 class="wp-block-heading">防止 GCP 帳單爆炸：Step 3 設定消費上限與預算警報</h3>



<p class="wp-block-paragraph">API 金鑰保護和服務管理是預防攻擊，預算設定是當攻擊發生時的最後一道防線。</p>



<h4 class="wp-block-heading">在 Google Cloud Console 建立預算通知</h4>



<p class="wp-block-paragraph">預算通知（Budget Alert）是 GCP 提供的消費警報機制，當你的消費達到設定門檻時，會發送 Email 通知。</p>



<p class="wp-block-paragraph">設定步驟：</p>



<ol class="wp-block-list">
<li>進入 GCP Console，點擊左側選單的「帳單」（Billing）</li>



<li>選擇「預算與快訊」（Budgets &amp; alerts）</li>



<li>點擊「建立預算」（Create budget）</li>



<li>設定預算名稱和涵蓋範圍（可以只針對特定專案）</li>



<li>設定預算金額（例如新台幣 500 元）</li>



<li>在「快訊門檻」至少設定 50%、75%、100% 三個通知點 </li>



<li>在「通知方式」填入你的 Email，或設定 Pub/Sub 主題以觸發自動化動作</li>
</ol>



<p class="wp-block-paragraph">PS. 你也可以像我這麼極端，我的通知門檻是「每多 1 USD 就直接通知 1 次」，雖然常看到通知信很煩，但能確保時時都能收到通知。</p>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" decoding="async" width="1024" height="984" src="https://dongdonggcp.com/wp-content/uploads/2026/05/GCP-帳單警示-預設與快訊-每多-1-USD-就通知-1024x984.png" alt="" class="wp-image-11839" style="width:803px;height:auto" srcset="https://dongdonggcp.com/wp-content/uploads/2026/05/GCP-帳單警示-預設與快訊-每多-1-USD-就通知-1024x984.png 1024w, https://dongdonggcp.com/wp-content/uploads/2026/05/GCP-帳單警示-預設與快訊-每多-1-USD-就通知-300x288.png 300w, https://dongdonggcp.com/wp-content/uploads/2026/05/GCP-帳單警示-預設與快訊-每多-1-USD-就通知-768x738.png 768w, https://dongdonggcp.com/wp-content/uploads/2026/05/GCP-帳單警示-預設與快訊-每多-1-USD-就通知-1536x1477.png 1536w, https://dongdonggcp.com/wp-content/uploads/2026/05/GCP-帳單警示-預設與快訊-每多-1-USD-就通知.png 1552w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">重要提醒：預算通知<strong>不會自動停止計費</strong>，它只發送通知。要真正截斷消費，你需要額外設定自動化動作（見下方步驟）。</p>



<h4 class="wp-block-heading">了解 GCP 自動升級帳戶等級的觸發條件</h4>



<p class="wp-block-paragraph">這是 Davies 案例中讓損失放大 50 倍的關鍵機制，你一定要了解。</p>



<h5 class="wp-block-heading">1,000 美元門檻與 100,000 美元上限的來龍去脈</h5>



<p class="wp-block-paragraph">根據 Google 官方說明，GCP 帳戶有信用額度分層機制：</p>



<ol class="wp-block-list">
<li>新帳戶（建立未滿 30 天）：消費上限約在 2,000 美元</li>



<li>舊帳戶（建立超過 30 天）且終生消費達 1,000 美元：系統可能自動將上限提高至 20,000 至 100,000 美元</li>



<li>這個升級動作完全自動，不需要使用者確認，也不一定會發送通知</li>
</ol>



<p class="wp-block-paragraph">換句話說，你在不知情的狀況下，帳戶的實際可消費金額已經是你預期的 50 倍。</p>



<h5 class="wp-block-heading">如何手動鎖定帳戶消費上限</h5>



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="411" src="https://dongdonggcp.com/wp-content/uploads/2026/05/第三道防線_預算通知不會幫你煞車-1024x411.png" alt="" class="wp-image-11853" srcset="https://dongdonggcp.com/wp-content/uploads/2026/05/第三道防線_預算通知不會幫你煞車-1024x411.png 1024w, https://dongdonggcp.com/wp-content/uploads/2026/05/第三道防線_預算通知不會幫你煞車-300x121.png 300w, https://dongdonggcp.com/wp-content/uploads/2026/05/第三道防線_預算通知不會幫你煞車-768x309.png 768w, https://dongdonggcp.com/wp-content/uploads/2026/05/第三道防線_預算通知不會幫你煞車.png 1344w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">第三道防線:預算通知不會幫你煞車</figcaption></figure>



<p class="wp-block-paragraph">GCP 目前沒有提供「硬性消費上限」功能（Hard Cap），只能透過以下 3 種方式控制：</p>



<ol class="wp-block-list">
<li>透過預算快訊 + Cloud Pub/Sub + Cloud Functions 建立自動化截斷機制：當消費達到設定金額時，自動停用指定的 API 或服務 <strong>(要注意這個自動停用的  Cloud Functions 程式，還是要自己寫)</strong></li>



<li>在個別 API 的 Google Cloud Console 設定中查看「配額」（Quota），把每日請求數限制在可接受的範圍</li>



<li>聯絡 Google Cloud 支援，要求在帳戶層級設定更嚴格的消費限制</li>
</ol>



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="791" src="https://dongdonggcp.com/wp-content/uploads/2026/05/透過-PubSub-呼叫-Cloud-Function-程式停用-API_2-1024x791.png" alt="" class="wp-image-11843" srcset="https://dongdonggcp.com/wp-content/uploads/2026/05/透過-PubSub-呼叫-Cloud-Function-程式停用-API_2-1024x791.png 1024w, https://dongdonggcp.com/wp-content/uploads/2026/05/透過-PubSub-呼叫-Cloud-Function-程式停用-API_2-300x232.png 300w, https://dongdonggcp.com/wp-content/uploads/2026/05/透過-PubSub-呼叫-Cloud-Function-程式停用-API_2-768x593.png 768w, https://dongdonggcp.com/wp-content/uploads/2026/05/透過-PubSub-呼叫-Cloud-Function-程式停用-API_2.png 1324w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">透過 PubSub 呼叫 Cloud Function 程式停用 API</figcaption></figure>



<p class="wp-block-paragraph">這是目前最接近「硬性上限」的做法。需要一點工程工作，但一次設好就能長期保護你。</p>



<h5 class="wp-block-heading">2026 4 月開始，AI Studio 可以設定上限</h5>



<p class="wp-block-paragraph">請先到 Google AI Studio Dashboard 選單的 Spend，再點擊 Set spend cap</p>



<figure class="wp-block-image aligncenter size-large is-resized"><img loading="lazy" decoding="async" width="1024" height="508" src="https://dongdonggcp.com/wp-content/uploads/2026/05/Google-AI-Studio-花費額度2-1024x508.png" alt="" class="wp-image-11837" style="width:728px;height:auto" srcset="https://dongdonggcp.com/wp-content/uploads/2026/05/Google-AI-Studio-花費額度2-1024x508.png 1024w, https://dongdonggcp.com/wp-content/uploads/2026/05/Google-AI-Studio-花費額度2-300x149.png 300w, https://dongdonggcp.com/wp-content/uploads/2026/05/Google-AI-Studio-花費額度2-768x381.png 768w, https://dongdonggcp.com/wp-content/uploads/2026/05/Google-AI-Studio-花費額度2-1536x762.png 1536w, https://dongdonggcp.com/wp-content/uploads/2026/05/Google-AI-Studio-花費額度2.png 1794w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">Google AI Studio 花費額度設定</figcaption></figure>



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



<p class="wp-block-paragraph">設定 Gemini API 的每月花費上限</p>



<figure class="wp-block-image aligncenter size-large is-resized"><img loading="lazy" decoding="async" width="1024" height="528" src="https://dongdonggcp.com/wp-content/uploads/2026/05/設定-Gemini-API-的每月花費上限-1024x528.png" alt="" class="wp-image-11838" style="width:691px;height:auto" srcset="https://dongdonggcp.com/wp-content/uploads/2026/05/設定-Gemini-API-的每月花費上限-1024x528.png 1024w, https://dongdonggcp.com/wp-content/uploads/2026/05/設定-Gemini-API-的每月花費上限-300x155.png 300w, https://dongdonggcp.com/wp-content/uploads/2026/05/設定-Gemini-API-的每月花費上限-768x396.png 768w, https://dongdonggcp.com/wp-content/uploads/2026/05/設定-Gemini-API-的每月花費上限-1536x792.png 1536w, https://dongdonggcp.com/wp-content/uploads/2026/05/設定-Gemini-API-的每月花費上限.png 1802w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<h3 class="wp-block-heading">防止 GCP 帳單爆炸：Step 4 啟用 GCP 內建的安全機制</h3>



<p class="wp-block-paragraph">GCP 內建了 9 項安全機制，但全部預設關閉。這一節帶你把最關鍵的 3 項打開。</p>



<h4 class="wp-block-heading">9 項預設關閉的安全設定在哪裡找</h4>



<p class="wp-block-paragraph">這 9 項設定散落在 GCP Console 的不同位置，沒有統一入口。你需要逐一進入各個服務的設定頁面手動啟用。</p>



<p class="wp-block-paragraph">最快的方法是使用 GCP 的「安全性指揮中心」（Security Command Center，一個集中管理 GCP 安全問題的控制台）。</p>



<p class="wp-block-paragraph">進入 GCP Console，搜尋「Security Command Center」，點擊「漏洞」（Vulnerabilities）分頁。</p>



<p class="wp-block-paragraph">這裡會列出你帳號中偵測到的安全問題，包含沒有啟用身份驗證的 Cloud Run 服務、過於寬鬆的 IAM 權限等。</p>



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="604" src="https://dongdonggcp.com/wp-content/uploads/2026/05/02-security-command-center-vulnerabilities-view-1024x604.png" alt="" class="wp-image-11840" srcset="https://dongdonggcp.com/wp-content/uploads/2026/05/02-security-command-center-vulnerabilities-view-1024x604.png 1024w, https://dongdonggcp.com/wp-content/uploads/2026/05/02-security-command-center-vulnerabilities-view-300x177.png 300w, https://dongdonggcp.com/wp-content/uploads/2026/05/02-security-command-center-vulnerabilities-view-768x453.png 768w, https://dongdonggcp.com/wp-content/uploads/2026/05/02-security-command-center-vulnerabilities-view-1536x906.png 1536w, https://dongdonggcp.com/wp-content/uploads/2026/05/02-security-command-center-vulnerabilities-view.png 1684w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">Security Command Center 會列出你帳號中偵測到的安全問題</figcaption></figure>



<p class="wp-block-paragraph">Security Command Center 的詳情可以查看<a href="https://dongdonggcp.com/2024/08/20/what-is-security-command-center-version-comparison-and-how-to-use-it/" target="_blank" rel="noopener" title="">這篇文章</a>。</p>



<h4 class="wp-block-heading">API 金鑰限制：綁定 HTTP referrer 與 IP 位址</h4>



<p class="wp-block-paragraph">如果你的 API 金鑰無法立刻換成 Secret Manager，至少要做這件事：限制 API 金鑰的使用範圍。</p>



<p class="wp-block-paragraph">設定步驟：</p>



<ol class="wp-block-list">
<li>進入 GCP Console，搜尋「API 和服務」（APIs &amp; Services）</li>



<li>點擊「憑證」（Credentials）</li>



<li>找到你要保護的 API 金鑰，點擊進入編輯</li>



<li>在「應用程式限制」（Application restrictions）選擇「HTTP referrer（網站）」，填入你的網域（例如 <code>https://yourdomain.com/*</code>）</li>



<li>在「API 限制」（API restrictions）選擇「限制金鑰」，只勾選這把金鑰真正需要使用的 API</li>



<li>點擊「儲存」</li>
</ol>



<p class="wp-block-paragraph">完成後，就算有人拿到你的 API 金鑰字串，在非你網域的環境下使用它，GCP 會直接拒絕這個請求。</p>



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="901" src="https://dongdonggcp.com/wp-content/uploads/2026/05/限制-API-Key-呼叫的來源網域-1024x901.png" alt="" class="wp-image-11844" srcset="https://dongdonggcp.com/wp-content/uploads/2026/05/限制-API-Key-呼叫的來源網域-1024x901.png 1024w, https://dongdonggcp.com/wp-content/uploads/2026/05/限制-API-Key-呼叫的來源網域-300x264.png 300w, https://dongdonggcp.com/wp-content/uploads/2026/05/限制-API-Key-呼叫的來源網域-768x676.png 768w, https://dongdonggcp.com/wp-content/uploads/2026/05/限制-API-Key-呼叫的來源網域.png 1188w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">限制 API Key 呼叫的來源網域</figcaption></figure>



<p class="wp-block-paragraph">設定只能呼叫哪些 API</p>



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="609" src="https://dongdonggcp.com/wp-content/uploads/2026/05/設定只能呼叫哪些-API-1024x609.png" alt="" class="wp-image-11845" srcset="https://dongdonggcp.com/wp-content/uploads/2026/05/設定只能呼叫哪些-API-1024x609.png 1024w, https://dongdonggcp.com/wp-content/uploads/2026/05/設定只能呼叫哪些-API-300x178.png 300w, https://dongdonggcp.com/wp-content/uploads/2026/05/設定只能呼叫哪些-API-768x457.png 768w, https://dongdonggcp.com/wp-content/uploads/2026/05/設定只能呼叫哪些-API-1536x913.png 1536w, https://dongdonggcp.com/wp-content/uploads/2026/05/設定只能呼叫哪些-API.png 1547w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">設定只能呼叫哪些 API</figcaption></figure>



<h4 class="wp-block-heading">啟用 Cloud Audit Logs 追蹤異常呼叫</h4>



<p class="wp-block-paragraph">Cloud Audit Logs（雲端稽核日誌）是 GCP 記錄所有 API 呼叫行為的機制，讓你在事後追查「誰在什麼時間呼叫了什麼 API」。</p>



<p class="wp-block-paragraph">預設只有管理活動日誌（Admin Activity Logs）是開啟的。</p>



<p class="wp-block-paragraph">資料存取日誌（Data Access Logs）預設關閉，但這才是追蹤異常 API 呼叫最重要的日誌。</p>



<p class="wp-block-paragraph">啟用方式：</p>



<ol class="wp-block-list">
<li>進入 GCP Console，搜尋「IAM 與管理員」（IAM &amp; Admin）</li>



<li>點擊「稽核日誌」（Audit Logs）</li>



<li>找到你要啟用的服務（例如 AI Platform、Cloud Run），勾選「資料讀取」和「資料寫入」</li>



<li>點擊「儲存」</li>
</ol>



<p class="wp-block-paragraph">啟用之後，你就能在 Cloud Logging 中查詢：過去 24 小時內，所有 Gemini API 的呼叫次數、來源 IP、使用的金鑰。在異常發生時，你有完整的事後追查能力，也能把日誌資料提供給 Google 客服作為退款申請的佐證。</p>



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="445" src="https://dongdonggcp.com/wp-content/uploads/2026/05/透過-GCP-稽核記錄-Audit-Log-來查看異常存取行為-1024x445.png" alt="" class="wp-image-11846" srcset="https://dongdonggcp.com/wp-content/uploads/2026/05/透過-GCP-稽核記錄-Audit-Log-來查看異常存取行為-1024x445.png 1024w, https://dongdonggcp.com/wp-content/uploads/2026/05/透過-GCP-稽核記錄-Audit-Log-來查看異常存取行為-300x130.png 300w, https://dongdonggcp.com/wp-content/uploads/2026/05/透過-GCP-稽核記錄-Audit-Log-來查看異常存取行為-768x334.png 768w, https://dongdonggcp.com/wp-content/uploads/2026/05/透過-GCP-稽核記錄-Audit-Log-來查看異常存取行為-1536x668.png 1536w, https://dongdonggcp.com/wp-content/uploads/2026/05/透過-GCP-稽核記錄-Audit-Log-來查看異常存取行為.png 1827w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">透過 GCP 稽核記錄 Audit Log 來查看異常存取行為</figcaption></figure>



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



<h3 class="wp-block-heading">防止 GCP 帳單爆炸：Step 5 建立異常偵測與即時告警</h3>



<p class="wp-block-paragraph">前面 4 個步驟都是預防，這個步驟是監控——讓你在帳單失控的前 30 分鐘就收到通知，而不是睡一覺起來才發現。</p>



<h4 class="wp-block-heading">Cost Anomaly Detection 的設定方式</h4>



<p class="wp-block-paragraph">Cost Anomaly Detection（成本異常偵測）是 GCP 的自動化機制，會分析你的歷史消費模式，當消費突然偏離預期時，發送警報 Email。</p>



<p class="wp-block-paragraph">啟用方式：</p>



<ol class="wp-block-list">
<li>進入 GCP Console，點擊「帳單」（Billing）</li>



<li>選擇「異常狀況」（Cost anomalies）分頁</li>



<li>點擊「管理異常狀況」，設定要自動產生門檻，或手動自己設定</li>



<li>在「通知設定」填入你想接收警報的 Email 地址</li>
</ol>



<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" width="1000" height="896" src="https://dongdonggcp.com/wp-content/uploads/2026/05/GCP-成本異常通知設定2.png" alt="GCP 成本異常通知設定" class="wp-image-11862" srcset="https://dongdonggcp.com/wp-content/uploads/2026/05/GCP-成本異常通知設定2.png 1000w, https://dongdonggcp.com/wp-content/uploads/2026/05/GCP-成本異常通知設定2-300x269.png 300w, https://dongdonggcp.com/wp-content/uploads/2026/05/GCP-成本異常通知設定2-768x688.png 768w" sizes="(max-width: 1000px) 100vw, 1000px" /><figcaption class="wp-element-caption">GCP 成本異常通知設定</figcaption></figure>



<p class="wp-block-paragraph">但要記住 AWS 那個案例的教訓：Cost Anomaly Detection 只涵蓋直接計費的服務。如果你透過 Marketplace 或第三方管道計費，這個偵測在那些項目上無效。記得確認你所有 GCP 服務的計費路徑。</p>



<h4 class="wp-block-heading">為什麼光靠預算通知還不夠</h4>



<p class="wp-block-paragraph">預算通知有 2 個根本限制：</p>



<ol class="wp-block-list">
<li>Email 通知有延遲，GCP 帳單的計算週期不是即時的，有時候通知寄到的時候，費用早就超標了</li>



<li>預算通知只有在你的帳戶達到設定門檻時才發送，如果攻擊在短短幾小時內讓費用從 0 衝到 5,000 美元，中間你不會收到任何通知</li>
</ol>



<p class="wp-block-paragraph">這就是為什麼需要加上 Cloud Monitoring 的即時 Alerting Policy。</p>



<h4 class="wp-block-heading">結合 Cloud Monitoring 設定即時 Alerting Policy</h4>



<p class="wp-block-paragraph">Cloud Monitoring（雲端監控）是 GCP 的指標監控服務，可以讓你針對任何 GCP 指標設定即時警報。</p>



<p class="wp-block-paragraph">設定步驟：</p>



<ol class="wp-block-list">
<li>進入 GCP Console，搜尋「Monitoring」，進入 Cloud Monitoring</li>



<li>點擊「警報」（Alerting），再點擊「建立政策」（Create Policy）</li>



<li>在「選取指標」中，搜尋 <code>serviceruntime.googleapis.com/api/request_count</code>（API 請求次數）</li>



<li>設定觸發條件：例如「過去 10 分鐘內，Gemini API 的請求次數超過 1,000 次」</li>



<li>在「通知管道」設定你的 Email 或 Slack 通知</li>



<li>點擊「儲存」</li>
</ol>



<p class="wp-block-paragraph">完成後，當有人在 10 分鐘內對你的 API 發出超過 1,000 次請求，你的手機就會立刻收到警報，而不是隔天早上才看到帳單。</p>



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



<h3 class="wp-block-heading">常見問題：帳單已經爆了，現在怎麼辦？</h3>



<p class="wp-block-paragraph">如果你看到這篇文章時，帳單已經在爆炸了，這個章節是給你的。動作越快，損失越小。</p>



<h4 class="wp-block-heading">立刻停用金鑰和服務的操作順序</h4>



<p class="wp-block-paragraph">按照這個順序執行：</p>



<ol class="wp-block-list">
<li>進入 GCP Console，點擊「API 和服務」→「憑證」，找到所有 API 金鑰，點擊刪除或停用</li>



<li>進入「Cloud Run」，找到所有公開服務，點擊「刪除」</li>



<li>進入「IAM 與管理員」，找到異常的服務帳號，點擊「停用」</li>



<li>進入「帳單」，查看「本月消費明細」，確認是哪個服務在產生費用</li>



<li>直接停用該服務對應的 API（進入「API 和服務」→「已啟用的 API 和服務」，找到對應的 API，點擊停用）</li>
</ol>



<p class="wp-block-paragraph">整個流程在 10 分鐘內應該可以完成。每晚一分鐘，就多幾美元的損失。</p>



<h4 class="wp-block-heading">如何向 Google Cloud 申請帳單減免</h4>



<p class="wp-block-paragraph">Davies 的案例最後有退款，但這不是自動的，需要你主動申請。</p>



<p class="wp-block-paragraph">申請步驟：</p>



<ol class="wp-block-list">
<li>進入 GCP Console，點擊右上角的「支援」（Support）圖示 （要注意你有購買 <a href="https://cloud.google.com/support" target="_blank" rel="noopener" title="">Google 官方的技術支援方案</a>）</li>



<li>選擇「建立案例」（Create case）</li>



<li>在問題類型選擇「帳單」（Billing）</li>



<li>詳細描述事件：攻擊發生的時間、你發現的方式、你已採取的緊急措施</li>



<li>附上 Cloud Audit Logs 的截圖或匯出資料，作為攻擊行為的佐證</li>



<li>明確要求「費用撤銷」（Credit request 或 Billing adjustment）</li>
</ol>



<p class="wp-block-paragraph">Google 不保證一定退款。但根據公開案例，在能提供明確攻擊證據、且帳號本身沒有不當行為的情況下，退款機率相當高。</p>



<p class="wp-block-paragraph">隱藏密技，<a href="https://apps.google.com/supportwidget/helphome?product_name=Cloud+Platform&amp;product_context=billing/overview" target="_blank" rel="noopener" title="">從這裡點選</a>就不需要先購買技術支援方案。</p>



<p class="wp-block-paragraph"></p>



<h4 class="wp-block-heading">被扣款後帳號被鎖定，怎麼取回日誌權限</h4>



<p class="wp-block-paragraph">這是 Davies 案例中最令人抓狂的環節：因為帳單欠款，GCP 帳號被限制，他一度無法進入 Cloud Logging 查看攻擊日誌。</p>



<p class="wp-block-paragraph">如果你遇到這個狀況：</p>



<ol class="wp-block-list">
<li>先嘗試透過 Google Cloud Console 的帳單頁面補繳欠款，部分情況下補繳後帳號限制會立刻解除</li>



<li>如果無法補繳（例如信用卡已被鎖定），直接聯絡 Google Cloud 支援，說明你正在收集攻擊佐證，需要暫時恢復日誌存取權限</li>



<li>要求 Google 客服協助匯出你帳號的 Audit Logs，這是他們技術上可以做到的事</li>



<li>同步提出費用撤銷申請，兩件事可以一起處理</li>
</ol>



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



<h3 class="wp-block-heading">結語：GCP 帳單爆炸不是你的錯，但防護是你的責任</h3>



<p class="wp-block-paragraph">GCP 的預設設定就是把 9 項安全機制全部關掉，把消費上限設計成會自動升級。這確實是平台設計的問題。</p>



<p class="wp-block-paragraph">但等 Google 改好設計，可能要等很久。</p>



<p class="wp-block-paragraph">防止 GCP 帳單爆炸，你能做的就是這 5 件事：保護 API 金鑰、刪除閒置服務、設定預算上限、啟用安全機制、建立即時監控。每一步都花不到一小時。但少做任何一步，都有機會讓你睡一覺起來帳單多出台幣 58 萬。 </p>



<p class="wp-block-paragraph">現在就去 GCP Console 打開那 9 項設定吧。</p>



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



<h3 class="wp-block-heading">常見問題（FAQ）</h3>



<p class="wp-block-paragraph"><strong>Q1：GCP 預算通知設定後，消費真的會被自動停止嗎？</strong> A：GCP 帳單爆炸最常見的誤解就是這個——預算通知只發 Email，不會自動停止計費。要實現自動截斷，需要額外設定 Cloud Pub/Sub 加上 Cloud Functions，讓警報觸發自動停用服務的程式。這個架構需要一點工程工作，但做一次就能保護所有專案。</p>



<p class="wp-block-paragraph"><strong>Q2：我只是用 GCP 跑實驗，金額很小，需要這麼麻煩嗎？</strong> A：需要。Davies 的案例就是從「只是跑個實驗」開始的。攻擊者不管你的帳戶是否在活躍使用，只要 Cloud Run 網址存在、API 金鑰有效，就是攻擊目標。實驗完成後，刪除服務是最小成本的防護動作，花不到 2 分鐘。</p>



<p class="wp-block-paragraph"><strong>Q3：Secret Manager 收費嗎？費用大概是多少？</strong> A：收費，但金額很小。根據 GCP 官方定價，Secret Manager 每 10,000 次存取操作收費 0.03 美元，每個活躍密鑰版本每月收費 0.06 美元。對大多數開發者來說，每月費用會在 1 美元以下，比起 GCP 帳單爆炸的風險，這筆錢完全值得。</p>



<p class="wp-block-paragraph"><strong>Q4：我有多個 GCP 專案，每個都要做一遍嗎？</strong> A：金鑰保護和服務清查需要在每個專案個別執行。但預算設定可以在帳單帳戶（Billing Account）層級設定，一次涵蓋所有專案。Cost Anomaly Detection 也可以在帳單帳戶層級啟用，不需要逐一設定。</p>



<p class="wp-block-paragraph"><strong>Q5：如果我用的是 Firebase，也有同樣的風險嗎？</strong> A：有。Firebase 專案底層就是 GCP 專案，Firebase 的 API 金鑰同樣可以用來呼叫 GCP 的付費服務。如果你在 Firebase 專案中啟用了 Gemini API 或其他付費服務，一樣需要做 API 金鑰的限制設定。</p>



<p class="wp-block-paragraph"><strong>Q6：Cloud Armor 是什麼？它能防止帳單爆炸嗎？</strong> A：Cloud Armor 是 GCP 的 Web Application Firewall（Web 應用程式防火牆），可以封鎖特定 IP、地區或請求模式。它能減少惡意請求的數量，但不能直接限制消費金額。建議把 Cloud Armor 當作補充防護，而不是主要防線，且它需要額外費用，適合已有穩定流量的正式服務。</p>



<p class="wp-block-paragraph"><strong>Q7：Google Maps API 金鑰和 Gemini API 金鑰是同一把嗎？</strong> A：在 GCP Console 裡，同一個專案的 API 金鑰預設可以存取該專案啟用的所有 API。如果你在同一個專案裡同時啟用了 Maps API 和 Gemini API，你的 Maps API 金鑰在技術上也能呼叫 Gemini。正確做法是在 API 金鑰設定中明確指定這把金鑰只能用於哪些 API。</p>



<p class="wp-block-paragraph"><strong>Q8：我已經把 API 金鑰換掉了，舊金鑰還需要特別處理嗎？</strong> A：需要立刻刪除舊金鑰。進入 GCP Console，點擊「API 和服務」→「憑證」，找到所有舊的 API 金鑰，點擊「刪除」而不是只是停用。停用的金鑰在特定條件下可能被重新啟用；刪除才能確保舊金鑰永久失效，是防止 GCP 帳單爆炸的必要步驟。</p>



<p class="wp-block-paragraph"><strong>Q9：攻擊者是怎麼找到我的 Cloud Run 網址的？</strong> A：常見的途徑有 3 種：在 GitHub、GitLab 或 Bitbucket 的公開 repo 中搜尋 Cloud Run 網址（攻擊者有自動化工具掃描這些平台）；透過搜尋引擎索引到公開的 API 文件或設定檔；從 Google AI Studio 的部署紀錄或相關社群貼文中找到。任何 Cloud Run 網址都不要出現在公開的程式碼或文件裡。</p>



<p class="wp-block-paragraph"><strong>Q10：除了 GCP，其他雲端服務（AWS、Azure）也有同樣的問題嗎？</strong> A：有，而且 AWS 還有額外的盲點。透過 AWS Marketplace 計費的 Bedrock 服務不在 AWS Cost Anomaly Detection 的偵測範圍內。Azure 的 API Management 服務有類似的公開端點風險。每個雲端平台的預設安全設定都不夠嚴格，原則相同：任何公開端點加上任何付費 API 的組合，都需要額外的保護機制。</p>



<p class="wp-block-paragraph"></p><p>The post <a href="https://dongdonggcp.com/2026/05/19/gcp-bill-explosion-prevention-guide/">GCP 帳單爆炸防護指南：5 個步驟讓你不再睡醒崩潰</a> first appeared on <a href="https://dongdonggcp.com">東東 GCP 教學 - GCP 實戰講師</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://dongdonggcp.com/2026/05/19/gcp-bill-explosion-prevention-guide/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>GCP Organization Policy 完全攻略：Google Cloud 安全工程師必備知識</title>
		<link>https://dongdonggcp.com/2026/04/22/gcp-organization-policy-introduction/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=gcp-organization-policy-introduction</link>
					<comments>https://dongdonggcp.com/2026/04/22/gcp-organization-policy-introduction/#respond</comments>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Wed, 22 Apr 2026 10:31:51 +0000</pubDate>
				<category><![CDATA[資訊安全]]></category>
		<category><![CDATA[GCP Organization Policy]]></category>
		<category><![CDATA[GCP Security]]></category>
		<category><![CDATA[機構政策]]></category>
		<category><![CDATA[組織政策]]></category>
		<guid isPermaLink="false">https://dongdonggcp.com/?p=11790</guid>

					<description><![CDATA[<p>GCP Organization Pol [&#8230;]</p>
<p>The post <a href="https://dongdonggcp.com/2026/04/22/gcp-organization-policy-introduction/">GCP Organization Policy 完全攻略：Google Cloud 安全工程師必備知識</a> first appeared on <a href="https://dongdonggcp.com">東東 GCP 教學 - GCP 實戰講師</a>.</p>]]></description>
										<content:encoded><![CDATA[<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><a href="https://docs.cloud.google.com/organization-policy/overview" target="_blank" rel="noopener" title="">GCP Organization Policy</a>（組織政策）是 Google Cloud 提供的集中式資安政策管理工具，讓管理員統一設定「全公司的資源可以怎麼使用」，透過 Constraints（約束條件）在 Organization、Folder、Project 三層結構中強制執行安全限制。與 IAM 管理「誰能做什麼」不同，Organization Policy 管理「任何人都不能做什麼」——違規操作一律擋下，不受 IAM 角色影響。</p>
</blockquote>



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



<p class="wp-block-paragraph">如果說 IAM 是管理「誰可以做什麼」的工具，那 <strong>GCP Organization Policy</strong> 就是管理「全公司的資源可以怎麼使用」的守門員。兩者看起來很像，但扮演的角色完全不同。</p>



<h2 class="wp-block-heading">1. 什麼是 GCP Organization Policy？</h2>



<h3 class="wp-block-heading">什麼是 Organization Policy？</h3>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><strong>GCP Organization Policy Service</strong> 是 Google Cloud 的集中式治理工具，透過定義 Constraints（約束條件），在整個雲端環境中統一規定哪些行為被允許、哪些行為被禁止。它是一種「護欄機制（Guardrail）」——不論操作者是誰、擁有什麼 IAM 角色，只要行為違反政策，一律擋下。</p>
</blockquote>



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



<p class="wp-block-paragraph">Organization Policy 的設定方式，是透過定義一系列的 <strong>Constraints（約束條件）</strong> 來實現。每個 constraint 對應一個特定的 Google Cloud 行為，例如：</p>



<ul class="wp-block-list">
<li>可不可以建立有公開 IP 的 VM？</li>



<li>可不可以使用未受信任的 OS 映像檔？</li>



<li>Storage bucket 能不能公開存取？</li>
</ul>



<p class="wp-block-paragraph">這些 constraint 可以套用在<strong>組織（Organization）、資料夾（Folder）或專案（Project）</strong> 層級，並依照層級結構自動向下繼承。</p>



<h3 class="wp-block-heading">為什麼 Organization Policy 比 IAM 更重要？</h3>



<p class="wp-block-paragraph">IAM 和 Organization Policy 是 Google Cloud 安全架構的兩個不同層次，不能互相取代：</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>比較項目</th><th>IAM</th><th>Organization Policy</th></tr></thead><tbody><tr><td>管理對象</td><td>身分（人、服務帳戶）</td><td>對資源的操作與設定</td></tr><tr><td>設定粒度</td><td>個別資源或專案</td><td>組織、資料夾、專案</td></tr><tr><td>執行機制</td><td>授權或拒絕操作</td><td>允許或禁止特定行為</td></tr><tr><td>繼承方式</td><td>自動向下繼承</td><td>自動向下繼承</td></tr><tr><td>典型用途</td><td>誰能讀取 GCS bucket</td><td>所有 bucket 不能公開</td></tr></tbody></table></figure>



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



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">Organization Policy 的優先層級高於 IAM 授權。就算某個使用者有 <code>Compute Instance Admin</code> 的 IAM 角色，如果組織政策規定「所有 VM 不得有外部 IP」，他一樣無法建立有外部 IP 的 VM。</p>
</blockquote>



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



<p class="wp-block-paragraph">用比喻來說：</p>



<ul class="wp-block-list">
<li><strong>IAM</strong> 是「員工識別證」——決定某個人能不能進入這棟大樓、使用這台機器。</li>



<li><strong>Organization Policy</strong> 是「公司規章」——不管是誰，所有人都必須遵守，違規一律擋下。</li>
</ul>



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



<h2 class="wp-block-heading">2. Organization Policy 的資源層級繼承架構</h2>



<h3 class="wp-block-heading">它是怎麼運作的？</h3>



<p class="wp-block-paragraph">Google Cloud 的資源以樹狀結構組織：</p>



<pre class="wp-block-code"><code>Organization（組織）
    └── Folder（資料夾）
            └── Project（專案）
                    └── Resources（資源）</code></pre>



<p class="wp-block-paragraph">當在 <strong>Organization 層級</strong>設定一個 Organization Policy 時，這個政策會自動往下繼承到所有 Folder、Project 和資源。組織管理員可以用最少的設定，達到全面覆蓋的效果。</p>



<p class="wp-block-paragraph"><strong>實際情境：</strong> 假設你在 Organization 層級設定政策，禁止任何 VM 使用外部 IP 位址，那麼整個組織底下的所有 Folder、所有 Project，都不能建立有外部 IP 的 VM——除非有特別的 Override 設定。</p>



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="533" src="https://dongdonggcp.com/wp-content/uploads/2026/04/Organization-Policy-的資源層級繼承架構-1024x533.png" alt="" class="wp-image-11796" srcset="https://dongdonggcp.com/wp-content/uploads/2026/04/Organization-Policy-的資源層級繼承架構-1024x533.png 1024w, https://dongdonggcp.com/wp-content/uploads/2026/04/Organization-Policy-的資源層級繼承架構-300x156.png 300w, https://dongdonggcp.com/wp-content/uploads/2026/04/Organization-Policy-的資源層級繼承架構-768x400.png 768w, https://dongdonggcp.com/wp-content/uploads/2026/04/Organization-Policy-的資源層級繼承架構.png 1319w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">Organization Policy 的資源層級繼承架構</figcaption></figure>



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



<h3 class="wp-block-heading">inheritFromParent 是什麼？為什麼重要？</h3>



<p class="wp-block-paragraph"><code>inheritFromParent</code> 是理解 Organization Policy 繼承機制的核心欄位。</p>



<ul class="wp-block-list">
<li><strong>預設（inheritFromParent: true）</strong>：子層節點（Folder 或 Project）從父層繼承政策。</li>



<li><strong>設定 inheritFromParent: false</strong>：該節點完全切斷與父層的政策繼承，改用自己設定的政策。</li>
</ul>



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



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">一旦子節點設定 <code>inheritFromParent: false</code>，它的政策就完全獨立運作。即使 Organization 層級允許某個網域，這個允許對該 Folder 完全無效——Folder 只認自己設定的規則。這是安全架構設計中最容易踩到的陷阱之一。</p>
</blockquote>



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



<p class="wp-block-paragraph"><strong>具體案例：</strong></p>



<ul class="wp-block-list">
<li>Organization 層級：允許 <code>abc.com</code> 的成員</li>



<li>Apps Folder 層級：只允許 <code>def.com</code> 的成員，並設定 <code>inheritFromParent: false</code></li>
</ul>



<p class="wp-block-paragraph">結果：嘗試把 <code>peter@abc.com</code> 加入 Apps Folder 底下某個 Project 的 IAM 政策，<strong>會直接失敗</strong>。因為 Apps Folder 已完全切斷繼承，只認 <code>def.com</code>。</p>



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="531" src="https://dongdonggcp.com/wp-content/uploads/2026/04/政策斷點-inheritFrom-Parent-覆蓋機制的運作邏輯-1024x531.png" alt="" class="wp-image-11797" srcset="https://dongdonggcp.com/wp-content/uploads/2026/04/政策斷點-inheritFrom-Parent-覆蓋機制的運作邏輯-1024x531.png 1024w, https://dongdonggcp.com/wp-content/uploads/2026/04/政策斷點-inheritFrom-Parent-覆蓋機制的運作邏輯-300x156.png 300w, https://dongdonggcp.com/wp-content/uploads/2026/04/政策斷點-inheritFrom-Parent-覆蓋機制的運作邏輯-768x398.png 768w, https://dongdonggcp.com/wp-content/uploads/2026/04/政策斷點-inheritFrom-Parent-覆蓋機制的運作邏輯-1536x796.png 1536w, https://dongdonggcp.com/wp-content/uploads/2026/04/政策斷點-inheritFrom-Parent-覆蓋機制的運作邏輯.png 1863w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">政策斷點 inheritFrom Parent 覆蓋機制的運作邏輯</figcaption></figure>



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



<h2 class="wp-block-heading">3. 兩大核心 Constraint 類型：List vs Boolean</h2>



<h3 class="wp-block-heading">List Constraint（清單限制）</h3>



<p class="wp-block-paragraph">List Constraint 用「<strong>允許清單（Allow List）</strong>」或「<strong>拒絕清單（Deny List）</strong>」控制特定資源的使用範圍：</p>



<ul class="wp-block-list">
<li><strong>Allow（允許）操作</strong>：只有清單內的值才被允許，其他的全部拒絕</li>



<li><strong>Deny（拒絕）操作</strong>：清單內的值被禁止，其他的則允許</li>
</ul>



<p class="wp-block-paragraph">例如：<code>compute.trustedImageProjects</code> 是一個 List Constraint，用 Allow 操作把特定 Project 列入白名單，代表整個組織只能從這個 Project 的映像檔建立 boot disk。</p>



<h3 class="wp-block-heading">Boolean Constraint（布林限制）</h3>



<p class="wp-block-paragraph">Boolean Constraint 只有兩個選項：<strong>開（Enforced）</strong> 或 <strong>關（Not Enforced）</strong>。</p>



<p class="wp-block-paragraph">例如：<code>constraints/iam.disableServiceAccountCreation</code>，設定為 Enforced 後，整個組織就無法建立新的服務帳戶。沒有白名單、沒有例外，就是一個開關。</p>



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="562" src="https://dongdonggcp.com/wp-content/uploads/2026/04/兩大控制閥門-布林開關與清單過濾-1024x562.png" alt="" class="wp-image-11798" srcset="https://dongdonggcp.com/wp-content/uploads/2026/04/兩大控制閥門-布林開關與清單過濾-1024x562.png 1024w, https://dongdonggcp.com/wp-content/uploads/2026/04/兩大控制閥門-布林開關與清單過濾-300x165.png 300w, https://dongdonggcp.com/wp-content/uploads/2026/04/兩大控制閥門-布林開關與清單過濾-768x422.png 768w, https://dongdonggcp.com/wp-content/uploads/2026/04/兩大控制閥門-布林開關與清單過濾.png 1288w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">兩大控制閥門:布林開關與清單過濾</figcaption></figure>



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



<h2 class="wp-block-heading">4. 限制可信任映像檔來源：compute.trustedImageProjects</h2>



<h3 class="wp-block-heading">為什麼要控制 Boot Disk 映像檔來源？</h3>



<p class="wp-block-paragraph">在企業環境中，VM 使用的 OS 映像品質直接影響整體安全性。隨意使用公開市場上未經審核的映像檔，可能引入：</p>



<ul class="wp-block-list">
<li>映像檔內含已知漏洞（CVE）</li>



<li>映像檔被植入惡意程式</li>



<li>不符合企業安全強化（Hardening）標準</li>
</ul>



<p class="wp-block-paragraph">企業安全團隊通常會維護一個「<strong>黃金映像（Golden Image）</strong>」專案，所有 VM 只能從這個專案中的映像建立。</p>



<h3 class="wp-block-heading">如何設定？</h3>



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



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">要讓所有 VM 只使用安全強化的 OS 映像，需要同時完成兩個步驟：</p>



<ol class="wp-block-list">
<li><strong>設定 Organization Policy</strong>：在 Organization 層級啟用 <code>compute.trustedImageProjects</code>，以 <strong>Allow</strong> 操作列入受信任的 Project（例如 <code>security-images-project</code>）當你使用 Allow 動作，它就是白名單的方式，同時，會阻擋所有不在白名單的映像檔。</li>



<li><strong>設定 IAM 權限</strong>：在 <code>security-images-project</code> 中，授予組織內使用者 <code>compute.imageUser</code> 角色，讓他們有讀取並使用映像的權限</li>
</ol>



<p class="wp-block-paragraph">Policy 確保大家只能用這個 Project 的映像；IAM 確保大家有權限存取這個 Project。兩個步驟缺一不可。</p>
</blockquote>



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



<p class="wp-block-paragraph"><strong>為什麼用 Allow 而不是 Deny？</strong> 因為 Allow 的語義是「只有這些才被允許」，天然具有「排除其他所有選項」的效果。如果用 Deny，你只是拒絕了你列出的幾個專案，但其他未列出的公開映像仍然可以使用——這不是我們要的結果。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="526" src="https://dongdonggcp.com/wp-content/uploads/2026/04/限制可信任映像檔來源-1024x526.png" alt="" class="wp-image-11799" srcset="https://dongdonggcp.com/wp-content/uploads/2026/04/限制可信任映像檔來源-1024x526.png 1024w, https://dongdonggcp.com/wp-content/uploads/2026/04/限制可信任映像檔來源-300x154.png 300w, https://dongdonggcp.com/wp-content/uploads/2026/04/限制可信任映像檔來源-768x394.png 768w, https://dongdonggcp.com/wp-content/uploads/2026/04/限制可信任映像檔來源-1536x788.png 1536w, https://dongdonggcp.com/wp-content/uploads/2026/04/限制可信任映像檔來源-2048x1051.png 2048w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



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



<h2 class="wp-block-heading">5. 限制專案建立權限：集中管理 Project Creator 角色</h2>



<h3 class="wp-block-heading">為什麼要集中控制專案建立？</h3>



<p class="wp-block-paragraph">當你建立好一個 GCP 的組織機構，你會看到任何在這個網域的人員都有這兩個權限，專案建立者和帳單帳戶建立者。</p>



<p class="wp-block-paragraph">在大型企業中，如果所有人都能自由建立 GCP 專案，很快就會出現「<strong>專案蔓延（Project Sprawl）</strong>」——到處都是沒人管的孤兒專案，浪費資源又製造安全風險。</p>



<figure class="wp-block-image aligncenter size-large is-resized"><img loading="lazy" decoding="async" width="1024" height="422" src="https://dongdonggcp.com/wp-content/uploads/2026/04/Org_member_default_iam_role-1024x422.png" alt="" class="wp-image-11822" style="aspect-ratio:2.426636283073807;width:689px;height:auto" srcset="https://dongdonggcp.com/wp-content/uploads/2026/04/Org_member_default_iam_role-1024x422.png 1024w, https://dongdonggcp.com/wp-content/uploads/2026/04/Org_member_default_iam_role-300x124.png 300w, https://dongdonggcp.com/wp-content/uploads/2026/04/Org_member_default_iam_role-768x317.png 768w, https://dongdonggcp.com/wp-content/uploads/2026/04/Org_member_default_iam_role-1536x634.png 1536w, https://dongdonggcp.com/wp-content/uploads/2026/04/Org_member_default_iam_role.png 1716w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">GCP 的組織機構預設會給所有網域成員的權限</figcaption></figure>



<h3 class="wp-block-heading">怎麼做？</h3>



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



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">只讓特定團隊建立專案，需要同時執行兩個步驟：</p>



<ol class="wp-block-list">
<li><strong>移除一般使用者的 Project Creator 角色</strong>：在 Organization 層級，把所有使用者從 Project Creator 角色中移除，一般使用者就無法自行建立新專案</li>



<li><strong>授權指定團隊</strong>：把負責專案管理的 DevOps 團隊群組，加入 Organization 層級的 Project Creator 角色</li>
</ol>



<p class="wp-block-paragraph">注意：兩個步驟必須同時執行。只移除一般使用者但沒有指定誰來建立，專案建立會完全癱瘓；只授權 DevOps 但沒移除一般使用者，限制就沒有意義。</p>
</blockquote>



<figure class="wp-block-image aligncenter size-large is-resized"><img loading="lazy" decoding="async" width="1024" height="234" src="https://dongdonggcp.com/wp-content/uploads/2026/04/Remove_Project_Creator-1024x234.png" alt="" class="wp-image-11821" style="width:1024px;height:auto" srcset="https://dongdonggcp.com/wp-content/uploads/2026/04/Remove_Project_Creator-1024x234.png 1024w, https://dongdonggcp.com/wp-content/uploads/2026/04/Remove_Project_Creator-300x68.png 300w, https://dongdonggcp.com/wp-content/uploads/2026/04/Remove_Project_Creator-768x175.png 768w, https://dongdonggcp.com/wp-content/uploads/2026/04/Remove_Project_Creator.png 1367w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">在 Organization Level 移除一般使用者的 Project Creator 角色</figcaption></figure>



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



<h2 class="wp-block-heading">6. 控制 VM 的公開 IP 位址：保護生產環境安全</h2>



<h3 class="wp-block-heading">為什麼生產環境不應有公開 IP？</h3>



<p class="wp-block-paragraph">給 VM 一個公開 IP 位址，等於把它直接曝露在網際網路上。對於資料庫伺服器、內部 API 服務、或任何不需要對外的 VM 來說，這是巨大的安全風險——攻擊者可以直接掃描公開 IP，嘗試暴力破解 SSH 或進行 DDoS 攻擊。</p>



<p class="wp-block-paragraph">如下圖你可以看到，當我建立好一臺虛擬機器時，隨時都有駭客在掃描我的外部 IP 並且嘗試登入。</p>



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="402" src="https://dongdonggcp.com/wp-content/uploads/2026/04/6-3-1-隨時有人嘗試登入主機-1024x402.png" alt="" class="wp-image-11823" srcset="https://dongdonggcp.com/wp-content/uploads/2026/04/6-3-1-隨時有人嘗試登入主機-1024x402.png 1024w, https://dongdonggcp.com/wp-content/uploads/2026/04/6-3-1-隨時有人嘗試登入主機-300x118.png 300w, https://dongdonggcp.com/wp-content/uploads/2026/04/6-3-1-隨時有人嘗試登入主機-768x302.png 768w, https://dongdonggcp.com/wp-content/uploads/2026/04/6-3-1-隨時有人嘗試登入主機-1536x603.png 1536w, https://dongdonggcp.com/wp-content/uploads/2026/04/6-3-1-隨時有人嘗試登入主機.png 1912w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">網路上隨時都有駭客在掃描 VM 的 IP 並且嘗試登入</figcaption></figure>



<h3 class="wp-block-heading">如何同時保留前端 IP，鎖定其他 VM？</h3>



<p class="wp-block-paragraph">現實情況往往是：前端 Web 伺服器需要公開 IP，但後端應用程式和資料庫不應該有。</p>



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



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">使用 <code>constraints/compute.vmExternalIpAccess</code> 這個 constraint，在政策中明確列出哪些 VM 實例可以使用外部 IP（以資源名稱方式列入 Allow 清單），其餘的 VM 自動被禁止。這比 VPC 分割更精準（VPC 分割以子網路為單位，無法做到 VM 層級的細粒度控制），也比移除 IAM 角色更直接，並且不依賴工程師手動記得不勾選外部 IP。</p>
</blockquote>



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



<h2 class="wp-block-heading">7. 服務帳戶安全管控：三大 IAM 約束條件</h2>



<p class="wp-block-paragraph">服務帳戶（Service Account）是 GCP 中機器身分的代表，也是許多安全事件的攻擊目標。Organization Policy 提供三個相關 constraint 加強管控：</p>



<h3 class="wp-block-heading">三個 Constraint 快速比較</h3>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>Constraint</th><th>作用</th><th>類型</th><th>適用場景</th></tr></thead><tbody><tr><td><code>iam.disableServiceAccountCreation</code></td><td>禁止建立新服務帳戶</td><td>Boolean</td><td>生產環境集中管控</td></tr><tr><td><code>iam.disableServiceAccountKeyCreation</code></td><td>禁止建立服務帳戶金鑰</td><td>Boolean</td><td>CI/CD 安全加固</td></tr><tr><td><code>iam.disableServiceAccountKeyUpload</code></td><td>禁止上傳服務帳戶金鑰</td><td>Boolean</td><td>防止外部金鑰匯入</td></tr></tbody></table></figure>



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



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><code>disableServiceAccountKeyCreation</code> 和 <code>disableServiceAccountCreation</code> 是兩個功能完全不同的 constraint，不能混用。前者只限制「金鑰的建立」，服務帳戶本身還是存在的；後者才是直接禁止「服務帳戶的建立」。混淆這兩者，是企業安全配置中最常見的錯誤之一。</p>



<p class="wp-block-paragraph">而 <code>disableServiceAccountKeyUpload</code>，是因爲用戶可以任意建立金鑰並且上傳到 GCP 上，聽起來很方便，但這個金鑰是怎麼產生的？密碼強度夠不夠？甚至不知道這個金鑰是不是每個人都有，或者甚至是駭客上傳的。因此，在資安上會造成潛在的威脅。</p>
</blockquote>



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



<h3 class="wp-block-heading">CI/CD 場景的最佳實務</h3>



<p class="wp-block-paragraph">在 CI/CD 場景中，建議：</p>



<ol class="wp-block-list">
<li>為 CI/CD cluster 建立一個專屬的自訂服務帳戶</li>



<li>在 Project 層級啟用 <code>constraints/iam.disableServiceAccountKeyCreation</code></li>



<li>讓 CI/CD 工具改用 <strong>Workload Identity Federation</strong> (如 Github) 或 <strong>Instance Metadata Service</strong> 取得短期憑證 </li>
</ol>



<p class="wp-block-paragraph">這樣即使有人嘗試為服務帳戶建立金鑰，也會被 Policy 阻擋，從源頭消除靜態憑證洩漏的風險。</p>



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



<h2 class="wp-block-heading">8. 保護 Shared VPC 主機專案不被誤刪</h2>



<h3 class="wp-block-heading">什麼是 Shared VPC？為什麼需要保護？</h3>



<p class="wp-block-paragraph"><strong>Shared VPC</strong>（又稱 XPN，Cross-Project Networking）讓多個專案共享同一個 VPC 網路。其中的 <strong>Host Project（主機專案）</strong> 負責提供 VPC 資源給其他 Service Projects 使用。如果 Host Project 被誤刪，所有依賴這個 VPC 的服務都會瞬間斷線。</p>



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



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">Google Cloud 會自動為 Shared VPC Host Project 加上 **Lien（留置權）**防止被誤刪，但若使用者有足夠權限，可以手動移除這個 Lien 再刪除專案。啟用 <code>compute.restrictXpnProjectLienRemoval</code> 這個 constraint 後，就算使用者有 Project 刪除權限，也無法移除 Shared VPC Host Project 的 Lien，從根本保護關鍵網路資源不被誤刪。</p>
</blockquote>



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



<h2 class="wp-block-heading">9. 網域限制共用政策：iam.allowedPolicyMemberDomains</h2>



<h3 class="wp-block-heading">為什麼要限制外部網域存取資源？</h3>



<p class="wp-block-paragraph">在預設情況下，Google Cloud 的 IAM 允許把任何 Google 帳戶加入專案的 IAM 政策。如果工程師不小心把外部 Gmail 帳戶加入專案，外部人員就能存取企業的雲端資源。</p>



<p class="wp-block-paragraph"><code>constraints/iam.allowedPolicyMemberDomains</code> 讓你指定哪些網域（以 Google Workspace 客戶 ID 或 Cloud Identity 客戶 ID 方式指定）才能被加入 IAM 政策，不在清單內的網域一律無法被授予任何權限。</p>



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="210" src="https://dongdonggcp.com/wp-content/uploads/2026/04/allowedPolicyMemberDomains-1024x210.png" alt="" class="wp-image-11820" srcset="https://dongdonggcp.com/wp-content/uploads/2026/04/allowedPolicyMemberDomains-1024x210.png 1024w, https://dongdonggcp.com/wp-content/uploads/2026/04/allowedPolicyMemberDomains-300x62.png 300w, https://dongdonggcp.com/wp-content/uploads/2026/04/allowedPolicyMemberDomains-768x158.png 768w, https://dongdonggcp.com/wp-content/uploads/2026/04/allowedPolicyMemberDomains.png 1397w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">Organization Policy 網域邊界限制</figcaption></figure>



<h3 class="wp-block-heading">如何為外部合作夥伴開設例外政策？</h3>



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



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">在維持 <code>iam.allowedPolicyMemberDomains</code> 政策的前提下，為外部合作夥伴開設例外的正確流程：</p>



<ol class="wp-block-list">
<li>暫時關閉 <code>iam.allowedPolicyMemberDomains</code> 政策</li>



<li>將政策值設定為「Custom（自訂）」</li>



<li>把外部合作夥伴的 Cloud Identity 或 Google Workspace 客戶 ID 加入 constraint 的例外清單</li>



<li>確認設定正確後，重新啟用政策</li>
</ol>



<p class="wp-block-paragraph">注意：把合作夥伴帳號加入 Google Group <strong>不能</strong>繞過這個限制。這個 constraint 是以<strong>客戶 ID</strong>為單位做網域驗證的。</p>
</blockquote>



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



<h2 class="wp-block-heading">10. Cloud Storage 安全防護：防止資料對外公開洩漏</h2>



<h3 class="wp-block-heading">什麼是 storage.publicAccessPrevention？</h3>



<p class="wp-block-paragraph"><code>constraints/storage.publicAccessPrevention</code> 是專門防止 Cloud Storage 資料外洩的 constraint。啟用後，組織內所有 Cloud Storage bucket（包含未來新建立的）都無法被設定為允許匿名的公開存取。</p>



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



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">建立完整的 Cloud Storage 存取控制，建議搭配兩個設定的「黃金組合」：啟用 <code>storage.publicAccessPrevention</code>（防止 bucket 被匿名公開存取）+ 啟用 <strong>Uniform Bucket-Level Access</strong>（關閉 ACL，統一改用 IAM 管理 bucket 存取）。前者防止資料因設定疏漏而意外公開，後者防止因外部帳號被加入 IAM 而導致外洩。兩者相輔相成，缺一不可。</p>
</blockquote>



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



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="540" src="https://dongdonggcp.com/wp-content/uploads/2026/04/截圖-2026-04-22-下午6.10.17-1024x540.png" alt="" class="wp-image-11825" srcset="https://dongdonggcp.com/wp-content/uploads/2026/04/截圖-2026-04-22-下午6.10.17-1024x540.png 1024w, https://dongdonggcp.com/wp-content/uploads/2026/04/截圖-2026-04-22-下午6.10.17-300x158.png 300w, https://dongdonggcp.com/wp-content/uploads/2026/04/截圖-2026-04-22-下午6.10.17-768x405.png 768w, https://dongdonggcp.com/wp-content/uploads/2026/04/截圖-2026-04-22-下午6.10.17.png 1276w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">防止 data 被公開存取，並且統一存取權限。</figcaption></figure>



<h2 class="wp-block-heading">11. 強制使用 CMEK 加密：gcp.restrictNonCmekServices</h2>



<h3 class="wp-block-heading">什麼是 CMEK？</h3>



<p class="wp-block-paragraph"><strong>CMEK（Customer-Managed Encryption Keys，客戶自管加密金鑰）</strong> 是 Google Cloud 提供的加密機制。預設情況下，Google Cloud 使用自己管理的金鑰（GMEK）加密資料。CMEK 讓企業可以使用自己在 Cloud KMS 中管理的金鑰進行加密。</p>



<p class="wp-block-paragraph">企業強制使用 CMEK 的主要原因：</p>



<ul class="wp-block-list">
<li><strong>法規合規</strong>：金融業、醫療業、GDPR 場景可能要求對加密金鑰有完整控制權</li>



<li><strong>資料主權</strong>：企業可以隨時撤銷金鑰，確保資料的最終控制權在自己手中</li>



<li><strong>審計要求</strong>：所有金鑰的使用記錄都可以在 Cloud KMS 中審計</li>
</ul>



<h3 class="wp-block-heading">如何強制使用 CMEK？Deny 才是正確做法</h3>



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



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><code>constraints/gcp.restrictNonCmekServices</code> 的語義是「限制哪些服務<strong>可以不使用</strong> CMEK」。要強制所有 Cloud Storage 資源必須使用 CMEK，正確設定是使用 <strong>Deny</strong> 操作，將 <code>storage.googleapis.com</code> 列入拒絕清單。如果誤用 Allow 操作，代表的是「允許 Cloud Storage 不用 CMEK」，效果完全相反。這是實務配置中最容易搞反的邏輯之一。</p>
</blockquote>



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



<p class="wp-block-paragraph">正確設定範例：</p>



<pre class="wp-block-code"><code>constraint: gcp.restrictNonCmekServices
binding at: org1
policy type: deny
policy value: storage.googleapis.com</code></pre>



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="542" src="https://dongdonggcp.com/wp-content/uploads/2026/04/restrictNonCmekServices-1024x542.png" alt="" class="wp-image-11826" srcset="https://dongdonggcp.com/wp-content/uploads/2026/04/restrictNonCmekServices-1024x542.png 1024w, https://dongdonggcp.com/wp-content/uploads/2026/04/restrictNonCmekServices-300x159.png 300w, https://dongdonggcp.com/wp-content/uploads/2026/04/restrictNonCmekServices-768x406.png 768w, https://dongdonggcp.com/wp-content/uploads/2026/04/restrictNonCmekServices.png 1283w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">強制實施CMEK 加密</figcaption></figure>



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



<h2 class="wp-block-heading">12. 資源地理位置限制：GDPR 合規的利器</h2>



<h3 class="wp-block-heading">什麼時候需要 Resource Location Restriction？</h3>



<p class="wp-block-paragraph">當企業需要遵守 <strong>GDPR</strong> 或其他有資料落地要求的法規時，確保所有 Google Cloud 資源只建立在特定地理區域是非常重要的合規要求。</p>



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



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">限制 Google Cloud 資源只能建立在特定地理區域，<strong>唯一正確的工具</strong>是 <code>constraints/gcp.resourceLocations</code>（Resource Location Restriction）。常見的錯誤做法包括：使用 IAM 自訂角色（IAM 沒有以地理位置為條件的授權機制）、使用 Identity-Aware Proxy（IAP 是管理使用者對應用程式的存取，和資源建立地點無關）、使用 Restrict Resource Service Usage（這個 constraint 是限制服務使用，不是限制地理位置）。</p>
</blockquote>



<p class="wp-block-paragraph"><code>constraints/gcp.resourceLocations</code> 支援以 Region、Multi-region 或具體的 Zone 為單位設定限制，能夠非常精確地控制資源的建立位置。</p>



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="555" src="https://dongdonggcp.com/wp-content/uploads/2026/04/resourceLocations-1024x555.png" alt="" class="wp-image-11827" srcset="https://dongdonggcp.com/wp-content/uploads/2026/04/resourceLocations-1024x555.png 1024w, https://dongdonggcp.com/wp-content/uploads/2026/04/resourceLocations-300x162.png 300w, https://dongdonggcp.com/wp-content/uploads/2026/04/resourceLocations-768x416.png 768w, https://dongdonggcp.com/wp-content/uploads/2026/04/resourceLocations.png 1289w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">Resource Location Restriction 可以限制資源所在地以符合當地法規</figcaption></figure>



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



<h2 class="wp-block-heading">13. 組織政策被繞過了怎麼辦？常見原因排查</h2>



<h3 class="wp-block-heading">為什麼政策對某個 Project 失效了？</h3>



<p class="wp-block-paragraph">假設你在 Folder 層級設定了政策，禁止所有 VM 使用外部 IP，但兩天後發現某個 Project 底下的 VM 竟然有外部 IP。</p>



<p class="wp-block-paragraph"><strong>最常見原因：</strong> 該 Project 在 Project 層級對這個 constraint 設定了 Override，把政策值改成了「Allow」，因此 Folder 層級的禁止設定對這個 Project 失效了。</p>



<h3 class="wp-block-heading">排查步驟</h3>



<ol class="wp-block-list">
<li>到 Google Cloud Console → <strong>Organization Policy</strong>，找到該 constraint</li>



<li>查看政策的繼承情況，確認各個層級的設定值</li>



<li>找出哪個層級有 Override，然後移除或修正</li>
</ol>



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



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">在 Google Cloud 的 Organization Policy 機制中，子層的 Policy 可以覆蓋父層的 Policy（除非父層政策設定了不允許 Override）。「沉默代表繼承」——如果你希望某個 Folder 或 Project 有不同的行為，必須明確在那個層級設定 Override；如果沒有設定，就代表接受上層的政策設定，沒有任何例外。</p>
</blockquote>



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



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="520" src="https://dongdonggcp.com/wp-content/uploads/2026/04/Policy_Override-1024x520.png" alt="" class="wp-image-11828" srcset="https://dongdonggcp.com/wp-content/uploads/2026/04/Policy_Override-1024x520.png 1024w, https://dongdonggcp.com/wp-content/uploads/2026/04/Policy_Override-300x152.png 300w, https://dongdonggcp.com/wp-content/uploads/2026/04/Policy_Override-768x390.png 768w, https://dongdonggcp.com/wp-content/uploads/2026/04/Policy_Override.png 1295w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">檢查 Organization Policy 覆蓋的狀況</figcaption></figure>



<h2 class="wp-block-heading">14. 預設網路與 CI/CD 管道的安全配置</h2>



<h3 class="wp-block-heading">compute.skipDefaultNetworkCreation 是什麼？</h3>



<p class="wp-block-paragraph">當一個新的 Google Cloud Project 被建立時，系統預設會自動建立一個 <strong>Default VPC 網路</strong>。這個預設網路有幾個問題：</p>



<ul class="wp-block-list">
<li>防火牆規則預設允許許多常見的輸入連線（如 SSH、RDP），不符合最小權限原則</li>



<li>大型組織中，每個 Project 都有預設網路，網路架構會變得混亂難以管理</li>



<li>工程師可能直接在預設網路上部署資源，沒有任何額外的安全配置</li>
</ul>



<p class="wp-block-paragraph"><strong>解決方法：</strong> 在 Organization 層級啟用 <code>constraints/compute.skipDefaultNetworkCreation</code>。啟用後，所有新建立的 Project 都不會自動產生預設 VPC 網路，工程師必須根據企業的網路架構規範手動建立符合要求的 VPC。</p>



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="561" src="https://dongdonggcp.com/wp-content/uploads/2026/04/skipDefaultNetworkCreation-1024x561.png" alt="" class="wp-image-11824" srcset="https://dongdonggcp.com/wp-content/uploads/2026/04/skipDefaultNetworkCreation-1024x561.png 1024w, https://dongdonggcp.com/wp-content/uploads/2026/04/skipDefaultNetworkCreation-300x164.png 300w, https://dongdonggcp.com/wp-content/uploads/2026/04/skipDefaultNetworkCreation-768x421.png 768w, https://dongdonggcp.com/wp-content/uploads/2026/04/skipDefaultNetworkCreation.png 1272w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">避免使用預設的 VPC 網絡，產生較寬鬆的防火牆規則。</figcaption></figure>



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



<h2 class="wp-block-heading">15. 備戰重點整理與常見觀念陷阱</h2>



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



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><strong>GCP Organization Policy 六大常見陷阱：</strong></p>



<ol class="wp-block-list">
<li><strong>Allow vs Deny 搞反</strong>：<code>compute.trustedImageProjects</code> 用 Allow（只允許白名單）；<code>gcp.restrictNonCmekServices</code> 用 Deny（禁止不用 CMEK）</li>



<li><strong>Boolean Constraint 混用</strong>：<code>disableServiceAccountCreation</code>（禁建帳戶）≠ <code>disableServiceAccountKeyCreation</code>（禁建金鑰）</li>



<li><strong>繼承機制誤解</strong>：<code>inheritFromParent: false</code> 會讓子節點完全獨立，父層允許的規則在此完全無效</li>



<li><strong>地理位置限制用錯工具</strong>：要限制資源建立地區，只能用 <code>gcp.resourceLocations</code>，IAM 和 IAP 都做不到</li>



<li><strong>Shared VPC 保護工具記錯</strong>：用 <code>compute.restrictXpnProjectLienRemoval</code>，不是 <code>restrictSharedVpcHostProjects</code></li>



<li><strong>Cloud Storage 防護不完整</strong>：<code>storage.publicAccessPrevention</code> 要搭配 Uniform Bucket-Level Access 才形成完整防線</li>
</ol>
</blockquote>



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



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



<h2 class="wp-block-heading">結論</h2>



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



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">GCP Organization Policy 是 Google Cloud 安全架構中不可或缺的一環，它在 IAM 之上提供更高維度的護欄——無論誰來操作、用什麼角色，只要行為違反組織政策，就一律擋下。從映像檔的來源控制、VM 的 IP 管理、服務帳戶的建立限制，到 Cloud Storage 的公開防護和 CMEK 加密強制，每一個 constraint 背後都對應著真實的企業安全需求。建議在設計組織的雲端安全架構時，把 Organization Policy 的規劃納入最早期的階段，先把護欄架好，讓工程師在安全的邊界內自由發揮。</p>
</blockquote>



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



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



<h2 class="wp-block-heading">常見問題解答（FAQ）</h2>



<p class="wp-block-paragraph"><strong>Q1：Organization Policy 和 IAM 條件（IAM Conditions）有什麼差別？</strong> IAM Conditions 是在 IAM 授權基礎上加入額外條件（如時間、資源標籤）來細化授權；Organization Policy 則是從行為層面設定哪些操作根本不被允許，不管你有什麼 IAM 角色。</p>



<p class="wp-block-paragraph"><strong>Q2：我可以在 Project 層級覆蓋 Organization 層級的政策嗎？</strong> 預設情況下可以，子層可以 Override 父層的政策。但如果父層在設定 constraint 時鎖定了不允許 Override，子層就無法覆蓋。這是組織管理員需要仔細規劃的地方。</p>



<p class="wp-block-paragraph"><strong>Q3：Organization Policy 的設定會即時生效嗎？</strong> 是的，Organization Policy 通常在幾分鐘內就會生效。但需要注意：對於已經存在的資源（例如已有公開 IP 的 VM），Policy 不會自動修正，只會阻擋<strong>未來</strong>的違規操作。</p>



<p class="wp-block-paragraph"><strong>Q4：什麼是 Constraint 的 Dry Run 模式？</strong> Dry Run（模擬執行）模式讓你先評估一個 constraint 的影響範圍，而不實際執行限制。違規操作會被記錄在 Cloud Logging 中但不會被阻止，方便管理員在正式啟用前了解有哪些資源會受到影響。</p>



<p class="wp-block-paragraph"><strong>Q5：如何查看目前組織內所有的 Organization Policy 設定？</strong> 可以在 Google Cloud Console 的「IAM &amp; Admin → Organization Policies」中查看，也可以使用以下指令：</p>



<p class="wp-block-paragraph">bash</p>



<pre class="wp-block-code"><code>gcloud org-policies list --organization=ORGANIZATION_ID</code></pre>



<p class="wp-block-paragraph"><strong>Q6：compute.trustedImageProjects 可以套用在 Folder 層級嗎？</strong> 可以。Organization Policy 可以套用在 Organization、Folder 或 Project 任何層級。套用在 Folder 層級時，該 Folder 底下的所有 Project 都會受到映像來源限制的約束。</p>



<p class="wp-block-paragraph"><strong>Q7：storage.publicAccessPrevention 和 Uniform Bucket-Level Access 有什麼關係？</strong> 兩者是獨立的設定，但相輔相成。<code>publicAccessPrevention</code> 防止 bucket 被匿名公開存取；Uniform Bucket-Level Access 則是關閉 ACL，統一用 IAM 管理存取權限。同時啟用兩者，可以建立更完整的 Cloud Storage 安全管控。</p>



<p class="wp-block-paragraph"><strong>Q8：如果同一個 constraint 在 Folder 和 Project 層級都有設定，以哪個為準？</strong> 以最接近資源的層級為準，也就是 Project 層級的設定會覆蓋 Folder 層級的設定（前提是 <code>inheritFromParent</code> 沒有特別限制）。理解這個優先順序，對排查政策衝突非常重要。</p>



<p class="wp-block-paragraph"><strong>Q9：Resource Location Restriction 可以限制到具體的 Zone（區域）嗎？</strong> 可以。<code>constraints/gcp.resourceLocations</code> 支援以 Region、Multi-region 或具體的 Zone 為單位設定限制，能夠非常精確地控制資源的建立位置。</p>



<p class="wp-block-paragraph"><strong>Q10：Organization Policy 的設定有沒有辦法自動化管理？</strong> 有。可以透過 Terraform 的 <code>google_org_policy_policy</code> 資源，或使用 Google Cloud 的 Organization Policy API，以程式碼方式管理所有 constraint 設定。這也是大型企業推薦的「<strong>Policy as Code</strong>」實踐方式，確保政策設定可被版本控管和自動化部署。</p><p>The post <a href="https://dongdonggcp.com/2026/04/22/gcp-organization-policy-introduction/">GCP Organization Policy 完全攻略：Google Cloud 安全工程師必備知識</a> first appeared on <a href="https://dongdonggcp.com">東東 GCP 教學 - GCP 實戰講師</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://dongdonggcp.com/2026/04/22/gcp-organization-policy-introduction/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>GCP Cloud Armor 完整教學：功能介紹、使用條件與防禦規則設定</title>
		<link>https://dongdonggcp.com/2026/04/21/gcp-cloud-armor-complete-guide-features-setup-rules/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=gcp-cloud-armor-complete-guide-features-setup-rules</link>
					<comments>https://dongdonggcp.com/2026/04/21/gcp-cloud-armor-complete-guide-features-setup-rules/#respond</comments>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Tue, 21 Apr 2026 09:39:33 +0000</pubDate>
				<category><![CDATA[資訊安全]]></category>
		<category><![CDATA[Cloud Armor]]></category>
		<category><![CDATA[DDoS]]></category>
		<category><![CDATA[Network Security]]></category>
		<category><![CDATA[WAF]]></category>
		<guid isPermaLink="false">https://dongdonggcp.com/?p=11802</guid>

					<description><![CDATA[<p>GCP Cloud Armor 是掛在  [&#8230;]</p>
<p>The post <a href="https://dongdonggcp.com/2026/04/21/gcp-cloud-armor-complete-guide-features-setup-rules/">GCP Cloud Armor 完整教學：功能介紹、使用條件與防禦規則設定</a> first appeared on <a href="https://dongdonggcp.com">東東 GCP 教學 - GCP 實戰講師</a>.</p>]]></description>
										<content:encoded><![CDATA[<p class="wp-block-paragraph">GCP Cloud Armor 是掛在 GCP Load Balancer 前面的 WAF 與 DDoS 防禦服務，讓你用規則決定哪些流量可以進來、哪些直接擋在門外。</p>



<p class="wp-block-paragraph">不需要自己架防火牆主機，也不需要密碼學背景，最快 15 分鐘就能完成基礎設定。</p>



<p class="wp-block-paragraph">這篇文章會帶你從頭搞懂 Cloud Armor 是什麼、用它之前要準備什麼、怎麼操作，以及 5 種常見的防禦規則範例，看完就能直接動手。 </p>



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



<h2 class="wp-block-heading">什麼是 GCP Cloud Armor？</h2>



<p class="wp-block-paragraph">GCP Cloud Armor 是 Google Cloud 提供的應用程式層防護服務，部署在 Google 的全球邊緣節點上，用來攔截進入你後端服務 (虛擬機、Cloud Run 或 Kubernetes) 之前的惡意 HTTP 流量。</p>



<p class="wp-block-paragraph">它的角色是守門員：在流量進入你的後端服務之前，先根據你設定的規則篩選一遍。</p>



<p class="wp-block-paragraph">符合規則的流量放行，不符合的直接拒絕，回傳 403 或自訂的錯誤回應。</p>



<p class="wp-block-paragraph">因為 GCP Cloud Armor 運行在 Google 的邊緣基礎設施上，惡意流量甚至不會打到你的 VM 或 Cloud Run 服務，就已經在網路邊緣被攔截。</p>



<p class="wp-block-paragraph">這是它和傳統在主機上裝軟體防火牆最大的差異。 </p>



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="541" src="https://dongdonggcp.com/wp-content/uploads/2026/04/Cloud-Armor-is-deployed-on-edge-1024x541.png" alt="" class="wp-image-11804" srcset="https://dongdonggcp.com/wp-content/uploads/2026/04/Cloud-Armor-is-deployed-on-edge-1024x541.png 1024w, https://dongdonggcp.com/wp-content/uploads/2026/04/Cloud-Armor-is-deployed-on-edge-300x158.png 300w, https://dongdonggcp.com/wp-content/uploads/2026/04/Cloud-Armor-is-deployed-on-edge-768x406.png 768w, https://dongdonggcp.com/wp-content/uploads/2026/04/Cloud-Armor-is-deployed-on-edge-1536x811.png 1536w, https://dongdonggcp.com/wp-content/uploads/2026/04/Cloud-Armor-is-deployed-on-edge-2048x1081.png 2048w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">Cloud Armor 部署在 Google 的邊緣基礎設施上，惡意流量直接在邊緣攔截</figcaption></figure>



<h3 class="wp-block-heading">Cloud Armor 的核心功能：WAF 與 DDoS 防護</h3>



<p class="wp-block-paragraph">Cloud Armor 主要提供兩層防護。</p>



<p class="wp-block-paragraph"><strong>WAF（Web Application Firewall，網頁應用程式防火牆）</strong>：針對應用程式層的攻擊，例如 SQL Injection、XSS、CSRF（Cross-Site Request Forgery，跨站請求偽造）、路徑遍歷（Path Traversal，進入不開放的路徑）等。</p>



<p class="wp-block-paragraph">你可以用 Google 預建的規則集（Rules Set），也可以自己寫條件規則。</p>



<p class="wp-block-paragraph"><strong>DDoS 防護</strong>：針對大流量的攻擊，Google 的基礎設施本身就有 L3/L4 層的 DDoS 緩解能力，Cloud Armor 在此基礎上再加上 L7 層的防護，例如針對 HTTP Flood 的速率限制（Rate Limiting）。</p>



<p class="wp-block-paragraph">兩種防護都不需要你另外架設任何伺服器，全部透過設定「安全政策」和「規則」來完成。</p>



<h3 class="wp-block-heading">Cloud Armor Standard 和 Managed Protection Plus 的差異</h3>



<p class="wp-block-paragraph">Cloud Armor 分成兩個版本，初學者只需要了解基礎版就夠用。</p>



<p class="wp-block-paragraph"><strong>Standard（標準版）</strong>：</p>



<ul class="wp-block-list">
<li>免費啟用，依照請求數與規則數計費</li>



<li>支援自訂規則、IP 封鎖、地理位置封鎖</li>



<li>支援 WAF 預建規則集（但要另外付費啟用每條規則）</li>



<li>適合絕大多數的 GCP 初學者和中小型專案</li>
</ul>



<p class="wp-block-paragraph"><strong><a href="https://docs.cloud.google.com/armor/docs/armor-enterprise-overview?hl=zh-tw" title="">Managed Protection Plus（進階版）</a></strong>：</p>



<ul class="wp-block-list">
<li>月費制，約 3,000 美元/月起，一次要訂閱一年。</li>



<li>包含自適應防護（Adaptive Protection）的完整功能</li>



<li>提供 DDoS 攻擊時的應急支援（Google 工程師介入，需搭配 Premium Support）</li>



<li>提供詳細的攻擊分析報告</li>



<li>適合有大規模 DDoS 風險的企業級應用</li>
</ul>



<p class="wp-block-paragraph">這篇文章的操作說明只涵蓋 Standard 版本。</p>



<h3 class="wp-block-heading">Cloud Armor 和傳統防火牆的不同之處</h3>



<p class="wp-block-paragraph">很多人第一次接觸 GCP Cloud Armor 時會問：「GCP 不是已經有 VPC Firewall 了嗎？為什麼還需要 Cloud Armor？」</p>



<p class="wp-block-paragraph">答案在於<strong>防護層次不同</strong>。</p>



<p class="wp-block-paragraph">VPC Firewall 在 L3/L4 層運作，它看的是 IP 位址、Port、Protocol。</p>



<p class="wp-block-paragraph">它可以說「拒絕所有來自這個 IP 的 TCP 連線」，但它看不懂 HTTP 請求的內容。</p>



<p class="wp-block-paragraph">GCP Cloud Armor 在 L7 層運作，它可以看到 HTTP Header、URL 路徑、Request Body、User-Agent，甚至可以判斷「這個請求的 query string 裡面有 SQL Injection 的特徵」。</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>比較項目</th><th>VPC Firewall</th><th>Cloud Armor</th></tr></thead><tbody><tr><td>防護層次</td><td>L3/L4</td><td>L7</td></tr><tr><td>可讀內容</td><td>IP、Port</td><td>HTTP 完整內容</td></tr><tr><td>部署位置</td><td>VPC 網路邊界</td><td>Google 邊緣節點</td></tr><tr><td>WAF 功能</td><td>❌</td><td>✅</td></tr><tr><td>地理封鎖</td><td>❌</td><td>✅</td></tr><tr><td>需要 LB</td><td>❌</td><td>✅</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">兩個服務不是互相取代，而是互補。實務上你會同時使用兩個。</p>



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="557" src="https://dongdonggcp.com/wp-content/uploads/2026/04/why-vpc-firewall-not-enough-need-cloud-armor-1024x557.png" alt="" class="wp-image-11805" srcset="https://dongdonggcp.com/wp-content/uploads/2026/04/why-vpc-firewall-not-enough-need-cloud-armor-1024x557.png 1024w, https://dongdonggcp.com/wp-content/uploads/2026/04/why-vpc-firewall-not-enough-need-cloud-armor-300x163.png 300w, https://dongdonggcp.com/wp-content/uploads/2026/04/why-vpc-firewall-not-enough-need-cloud-armor-768x417.png 768w, https://dongdonggcp.com/wp-content/uploads/2026/04/why-vpc-firewall-not-enough-need-cloud-armor-1536x835.png 1536w, https://dongdonggcp.com/wp-content/uploads/2026/04/why-vpc-firewall-not-enough-need-cloud-armor-2048x1113.png 2048w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">有了 VPC Firewall 為什麼還需要 Cloud Armor？因為它可以處理第七層的請求內容</figcaption></figure>



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



<h2 class="wp-block-heading">你為什麼需要 Cloud Armor？</h2>



<h3 class="wp-block-heading">沒有 WAF 的 GCP 服務面臨哪些風險</h3>



<p class="wp-block-paragraph">把服務部署到 GCP 並開放公開存取之後，你面對的不只是真實用戶，還有各種自動化攻擊工具。</p>



<p class="wp-block-paragraph">常見的威脅類型有 6 種：</p>



<ol class="wp-block-list">
<li><strong>自動化掃描工具</strong>：每天有數以千計的 Bot 在網路上掃描開放的端點，試探常見漏洞</li>



<li><strong>SQL Injection 攻擊</strong>：試圖透過 URL 參數或表單欄位注入惡意 SQL 語句，讀取或竄改資料庫</li>



<li><strong>XSS 攻擊</strong>：在回應中插入惡意腳本，影響其他使用者的瀏覽器行為</li>



<li><strong>DDoS 攻擊</strong>：大量請求同時打進來，讓你的服務因為過載而無法回應</li>



<li><strong>地區性惡意流量</strong>：某些地區的 IP 段本身就有大量惡意行為的歷史紀錄</li>



<li><strong>暴力破解</strong>：對登入端點反覆嘗試密碼，每分鐘可發送超過 1,000 次請求</li>
</ol>



<p class="wp-block-paragraph">如果沒有 WAF，這些攻擊會直接打到你的後端，讓你的 VM 或容器承受無效請求，耗費運算資源，也增加被攻破的風險。</p>



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="570" src="https://dongdonggcp.com/wp-content/uploads/2026/04/the-threats-if-no-waf-1024x570.png" alt="" class="wp-image-11803" srcset="https://dongdonggcp.com/wp-content/uploads/2026/04/the-threats-if-no-waf-1024x570.png 1024w, https://dongdonggcp.com/wp-content/uploads/2026/04/the-threats-if-no-waf-300x167.png 300w, https://dongdonggcp.com/wp-content/uploads/2026/04/the-threats-if-no-waf-768x427.png 768w, https://dongdonggcp.com/wp-content/uploads/2026/04/the-threats-if-no-waf-1536x855.png 1536w, https://dongdonggcp.com/wp-content/uploads/2026/04/the-threats-if-no-waf-2048x1140.png 2048w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">沒有 WAF 的 GCP 服務面臨哪些風險</figcaption></figure>



<h3 class="wp-block-heading">Cloud Armor 能防禦的攻擊類型</h3>



<p class="wp-block-paragraph">GCP Cloud Armor 可以有效防禦的攻擊，按照常見程度排列：</p>



<ol class="wp-block-list">
<li><strong>IP 層攻擊</strong>：封鎖特定 IP 或 IP 段的所有請求</li>



<li><strong>地理位置攻擊</strong>：封鎖來自特定國家的流量</li>



<li><strong>SQL Injection（SQLi）</strong>：使用 OWASP 規則集偵測並封鎖注入攻擊</li>



<li><strong>XSS（Cross-Site Scripting）</strong>：偵測 request 中的腳本注入特徵</li>



<li><strong>HTTP Flood</strong>：透過速率限制，對單一 IP 的請求次數設上限</li>



<li><strong>路徑遍歷（Path Traversal）</strong>：試圖存取 <code>../../../etc/passwd</code> 等路徑</li>



<li><strong>掃描工具偵測</strong>：根據 User-Agent 特徵封鎖常見的掃描工具</li>
</ol>



<h3 class="wp-block-heading">什麼規模的專案適合導入 Cloud Armor</h3>



<p class="wp-block-paragraph">只要你的 GCP 服務有開放公開的 HTTP/HTTPS 端點，就應該考慮 GCP Cloud Armor。</p>



<p class="wp-block-paragraph">以下 4 種情況特別建議導入：</p>



<ol class="wp-block-list">
<li>有處理用戶輸入的表單或 API（SQL Injection、XSS 風險高）</li>



<li>服務對外有 SLA 要求，不能接受因 DDoS 導致的停機</li>



<li>有合規需求（例如 PCI DSS），要求必須有 WAF</li>



<li>服務已經上線，Log 中已經出現大量可疑請求</li>
</ol>



<p class="wp-block-paragraph">即使是個人學習專案，Standard 版本的費用相對低，拿來練習設定規則也很合理。</p>



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



<h2 class="wp-block-heading">使用 Cloud Armor 之前：你必須知道的前提條件</h2>



<p class="wp-block-paragraph">GCP Cloud Armor 不是獨立服務，它必須掛在 GCP Load Balancer 上才能運作。</p>



<p class="wp-block-paragraph">這是最多初學者沒注意到的限制。</p>



<h3 class="wp-block-heading">Cloud Armor 只能搭配哪些 Load Balancer？</h3>



<h4 class="wp-block-heading">Global External HTTP(S) Load Balancer</h4>



<p class="wp-block-paragraph">這是最常用的搭配，也是 Cloud Armor 支援最完整的 Load Balancer 類型。</p>



<p class="wp-block-paragraph">如果你的後端是 Cloud Run、GKE、Compute Engine VM，並且使用 Global External HTTP(S) LB 對外服務，Cloud Armor 的所有功能（WAF 規則、地理封鎖、速率限制）都可以使用。</p>



<p class="wp-block-paragraph">套用位置是 Load Balancer 的<strong>後端服務（Backend Service）</strong>，不是 LB 本身。</p>



<h4 class="wp-block-heading">SSL Proxy 和 TCP Proxy Load Balancer</h4>



<p class="wp-block-paragraph">這兩種 LB 也支援 Cloud Armor，但只能使用 L4 層的防護功能（IP 封鎖），無法使用 WAF 規則或地理封鎖。</p>



<p class="wp-block-paragraph">原因是 SSL Proxy 和 TCP Proxy 在 L4 層就把流量轉發出去了，Cloud Armor 沒有機會讀取到 HTTP 層的內容。</p>



<h4 class="wp-block-heading">不支援的 LB 類型：Internal LB 和 Regional LB 的限制</h4>



<p class="wp-block-paragraph">以下 Load Balancer <strong>不支援</strong> GCP Cloud Armor：</p>



<ul class="wp-block-list">
<li><strong>Internal HTTP(S) Load Balancer</strong>：只面對內部 VPC 流量，Cloud Armor 的邊緣防護機制在此無法運作</li>



<li><strong>Regional External HTTP(S) Load Balancer</strong>：Cloud Armor 目前只支援 Global 版本</li>



<li><strong>Network Load Balancer（TCP/UDP NLB）</strong>：這是 Pass-through 型 LB，流量直接到後端，無法插入 Cloud Armor</li>
</ul>



<p class="wp-block-paragraph">如果你現在用的是 Internal LB 或 Regional LB，要使用 Cloud Armor 就必須先換成 Global External HTTP(S) LB，這可能需要調整你的架構。</p>



<h3 class="wp-block-heading">需要的 GCP 權限與 IAM 角色</h3>



<p class="wp-block-paragraph">設定 Cloud Armor 需要以下 IAM 角色之一：</p>



<ul class="wp-block-list">
<li><code>compute.securityAdmin</code>：可以建立、修改、刪除安全政策</li>



<li><code>compute.admin</code>：包含上面的所有權限，加上管理 LB 的能力</li>



<li><code>roles/owner</code> 或 <code>roles/editor</code>：專案層級的完整權限（不建議在正式環境使用）</li>
</ul>



<p class="wp-block-paragraph">如果只需要<strong>查看</strong>安全政策但不需要修改，可以給：</p>



<ul class="wp-block-list">
<li><code>compute.securityPolicyUser</code>：只能查看政策，無法修改</li>
</ul>



<h3 class="wp-block-heading">Cloud Armor 的計費方式</h3>



<p class="wp-block-paragraph">Cloud Armor Standard 版的計費方式：</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>計費項目</th><th>費用</th></tr></thead><tbody><tr><td>安全政策（Security Policy）</td><td>每個政策 $5 美元/月</td></tr><tr><td>規則（Rule）</td><td>每條規則 $1 美元/月</td></tr><tr><td>處理的請求數</td><td>每百萬次請求 $0.75 美元</td></tr><tr><td>WAF 規則（預建規則集）</td><td>每條規則 $1 美元/月（另計）</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">實際費用計算範例：</p>



<p class="wp-block-paragraph">1 個安全政策 + 5 條規則（含 2 條 WAF 規則）+ 每月 1 億次請求：</p>



<ul class="wp-block-list">
<li>政策：$5</li>



<li>規則：$5（5條 × $1）</li>



<li>WAF 規則：$2（2條 × $1）</li>



<li>請求數：$75（100百萬 × $0.75）</li>



<li><strong>合計約 $87 美元/月</strong></li>
</ul>



<p class="wp-block-paragraph">實際費用視流量規模而定，可以在 Google Cloud Pricing Calculator 試算。</p>



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



<h2 class="wp-block-heading">GCP Cloud Armor 功能完整介紹</h2>



<h3 class="wp-block-heading">安全政策（Security Policy）是什麼？</h3>



<p class="wp-block-paragraph">安全政策（Security Policy）是 GCP Cloud Armor 的核心容器，用來集中管理所有防禦規則，並套用到指定的 Load Balancer 後端服務上。</p>



<p class="wp-block-paragraph">一個安全政策可以包含多條規則，然後套用到一個或多個 Load Balancer 的後端服務（Backend Service）上。</p>



<p class="wp-block-paragraph">把安全政策想成「一份守門規則書」：裡面寫了哪些人可以進、哪些人要擋在外面、哪些人要特別審查。</p>



<p class="wp-block-paragraph">Load Balancer 把這份規則書交給門口的保全（Google 的邊緣節點）執行。</p>



<p class="wp-block-paragraph">一個 GCP 專案可以有最多 200 個安全政策，每個後端服務只能套用 1 個安全政策。 </p>



<h3 class="wp-block-heading">規則（Rule）的組成：優先序、條件與動作</h3>



<p class="wp-block-paragraph">每條規則由 3 個部分組成：</p>



<p class="wp-block-paragraph"><strong>1. 優先序（Priority）</strong>：數字越小，優先度越高，範圍是 0 到 2147483646。</p>



<p class="wp-block-paragraph">建議用 1000、2000、3000 這樣有間距的數字，方便之後在中間插入新規則。</p>



<p class="wp-block-paragraph"><strong>2. 條件（Match Condition）</strong>：用 CEL（Common Expression Language）語法描述這條規則要符合什麼條件，例如：</p>



<ul class="wp-block-list">
<li>來源 IP 是否在某個範圍</li>



<li>請求的來源國家代碼是否符合</li>



<li>Request 的內容是否有 SQL Injection 特徵</li>
</ul>



<p class="wp-block-paragraph"><strong>3. 動作（Action）</strong>：當條件成立時，要對這個請求做什麼：</p>



<ul class="wp-block-list">
<li><code>allow</code>：放行</li>



<li><code>deny(403)</code>：拒絕，回傳 403 Forbidden</li>



<li><code>deny(404)</code>：拒絕，回傳 404（讓攻擊者不確定原因）</li>



<li><code>throttle</code>：速率限制，超過閾值才封鎖</li>



<li><code>rate_based_ban</code>：超過速率就暫時封鎖這個 IP</li>
</ul>



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="561" src="https://dongdonggcp.com/wp-content/uploads/2026/04/Cloud-Armor-rule-1024x561.png" alt="" class="wp-image-11806" srcset="https://dongdonggcp.com/wp-content/uploads/2026/04/Cloud-Armor-rule-1024x561.png 1024w, https://dongdonggcp.com/wp-content/uploads/2026/04/Cloud-Armor-rule-300x164.png 300w, https://dongdonggcp.com/wp-content/uploads/2026/04/Cloud-Armor-rule-768x421.png 768w, https://dongdonggcp.com/wp-content/uploads/2026/04/Cloud-Armor-rule-1536x841.png 1536w, https://dongdonggcp.com/wp-content/uploads/2026/04/Cloud-Armor-rule-2048x1122.png 2048w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">Cloud Armor 規則的運作方式</figcaption></figure>



<h3 class="wp-block-heading">預設規則（Default Rule）的作用</h3>



<p class="wp-block-paragraph">每個安全政策都有一條無法刪除的「預設規則」，Priority 固定為 <code>2147483647</code>（最低優先度）。</p>



<p class="wp-block-paragraph">預設規則的作用是：當所有其他規則都不符合時，這條規則決定最終結果。</p>



<p class="wp-block-paragraph">預設規則的動作可以設定為：</p>



<ul class="wp-block-list">
<li><code>allow</code>（預設值）：沒被其他規則攔截的流量（黑名單模式），全部放行</li>



<li><code>deny(403)</code>：沒被特別允許的流量，全部封鎖（白名單模式）</li>
</ul>



<p class="wp-block-paragraph">初學者建議使用 <code>allow</code> 作為預設動作（黑名單模式），只封鎖你明確設定要擋的流量，避免誤擋正常用戶。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="504" src="https://dongdonggcp.com/wp-content/uploads/2026/04/截圖-2026-04-21-下午4.40.37-1024x504.png" alt="" class="wp-image-11812" srcset="https://dongdonggcp.com/wp-content/uploads/2026/04/截圖-2026-04-21-下午4.40.37-1024x504.png 1024w, https://dongdonggcp.com/wp-content/uploads/2026/04/截圖-2026-04-21-下午4.40.37-300x148.png 300w, https://dongdonggcp.com/wp-content/uploads/2026/04/截圖-2026-04-21-下午4.40.37-768x378.png 768w, https://dongdonggcp.com/wp-content/uploads/2026/04/截圖-2026-04-21-下午4.40.37-1536x757.png 1536w, https://dongdonggcp.com/wp-content/uploads/2026/04/截圖-2026-04-21-下午4.40.37-2048x1009.png 2048w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">Cloud Armor 預設規則</figcaption></figure>



<h3 class="wp-block-heading">進階規則語言：CEL 表達式基礎</h3>



<p class="wp-block-paragraph">GCP Cloud Armor 使用 CEL（Common Expression Language，通用表達式語言）來寫規則條件，這是 Google 開發的開源條件判斷語法，專門用來描述篩選邏輯。</p>



<p class="wp-block-paragraph">常用的 CEL 函數：</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>函數</th><th>用途</th><th>範例</th></tr></thead><tbody><tr><td><code>inIpRange()</code></td><td>判斷 IP 是否在某範圍</td><td><code>inIpRange(origin.ip, '203.0.113.0/24')</code></td></tr><tr><td><code>origin.region_code</code></td><td>來源國家代碼（ISO 3166-1）</td><td><code>origin.region_code == 'CN'</code></td></tr><tr><td><code>request.path</code></td><td>請求的 URL 路徑</td><td><code>request.path.matches('/admin.*')</code></td></tr><tr><td><code>request.headers</code></td><td>HTTP Header</td><td><code>request.headers['user-agent'].matches('.*sqlmap.*')</code></td></tr><tr><td><code>evaluatePreconfiguredExpr()</code></td><td>使用預建規則集</td><td><code>evaluatePreconfiguredExpr('sqli-stable')</code></td></tr></tbody></table></figure>



<p class="wp-block-paragraph">條件可以用 <code>&amp;&amp;</code>（AND）、<code>||</code>（OR）、<code>!</code>（NOT）組合。</p>



<h3 class="wp-block-heading">地理位置封鎖（Geo-blocking）</h3>



<p class="wp-block-paragraph">地理位置封鎖讓你根據來源國家代碼（ISO 3166-1 alpha-2）決定是否放行。</p>



<p class="wp-block-paragraph">這個功能不需要你維護任何 IP 清單，Google 在邊緣節點自動判斷來源地理位置。</p>



<p class="wp-block-paragraph">常見使用情境：</p>



<ul class="wp-block-list">
<li>你的服務只對台灣用戶開放，可以封鎖所有非台灣的流量</li>



<li>某個國家最近有大量惡意請求，可以臨時封鎖該地區</li>
</ul>



<p class="wp-block-paragraph">封鎖多個國家的 CEL 語法：</p>



<pre class="wp-block-code"><code>origin.region_code == 'RU' || origin.region_code == 'KP' || origin.region_code == 'IR'
</code></pre>



<p class="wp-block-paragraph">注意：地理位置判斷是依照 IP 對應的地理資料庫，VPN 用戶可能顯示錯誤的國家。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="476" src="https://dongdonggcp.com/wp-content/uploads/2026/04/Cloud-Armor-Geo-blocking-1024x476.png" alt="" class="wp-image-11808" srcset="https://dongdonggcp.com/wp-content/uploads/2026/04/Cloud-Armor-Geo-blocking-1024x476.png 1024w, https://dongdonggcp.com/wp-content/uploads/2026/04/Cloud-Armor-Geo-blocking-300x139.png 300w, https://dongdonggcp.com/wp-content/uploads/2026/04/Cloud-Armor-Geo-blocking-768x357.png 768w, https://dongdonggcp.com/wp-content/uploads/2026/04/Cloud-Armor-Geo-blocking-1536x713.png 1536w, https://dongdonggcp.com/wp-content/uploads/2026/04/Cloud-Armor-Geo-blocking.png 1647w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<h3 class="wp-block-heading">IP 白名單與黑名單</h3>



<p class="wp-block-paragraph">IP 封鎖是 GCP Cloud Armor 最基本的功能，適合封鎖已知惡意 IP 或只開放特定辦公室 IP。</p>



<p class="wp-block-paragraph">每條規則最多可以指定 10 個 IP 或 CIDR 範圍。</p>



<p class="wp-block-paragraph">超過 10 個 IP 需要封鎖時，有 2 個選擇：</p>



<ol class="wp-block-list">
<li>建立多條規則，每條規則放 10 個 IP</li>



<li>使用 Cloud Armor 的「IP Address Group」功能，集中管理大量 IP 清單</li>
</ol>



<p class="wp-block-paragraph"><strong>黑名單模式</strong>（封鎖特定 IP）：</p>



<pre class="wp-block-code"><code>inIpRange(origin.ip, '198.51.100.0/24')
</code></pre>



<p class="wp-block-paragraph">動作設為 <code>deny(403)</code>，其他規則預設 <code>allow</code>。</p>



<p class="wp-block-paragraph"><strong>白名單模式</strong>（只開放特定 IP）：</p>



<pre class="wp-block-code"><code>inIpRange(origin.ip, '203.0.113.10/32')
</code></pre>



<p class="wp-block-paragraph">動作設為 <code>allow</code>，預設規則改為 <code>deny(403)</code>。</p>



<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" width="1002" height="562" src="https://dongdonggcp.com/wp-content/uploads/2026/04/Cloud-Armor-IP-Based-Control.png" alt="" class="wp-image-11807" srcset="https://dongdonggcp.com/wp-content/uploads/2026/04/Cloud-Armor-IP-Based-Control.png 1002w, https://dongdonggcp.com/wp-content/uploads/2026/04/Cloud-Armor-IP-Based-Control-300x168.png 300w, https://dongdonggcp.com/wp-content/uploads/2026/04/Cloud-Armor-IP-Based-Control-768x431.png 768w" sizes="(max-width: 1002px) 100vw, 1002px" /><figcaption class="wp-element-caption">Cloud Armor IP 存取控制</figcaption></figure>



<h3 class="wp-block-heading">WAF 預建規則集（OWASP Top 10 防護）</h3>



<p class="wp-block-paragraph">Cloud Armor 提供 Google 維護的 WAF 預建規則集，對應 OWASP Top 10 常見攻擊。</p>



<p class="wp-block-paragraph">OWASP Top 10 是全球最廣泛引用的網頁應用程式安全風險清單，由非營利組織 OWASP 每幾年更新一次，列出最常被攻擊者利用的 10 種漏洞類型。</p>



<p class="wp-block-paragraph">不需要自己寫偵測邏輯，只要在條件中呼叫 <code>evaluatePreconfiguredExpr()</code> 就好：</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>規則集名稱</th><th>防護目標</th></tr></thead><tbody><tr><td><code>sqli-stable</code></td><td>SQL Injection</td></tr><tr><td><code>xss-stable</code></td><td>Cross-Site Scripting</td></tr><tr><td><code>lfi-stable</code></td><td>Local File Inclusion（路徑遍歷）</td></tr><tr><td><code>rfi-stable</code></td><td>Remote File Inclusion</td></tr><tr><td><code>rce-stable</code></td><td>Remote Code Execution</td></tr><tr><td><code>scannerdetection-stable</code></td><td>掃描工具偵測</td></tr><tr><td><code>protocolattack-stable</code></td><td>HTTP 協議層攻擊</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">這些規則集由 Google 持續更新，不需要自己維護特徵碼。</p>



<p class="wp-block-paragraph"><strong>靈敏度等級說明</strong>：每個預建規則集都有靈敏度等級（Sensitivity Level），從 1 到 4。</p>



<ul class="wp-block-list">
<li>等級 4：偵測最嚴格，但誤判率也最高</li>



<li>等級 1：只抓最明顯的攻擊特徵，誤判率最低</li>
</ul>



<p class="wp-block-paragraph">初學者建議從 Level 1 開始，觀察 Log 後再調整。</p>



<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" width="981" height="486" src="https://dongdonggcp.com/wp-content/uploads/2026/04/Cloud-Armor-Predefined-Rule-Set-1.png" alt="" class="wp-image-11810" srcset="https://dongdonggcp.com/wp-content/uploads/2026/04/Cloud-Armor-Predefined-Rule-Set-1.png 981w, https://dongdonggcp.com/wp-content/uploads/2026/04/Cloud-Armor-Predefined-Rule-Set-1-300x149.png 300w, https://dongdonggcp.com/wp-content/uploads/2026/04/Cloud-Armor-Predefined-Rule-Set-1-768x380.png 768w" sizes="(max-width: 981px) 100vw, 981px" /><figcaption class="wp-element-caption">Cloud Armor WAF 預建規則集 (OWASP Top 10)</figcaption></figure>



<h3 class="wp-block-heading">速率限制（Rate Limiting）功能</h3>



<p class="wp-block-paragraph">速率限制讓你設定「同一個 IP 在一段時間內最多可以發送幾個請求」，超過就觸發節流或封鎖。</p>



<p class="wp-block-paragraph">兩種模式：</p>



<p class="wp-block-paragraph"><strong>Throttle（節流）</strong>：超過速率的請求會收到 429 Too Many Requests，不會被永久封鎖，速率恢復後就能正常請求。</p>



<p class="wp-block-paragraph">適合防止意外的高流量，例如爬蟲設定太激進。</p>



<p class="wp-block-paragraph"><strong>Rate-based Ban（速率封鎖）</strong>：超過速率之後，該 IP 在指定時間內（例如 300 秒）的所有請求都被封鎖，無論後續速率是否降低。</p>



<p class="wp-block-paragraph">適合防禦故意的 HTTP Flood 攻擊。</p>



<figure class="wp-block-image aligncenter size-full is-resized"><img loading="lazy" decoding="async" width="998" height="571" src="https://dongdonggcp.com/wp-content/uploads/2026/04/Cloud-Armor-Rate-Limiting.png" alt="" class="wp-image-11811" style="width:998px;height:auto" srcset="https://dongdonggcp.com/wp-content/uploads/2026/04/Cloud-Armor-Rate-Limiting.png 998w, https://dongdonggcp.com/wp-content/uploads/2026/04/Cloud-Armor-Rate-Limiting-300x172.png 300w, https://dongdonggcp.com/wp-content/uploads/2026/04/Cloud-Armor-Rate-Limiting-768x439.png 768w" sizes="(max-width: 998px) 100vw, 998px" /><figcaption class="wp-element-caption">Cloud Armor 速率限制 (Rate Limiting)</figcaption></figure>



<h3 class="wp-block-heading">自適應防護（Adaptive Protection）簡介</h3>



<p class="wp-block-paragraph">自適應防護（Adaptive Protection）是 Cloud Armor 的 AI 功能，它會分析你的流量基準，當偵測到異常流量模式時，自動生成防禦規則建議，讓你一鍵套用。</p>



<p class="wp-block-paragraph">Standard 版本有基本的自適應防護功能，只能提供警告；Managed Protection Plus 版本的功能更完整，還提供即時攻擊警報和 Google 工程師介入支援，支援的前提是有購買 Premium Support 技術支援方案。</p>



<p class="wp-block-paragraph">對初學者來說，自適應防護是很好的輔助工具，但不要完全依賴它——建議的規則還是需要你自己審核才能套用。</p>



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



<h2 class="wp-block-heading">GCP Cloud Armor 基礎版操作步驟</h2>



<p class="wp-block-paragraph">GCP Cloud Armor 的設定流程共 5 個步驟：確認 LB 類型、建立安全政策、新增規則、套用到後端服務、測試生效。</p>



<h3 class="wp-block-heading">Step 1：確認你的 Load Balancer 類型</h3>



<p class="wp-block-paragraph">在開始之前，先確認你的 Load Balancer 是否支援 GCP Cloud Armor。</p>



<ol class="wp-block-list">
<li>前往 Google Cloud Console → <strong>Network Services</strong> → <strong>Load Balancing</strong></li>



<li>點進你的 Load Balancer，查看類型欄位</li>



<li>確認類型是 <strong>Global External HTTP(S) Load Balancer</strong> 或 <strong>Classic HTTP(S) Load Balancer</strong></li>
</ol>



<p class="wp-block-paragraph">如果你還沒有 Load Balancer，需要先建立一個 Global External HTTP(S) LB，再把你的後端服務（Cloud Run、GKE、VM 等）掛上去，才能繼續後面的步驟。</p>



<h3 class="wp-block-heading">Step 2：在 Google Cloud Console 建立安全政策</h3>



<ol class="wp-block-list">
<li>前往 <strong>Network Security</strong> → <strong>Cloud Armor</strong></li>



<li>點擊「<strong>+ Create Policy</strong>」</li>



<li>填入以下資訊：
<ul class="wp-block-list">
<li><strong>Name</strong>：自訂政策名稱，例如 <code>my-armor-policy</code>（只能小寫英文和連字號）</li>



<li><strong>Description</strong>（選填）：說明這個政策的用途</li>



<li><strong>Default rule action</strong> 預設規則：選擇 <code>Allow</code>（黑名單模式，符合的先擋，都不符合就允許，推薦初學者）</li>
</ul>
</li>



<li>點擊「<strong>Create Policy</strong>」</li>
</ol>



<p class="wp-block-paragraph">這時候安全政策已經建立，但還沒有套用到任何 Load Balancer，也沒有任何自訂規則（只有預設的 allow 規則）。</p>



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="609" src="https://dongdonggcp.com/wp-content/uploads/2026/04/Create-Cloud-Armor-Policy-1024x609.png" alt="" class="wp-image-11813" srcset="https://dongdonggcp.com/wp-content/uploads/2026/04/Create-Cloud-Armor-Policy-1024x609.png 1024w, https://dongdonggcp.com/wp-content/uploads/2026/04/Create-Cloud-Armor-Policy-300x178.png 300w, https://dongdonggcp.com/wp-content/uploads/2026/04/Create-Cloud-Armor-Policy-768x457.png 768w, https://dongdonggcp.com/wp-content/uploads/2026/04/Create-Cloud-Armor-Policy.png 1492w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">建立 Cloud Armor 安全政策和預設規則</figcaption></figure>



<h3 class="wp-block-heading">Step 3：新增第一條防禦規則</h3>



<p class="wp-block-paragraph">在政策頁面中，點擊「<strong>Add Rule</strong>」，依序填入：</p>



<ol class="wp-block-list">
<li><strong>Description</strong>：填入規則說明，例如「封鎖惡意 IP 段」</li>



<li><strong>Mode</strong>：選擇「Basic mode」（適合初學者）或「Advanced mode」（可以寫 CEL 表達式）</li>



<li><strong>Match</strong>：填入條件，例如 IP 範圍 <code>198.51.100.0/24</code></li>



<li><strong>Action</strong>：選擇 <code>Deny</code> 並選擇回應碼（<code>403</code> 或 <code>404</code>）</li>



<li><strong>Priority</strong>：填入優先序數字，例如 <code>1000</code></li>



<li>點擊「<strong>Add</strong>」</li>
</ol>



<p class="wp-block-paragraph">規則建立後會在 60 秒內生效，不需要重新部署 Load Balancer。</p>



<p class="wp-block-paragraph"></p>



<h3 class="wp-block-heading">Step 4：將安全政策套用到後端服務</h3>



<p class="wp-block-paragraph">安全政策不是套用在 Load Balancer 本身，而是套用在 Load Balancer 的**後端服務（Backend Service）**上。</p>



<p class="wp-block-paragraph">從 Cloud Armor 頁面套用：</p>



<ol class="wp-block-list">
<li>前往 <strong>Network Security</strong> → <strong>Cloud Armor</strong> → 點進你剛建立的政策</li>



<li>點擊「<strong>Apply to targets</strong>」</li>



<li>點擊「<strong>Add target</strong>」</li>



<li>選擇你的 <strong>Load Balancer</strong> 和對應的 <strong>Backend Service</strong></li>



<li>點擊「<strong>Add</strong>」確認</li>
</ol>



<p class="wp-block-paragraph">從 Load Balancer 頁面套用（二擇一）：</p>



<ol class="wp-block-list">
<li>前往 <strong>Load Balancing</strong> → 點進你的 LB</li>



<li>點擊「Edit」</li>



<li>在 Backend Configuration 中，點進你的後端服務</li>



<li>在「Cloud Armor policy」欄位選擇你剛建立的政策</li>



<li>儲存</li>
</ol>



<h3 class="wp-block-heading">Step 5：測試規則是否生效</h3>



<h4 class="wp-block-heading">用 curl 測試封鎖效果</h4>



<p class="wp-block-paragraph">假設你建立了一條封鎖特定 IP 的規則，可以從該 IP 的機器用 curl 測試：</p>



<pre class="wp-block-code"><code>curl -v https://your-service-domain.com/
</code></pre>



<p class="wp-block-paragraph">如果規則生效，你會看到：</p>



<pre class="wp-block-code"><code>&lt; HTTP/2 403
&lt; content-type: text/html; charset=UTF-8
</code></pre>



<p class="wp-block-paragraph">要測試封鎖特定 User-Agent 或路徑，可以加上對應參數：</p>



<pre class="wp-block-code"><code># 測試封鎖特定 User-Agent
curl -v -A "sqlmap/1.0" https://your-service-domain.com/

# 測試封鎖特定路徑
curl -v https://your-service-domain.com/admin/config
</code></pre>



<h4 class="wp-block-heading">在 Cloud Logging 確認攔截紀錄</h4>



<p class="wp-block-paragraph">Cloud Armor 的攔截紀錄會自動寫入 Cloud Logging，查詢方式：</p>



<ol class="wp-block-list">
<li>前往 <strong>Logging</strong> → <strong>Log Explorer</strong></li>



<li>在查詢框填入：</li>
</ol>



<pre class="wp-block-code"><code>resource.type="http_load_balancer"
jsonPayload.enforcedSecurityPolicy.outcome="DENY"
</code></pre>



<ol start="3" class="wp-block-list">
<li>點擊「Run Query」</li>
</ol>



<p class="wp-block-paragraph">你會看到每筆被攔截的請求，包含來源 IP、請求路徑、觸發的規則名稱，以及 Cloud Armor 做出的動作。</p>



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



<h2 class="wp-block-heading">Cloud Armor 防禦規則範例</h2>



<p class="wp-block-paragraph">以下 5 個範例都是實務中最常用的規則設定，建議新增時使用 <strong>Advanced mode</strong>（進階模式），直接貼入 CEL 表達式。</p>



<h3 class="wp-block-heading">範例一：封鎖特定 IP 位址或 IP 段</h3>



<p class="wp-block-paragraph"><strong>情境</strong>：你的 Log 中發現 <code>198.51.100.42</code> 這個 IP 持續發送惡意請求。</p>



<p class="wp-block-paragraph"><strong>規則設定</strong>：</p>



<ul class="wp-block-list">
<li>Priority：<code>1000</code></li>



<li>條件（CEL）：</li>
</ul>



<pre class="wp-block-code"><code>inIpRange(origin.ip, '198.51.100.42/32')
</code></pre>



<ul class="wp-block-list">
<li>動作：<code>deny(403)</code></li>
</ul>



<p class="wp-block-paragraph">同時封鎖多個 IP 段：</p>



<pre class="wp-block-code"><code>inIpRange(origin.ip, '198.51.100.0/24') || inIpRange(origin.ip, '203.0.113.128/25')
</code></pre>



<p class="wp-block-paragraph">單條規則最多支援 10 個 IP 範圍。超過 10 個時，建立多條規則，或使用「IP Address Groups」功能集中管理。</p>



<h3 class="wp-block-heading">範例二：封鎖特定國家的流量（地理位置封鎖）</h3>



<p class="wp-block-paragraph"><strong>情境</strong>：你的服務只面向台灣用戶，想封鎖來自特定高風險國家的流量。</p>



<p class="wp-block-paragraph"><strong>規則設定</strong>：</p>



<ul class="wp-block-list">
<li>Priority：<code>2000</code></li>



<li>條件（CEL）：</li>
</ul>



<pre class="wp-block-code"><code>origin.region_code == 'RU' || origin.region_code == 'KP'
</code></pre>



<ul class="wp-block-list">
<li>動作：<code>deny(403)</code></li>
</ul>



<p class="wp-block-paragraph">如果服務只開放特定國家，反向設定更有效率（白名單模式）：</p>



<pre class="wp-block-code"><code>!(origin.region_code == 'TW' || origin.region_code == 'HK' || origin.region_code == 'SG')
</code></pre>



<p class="wp-block-paragraph">動作：<code>deny(403)</code></p>



<p class="wp-block-paragraph">這個寫法的意思是「不是台灣、香港、新加坡的流量，全部拒絕」。</p>



<p class="wp-block-paragraph">國家代碼使用 ISO 3166-1 alpha-2 標準：台灣是 <code>TW</code>，中國是 <code>CN</code>，美國是 <code>US</code>。</p>



<h3 class="wp-block-heading">範例三：防禦 SQL Injection 攻擊</h3>



<p class="wp-block-paragraph"><strong>情境</strong>：你的服務有開放查詢 API，擔心被 SQL Injection 攻擊。</p>



<p class="wp-block-paragraph"><strong>規則設定</strong>：</p>



<ul class="wp-block-list">
<li>Priority：<code>3000</code></li>



<li>條件（CEL）：</li>
</ul>



<pre class="wp-block-code"><code>evaluatePreconfiguredExpr('sqli-stable')
</code></pre>



<ul class="wp-block-list">
<li>動作：<code>deny(403)</code></li>
</ul>



<p class="wp-block-paragraph">這條規則使用 Google 的預建 SQLi 規則集，自動偵測 request 中常見的 SQL Injection 特徵，包含：</p>



<ul class="wp-block-list">
<li>URL 參數中的 <code>' OR 1=1</code>、<code>UNION SELECT</code> 等語句</li>



<li>編碼混淆過的注入字串</li>



<li>Blind SQL Injection 常用的時間延遲語句</li>
</ul>



<p class="wp-block-paragraph">如果誤判率太高，可以調整靈敏度到 Level 1：</p>



<pre class="wp-block-code"><code>evaluatePreconfiguredExpr('sqli-stable', {'sensitivity': 1})
</code></pre>



<h3 class="wp-block-heading">範例四：防禦 XSS（跨站腳本攻擊）</h3>



<p class="wp-block-paragraph"><strong>情境</strong>：你的服務有留言或輸入功能，想防止 XSS 攻擊。</p>



<p class="wp-block-paragraph"><strong>規則設定</strong>：</p>



<ul class="wp-block-list">
<li>Priority：<code>3100</code></li>



<li>條件（CEL）：</li>
</ul>



<pre class="wp-block-code"><code>evaluatePreconfiguredExpr('xss-stable')
</code></pre>



<ul class="wp-block-list">
<li>動作：<code>deny(403)</code></li>
</ul>



<p class="wp-block-paragraph">這條規則偵測的 XSS 特徵包含：</p>



<ul class="wp-block-list">
<li><code>&lt;script></code> 標籤的各種變形</li>



<li><code>javascript:</code> 協議注入</li>



<li><code>onerror=</code>、<code>onload=</code> 等事件處理器注入</li>



<li>HTML 編碼和 URL 編碼混淆的腳本</li>
</ul>



<p class="wp-block-paragraph">想節省計費，可以把 SQLi 和 XSS 合併成 1 條規則：</p>



<pre class="wp-block-code"><code>evaluatePreconfiguredExpr('sqli-stable') || evaluatePreconfiguredExpr('xss-stable')
</code></pre>



<h3 class="wp-block-heading">範例五：針對單一路徑設定速率限制</h3>



<p class="wp-block-paragraph"><strong>情境</strong>：你的 <code>/api/login</code> 端點常被暴力破解攻擊，想限制每個 IP 每分鐘最多 10 次請求。</p>



<p class="wp-block-paragraph"><strong>規則設定</strong>：</p>



<ul class="wp-block-list">
<li>Priority：<code>4000</code></li>



<li>條件（CEL）：</li>
</ul>



<pre class="wp-block-code"><code>request.path.matches('/api/login')
</code></pre>



<ul class="wp-block-list">
<li>動作：<code>throttle</code></li>



<li>速率設定：
<ul class="wp-block-list">
<li>統計週期：60 秒</li>



<li>超過閾值：10 次請求</li>



<li>超過後動作：<code>deny(429)</code></li>
</ul>
</li>
</ul>



<p class="wp-block-paragraph">如果想要更嚴格的封鎖，改用 <code>rate_based_ban</code> 動作，並設定封鎖時間（例如 300 秒）——超過次數後，該 IP 會被封鎖整整 5 分鐘。</p>



<p class="wp-block-paragraph">這個範例可以應對的情境：</p>



<ul class="wp-block-list">
<li>自動化密碼爆破工具（每秒幾十次請求）</li>



<li>API Key 暴力猜測</li>



<li>OTP 驗證碼爆破</li>
</ul>



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



<p class="wp-block-paragraph">想查詢更完整內容可查看<a href="https://docs.cloud.google.com/armor/docs/configure-security-policies?hl=zh-tw" target="_blank" rel="noopener" title="">官方文件《設定 Cloud Armor 安全性政策》</a>。</p>



<h2 class="wp-block-heading">常見問題與錯誤排查</h2>



<h3 class="wp-block-heading">規則設定完但沒有生效，怎麼辦？</h3>



<p class="wp-block-paragraph">按以下順序依序檢查，通常在第 1–3 步就能找到原因：</p>



<ol class="wp-block-list">
<li><strong>確認安全政策有套用到後端服務</strong>：前往 Cloud Armor → 點進你的政策 → 查看「Targets」分頁，確認你的 Backend Service 在清單中</li>



<li><strong>確認規則的優先序正確</strong>：數字小的先執行，確認要生效的規則優先序比「預設 allow 規則」小</li>



<li><strong>確認條件語法沒有錯誤</strong>：CEL 語法錯誤會讓規則直接無效，在 Cloud Console 的規則編輯頁面用「Validate」功能檢查</li>



<li><strong>等待傳播時間</strong>：Cloud Armor 規則通常在 60 秒內生效，最多可能需要 5 分鐘才能完全傳播到所有邊緣節點</li>



<li><strong>確認測試來源 IP</strong>：在自己的電腦測試時，確認你的 IP 確實在規則的封鎖範圍內</li>
</ol>



<h3 class="wp-block-heading">安全政策套用後合法流量被擋，如何排查？</h3>



<p class="wp-block-paragraph">合法流量被誤擋是 WAF 最常見的問題，特別是啟用預建規則集後。</p>



<p class="wp-block-paragraph">排查步驟：</p>



<ol class="wp-block-list">
<li>前往 Cloud Logging，查詢被擋的請求：</li>
</ol>



<pre class="wp-block-code"><code>resource.type="http_load_balancer"
jsonPayload.enforcedSecurityPolicy.outcome="DENY"</code></pre>



<ol start="2" class="wp-block-list">
<li>查看 <code>jsonPayload.enforcedSecurityPolicy.name</code> 欄位，確認是哪條規則觸發</li>



<li>查看原始請求的 path、headers、body，判斷是否為正常請求</li>



<li>如果是 WAF 預建規則集誤判，可以選擇以下 3 種方式處理：
<ul class="wp-block-list">
<li>降低靈敏度等級（Sensitivity Level）</li>



<li>在誤判的規則前面加一條優先序更高的 <code>allow</code> 規則，放行特定 IP 或路徑</li>



<li>改用「Preview Mode」先觀察，不實際封鎖</li>
</ul>
</li>
</ol>



<p class="wp-block-paragraph"><strong>Preview Mode（預覽模式）</strong>：規則動作設定為 <code>preview</code>，Cloud Armor 會記錄所有符合條件的請求到 Log，但不實際封鎖。</p>



<p class="wp-block-paragraph">上線新規則前，建議先開 Preview Mode 觀察 1–3 天，確認沒有異常再正式封鎖。</p>



<h3 class="wp-block-heading">在 Cloud Logging 中找到 Cloud Armor 攔截紀錄</h3>



<p class="wp-block-paragraph">Cloud Armor 的完整 Log 欄位說明：</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>欄位</th><th>說明</th></tr></thead><tbody><tr><td><code>jsonPayload.enforcedSecurityPolicy.name</code></td><td>觸發的安全政策名稱</td></tr><tr><td><code>jsonPayload.enforcedSecurityPolicy.priority</code></td><td>觸發的規則優先序</td></tr><tr><td><code>jsonPayload.enforcedSecurityPolicy.outcome</code></td><td><code>ACCEPT</code>（放行）或 <code>DENY</code>（拒絕）</td></tr><tr><td><code>jsonPayload.enforcedSecurityPolicy.preconfiguredExprIds</code></td><td>觸發的預建規則集名稱</td></tr><tr><td><code>httpRequest.remoteIp</code></td><td>來源 IP</td></tr><tr><td><code>httpRequest.requestUrl</code></td><td>請求的完整 URL</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">查詢所有 GCP Cloud Armor 相關紀錄（含放行和攔截）：</p>



<pre class="wp-block-code"><code>resource.type="http_load_balancer"
jsonPayload.enforcedSecurityPolicy.name!=""</code></pre>



<p class="wp-block-paragraph">建議把這個查詢存成「已儲存的查詢」，方便日後快速查看。</p>



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



<h2 class="wp-block-heading">結語：Cloud Armor 值得學嗎？</h2>



<p class="wp-block-paragraph">值得，而且應該在服務上線前就設定好，而不是等到被攻擊才補。</p>



<p class="wp-block-paragraph">GCP Cloud Armor 的入門門檻不高，Standard 版本費用合理，3 個步驟就能讓你的服務多一層 WAF 保護：建立安全政策、加規則、套用到 Backend Service。</p>



<p class="wp-block-paragraph">從最基本的 IP 封鎖和地理封鎖開始，再慢慢加入 WAF 預建規則集，觀察 Log，調整靈敏度。</p>



<p class="wp-block-paragraph">不需要一次把所有功能都打開，循序漸進才不會誤擋正常流量。</p>



<p class="wp-block-paragraph">如果你的服務已經有 Global External HTTP(S) Load Balancer，今天就可以花 15 分鐘把基礎的 Cloud Armor 設定好。</p>



<p class="wp-block-paragraph">相關細節可以參考 <a href="https://docs.cloud.google.com/armor/docs/cloud-armor-overview?hl=zh-tw" target="_blank" rel="noopener" title="">Cloud Armor 說明文件</a>。</p>



<p class="wp-block-paragraph">如果想了解其他 GCP 的資安防禦功能，可以參考<a href="https://dongdonggcp.com/2024/07/17/gcp-common-security-service/" target="_blank" rel="noopener" title="">《雲端的資訊安全防禦縱深，常用 GCP 資安服務介紹》</a>。</p>



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



<h2 class="wp-block-heading">常見問題（FAQ）</h2>



<p class="wp-block-paragraph"><strong>Q1：Cloud Armor 可以防禦 L3/L4 層的 DDoS 攻擊嗎？</strong> </p>



<p class="wp-block-paragraph">A：GCP Cloud Armor 本身專注在 L7 層（應用程式層）的防護，L3/L4 層的 DDoS 防禦由 Google 底層基礎設施自動提供，不需要額外設定。大流量的 UDP Flood 或 SYN Flood，Google 網路邊緣就會自動緩解。如果你需要 L7 層的 HTTP Flood 防護，才需要在 Cloud Armor 設定速率限制規則。</p>



<p class="wp-block-paragraph"><strong>Q2：Cloud Armor 可以保護 Cloud Run 服務嗎？</strong> </p>



<p class="wp-block-paragraph">A：可以，但 Cloud Run 必須先搭配 Global External HTTP(S) Load Balancer 對外服務，才能套用 GCP Cloud Armor 安全政策。設定方式是建立 Serverless NEG（Network Endpoint Group），把 Cloud Run 掛到 LB 的後端服務，再套用安全政策。直接用 Cloud Run 的 <code>.run.app</code> 網址，無法使用 Cloud Armor。</p>



<p class="wp-block-paragraph"><strong>Q3：Cloud Armor 的規則修改後多久生效？</strong> </p>



<p class="wp-block-paragraph">A：在 Google Cloud Console 儲存後，新規則或修改後的規則最快 60 秒內生效，最慢約 5 分鐘完全傳播到所有 Google 邊緣節點。如果測試時還沒看到封鎖效果，等 5 分鐘後再試，不要急著以為設定有問題。</p>



<p class="wp-block-paragraph"><strong>Q4：同一個 GCP 專案可以建立幾個安全政策？</strong> </p>



<p class="wp-block-paragraph">A：預設上限是每個 GCP 專案 200 個安全政策，每個政策最多 200 條規則。一般使用不太會碰到這個限制。如果有需要，可以申請提高配額。</p>



<p class="wp-block-paragraph"><strong>Q5：安全政策可以套用到多個 Load Balancer 嗎？</strong> </p>



<p class="wp-block-paragraph">A：一個安全政策可以套用到多個後端服務（Backend Service），這些後端服務可以屬於不同的 Load Balancer。但反過來，一個後端服務在同一時間只能套用 1 個安全政策。</p>



<p class="wp-block-paragraph"><strong>Q6：使用 WAF 預建規則集會不會有很多誤判？</strong> </p>



<p class="wp-block-paragraph">A：剛啟用時確實可能有誤判，特別是靈敏度較高的等級。建議先用「Preview Mode」觀察 1–3 天的 Log，確認沒有異常後再正式開啟封鎖。靈敏度從 Level 1 開始，視需要再調高。</p>



<p class="wp-block-paragraph"><strong>Q7：Cloud Armor 可以封鎖特定的 User-Agent 嗎？</strong> </p>



<p class="wp-block-paragraph">A：可以。用 CEL 表達式判斷 <code>request.headers['user-agent']</code> 欄位，例如封鎖 sqlmap 工具：<code>request.headers['user-agent'].matches('.*sqlmap.*')</code>。不過攻擊者可以輕易偽造 User-Agent，這個方法只適合封鎖懶惰的攻擊工具，不能作為主要防禦手段。</p>



<p class="wp-block-paragraph"><strong>Q8：Cloud Armor 有辦法只保護特定路徑，不影響其他路徑嗎？</strong> </p>



<p class="wp-block-paragraph">A：可以。在規則條件中加入 <code>request.path</code> 的判斷，例如 <code>request.path.matches('/api/.*')</code> 只對 API 路徑套用規則，其他路徑不受影響。這樣可以針對敏感端點設定嚴格規則，同時不影響靜態資源的存取速度。</p>



<p class="wp-block-paragraph"><strong>Q9：Cloud Armor 和 reCAPTCHA 可以結合使用嗎？</strong> </p>



<p class="wp-block-paragraph">A：可以。Cloud Armor 支援整合 reCAPTCHA Enterprise，當偵測到可疑流量時，可以觸發 CAPTCHA 挑戰，而不是直接封鎖。這個功能適合面向一般用戶的服務，因為直接封鎖可能誤傷真實用戶，先給 CAPTCHA 挑戰更友善。</p>



<p class="wp-block-paragraph"><strong>Q10：如果我換掉 Load Balancer，之前設定的 Cloud Armor 安全政策會消失嗎？</strong> </p>



<p class="wp-block-paragraph">A：GCP Cloud Armor 安全政策本身不會消失，因為它是獨立的 GCP 資源。但套用關係會斷掉，因為原本的 Backend Service 被刪除了。換 LB 後，你需要重新把安全政策套用到新 LB 的後端服務上，政策內的規則設定全部保留，不需要重新設定。</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/><p>The post <a href="https://dongdonggcp.com/2026/04/21/gcp-cloud-armor-complete-guide-features-setup-rules/">GCP Cloud Armor 完整教學：功能介紹、使用條件與防禦規則設定</a> first appeared on <a href="https://dongdonggcp.com">東東 GCP 教學 - GCP 實戰講師</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://dongdonggcp.com/2026/04/21/gcp-cloud-armor-complete-guide-features-setup-rules/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>技術棧是什麼？一文搞懂 Tech Stack 的定義、組成與實際應用</title>
		<link>https://dongdonggcp.com/2026/03/31/what-is-tech-stack-technology-stack-guide/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=what-is-tech-stack-technology-stack-guide</link>
					<comments>https://dongdonggcp.com/2026/03/31/what-is-tech-stack-technology-stack-guide/#respond</comments>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Tue, 31 Mar 2026 15:20:48 +0000</pubDate>
				<category><![CDATA[程式開發]]></category>
		<category><![CDATA[Tech Stack]]></category>
		<category><![CDATA[全端開發]]></category>
		<category><![CDATA[技術棧]]></category>
		<category><![CDATA[程式語言]]></category>
		<category><![CDATA[軟體架構]]></category>
		<guid isPermaLink="false">https://dongdonggcp.com/?p=11773</guid>

					<description><![CDATA[<p>技術棧（Tech Stack）是系統完成目標所採用的整套技術組合。本文解釋技術棧定義、核心層次、與全端的差異，以及如何選擇適合的技術棧。</p>
<p>The post <a href="https://dongdonggcp.com/2026/03/31/what-is-tech-stack-technology-stack-guide/">技術棧是什麼？一文搞懂 Tech Stack 的定義、組成與實際應用</a> first appeared on <a href="https://dongdonggcp.com">東東 GCP 教學 - GCP 實戰講師</a>.</p>]]></description>
										<content:encoded><![CDATA[<p class="wp-block-paragraph"><strong>技術棧（Tech Stack）</strong>就像一個技能包，裡面有前端、後端、資料庫、部署等一整套會一起使用的工具與能力。</p>



<p class="wp-block-paragraph">嚴謹的說法：技術棧<strong>就是一個系統或產品，為了完成特定目標所採用的整套技術組合</strong>——包含程式語言、框架、資料庫、伺服器、雲端服務與開發工具，這些技術彼此配合、協同運作，缺一不可。</p>



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



<h2 class="wp-block-heading">技術棧的精準定義：不只是「工具清單」</h2>



<p class="wp-block-paragraph">很多人第一次聽到「技術棧」這個詞，直覺會把它想成「公司用哪些軟體」，但這樣理解其實是不夠精準的。</p>



<p class="wp-block-paragraph">技術棧的重點不只是「用了哪些技術」，更在於「這些技術如何互相搭配、一起運作」。</p>



<p class="wp-block-paragraph">打個比方，一間餐廳的廚房裡有刀、砧板、瓦斯爐、炒鍋，這些工具本身沒什麼了不起，但當它們被廚師按照正確順序組合起來，才能端出一道完整的菜。</p>



<p class="wp-block-paragraph">技術棧就是這樣——它是一套「會互相配合的工具組合」，而不只是一張工具清單。</p>



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="543" src="https://dongdonggcp.com/wp-content/uploads/2026/03/技術棧的精準定義：不只是「工具清單」-1024x543.png" alt="" class="wp-image-11777" srcset="https://dongdonggcp.com/wp-content/uploads/2026/03/技術棧的精準定義：不只是「工具清單」-1024x543.png 1024w, https://dongdonggcp.com/wp-content/uploads/2026/03/技術棧的精準定義：不只是「工具清單」-300x159.png 300w, https://dongdonggcp.com/wp-content/uploads/2026/03/技術棧的精準定義：不只是「工具清單」-768x407.png 768w, https://dongdonggcp.com/wp-content/uploads/2026/03/技術棧的精準定義：不只是「工具清單」-1536x814.png 1536w, https://dongdonggcp.com/wp-content/uploads/2026/03/技術棧的精準定義：不只是「工具清單」.png 1698w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">技術棧的精準定義：不只是「工具清單」</figcaption></figure>



<h3 class="wp-block-heading">為什麼說技術棧是「有機整體」？</h3>



<p class="wp-block-paragraph">「有機整體」這個說法聽起來很抽象，讓我們用一個具體的例子來說明。</p>



<p class="wp-block-paragraph">假設你要開發一個電商網站，你選擇了：</p>



<ul class="wp-block-list">
<li><strong>前端</strong>：React（讓使用者看到漂亮的購物介面）</li>



<li><strong>後端</strong>：Node.js（處理訂單邏輯、金流計算）</li>



<li><strong>資料庫</strong>：PostgreSQL（儲存商品資料、用戶資料）</li>



<li><strong>部署</strong>：Docker + Google Cloud Platform（讓整個系統能穩定上線）</li>
</ul>



<p class="wp-block-paragraph">這四層技術並不是各自獨立的，它們環環相扣：React 送出請求給 Node.js，Node.js 查詢 PostgreSQL，最後打包成 Docker 容器部署到 GCP。你換掉任何一個環節，其他環節都可能需要跟著調整。這就是技術棧「有機整體」的意義——牽一髮而動全身。</p>



<h3 class="wp-block-heading">技術棧的核心概念：彼此協同，缺一不可</h3>



<p class="wp-block-paragraph">更精準地說，技術棧是某項工作或職位所需掌握、並且會互相配合使用的技術集合。</p>



<p class="wp-block-paragraph">這些技術被組合成一個整體，用來實現特定的商業或技術目的。</p>



<p class="wp-block-paragraph">有幾個關鍵特徵值得記住：</p>



<ol class="wp-block-list">
<li><strong>技術棧不等於單一技術</strong>：用了 React 不代表你有一套技術棧，你還需要搭配後端、資料庫等其他層次。</li>



<li><strong>技術棧會隨需求演進</strong>：一個新創公司的技術棧，和一家上市企業的技術棧可能截然不同。</li>



<li><strong>技術棧有層次結構</strong>：業界習慣把技術棧分為前端、後端、資料庫、基礎架構等幾個主要層次。</li>
</ol>



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



<h2 class="wp-block-heading">技術棧、技術堆疊、全端（Full Stack）：三者到底有什麼差別？</h2>



<p class="wp-block-paragraph">這三個詞是整個技術圈最容易讓人混淆的概念之一，甚至有些工程師工作好幾年了還搞不清楚。讓我們來一次說清楚。</p>



<h3 class="wp-block-heading">技術棧 vs. 技術堆疊：根本是同一件事嗎？</h3>



<p class="wp-block-paragraph">簡單說：<strong>是的，幾乎完全相同</strong>。</p>



<p class="wp-block-paragraph">「技術棧」和「技術堆疊」都是英文 Tech Stack 的中文譯名，只是翻譯方式不同。「技術棧」偏向台灣的說法，「技術堆疊」在兩岸都有人用，但實質意思沒有差異。如果你在面試或技術文件中看到這兩個詞交替出現，不需要過度解讀，它們指的是同一件事。</p>



<h3 class="wp-block-heading">技術棧 vs. 全端：最常被混淆的地方在哪？</h3>



<p class="wp-block-paragraph">這才是真正容易出錯的地方。<strong>技術棧描述的是「技術組成」，全端描述的是「人的能力範圍」</strong>，兩者完全不是同一個維度的概念。</p>



<p class="wp-block-paragraph">舉個具體例子：</p>



<ul class="wp-block-list">
<li>一個 Web 專案使用 React、Node.js、PostgreSQL、Docker，這是<strong>一套技術棧</strong>。</li>



<li>一位工程師同時能做 React 前端、API 後端、資料庫設計與部署，這位工程師就是<strong>全端工程師</strong>。</li>
</ul>



<p class="wp-block-paragraph">全端工程師不代表他用的技術棧一定涵蓋所有層次，他可能只精通某一套技術棧；而一套技術棧也不一定需要全端工程師，它可以由多位分工明確的工程師共同維護。</p>



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="549" src="https://dongdonggcp.com/wp-content/uploads/2026/03/技術棧-vs.-全端-1024x549.png" alt="" class="wp-image-11778" srcset="https://dongdonggcp.com/wp-content/uploads/2026/03/技術棧-vs.-全端-1024x549.png 1024w, https://dongdonggcp.com/wp-content/uploads/2026/03/技術棧-vs.-全端-300x161.png 300w, https://dongdonggcp.com/wp-content/uploads/2026/03/技術棧-vs.-全端-768x412.png 768w, https://dongdonggcp.com/wp-content/uploads/2026/03/技術棧-vs.-全端-1536x824.png 1536w, https://dongdonggcp.com/wp-content/uploads/2026/03/技術棧-vs.-全端.png 1730w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">技術棧 vs. 全端</figcaption></figure>



<h3 class="wp-block-heading">H4：一張表格秒懂三者差異</h3>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>名詞</th><th>精準意思</th><th>核心重點</th></tr></thead><tbody><tr><td><strong>技術棧</strong></td><td>一個系統或產品所採用的技術組合</td><td>指「用哪些技術」</td></tr><tr><td><strong>技術堆疊</strong></td><td>與技術棧同義，常見於中文翻譯</td><td>多半只是不同譯法</td></tr><tr><td><strong>全端（Full Stack）</strong></td><td>一種開發能力或角色，能同時處理前端與後端</td><td>指「人能處理哪些層」</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">一句話版本：技術棧／技術堆疊是在講「系統用了哪些技術」；全端是在講「人能處理前端與後端的整個開發流程」。前兩者是技術組合，後者是人的能力範圍。</p>



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



<h2 class="wp-block-heading">技術棧的 4 大核心層次</h2>



<p class="wp-block-paragraph">業界習慣把技術棧拆成幾個主要層次來討論。理解這些層次，你才能真正看懂職缺描述、技術文件，以及架構設計圖。</p>



<h3 class="wp-block-heading">前端（Frontend）：使用者看得到的那一層</h3>



<p class="wp-block-paragraph">前端是指所有直接呈現在使用者螢幕上的技術，負責視覺介面、互動邏輯與使用者體驗。常見的前端技術包含：</p>



<ul class="wp-block-list">
<li><strong>框架與函式庫</strong>：React、Vue.js、Angular、Svelte</li>



<li><strong>樣式工具</strong>：CSS、Tailwind CSS、Sass</li>



<li><strong>建置工具</strong>：Vite、Webpack、Babel</li>
</ul>



<p class="wp-block-paragraph">前端的核心任務是把資料「畫」成使用者能理解和操作的介面。當你點擊一個按鈕、看到一張動態圖表，背後都是前端的工作。</p>



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="561" src="https://dongdonggcp.com/wp-content/uploads/2026/03/前端（Frontend）：使用者看得到的那一層-1024x561.png" alt="" class="wp-image-11780" srcset="https://dongdonggcp.com/wp-content/uploads/2026/03/前端（Frontend）：使用者看得到的那一層-1024x561.png 1024w, https://dongdonggcp.com/wp-content/uploads/2026/03/前端（Frontend）：使用者看得到的那一層-300x164.png 300w, https://dongdonggcp.com/wp-content/uploads/2026/03/前端（Frontend）：使用者看得到的那一層-768x421.png 768w, https://dongdonggcp.com/wp-content/uploads/2026/03/前端（Frontend）：使用者看得到的那一層-1536x842.png 1536w, https://dongdonggcp.com/wp-content/uploads/2026/03/前端（Frontend）：使用者看得到的那一層.png 1712w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">前端（Frontend）：使用者看得到的那一層</figcaption></figure>



<h3 class="wp-block-heading">後端（Backend）：負責邏輯運算的幕後英雄</h3>



<p class="wp-block-paragraph">後端是整個技術棧的「大腦」，負責業務邏輯、資料處理、身份驗證、API 設計等核心功能。使用者永遠看不到後端，但沒有後端，整個應用就無法運作。常見的後端技術包含：</p>



<ul class="wp-block-list">
<li><strong>語言與框架</strong>：Node.js（Express）、Python（Django、FastAPI）、Ruby on Rails、Go、Java（Spring Boot）</li>



<li><strong>API 設計</strong>：RESTful API、GraphQL、gRPC</li>



<li><strong>身份驗證</strong>：JWT、OAuth 2.0</li>
</ul>



<p class="wp-block-paragraph">如果前端是餐廳的外場，後端就是廚房——客人看不見廚房在做什麼，但廚房的效率直接決定了餐點品質。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="552" src="https://dongdonggcp.com/wp-content/uploads/2026/03/後端（Backend）：負責邏輯運算的幕後英雄-1024x552.png" alt="" class="wp-image-11781" srcset="https://dongdonggcp.com/wp-content/uploads/2026/03/後端（Backend）：負責邏輯運算的幕後英雄-1024x552.png 1024w, https://dongdonggcp.com/wp-content/uploads/2026/03/後端（Backend）：負責邏輯運算的幕後英雄-300x162.png 300w, https://dongdonggcp.com/wp-content/uploads/2026/03/後端（Backend）：負責邏輯運算的幕後英雄-768x414.png 768w, https://dongdonggcp.com/wp-content/uploads/2026/03/後端（Backend）：負責邏輯運算的幕後英雄-1536x828.png 1536w, https://dongdonggcp.com/wp-content/uploads/2026/03/後端（Backend）：負責邏輯運算的幕後英雄.png 1732w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<h3 class="wp-block-heading">資料庫（Database）：資料的家</h3>



<p class="wp-block-paragraph">資料庫負責儲存和管理所有應用所需的資料，從使用者帳號、商品資訊到交易記錄，全都在這裡。資料庫大致分為兩類：</p>



<p class="wp-block-paragraph"><strong>關聯式資料庫（SQL）</strong>，適合結構化、有明確關係的資料：</p>



<ul class="wp-block-list">
<li>PostgreSQL</li>



<li>MySQL</li>



<li>Microsoft SQL Server</li>
</ul>



<p class="wp-block-paragraph"><strong>非關聯式資料庫（NoSQL）</strong>，適合彈性結構或大量非結構化資料：</p>



<ul class="wp-block-list">
<li>MongoDB（文件型）</li>



<li>Redis（鍵值型，常用於快取）</li>



<li>Cassandra（寬欄型，適合大規模寫入）</li>
</ul>



<p class="wp-block-paragraph">選擇 SQL 還是 NoSQL，取決於你的資料特性和讀寫需求，沒有絕對的對錯。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="579" src="https://dongdonggcp.com/wp-content/uploads/2026/03/第三層-資料庫-Database-系統資料的儲存中心-1024x579.png" alt="" class="wp-image-11782" srcset="https://dongdonggcp.com/wp-content/uploads/2026/03/第三層-資料庫-Database-系統資料的儲存中心-1024x579.png 1024w, https://dongdonggcp.com/wp-content/uploads/2026/03/第三層-資料庫-Database-系統資料的儲存中心-300x169.png 300w, https://dongdonggcp.com/wp-content/uploads/2026/03/第三層-資料庫-Database-系統資料的儲存中心-768x434.png 768w, https://dongdonggcp.com/wp-content/uploads/2026/03/第三層-資料庫-Database-系統資料的儲存中心-1536x868.png 1536w, https://dongdonggcp.com/wp-content/uploads/2026/03/第三層-資料庫-Database-系統資料的儲存中心.png 1724w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<h3 class="wp-block-heading">部署與基礎架構（DevOps / Infrastructure）：讓系統跑起來的關鍵</h3>



<p class="wp-block-paragraph">這一層負責把寫好的程式碼打包、部署到伺服器，並確保系統能穩定、持續地對外服務。這個層次的技術發展最快，也是近年來最受重視的領域之一。</p>



<p class="wp-block-paragraph">常見技術包含：</p>



<ul class="wp-block-list">
<li><strong>容器化</strong>：Docker（打包應用環境）、Kubernetes（容器編排管理）</li>



<li><strong>雲端平台</strong>：<a href="https://dongdonggcp.com/2024/08/22/what-is-gcp-how-to-use-and-learning-resources/" target="_blank" rel="noopener" title="">Google Cloud Platform（GCP）</a>、AWS、Microsoft Azure</li>



<li><strong>CI/CD 工具</strong>：GitHub Actions、GitLab CI、Jenkins</li>



<li><strong>監控與日誌</strong>：Prometheus、Grafana、Datadog</li>
</ul>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="562" src="https://dongdonggcp.com/wp-content/uploads/2026/03/第四層-基礎架構與部署-Devops-讓系統穩定運行的基石-1024x562.png" alt="" class="wp-image-11783" srcset="https://dongdonggcp.com/wp-content/uploads/2026/03/第四層-基礎架構與部署-Devops-讓系統穩定運行的基石-1024x562.png 1024w, https://dongdonggcp.com/wp-content/uploads/2026/03/第四層-基礎架構與部署-Devops-讓系統穩定運行的基石-300x165.png 300w, https://dongdonggcp.com/wp-content/uploads/2026/03/第四層-基礎架構與部署-Devops-讓系統穩定運行的基石-768x421.png 768w, https://dongdonggcp.com/wp-content/uploads/2026/03/第四層-基礎架構與部署-Devops-讓系統穩定運行的基石-1536x842.png 1536w, https://dongdonggcp.com/wp-content/uploads/2026/03/第四層-基礎架構與部署-Devops-讓系統穩定運行的基石.png 1754w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">沒有這一層，你的程式碼永遠只能在自己的電腦上跑。</p>



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



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="557" src="https://dongdonggcp.com/wp-content/uploads/2026/03/技術棧的-4-大核心層次-1024x557.png" alt="" class="wp-image-11779" srcset="https://dongdonggcp.com/wp-content/uploads/2026/03/技術棧的-4-大核心層次-1024x557.png 1024w, https://dongdonggcp.com/wp-content/uploads/2026/03/技術棧的-4-大核心層次-300x163.png 300w, https://dongdonggcp.com/wp-content/uploads/2026/03/技術棧的-4-大核心層次-768x418.png 768w, https://dongdonggcp.com/wp-content/uploads/2026/03/技術棧的-4-大核心層次-1536x835.png 1536w, https://dongdonggcp.com/wp-content/uploads/2026/03/技術棧的-4-大核心層次.png 1714w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">技術棧的 4 大核心層次</figcaption></figure>



<h2 class="wp-block-heading">常見的技術棧組合有哪些？</h2>



<p class="wp-block-paragraph">業界有幾套被廣泛採用的經典技術棧組合，各有各的適用場景和特性。</p>



<h3 class="wp-block-heading">MEAN Stack：JavaScript 全家桶</h3>



<p class="wp-block-paragraph">MEAN 代表 MongoDB、Express.js、Angular、Node.js，四個層次全部使用 JavaScript 生態系。</p>



<p class="wp-block-paragraph">這套技術棧最大的優點是<strong>前後端使用同一種語言</strong>，工程師不需要在 Python 和 JavaScript 之間來回切換，學習曲線相對平緩。適合中小型 Web 應用、新創團隊，或是以 JavaScript 為主的技術團隊。</p>



<p class="wp-block-paragraph">類似的組合還有 MERN Stack（把 Angular 換成 React），是目前業界更主流的選擇。</p>



<h3 class="wp-block-heading">LAMP Stack：老牌穩定組合</h3>



<p class="wp-block-paragraph">LAMP 代表 Linux、Apache、MySQL、PHP，是 Web 開發領域的老前輩，已有超過 20 年的歷史。</p>



<p class="wp-block-paragraph">WordPress、Facebook 早期版本都是用 LAMP 架設的。雖然在現代化架構中，LAMP 被認為相對傳統，但它依然是全球數百萬個網站的底層基礎，特別是中小型網站和 CMS 系統。如果你要接手一個有歷史的專案，很可能就會碰到 LAMP。</p>



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://dongdonggcp.com/wp-content/uploads/2026/03/經典架構藍圖-業界廣泛採用的技術組合-1024x576.png" alt="" class="wp-image-11784" srcset="https://dongdonggcp.com/wp-content/uploads/2026/03/經典架構藍圖-業界廣泛採用的技術組合-1024x576.png 1024w, https://dongdonggcp.com/wp-content/uploads/2026/03/經典架構藍圖-業界廣泛採用的技術組合-300x169.png 300w, https://dongdonggcp.com/wp-content/uploads/2026/03/經典架構藍圖-業界廣泛採用的技術組合-768x432.png 768w, https://dongdonggcp.com/wp-content/uploads/2026/03/經典架構藍圖-業界廣泛採用的技術組合-1536x864.png 1536w, https://dongdonggcp.com/wp-content/uploads/2026/03/經典架構藍圖-業界廣泛採用的技術組合.png 1546w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">經典架構藍圖 業界廣泛採用的技術組合</figcaption></figure>



<h3 class="wp-block-heading">JAMstack：現代靜態網站首選</h3>



<p class="wp-block-paragraph">JAMstack 代表 JavaScript、API、Markup，是近年來靜態網站與前端開發領域的主流選擇。</p>



<p class="wp-block-paragraph">JAMstack 的核心理念是：把網站的前端預先渲染成靜態檔案（HTML/CSS/JS），部署到 CDN，需要動態資料時再透過 API 呼叫後端服務。</p>



<p class="wp-block-paragraph">這種架構讓網站<strong>載入速度極快、安全性高、維護成本低</strong>。Vercel、Netlify 的崛起，很大程度上就是因為 JAMstack 的普及。常見的工具組合包含 Next.js + Contentful + Vercel。</p>



<h3 class="wp-block-heading">現代 SaaS 產品常用的 GCP 技術棧</h3>



<p class="wp-block-paragraph">以 Google Cloud Platform 為核心的技術棧，在企業級 SaaS 產品中越來越常見。一套典型的 GCP 技術棧可能包含：</p>



<ul class="wp-block-list">
<li><strong>前端</strong>：React 或 Next.js</li>



<li><strong>後端</strong>：Python（FastAPI）或 Node.js，部署在 Cloud Run</li>



<li><strong>資料庫</strong>：Cloud Spanner（全球分散式）或 <a href="https://www.youtube.com/watch?v=2ZSo2y4Q5tQ" target="_blank" rel="noopener" title="">Cloud SQL</a>（PostgreSQL）</li>



<li><strong>資料分析</strong>：<a href="https://dongdonggcp.com/2024/11/23/what-is-bigquery-functions-advantages/" target="_blank" rel="noopener" title="">BigQuery</a></li>



<li><strong>訊息佇列</strong>：<a href="https://dongdonggcp.com/2025/08/06/cloud-pub-sub-tutorial-better-than-rabbitmq-mqtt/" target="_blank" rel="noopener" title="Pub/Sub">Pub/Sub</a></li>



<li><strong>CI/CD</strong>：<a href="https://www.youtube.com/watch?v=Qul5IfdHYG4" target="_blank" rel="noopener" title="">Cloud Build</a> + Artifact Registry</li>
</ul>



<p class="wp-block-paragraph">這套組合的優點是高度整合、可自動擴展，特別適合需要處理大量資料或高並發請求的產品。Spotify 在遷移至 GCP 之後，就採用了類似的架構來管理其龐大的音樂串流服務。</p>



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="553" src="https://dongdonggcp.com/wp-content/uploads/2026/03/現代架構藍圖-為速度與規模而生-1024x553.png" alt="" class="wp-image-11785" srcset="https://dongdonggcp.com/wp-content/uploads/2026/03/現代架構藍圖-為速度與規模而生-1024x553.png 1024w, https://dongdonggcp.com/wp-content/uploads/2026/03/現代架構藍圖-為速度與規模而生-300x162.png 300w, https://dongdonggcp.com/wp-content/uploads/2026/03/現代架構藍圖-為速度與規模而生-768x414.png 768w, https://dongdonggcp.com/wp-content/uploads/2026/03/現代架構藍圖-為速度與規模而生-1536x829.png 1536w, https://dongdonggcp.com/wp-content/uploads/2026/03/現代架構藍圖-為速度與規模而生.png 1642w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">現代架構藍圖 為速度與規模而生</figcaption></figure>



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



<h2 class="wp-block-heading">如何選擇適合你的技術棧？</h2>



<p class="wp-block-paragraph">這是很多工程師和技術主管都曾糾結過的問題。選錯技術棧，輕則延誤產品開發，重則日後遷移成本高到嚇人。以下是 3 個最關鍵的考量因素。</p>



<h3 class="wp-block-heading">考量因素一：團隊現有的技術能力</h3>



<p class="wp-block-paragraph">這是最常被忽略、但其實最重要的因素。<strong>技術棧再先進，如果團隊沒有人熟悉，就是負擔而不是資產。</strong></p>



<p class="wp-block-paragraph">舉個例子，假設你的團隊有 5 位工程師，其中 4 位精通 Python，只有 1 位略懂 Go。這時候選擇 Python（FastAPI 或 Django）作為後端語言，要比選 Go 理智得多——即使 Go 在效能上有優勢。</p>



<p class="wp-block-paragraph">重新學習一門語言或框架，平均需要 3 到 6 個月才能達到生產力水準。這段時間的機會成本不容忽視。</p>



<h3 class="wp-block-heading">考量因素二：社群資源與生態系統成熟度</h3>



<p class="wp-block-paragraph">一個技術的好壞，不只看它本身的能力，還要看它的<strong>生態系統</strong>——有沒有豐富的第三方套件？遇到問題時能不能在 Stack Overflow 或 GitHub 找到答案？招募市場上有沒有足夠的人才？</p>



<p class="wp-block-paragraph">以 React 為例，它的生態系統包含數以千計的 npm 套件、完善的官方文件、數百萬的開發者社群。這讓你在遇到問題時，幾乎不可能找不到解法。</p>



<p class="wp-block-paragraph">相對地，一些較新或小眾的框架，雖然技術上可能很出色，但生態系統不成熟意味著你可能需要自己解決很多問題，這對小團隊來說是很大的風險。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="575" src="https://dongdonggcp.com/wp-content/uploads/2026/03/選擇技術棧的核心考量一-團隊能力與生態系統-1024x575.png" alt="" class="wp-image-11786" srcset="https://dongdonggcp.com/wp-content/uploads/2026/03/選擇技術棧的核心考量一-團隊能力與生態系統-1024x575.png 1024w, https://dongdonggcp.com/wp-content/uploads/2026/03/選擇技術棧的核心考量一-團隊能力與生態系統-300x168.png 300w, https://dongdonggcp.com/wp-content/uploads/2026/03/選擇技術棧的核心考量一-團隊能力與生態系統-768x431.png 768w, https://dongdonggcp.com/wp-content/uploads/2026/03/選擇技術棧的核心考量一-團隊能力與生態系統-1536x862.png 1536w, https://dongdonggcp.com/wp-content/uploads/2026/03/選擇技術棧的核心考量一-團隊能力與生態系統-2048x1149.png 2048w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<h3 class="wp-block-heading">考量因素三：產品規模與擴充需求</h3>



<p class="wp-block-paragraph">你的產品預計有多少使用者？每秒需要處理多少請求？這些數字直接影響技術棧的選擇。</p>



<ul class="wp-block-list">
<li><strong>MVP 或早期新創</strong>：選擇開發速度快、社群資源豐富的技術棧，例如 Ruby on Rails 或 Next.js，讓你快速驗證商業模式。</li>



<li><strong>成熟產品或企業級應用</strong>：考量水平擴充能力、服務拆分（微服務架構）、資料一致性等需求，這時候 Kubernetes、Cloud Run、Cloud Spanner 等技術就變得重要。</li>
</ul>



<p class="wp-block-paragraph">不要在 MVP 階段就用 Kubernetes，那是過度設計；但也不要等到 100 萬使用者的時候才開始思考擴充性，那時候遷移的代價會讓你後悔莫及。</p>



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="542" src="https://dongdonggcp.com/wp-content/uploads/2026/03/選擇技術棧的核心考量二-產品規模與生命週期-1024x542.png" alt="" class="wp-image-11788" srcset="https://dongdonggcp.com/wp-content/uploads/2026/03/選擇技術棧的核心考量二-產品規模與生命週期-1024x542.png 1024w, https://dongdonggcp.com/wp-content/uploads/2026/03/選擇技術棧的核心考量二-產品規模與生命週期-300x159.png 300w, https://dongdonggcp.com/wp-content/uploads/2026/03/選擇技術棧的核心考量二-產品規模與生命週期-768x407.png 768w, https://dongdonggcp.com/wp-content/uploads/2026/03/選擇技術棧的核心考量二-產品規模與生命週期-1536x814.png 1536w, https://dongdonggcp.com/wp-content/uploads/2026/03/選擇技術棧的核心考量二-產品規模與生命週期-2048x1085.png 2048w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">選擇技術棧的核心考量二 產品規模與生命週期</figcaption></figure>



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



<h2 class="wp-block-heading">技術棧與職缺的關係：為什麼工程師一定要搞清楚？</h2>



<p class="wp-block-paragraph">對工程師來說，理解技術棧不只是技術知識，更是求職和職涯規劃的核心能力。</p>



<h3 class="wp-block-heading">看懂職缺描述中的技術棧要求</h3>



<p class="wp-block-paragraph">打開任何一份工程師職缺，你幾乎都會看到類似這樣的敘述：</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">「本職位需熟悉 React、Node.js、PostgreSQL，有 Docker 或 Kubernetes 使用經驗者優先。」</p>
</blockquote>



<p class="wp-block-paragraph">這就是一個完整技術棧的描述——前端（React）、後端（Node.js）、資料庫（PostgreSQL）、部署（Docker/K8s）四個層次都列了出來。</p>



<p class="wp-block-paragraph">當你看到這樣的職缺，不要只看你會的部分，要整體評估這套技術棧的合理性。如果你精通其中 3 個層次，剩下 1 個只要短期學習就能上手，這份職缺很可能適合你。</p>



<p class="wp-block-paragraph">值得注意的是，很多公司寫的技術棧要求是「理想條件」，而不是「硬性門檻」。如果你對其中的核心技術掌握得很好，其他的有基礎理解，主動在履歷和面試中說明你的學習計畫，往往比硬湊技能清單更有說服力。</p>



<h3 class="wp-block-heading">全端工程師需要掌握整個技術棧嗎？</h3>



<p class="wp-block-paragraph">不一定，但理解整個技術棧的架構是必要的。</p>



<p class="wp-block-paragraph">全端工程師的核心價值在於「能獨立完成一個功能的完整開發流程」，從 UI 設計、API 串接、資料庫查詢到部署上線。但這不代表每個層次都要精通——你可以在前端和後端都有紮實能力，對部署有基本掌握，這樣就足以擔任全端工程師。</p>



<p class="wp-block-paragraph">真正的全端能力，是能在不同層次之間溝通和協作，理解每個層次的限制和可能性，而不是在每個層次都達到專家級別。後者幾乎是不可能的任務，也沒有必要。</p>



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



<h2 class="wp-block-heading">技術棧的演進：從單一架構到微服務</h2>



<p class="wp-block-paragraph">技術棧不是靜止不動的，它會隨著產品成長和技術趨勢持續演進。理解這個演進過程，能幫助你做出更有遠見的技術決策。</p>



<h3 class="wp-block-heading">傳統單體架構的技術棧長什麼樣子？</h3>



<p class="wp-block-paragraph">在 2010 年代以前，絕大多數 Web 應用都採用<strong>單體架構（Monolithic Architecture）</strong>——整個應用被打包成一個部署單元，前端、後端、資料庫存取邏輯全部寫在一起。</p>



<p class="wp-block-paragraph">一個典型的單體架構技術棧可能是：</p>



<ul class="wp-block-list">
<li><strong>語言</strong>：Java</li>



<li><strong>框架</strong>：Spring MVC</li>



<li><strong>資料庫</strong>：Oracle Database</li>



<li><strong>伺服器</strong>：Apache Tomcat</li>



<li><strong>部署</strong>：手動部署到單一實體伺服器</li>
</ul>



<p class="wp-block-paragraph">這種架構的優點是開發簡單、部署直覺；缺點是當應用規模變大，每次更新都需要重新部署整個系統，任何一個模組出問題都可能影響整個應用。</p>



<h3 class="wp-block-heading">微服務架構如何改變技術棧的選擇？</h3>



<p class="wp-block-paragraph">微服務架構（Microservices Architecture）把一個大型應用拆解成多個小型、獨立的服務，每個服務負責一個特定的業務功能，各自部署、各自擴展。</p>



<p class="wp-block-paragraph">這種架構的出現，根本性地改變了技術棧的選擇邏輯：</p>



<p class="wp-block-paragraph"><strong>服務可以用不同語言寫</strong>：負責影像處理的服務可以用 Python，負責即時通訊的服務可以用 Go，負責前端 API 的服務可以用 Node.js。不同服務有不同的技術棧，這完全沒問題。</p>



<p class="wp-block-paragraph"><strong>容器化成為標配</strong>：Docker 讓每個服務都能在隔離的環境中運行，Kubernetes 負責協調和管理這些容器。這兩個工具幾乎成了現代微服務架構的標配。</p>



<p class="wp-block-paragraph"><strong>API 閘道與服務網格</strong>：服務之間的溝通需要有人統一管理，API Gateway（如 Kong、AWS API Gateway）和 Service Mesh（如 Istio）因此變得不可或缺。</p>



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="556" src="https://dongdonggcp.com/wp-content/uploads/2026/03/架構演進-從單一巨石到分散式星系-1024x556.png" alt="" class="wp-image-11787" srcset="https://dongdonggcp.com/wp-content/uploads/2026/03/架構演進-從單一巨石到分散式星系-1024x556.png 1024w, https://dongdonggcp.com/wp-content/uploads/2026/03/架構演進-從單一巨石到分散式星系-300x163.png 300w, https://dongdonggcp.com/wp-content/uploads/2026/03/架構演進-從單一巨石到分散式星系-768x417.png 768w, https://dongdonggcp.com/wp-content/uploads/2026/03/架構演進-從單一巨石到分散式星系-1536x833.png 1536w, https://dongdonggcp.com/wp-content/uploads/2026/03/架構演進-從單一巨石到分散式星系-2048x1111.png 2048w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">架構演進 從單一巨石到分散式星系</figcaption></figure>



<p class="wp-block-paragraph">Netflix、Uber、Airbnb 都是採用微服務架構的知名案例。以 Netflix 為例，它的串流服務背後有超過 700 個獨立的微服務，每個服務有自己的技術棧、自己的部署週期、自己的擴展策略。</p>



<p class="wp-block-paragraph">不過，微服務架構並不是萬能藥。它引入了<strong>分散式系統的複雜性</strong>——服務間的網路延遲、資料一致性、分散式追蹤，這些都是單體架構不需要面對的問題。對小型團隊或早期產品來說，微服務往往是過度設計，單體架構反而更務實。</p>



<p class="wp-block-paragraph">業界有一句話說得很好：「先建立單體，等你真的遇到單體架構撐不住的問題，再考慮拆分成微服務。」</p>



<p class="wp-block-paragraph"></p>



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



<h2 class="wp-block-heading">常見問題解答（FAQ）</h2>



<h3 class="wp-block-heading">Q1：技術棧跟技術架構是同一件事嗎？</h3>



<p class="wp-block-paragraph">不完全相同。技術棧著重於「用了哪些具體技術和工具」，技術架構則偏向描述「這些技術和系統元件之間如何組織和溝通」。技術架構圖通常會包含技術棧的資訊，但還會加上流量走向、服務邊界、資料流等更宏觀的設計決策。</p>



<h3 class="wp-block-heading">Q2：一個公司可以同時有多套技術棧嗎？</h3>



<p class="wp-block-paragraph">可以，而且很常見。大型公司的不同產品線、不同團隊，往往會有各自獨立的技術棧。例如行銷網站可能用 JAMstack，核心業務系統用 Java + PostgreSQL，資料分析平台用 Python + BigQuery。只要各套技術棧能完成各自的目標，多套並存完全沒問題。</p>



<h3 class="wp-block-heading">Q3：沒有技術背景的 PM 或創業者需要懂技術棧嗎？</h3>



<p class="wp-block-paragraph">需要有基本理解，但不需要深入到工程師的層次。能看懂技術棧的組成，理解每個層次的大致職責，能幫助你在討論產品技術決策時做出更有依據的判斷，也能和工程師溝通得更順暢。</p>



<h3 class="wp-block-heading">Q4：前端工程師需要了解整個技術棧嗎？</h3>



<p class="wp-block-paragraph">理解整體技術棧會讓前端工程師更有價值。當你知道後端 API 是怎麼設計的、資料庫的查詢有哪些限制，你在設計前端資料流和 API 串接時，就能做出更合理的決策，也更容易和後端工程師協作。</p>



<h3 class="wp-block-heading">Q5：技術棧選定之後，可以中途更換嗎？</h3>



<p class="wp-block-paragraph">可以，但成本很高，需要謹慎評估。局部更換（例如把 MySQL 換成 PostgreSQL）相對容易；全面替換（例如把整個後端從 PHP 換成 Go）則需要大量的重寫工作和測試驗證。通常建議採用漸進式遷移，而非一次性大規模替換。</p>



<h3 class="wp-block-heading">Q6：開源技術和商業技術在技術棧選擇上有什麼考量？</h3>



<p class="wp-block-paragraph">開源技術的優點是無授權費用、社群活躍、透明度高；商業技術（如 Oracle Database、Salesforce）的優點是有官方支援、SLA 保障、通常整合企業級功能。技術棧的選擇要考慮長期的授權成本、廠商綁定風險、以及技術支援需求。</p>



<h3 class="wp-block-heading">Q7：學習新技術棧，最有效的方式是什麼？</h3>



<p class="wp-block-paragraph">最有效的方式是<strong>實作一個完整的小型專案</strong>，而不只是讀文件或看教學影片。挑一個你感興趣的題目，從設定環境開始，把這套技術棧的每一層都實際用過一遍。遇到問題時查文件和 Stack Overflow，這樣學到的東西會比純粹看教材扎實很多。</p>



<h3 class="wp-block-heading">Q8：雲端原生（Cloud Native）技術棧是什麼意思？</h3>



<p class="wp-block-paragraph">雲端原生技術棧是指專為在雲端環境中運行而設計的技術組合，核心特徵包含：容器化（Docker）、容器編排（Kubernetes）、微服務架構、宣告式 API，以及持續交付流程。這類技術棧設計上就考慮了彈性擴展、高可用性和自動恢復能力。</p>



<h3 class="wp-block-heading">Q9：技術棧的選擇會影響資安嗎？</h3>



<p class="wp-block-paragraph">會有直接影響。不同的技術棧有不同的安全特性和已知漏洞。例如，某個版本的框架可能有已知的 SQL Injection 風險，某個資料庫的預設配置可能存在安全漏洞。選擇有活躍安全更新的技術、定期更新版本、遵循各技術的安全最佳實踐，是維持技術棧安全性的基本要求。</p>



<h3 class="wp-block-heading">Q10：Serverless 架構算是一種技術棧嗎？</h3>



<p class="wp-block-paragraph">Serverless 是一種<strong>部署與執行模型</strong>，而不是完整的技術棧。你仍然需要選擇前端框架、程式語言、資料庫，只是把執行邏輯的部分交給雲端平台（如 AWS Lambda、Google Cloud Functions）管理，不需要自己維護伺服器。所以 Serverless 可以是技術棧中「部署與基礎架構」這個層次的選擇之一。</p>



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



<p class="wp-block-paragraph"><strong>結論：技術棧是技術組合，全端是人的能力，兩者別再搞混了。</strong> 選擇技術棧時，先看團隊能力、再看產品規模、最後看生態系統成熟度，按這個順序想清楚，大多數情況下都能做出合理的決策。</p>



<p class="wp-block-paragraph"></p><p>The post <a href="https://dongdonggcp.com/2026/03/31/what-is-tech-stack-technology-stack-guide/">技術棧是什麼？一文搞懂 Tech Stack 的定義、組成與實際應用</a> first appeared on <a href="https://dongdonggcp.com">東東 GCP 教學 - GCP 實戰講師</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://dongdonggcp.com/2026/03/31/what-is-tech-stack-technology-stack-guide/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>BigQuery 計費方式完整介紹：費用結構、自動擴充與省錢技巧全攻略</title>
		<link>https://dongdonggcp.com/2026/03/27/bigquery-billing-guide/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=bigquery-billing-guide</link>
					<comments>https://dongdonggcp.com/2026/03/27/bigquery-billing-guide/#respond</comments>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Fri, 27 Mar 2026 11:21:19 +0000</pubDate>
				<category><![CDATA[BigQuery]]></category>
		<category><![CDATA[BigQuery Price]]></category>
		<category><![CDATA[大數據]]></category>
		<guid isPermaLink="false">https://dongdonggcp.com/?p=11746</guid>

					<description><![CDATA[<p>完整介紹 BigQuery 三大計費模式：On-Demand、Flat Rate 與 Editions，深入解析 Slot、儲存費用與免費額度，並提供 5 個實用省錢技巧，幫你有效控制 Google Cloud 費用。</p>
<p>The post <a href="https://dongdonggcp.com/2026/03/27/bigquery-billing-guide/">BigQuery 計費方式完整介紹：費用結構、自動擴充與省錢技巧全攻略</a> first appeared on <a href="https://dongdonggcp.com">東東 GCP 教學 - GCP 實戰講師</a>.</p>]]></description>
										<content:encoded><![CDATA[<h1 class="wp-block-heading">BigQuery 計費分兩種模式：</h1>



<ul class="wp-block-list">
<li><strong>On-Demand</strong>：每掃描 1 TB 收費約 $7.19 美元，不查詢不收費</li>



<li><strong>Editions</strong>：2023 年新架構，分 Standard、Enterprise、Enterprise Plus，支援自動擴縮</li>



<li>Flat-rate 已經沒有再提供，請以 Editions 為主。</li>
</ul>



<p class="wp-block-paragraph">官方說明參考<a href="https://cloud.google.com/bigquery/pricing?hl=zh-TW" target="_blank" rel="noopener" title="">這份文件</a>，以下逐一拆解。</p>



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



<h2 class="wp-block-heading">1. <a href="https://dongdonggcp.com/2024/11/23/what-is-bigquery-functions-advantages/" title="[BigQuery 教學]  雲端界陳浩南 – BigQuery 是什麼？功能、組成元件、特色和優勢完整介紹">BigQuery</a> 計費的核心單位：Slot 是什麼？</h2>



<p class="wp-block-paragraph">Slot 是 BigQuery 的虛擬 CPU 單位，代表查詢執行時可用的運算能力。BigQuery 執行查詢時，會自動把工作分散到多個 Slot 並行處理，Slot 越多查詢越快。</p>



<p class="wp-block-paragraph">Slot 中文叫運算單元，在大陸叫”槽”。</p>



<p class="wp-block-paragraph">根據 Google 以前的公開文件  1 槽 (Slot) = 0.5個 vCPU和 0.5GB 的記憶體。</p>



<p class="wp-block-paragraph">但後來可能由於硬體效能提升，後來隱藏了這個數據。</p>



<p class="wp-block-paragraph"><strong>Slot 不夠用時會發生什麼事？</strong></p>



<p class="wp-block-paragraph">On-Demand 模式下，BigQuery 提供每個專案共享的 Slot 資源池。當同一專案內有多個大型查詢同時執行時，會出現排隊（Queuing）的情況，導致執行時間延長。</p>



<p class="wp-block-paragraph">Flat Rate 或 Editions 模式下，你買多少 Slot 就用多少，不會自動借用額外資源。</p>



<figure class="wp-block-image aligncenter size-large is-resized"><img loading="lazy" decoding="async" width="1024" height="542" src="https://dongdonggcp.com/wp-content/uploads/2026/03/BigQuey-計費-Slot-是什麼？-1024x542.png" alt="" class="wp-image-11766" style="aspect-ratio:1.8893608096062084;width:812px;height:auto" srcset="https://dongdonggcp.com/wp-content/uploads/2026/03/BigQuey-計費-Slot-是什麼？-1024x542.png 1024w, https://dongdonggcp.com/wp-content/uploads/2026/03/BigQuey-計費-Slot-是什麼？-300x159.png 300w, https://dongdonggcp.com/wp-content/uploads/2026/03/BigQuey-計費-Slot-是什麼？-768x406.png 768w, https://dongdonggcp.com/wp-content/uploads/2026/03/BigQuey-計費-Slot-是什麼？-1536x813.png 1536w, https://dongdonggcp.com/wp-content/uploads/2026/03/BigQuey-計費-Slot-是什麼？.png 1844w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">BigQuey 計費 Slot 是什麼？</figcaption></figure>



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



<h2 class="wp-block-heading">2. 隨需計費（On-Demand Pricing）深度解析</h2>



<h3 class="wp-block-heading">查詢費用的計算方式</h3>



<ul class="wp-block-list">
<li>計費單位：每掃描 1 TB 收費約 $7.19 美元（台灣區域 asia-east1）</li>



<li>最小計費單位：10 MB，就算你的查詢只掃描 1 MB的資料，系統仍以 10 MB 計算</li>



<li>計費基礎：查詢實際讀取的欄位資料量，不是整張表的大小</li>



<li>要注意，如果你的表格有 100,000 資料，即使你查詢使用 Whare 或 Limit 語法，只撈出 10 筆資料，它還是讀取 100,000 筆資料，除非你有做分區表（後面詳述） 。</li>



<li>每個月前面 1 TB 屬於免費額度，超過 1 TB 的資料量才開始計費。</li>



<li>可參考 <a href="https://cloud.google.com/products/calculator?hl=en&amp;dl=CjhDaVE0TkdRM01qTTJaaTFtT0RrekxUUTVaall0WVRZek55MWhNalk1WkdGaU5EaGlNREFRQVE9PRALGiQ5QTMwMjVEMy0yNzE3LTQ4MjUtODlEMy02QzBFQjRGNzY3RjY" target="_blank" rel="noopener" title="">GCP 價格計算機</a>的數據：</li>
</ul>



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="522" src="https://dongdonggcp.com/wp-content/uploads/2026/03/BigQuery-每月第-1-TB-免費，超過部分才計費2-1024x522.png" alt="" class="wp-image-11749" srcset="https://dongdonggcp.com/wp-content/uploads/2026/03/BigQuery-每月第-1-TB-免費，超過部分才計費2-1024x522.png 1024w, https://dongdonggcp.com/wp-content/uploads/2026/03/BigQuery-每月第-1-TB-免費，超過部分才計費2-300x153.png 300w, https://dongdonggcp.com/wp-content/uploads/2026/03/BigQuery-每月第-1-TB-免費，超過部分才計費2-768x392.png 768w, https://dongdonggcp.com/wp-content/uploads/2026/03/BigQuery-每月第-1-TB-免費，超過部分才計費2-1536x783.png 1536w, https://dongdonggcp.com/wp-content/uploads/2026/03/BigQuery-每月第-1-TB-免費，超過部分才計費2-2048x1045.png 2048w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">BigQuery 超過 1 TB 的資料量才開始計費，如圖 2 TB 只計 1 TB 費用。 </figcaption></figure>



<h3 class="wp-block-heading">使用 Dry Run 預估費用</h3>



<p class="wp-block-paragraph">執行查詢前，可用 Dry Run 模式預估掃描量，完全不收費。</p>



<p class="wp-block-paragraph"><strong>操作方式：</strong></p>



<p class="wp-block-paragraph">在 BigQuery 主控台，點選「More → Query settings → Dry Run」；或在 CLI 使用 <code>--dry_run</code> 參數，系統會直接告訴你這次查詢預計掃描多少 Bytes。</p>



<p class="wp-block-paragraph">另外，BigQuery 主控台的 SQL 編輯器右上角，每次寫完查詢都會顯示「This query will process X GB」。執行前先看這個數字，是控制費用的第一道關卡。</p>



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="511" src="https://dongdonggcp.com/wp-content/uploads/2026/03/右上角就是-BigQuery-的-Dry-Run-模式-1024x511.png" alt="" class="wp-image-11747" srcset="https://dongdonggcp.com/wp-content/uploads/2026/03/右上角就是-BigQuery-的-Dry-Run-模式-1024x511.png 1024w, https://dongdonggcp.com/wp-content/uploads/2026/03/右上角就是-BigQuery-的-Dry-Run-模式-300x150.png 300w, https://dongdonggcp.com/wp-content/uploads/2026/03/右上角就是-BigQuery-的-Dry-Run-模式-768x383.png 768w, https://dongdonggcp.com/wp-content/uploads/2026/03/右上角就是-BigQuery-的-Dry-Run-模式-1536x766.png 1536w, https://dongdonggcp.com/wp-content/uploads/2026/03/右上角就是-BigQuery-的-Dry-Run-模式-2048x1022.png 2048w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">BigQuery 的 Dry Run 模式</figcaption></figure>



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



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



<h2 class="wp-block-heading">3. BigQuery Editions：新版計費方案全解析</h2>



<p class="wp-block-paragraph">以前 BigQuery 提供 Flat Rate，有別於 On-Demand 像計程車跳錶，每掃描一點資料收一點錢；</p>



<p class="wp-block-paragraph">Flat Rate 像月租車，費用固定，查詢不另外計費。</p>



<p class="wp-block-paragraph">2023 年，Google 推出 Editions 架構，重新定義 BigQuery 的計費方式。</p>



<h3 class="wp-block-heading">Standard、Enterprise 與 Enterprise Plus 比較</h3>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>版本</th><th>特色</th><th>適合對象</th></tr></thead><tbody><tr><td>Standard</td><td>支援 Autoscaler，按使用 Slot 小時數計費，無承諾折扣</td><td>一般分析工作負載</td></tr><tr><td>Enterprise</td><td>加入 CMEK、資料列層級安全控制、BI Engine；支援月付與年約折扣</td><td>有安全合規需求的企業</td></tr><tr><td>Enterprise Plus</td><td>Cross-region 容災、Time Travel 最長 7 天</td><td>對資料治理有嚴格要求的大型企業</td></tr></tbody></table></figure>



<h3 class="wp-block-heading">Editions 和舊版 Flat Rate 最大的差異</h3>



<p class="wp-block-paragraph">舊版 Flat Rate：Slot 數量固定，資源無法自動調整。</p>



<p class="wp-block-paragraph">如果你買了 100 個 <strong>Slots (運算單元)</strong>，那這 100 個單位就是專屬於你的，即便你的工程師下班了、資料庫閒置在那裡，你還是要付這 100 個單位的完整費用。</p>



<p class="wp-block-paragraph">Editions：引入 <strong>Autoscaler</strong>，查詢量高峰時自動增加 Slot，閒置時自動縮減，不再需要猜測最高需求來決定購買數量。</p>



<p class="wp-block-paragraph">正因為計費邏輯從「買斷固定數量」變成了「按實際彈性用量付費」，所以你在設定 <strong>Reservations (預留項目)</strong> 時，會發現 Google 不再給你一個「固定 100 Slots 的總價」。</p>



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="512" src="https://dongdonggcp.com/wp-content/uploads/2026/03/BigQuery-Editions-計費架構-1024x512.png" alt="" class="wp-image-11769" srcset="https://dongdonggcp.com/wp-content/uploads/2026/03/BigQuery-Editions-計費架構-1024x512.png 1024w, https://dongdonggcp.com/wp-content/uploads/2026/03/BigQuery-Editions-計費架構-300x150.png 300w, https://dongdonggcp.com/wp-content/uploads/2026/03/BigQuery-Editions-計費架構-768x384.png 768w, https://dongdonggcp.com/wp-content/uploads/2026/03/BigQuery-Editions-計費架構-1536x769.png 1536w, https://dongdonggcp.com/wp-content/uploads/2026/03/BigQuery-Editions-計費架構-2048x1025.png 2048w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">BigQuery Editions 計費架構</figcaption></figure>



<p class="wp-block-paragraph">系統現在只會讓你設定一個 <strong>Max Reservoir Size (預留項目大小上限)</strong>，這就像是幫你的信用卡設一個「單筆消費限額」，防止自動擴充得太過火導致帳單爆炸。</p>



<figure class="wp-block-image aligncenter size-full is-resized"><img loading="lazy" decoding="async" width="866" height="970" src="https://dongdonggcp.com/wp-content/uploads/2026/03/BigQuery-預留項目大小上限.png" alt="" class="wp-image-11750" style="aspect-ratio:0.8928100139501565;width:434px;height:auto" srcset="https://dongdonggcp.com/wp-content/uploads/2026/03/BigQuery-預留項目大小上限.png 866w, https://dongdonggcp.com/wp-content/uploads/2026/03/BigQuery-預留項目大小上限-268x300.png 268w, https://dongdonggcp.com/wp-content/uploads/2026/03/BigQuery-預留項目大小上限-768x860.png 768w" sizes="(max-width: 866px) 100vw, 866px" /><figcaption class="wp-element-caption">BigQuery 預留項目大小上限</figcaption></figure>



<p class="wp-block-paragraph">既然實際支出是根據每分每秒的波動累積起來的，那份試算表列出的 25%、50%、75% <strong>Utilization (使用率)</strong>，其實是在幫你估計：如果你的業務平均負載在這些水位，你月底大概會收到多少錢的帳單。</p>



<figure class="wp-block-image aligncenter size-large is-resized"><img loading="lazy" decoding="async" width="1024" height="757" src="https://dongdonggcp.com/wp-content/uploads/2026/03/BigQuery-保留項目依照預估用量的試算-1024x757.png" alt="" class="wp-image-11751" style="aspect-ratio:1.352755222215335;width:523px;height:auto" srcset="https://dongdonggcp.com/wp-content/uploads/2026/03/BigQuery-保留項目依照預估用量的試算-1024x757.png 1024w, https://dongdonggcp.com/wp-content/uploads/2026/03/BigQuery-保留項目依照預估用量的試算-300x222.png 300w, https://dongdonggcp.com/wp-content/uploads/2026/03/BigQuery-保留項目依照預估用量的試算-768x568.png 768w, https://dongdonggcp.com/wp-content/uploads/2026/03/BigQuery-保留項目依照預估用量的試算.png 1250w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">BigQuery 保留項目依照預估用量的試算</figcaption></figure>



<p class="wp-block-paragraph">之所以沒有列出 100% 的費用，是因為在 <strong>Autoscaling (自動擴充)</strong> 的機制下，除非你的查詢量大到 24 小時都把這 100 個 <strong>Slots</strong> 佔滿，否則你幾乎不會付到 100% 的錢。</p>



<p class="wp-block-paragraph">這也是為什麼你看到 <strong>Baseline (基準運算單元)</strong> 的選項會被設為 0 或較低的數值；<strong>Baseline</strong> 代表「無論如何我都要保有的最低戰力」，如果你的 <strong>Baseline</strong> 設得越低，系統在沒事做的時候就能縮得越小，省下更多費用。</p>



<p class="wp-block-paragraph"><strong>你可能會問， On-Demand 的都直接去使用 Enterprise (企業版) 的 自動擴充 (Autoscaling) 功能就好了，反正沒有用就沒費用，有用還比較便宜，對嗎？</strong></p>



<h4 class="wp-block-heading">BigQuery 隱藏的「計費邏輯」</h4>



<p class="wp-block-paragraph">BigQuery Edition 並不一定比原本的 <strong>On-demand (按需求計費)</strong> 便宜，因為計費單位的根本不同：</p>



<p class="wp-block-paragraph">在 <strong>On-demand (按需求計費)</strong> 的模式下，Google 是看你的 SQL 指令「掃描了多少資料量」來收錢。</p>



<p class="wp-block-paragraph"><strong>BigQuery Edition </strong>，計費的標竿就完全改變了，系統改為計算你「使用了多少運算力（<strong>Slots</strong>）以及用了多久（時間）」。就像搬家「按出動的人力和時間算錢」一樣。</p>



<h4 class="wp-block-heading">哪一種比較划算，完全取決於你的行李（資料）長什麼樣子</h4>



<p class="wp-block-paragraph">首先要考慮你原本 On-Deman 的每月費用是否超過 2,000 美元，這種用量在台灣通常是大企業才要考慮。</p>



<p class="wp-block-paragraph">如果你的查詢語法寫得不夠有效率，導致系統需要動用大量 <strong>Slots</strong> 埋頭苦幹很久，那麼在 <strong>Enterprise (企業版)</strong> 下產生的費用，反而有可能會超過原本的 <strong>On-demand (按需求計費)</strong>。</p>



<p class="wp-block-paragraph">如果你的工作負載（Workload）是屬於那種「掃描資料量極大，但運算過程很簡單」的類型，<strong>Enterprise (企業版)</strong> 可能會顯得非常划算；反之，如果你的資料量很小，但 SQL 邏輯複雜到讓系統算到滿頭大汗，那 <strong>On-demand (按需求計費)</strong> 反而可能是你的省錢好朋友。</p>



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="511" src="https://dongdonggcp.com/wp-content/uploads/2026/03/何時要切換成-BigQuery-Editions？-1024x511.png" alt="" class="wp-image-11767" srcset="https://dongdonggcp.com/wp-content/uploads/2026/03/何時要切換成-BigQuery-Editions？-1024x511.png 1024w, https://dongdonggcp.com/wp-content/uploads/2026/03/何時要切換成-BigQuery-Editions？-300x150.png 300w, https://dongdonggcp.com/wp-content/uploads/2026/03/何時要切換成-BigQuery-Editions？-768x384.png 768w, https://dongdonggcp.com/wp-content/uploads/2026/03/何時要切換成-BigQuery-Editions？-1536x767.png 1536w, https://dongdonggcp.com/wp-content/uploads/2026/03/何時要切換成-BigQuery-Editions？.png 1902w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">何時要切換成 BigQuery Editions？</figcaption></figure>



<h3 class="wp-block-heading">Commitment 承諾方案的折扣</h3>



<figure class="wp-block-image aligncenter size-large is-resized"><img loading="lazy" decoding="async" width="1024" height="417" src="https://dongdonggcp.com/wp-content/uploads/2026/03/BigQuery-的承諾使用折扣-支出型和資源型-1024x417.png" alt="" class="wp-image-11752" style="width:747px;height:auto" srcset="https://dongdonggcp.com/wp-content/uploads/2026/03/BigQuery-的承諾使用折扣-支出型和資源型-1024x417.png 1024w, https://dongdonggcp.com/wp-content/uploads/2026/03/BigQuery-的承諾使用折扣-支出型和資源型-300x122.png 300w, https://dongdonggcp.com/wp-content/uploads/2026/03/BigQuery-的承諾使用折扣-支出型和資源型-768x313.png 768w, https://dongdonggcp.com/wp-content/uploads/2026/03/BigQuery-的承諾使用折扣-支出型和資源型-1536x626.png 1536w, https://dongdonggcp.com/wp-content/uploads/2026/03/BigQuery-的承諾使用折扣-支出型和資源型.png 2038w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">BigQuery 的承諾使用折扣 &#8211; 支出型和資源型</figcaption></figure>



<p class="wp-block-paragraph">既然叫做「承諾」，就是不管你有沒有用 Slots，你每個月都要支付固定的費用。</p>



<p class="wp-block-paragraph">這是和上述 BigQuery Editions 最大的不同。</p>



<h4 class="wp-block-heading">資源型承諾 (Resourced-Based CUD)：折扣最深但相對固定</h4>



<p class="wp-block-paragraph">從上方表格最右側兩欄看到，你會發現 <strong>Resource CUDs</strong> 的價格較低，因為你給 Google 的承諾非常死，讓他們能非常精確地預估硬體採購和機房調度，所以他們給出的折扣也最慷慨，3 年期的價格甚至能讓你省下將近 40% 的費用。</p>



<p class="wp-block-paragraph">然而，高折扣的代價就是「專款專用」。當你簽下 <strong>Resource CUDs</strong> 時，通常需要鎖定特定的 <strong>Slots (運算單元)</strong> 數量以及特定的 <strong>Region (區域)</strong>。</p>



<p class="wp-block-paragraph">這對於已經進入穩定營運期、且每天運算量都像心電圖一樣平穩的老牌公司來說是首選，因為他們很清楚自己每小時就是要燒掉這麼多 <strong>Slots</strong>，直接選這個方案最省錢。</p>



<h4 class="wp-block-heading">支出型承諾 (Spent Based)：靈活但折扣較淺</h4>



<p class="wp-block-paragraph">表格左側數過來第二、三欄就是支出型承諾，2026 年才正式上線，例如「我保證接下來一年，每小時一定會在這裡消費 100 元」。</p>



<p class="wp-block-paragraph">不論你的 <strong>Slots (運算單元)</strong> 是在台灣還是在日本執行，或者你今天用的是 <strong>Enterprise (企業版)</strong> 還是 <strong>Enterprise Plus (企業加強版)</strong>，這份承諾都能幫你折抵支出。因為它給了你極大的轉身空間，所以 Google 給你的折扣就相對比較小，大約是在 10% 到 20% 之間。</p>



<p class="wp-block-paragraph">這種適合那些業務還在變動、或者數據分散在多個 <strong>Regions (區域)</strong> 的團隊。</p>



<p class="wp-block-paragraph">如果你今天還在測試哪一種 <strong>BigQuery Edition (版本)</strong> 最適合你，或者你擔心未來半年公司會把機房從台灣搬到其他國家，那麼鎖定這種以「美金金額」為單位的 <strong>BigQuery CUD</strong>，就能確保你的折扣不會因為換了環境就失效。</p>



<p class="wp-block-paragraph">它就像一張通用的禮券，雖然面額折扣沒那麼多，但走到哪都能用，這就是它存在的最大價值。</p>



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



<h2 class="wp-block-heading">4. 儲存費用（Storage Costs）完整說明</h2>



<h3 class="wp-block-heading">Active Storage vs. Long-term Storage</h3>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>類型</th><th>條件</th><th>費率</th></tr></thead><tbody><tr><td>Active Storage（活躍儲存）</td><td>過去 90 天內有被修改</td><td>較高</td></tr><tr><td>Long-term Storage（長期儲存）</td><td>連續 90 天未被修改，自動降級</td><td>約為活躍儲存的一半</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">Long-term Storage 的降級是<strong>自動發生</strong>的，不需要手動操作。</p>



<h3 class="wp-block-heading">降低儲存成本的策略</h3>



<ul class="wp-block-list">
<li>超過一年的歷史資料匯出到 Google Cloud Storage（GCS），費率比 BigQuery 低</li>



<li>使用 <strong>Table Expiration</strong> 功能，設定資料過期自動刪除</li>



<li>對大型表格採用分區設計，只保留必要分區在 BigQuery，其餘歸檔</li>
</ul>



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



<h2 class="wp-block-heading">5. 免費額度（Free Tier）</h2>



<p class="wp-block-paragraph">每個月的免費額度：</p>



<ul class="wp-block-list">
<li>查詢：前 <strong>1 TB</strong> 掃描量免費</li>



<li>儲存：前 <strong>10 GB</strong> 免費</li>



<li>資料匯入：<strong>Batch Load 完全免費</strong>（這點常被忽略）</li>
</ul>



<p class="wp-block-paragraph">PS. 這個免費額度是完全不用註冊 300 美金試用的情況下，也可以直接使用的，可參考 <a href="https://docs.cloud.google.com/bigquery/docs/sandbox?hl=zh-tw" target="_blank" rel="noopener" title="">BigQuery 免費沙箱</a>。</p>



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



<h2 class="wp-block-heading">6. 其他潛在費用</h2>



<h3 class="wp-block-heading">資料串流（Streaming Insert）費用</h3>



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="397" src="https://dongdonggcp.com/wp-content/uploads/2026/03/BigQuery-載入資料的費用-1024x397.png" alt="" class="wp-image-11753" srcset="https://dongdonggcp.com/wp-content/uploads/2026/03/BigQuery-載入資料的費用-1024x397.png 1024w, https://dongdonggcp.com/wp-content/uploads/2026/03/BigQuery-載入資料的費用-300x116.png 300w, https://dongdonggcp.com/wp-content/uploads/2026/03/BigQuery-載入資料的費用-768x298.png 768w, https://dongdonggcp.com/wp-content/uploads/2026/03/BigQuery-載入資料的費用-1536x596.png 1536w, https://dongdonggcp.com/wp-content/uploads/2026/03/BigQuery-載入資料的費用-2048x794.png 2048w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">BigQuery 載入資料的費用</figcaption></figure>



<p class="wp-block-paragraph">使用 Streaming Insert 把即時資料寫入 BigQuery，按寫入資料量額外計費。</p>



<p class="wp-block-paragraph">原本只有 Steaming Inserts 這個方法，後來又提供 BigQuery Storage Write API，更為划算。</p>



<p class="wp-block-paragraph">如果不需要即時性，改用 Batch Load 可完全省掉這筆費用。</p>



<h3 class="wp-block-heading">BigQuery ML 計費</h3>



<figure class="wp-block-image aligncenter size-large is-resized"><img loading="lazy" decoding="async" width="1024" height="652" src="https://dongdonggcp.com/wp-content/uploads/2026/03/BigQuery-ML-計費方式-1024x652.png" alt="" class="wp-image-11754" style="width:748px;height:auto" srcset="https://dongdonggcp.com/wp-content/uploads/2026/03/BigQuery-ML-計費方式-1024x652.png 1024w, https://dongdonggcp.com/wp-content/uploads/2026/03/BigQuery-ML-計費方式-300x191.png 300w, https://dongdonggcp.com/wp-content/uploads/2026/03/BigQuery-ML-計費方式-768x489.png 768w, https://dongdonggcp.com/wp-content/uploads/2026/03/BigQuery-ML-計費方式-1536x979.png 1536w, https://dongdonggcp.com/wp-content/uploads/2026/03/BigQuery-ML-計費方式-2048x1305.png 2048w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">BigQuery ML 兩類 Model 價差極大</figcaption></figure>



<h4 class="wp-block-heading">你會看到 BigQuery ML 兩類 Model 價差極大，為什麼？</h4>



<ul class="wp-block-list">
<li>線性回歸、邏輯回歸、K-means、PCA、時間序列等內建疊代模型：$312.50/TiB（台灣約 $359，依匯率與區域調整）。</li>



<li>AutoML Tables、DNN、boosted tree、隨機森林等外部模型：僅 $6.25/TiB（台灣約 $7），因前處理用標準查詢費率，訓練轉 Vertex AI 但折算低。<a href="https://docs.cloud.google.com/bigquery/docs/bqml-introduction?hl=zh-tw" target="_blank" rel="noreferrer noopener"></a></li>
</ul>



<h4 class="wp-block-heading">差異原因</h4>



<p class="wp-block-paragraph">內建疊代模型需多次掃描資料（預設 50 次迭代），計算密集，故單 TiB 處理位元組計費高（有效乘以迭代次數）。</p>



<p class="wp-block-paragraph">外部模型多依賴 Vertex AI，因為這類模型被稱為 <strong>External Models</strong>（外部模型）或 <strong>Vertex AI</strong> 整合模型。</p>



<p class="wp-block-paragraph">這報價其實只是一個「過路費」或是「代工準備費」。</p>



<p class="wp-block-paragraph"><strong>BigQuery</strong> 只負責把數據整理好（這個過程稱為 <strong>Preprocessing</strong> 預處理），一旦數據準備好了，它就會把這些資料打包，送到隔壁棟專門做 AI 的工廠——<strong>Vertex AI</strong> 去進行真正的訓練。</p>



<p class="wp-block-paragraph"><strong>而 Vertex AI</strong> 的計費方式通常不是看資料量（TB），而是看它動用了多少台強大的機器、工作了幾個小時（這個單位叫做 <strong>Node-hour</strong> 節點小時），這才是真正昂貴的地方。</p>



<h3 class="wp-block-heading">BigQuery BI Engine 費用</h3>



<p class="wp-block-paragraph">按 GB 小時計費，約 $0.0478 美元/GB/小時。BI 儀表板查詢頻繁時，這筆費用會快速累積。</p>



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



<h2 class="wp-block-heading">7. 5 個實用的省錢技巧</h2>



<h3 class="wp-block-heading">7.1 避免 SELECT * 全表掃描</h3>



<p class="wp-block-paragraph">BigQuery 按掃描的欄位資料量計費。<code>SELECT *</code> 會讀取所有欄位，即使你只用其中幾個，費用照算。</p>



<p class="wp-block-paragraph">一張有 100 個欄位的表格，只選取需要的 5 個欄位，查詢費用可降到原本的 <strong>5%</strong> 左右。</p>



<figure class="wp-block-image aligncenter size-large is-resized"><img loading="lazy" decoding="async" width="1024" height="806" src="https://dongdonggcp.com/wp-content/uploads/2026/03/BigQuery-查詢欄位數量會影響費用-1024x806.png" alt="" class="wp-image-11756" style="width:598px;height:auto" srcset="https://dongdonggcp.com/wp-content/uploads/2026/03/BigQuery-查詢欄位數量會影響費用-1024x806.png 1024w, https://dongdonggcp.com/wp-content/uploads/2026/03/BigQuery-查詢欄位數量會影響費用-300x236.png 300w, https://dongdonggcp.com/wp-content/uploads/2026/03/BigQuery-查詢欄位數量會影響費用-768x605.png 768w, https://dongdonggcp.com/wp-content/uploads/2026/03/BigQuery-查詢欄位數量會影響費用-1536x1209.png 1536w, https://dongdonggcp.com/wp-content/uploads/2026/03/BigQuery-查詢欄位數量會影響費用.png 1842w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">BigQuery 查詢欄位數量會影響費用</figcaption></figure>



<h3 class="wp-block-heading">7.2 善用分區 (分割)（Partitioning）與叢集（Clustering）</h3>



<p class="wp-block-paragraph"><strong>分區</strong>：把大型表格按時間或其他欄位切分。查詢加上分區欄位的篩選條件，BigQuery 只掃描對應分區。</p>



<figure class="wp-block-image aligncenter size-large is-resized"><img loading="lazy" decoding="async" width="1024" height="469" src="https://dongdonggcp.com/wp-content/uploads/2026/03/使用分割表降低查詢量和費用-1024x469.png" alt="" class="wp-image-11755" style="aspect-ratio:2.183475486685331;width:666px;height:auto" srcset="https://dongdonggcp.com/wp-content/uploads/2026/03/使用分割表降低查詢量和費用-1024x469.png 1024w, https://dongdonggcp.com/wp-content/uploads/2026/03/使用分割表降低查詢量和費用-300x137.png 300w, https://dongdonggcp.com/wp-content/uploads/2026/03/使用分割表降低查詢量和費用-768x352.png 768w, https://dongdonggcp.com/wp-content/uploads/2026/03/使用分割表降低查詢量和費用-1536x703.png 1536w, https://dongdonggcp.com/wp-content/uploads/2026/03/使用分割表降低查詢量和費用-2048x937.png 2048w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">使用分割表降低查詢量和費用</figcaption></figure>



<p class="wp-block-paragraph"><strong>叢集</strong>：在分區之內，進一步按特定欄位排序資料。</p>



<p class="wp-block-paragraph">搭配使用分區和叢集，查詢費用可降低 <strong>50% 以上</strong>。</p>



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://dongdonggcp.com/wp-content/uploads/2026/03/BigQuery-資料分區與叢集架構-1024x576.png" alt="" class="wp-image-11768" srcset="https://dongdonggcp.com/wp-content/uploads/2026/03/BigQuery-資料分區與叢集架構-1024x576.png 1024w, https://dongdonggcp.com/wp-content/uploads/2026/03/BigQuery-資料分區與叢集架構-300x169.png 300w, https://dongdonggcp.com/wp-content/uploads/2026/03/BigQuery-資料分區與叢集架構-768x432.png 768w, https://dongdonggcp.com/wp-content/uploads/2026/03/BigQuery-資料分區與叢集架構-1536x864.png 1536w, https://dongdonggcp.com/wp-content/uploads/2026/03/BigQuery-資料分區與叢集架構-2048x1152.png 2048w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption"><strong>BigQuery 資料分區與叢集架構</strong></figcaption></figure>



<h3 class="wp-block-heading">7.3 設定查詢上限與預算警示</h3>



<p class="wp-block-paragraph">在 BigQuery 設定每個用戶或每個專案的每日查詢費用上限（Cost Controls），超過門檻查詢會被自動拒絕。</p>



<p class="wp-block-paragraph">搭配 Google Cloud Billing 的 <strong>Budget Alerts</strong>，費用達到設定百分比時自動發送通知。</p>



<h3 class="wp-block-heading">7.4 善用 Materialized Views</h3>



<p class="wp-block-paragraph">有複雜查詢需要反覆執行（例如每天計算一次彙總報表），改用 <strong>Materialized Views</strong>（實體化視圖）。BigQuery 預先計算並儲存結果，後續查詢直接讀取，省去重複掃描的費用。底層資料更新時，Materialized Views 也會自動更新。</p>



<h3 class="wp-block-heading">7.5 定期評估是否切換 Editions</h3>



<p class="wp-block-paragraph">月費持續增長，超過 2,000 美元時，用 <strong>BigQuery Slot Recommender</strong> 分析歷史查詢記錄，評估購買固定 Slot 是否更划算。</p>



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



<h2 class="wp-block-heading">8. 如何監控與管理費用</h2>



<h3 class="wp-block-heading">用 Google Cloud Console 查看帳單</h3>



<p class="wp-block-paragraph">Billing 頁面可按專案、服務、時間段篩選費用，找出費用來源。</p>



<h3 class="wp-block-heading">設定預算與費用警示</h3>



<p class="wp-block-paragraph">在 Cloud Billing 的「Budgets &amp; alerts」設定預算上限，達到 50%、90%、100% 時自動發送通知。這是避免帳單超出預期的基本防線，每個 BigQuery 使用者都應該設定。</p>



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



<h2 class="wp-block-heading">常見問題（FAQ）</h2>



<p class="wp-block-paragraph"><strong>Q1. Slot 買了沒用完，會退費嗎？</strong></p>



<p class="wp-block-paragraph">BigQuery Editions 的承諾費用固定收費，不論實際使用多少 Slot，費用照算。</p>



<p class="wp-block-paragraph"><strong>Q2. SELECT * 真的會讓費用變很高嗎？</strong></p>



<p class="wp-block-paragraph">是的。BigQuery 依照掃描的欄位資料量計費，<code>SELECT *</code> 讀取所有欄位，就算只用少數欄位費用不變。改成只選必要欄位，有機會省下 <strong>80% 以上</strong>的查詢費用。</p>



<p class="wp-block-paragraph"><strong>Q3. 如何查看每個查詢花了多少錢？</strong></p>



<p class="wp-block-paragraph">透過 <code>INFORMATION_SCHEMA.JOBS_BY_PROJECT</code> 查詢歷史記錄，欄位 <code>total_bytes_billed</code> 乘以當前費率即可估算費用。也可搭配 Cloud Billing Export，把費用明細匯出到 BigQuery 做深入分析。</p>



<p class="wp-block-paragraph"><strong>Q4. BigQuery 資料匯入需要付費嗎？</strong></p>



<p class="wp-block-paragraph">Batch Load（批次匯入）免費。Streaming Insert（串流寫入）按寫入資料量額外收費。</p>



<p class="wp-block-paragraph"><strong>Q5. 如何預防帳單突然暴增？</strong></p>



<p class="wp-block-paragraph">三管齊下：設定每個用戶的查詢費用上限（Cost Controls）、在 Cloud Billing 設定 Budget Alerts、定期審視使用量報告。</p>



<p class="wp-block-paragraph"></p><p>The post <a href="https://dongdonggcp.com/2026/03/27/bigquery-billing-guide/">BigQuery 計費方式完整介紹：費用結構、自動擴充與省錢技巧全攻略</a> first appeared on <a href="https://dongdonggcp.com">東東 GCP 教學 - GCP 實戰講師</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://dongdonggcp.com/2026/03/27/bigquery-billing-guide/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
