Before you begin
- Labs create a Google Cloud project and resources for a fixed time
- Labs have a time limit and no pause feature. If you end the lab, you'll have to restart from the beginning.
- On the top left of your screen, click Start lab to begin
Create a GCS bucket
/ 25
Create an instance template
/ 25
Create an instance group
/ 25
Configure autoscaling for the instance group
/ 25
Create a GCS bucket
/ 25
Create an instance template
/ 25
Create an instance group
/ 25
Configure autoscaling for the instance group
/ 25
在 Compute Engine 代管執行個體群組 (MIG) 使用自動調度資源功能,應用程式就能根據使用者需求自動調整運算資源,兼顧穩定性與成本效益。
在本實驗室中,您要建立代管執行個體群組,並設為根據指標自動調度資源,然後透過 Monitoring 確認應用程式能自行管理運算資源。
在本實驗室中,您將瞭解如何執行下列工作:
請詳閱以下操作說明。實驗室活動會計時,且中途無法暫停。點選「Start Lab」後就會開始計時,顯示可使用 Google Cloud 資源的時間。
您將在真正的雲端環境完成實作實驗室活動,而不是模擬或示範環境。為此,我們會提供新的暫時憑證,供您在實驗室活動期間登入及存取 Google Cloud。
為了順利完成這個實驗室,請先確認:
按一下「Start Lab」按鈕。如果實驗室會產生費用,請在開啟的對話方塊中選取付款方式。右側的「Lab setup and access」面板會顯示下列項目:
請注意,實驗室計時器位於頁面頂端附近,會顯示剩餘時間。
按一下「Open Google Cloud console」。如果使用 Chrome 瀏覽器,也可以按一下滑鼠右鍵,選取「在無痕視窗中開啟連結」。
接著,實驗室會啟動相關資源,並開啟另一個分頁,顯示「登入」頁面。
提示:您可以在不同的視窗並排開啟分頁。
如有必要,請將下方的 Username 貼到「登入」對話方塊。
您也可以在「Lab setup and access」面板找到「Username」。
點選「下一步」。
複製下方的 Password,並貼到「歡迎使用」對話方塊。
您也可以在「Lab setup and access」面板找到「Password」。
點選「下一步」。
繼續點按後續頁面:
Google Cloud 控制台稍後會在這個分頁開啟。
Cloud Shell 是搭載多項開發工具的虛擬機器,提供永久的 5 GB 主目錄,而且在 Google Cloud 中運作。Cloud Shell 提供指令列存取權,方便您使用 Google Cloud 資源。
點按 Google Cloud 控制台頂端的「啟用 Cloud Shell」圖示 。
系統顯示視窗時,請按照下列步驟操作:
連線建立完成即代表已通過驗證,而且專案已設為您的 Project_ID:
gcloud 是 Google Cloud 的指令列工具,已預先安裝於 Cloud Shell,並支援 Tab 鍵自動完成功能。
輸出內容:
輸出內容:
gcloud 的完整說明,請前往 Google Cloud 參閱 gcloud CLI 總覽指南。
您需要為執行個體範本設定一套機制,在每次建立新的 VM 時,自動安裝必要的應用程式與指令碼。系統將從穩定且容易存取的 Cloud Storage 取得開機指令碼 (startup.sh),並在新的執行個體啟動時執行該指令碼。
您將複製本實驗室的範例應用程式開機指令碼與相關檔案,這個應用程式會將資料模式推送至自訂指標,接著您就能將這項指標設為基準,用來控管自動調度資源的行為。
前往 Cloud 控制台,依序選取「導覽選單」圖示 >「Cloud Storage」>「Bucket」,然後點選「建立」。
為 bucket 設定不重複的名稱,但要避開可能會用於其他專案的名稱。如要進一步瞭解如何命名 bucket,請參閱 bucket 命名規範。您可以使用專案 ID 加上「bucket」做為 bucket 名稱。在本實驗室中,這個 bucket 將以 YOUR_BUCKET 表示。
保留預設值,然後點選「建立」。
如果出現「系統會禁止公開存取」彈出式視窗,請點選「確認」。
bucket 建立完成後,「bucket 詳細資料」頁面會隨即開啟。
檢查工作是否已完成
點選「Check my progress」,確認工作已完成。如果成功建立 Cloud Storage bucket,就會看到評估分數。
<YOUR BUCKET> 換成剛才建立的 bucket 名稱:startup.sh:這個殼層指令碼會在 Compute Engine 執行個體新增至代管執行個體群組時,將必要元件安裝至各個執行個體。writeToCustomMetric.js:這段 Node.js 程式碼會建立自訂監控指標,系統將根據這項指標的值來觸發資源調度作業。在正式環境中,這部分將由您實際的應用程式程式碼執行,其回報的值 (appdemo_queue_depth_01) 則是重要的業務指標,例如:佇列中待處理的訊息數、公開資料庫連線數量,或是尚未執行的批次處理工作量。config.json:這個 Node.js 設定檔會指定自訂監控指標的值,供 writeToCustomMetric.js 使用。package.json:這個 Node.js 套件檔案會指定 writeToCustomMetric.js 的標準安裝程序與依附元件。writeToCustomMetric.sh:這個殼層指令碼會在每個 Compute Engine 執行個體中持續執行 writeToCustomMetric.js 程式。執行個體範本是群組中所有 VM 的藍圖。自動調度資源涉及刪除及建立執行個體,因此這項機制必須有明確依據,才能重新建立執行個體。除了機型和 OS 映像檔,範本還會定義最重要的中繼資料,指向存放於 Cloud Storage bucket 的 startup.sh 指令碼。
前往 Cloud 控制台,依序點選「導覽選單」圖示 >「Compute Engine」>「執行個體範本」。
點選頁面頂端的「建立執行個體範本」。
將執行個體範本命名為 autoscaling-instance01。
將「位置」設為「全域」。
在「機器設定」部分,「機器家族」選取「E2」,「機型」則選取「e2-medium」。
向下捲動畫面,點選「進階選項」。
在「管理」分頁的「中繼資料」部分,點選「+ 新增項目」按鈕,逐一輸入下列中繼資料鍵與值。請記得將 [YOUR_BUCKET_NAME] 預留位置換成您的 bucket 名稱:
| 鍵 | 值 |
|---|---|
| startup-script-url | gs://[YOUR_BUCKET_NAME]/startup.sh |
| gcs-bucket | gs://[YOUR_BUCKET_NAME] |
檢查工作是否已完成
點選「Check my progress」,確認工作已完成。如果成功建立執行個體範本,就會看到評估分數。
執行個體群組扮演著容器和控制器的角色,負責管理這一批 VM。為了控管環境,一開始要將自動調度資源模式設為「關閉」,待確認第一個執行個體成功執行自訂指標指令碼後再啟用。
在左側窗格,點選「執行個體群組」。
點選頁面頂端的「建立執行個體群組」。
將「名稱」設為 autoscaling-instance-group-1。
在「執行個體範本」部分,選取剛才建立的執行個體範本。
在「位置」部分,選取「單一可用區」,「區域」與「可用區」則分別設為
將「自動調度資源模式」設為「關閉:不自動調度資源」。
執行個體群組建立完成後,您會再回頭編輯自動調度資源設定。現在,請保留其他設定的預設值。
系統已為您保留自動調度資源設定」。檢查工作是否已完成
點選「Check my progress」,確認工作已完成。如果成功建立執行個體群組,就會看到評估分數。
請稍候,直到剛才新建的執行個體群組旁出現綠色勾號。開機指令碼可能需要幾分鐘的時間,才能完成安裝並開始回報值。
您必須確認單一測試執行個體已成功執行 writeToCustomMetric.js 指令碼,而且資料順利流入 Cloud Monitoring。如果系統未回報指標資料,自動配置器就無法採取行動。請檢查 VM 記錄是否顯示 nodeapp: available,確認這個資料管道運作正常。
若幾分鐘後還沒有反應,請點選「重新整理」。
一樣在「執行個體群組」視窗,點選 autoscaling-instance-group-1 名稱,查看該群組中正在執行的執行個體。
向下捲動畫面,並點選執行個體名稱。由於自動調度資源功能尚未開始新增執行個體,目前只有一個執行個體正在執行。
在「詳細資料」分頁的「記錄」部分,點選「Logging」連結,查看該 VM 執行個體的記錄。
稍候 1 到 2 分鐘,讓系統累積一些資料。接著,將「顯示查詢」切換鈕設為開啟,您會在「查詢」預覽方塊看到 resource.type 和 resource.labels.instance_id。
"nodeapp",完成後的程式碼應如下所示:如果 Node.js 指令碼是在 Compute Engine 執行個體執行,系統就會向 API 傳送要求,記錄項目中也會顯示 nodeapp: available。
確認第一個執行個體成功回報自訂指標資料後,就能根據該指標的數值,為執行個體群組設定自動調度資源功能。
前往 Cloud 控制台,依序點選「Compute Engine」>「執行個體群組」。
點選 autoscaling-instance-group-1 群組。
點選「編輯」。
在「自動調度資源」部分,將「自動調度資源模式」設為「開啟:在群組中新增和移除執行個體」。
將「執行個體數量下限」設為 1,並將「執行個體數量上限」設為 3,界定承諾成本與效能的上下限。換句話說,您至少須支付 1 個執行個體的費用,而系統保證不會擴充超過 3 個執行個體,這樣您就能有效控管成本支出。
在「自動調度資源信號」部分,點選「新增信號」來編輯指標。請設定下列欄位,其餘欄位則一概保留預設值:
,然後點選「設定」。150。當自訂監控指標值高於或低於目標值時,自動配置器會調度代管執行個體群組的資源,視需要增加或減少執行個體數量。目標值可以是任意雙精度值,但本實驗室選擇設為 150,因為這正好符合自訂監控指標回報的值。
,然後點選「選取」。「度量圖」會根據所有執行個體指標的目前平均值來調度資源。例如,「平均佇列深度為 200,超過我指定的目標值 150,因此需要再加一部機器。」這個選項適用於佇列深度或 CPU 使用率這類指標。反之,若將「目標模式」設為 DELTA_PER_MINUTE 或 DELTA_PER_SECOND,自動調度資源的依據就會是觀察到的變化率,而不是平均值。
點選「儲存」。
檢查工作是否已完成
點選「Check my progress」,確認工作已完成。如果成功為執行個體群組設定自動調度資源功能,就會看到評估分數。
Node.js 指令碼會隨時間調整各執行個體回報的自訂指標值。指標值上升時,執行個體群組會透過新增 VM 來擴充資源。一旦偵測到指標值下降,執行個體群組就會移除 VM,藉此縮減資源。請注意,指令碼模擬的是實際指標,因此指標值也可能會上下浮動。
接下來,請點選「監控」分頁標籤,查看自動調度資源後的群組大小圖表,瞭解執行個體群組如何根據指標調度資源。
builtin-igm 執行個體群組。這個群組已經預先啟動一段時間,因此您可以直接在自動調度資源圖表中,查看該執行個體群組的相關詳細資料。自動配置器約需 5 分鐘來正確辨識自訂指標,而指令碼則可能需要 10 到 15 分鐘才能產生足夠的資料,進而觸發自動調度資源行為。
只要將滑鼠游標懸停在圖表上,即可查看更多詳細資料。
您可以切換回先前建立的執行個體群組,查看其運作情況 (但實驗室剩下的時間可能不夠,不一定能看到執行個體群組自動調度資源)。
在實驗室剩餘的時間內,您可以觀察執行個體增減時,自動調度資源圖表會如何起伏變化。
請參考這個自動調度資源範例,瞭解在規模較大的環境中,運算資源與自動調度資源後的執行個體數量如何相互配合。
當下方圖表回報的自訂指標屬性匯總值變動時,上方圖表顯示的執行個體數量也會隨之增減。每個執行個體啟動後,最多需要稍候五分鐘,才會開始回報自訂指標值。在等待自動調度資源功能啟動的同時,可以先參考這張圖表,瞭解接下來的運作情況:
為了觸發擴充資源行為,指令碼一開始產生的值偏高,大約會維持 15 分鐘。
恭喜!在本實驗室中,您建立了 Compute Engine 代管執行個體群組,這個群組會根據自訂 Cloud Monitoring 指標的值自動調度資源。您也學會使用 Cloud 控制台,以圖表呈現自訂指標和執行個體群組大小。
協助您瞭解如何充分運用 Google Cloud 的技術。我們的課程會介紹專業技能和最佳做法,讓您可以快速掌握要領並持續進修。我們提供從基本到進階等級的訓練課程,並有隨選、線上和虛擬課程等選項,方便您抽空參加。認證可協助您驗證及證明自己在 Google Cloud 技術方面的技能和專業知識。
使用手冊上次更新日期:2026 年 5 月 20 日
實驗室上次測試日期:2026 年 2 月 25 日
Copyright 2026 Google LLC 保留所有權利。Google 和 Google 標誌是 Google LLC 的商標,其他公司和產品名稱則有可能是其關聯公司的商標。
This content is not currently available
We can notify you via email when it becomes available
Great!
We can contact you via email if it becomes available
One lab at a time
Confirm to end all existing labs and start this one