Create a GCS bucket

Check my progress

/ 25

Create an instance template

Check my progress

/ 25

Create an instance group

Check my progress

/ 25

Configure autoscaling for the instance group

Check my progress

/ 25

This lab may incorporate AI tools to support your learning.
This content is not yet optimized for mobile devices.
For the best experience, please visit us on a desktop computer using a link sent by email.

GSP087

Google Cloud 自學實驗室

總覽

在 Compute Engine 代管執行個體群組 (MIG) 使用自動調度資源功能,應用程式就能根據使用者需求自動調整運算資源,兼顧穩定性與成本效益。

實驗室架構圖

  • 假如 VM 執行個體故障或健康狀態不良,代管執行個體群組就會自動執行替換作業。
  • 需求高峰期間,群組會水平擴展來處理負載;需求較低時,則會水平縮減,省下不必要的運算資源成本。
  • 使用自訂指標,即可根據應用程式特有的內部健康狀態指標來調度資源,而不只是參考基本的 CPU 使用率。

在本實驗室中,您要建立代管執行個體群組,並設為根據指標自動調度資源,然後透過 Monitoring 確認應用程式能自行管理運算資源。

目標

在本實驗室中,您將瞭解如何執行下列工作:

  • 部署會自動調度資源的 Compute Engine 代管執行個體群組。
  • 建立自訂指標,用來調度執行個體群組資源。
  • 透過 Monitoring 觀察系統運作情況。

設定和需求

瞭解以下事項後,再點選「Start Lab」按鈕

請詳閱以下操作說明。實驗室活動會計時,且中途無法暫停。點選「Start Lab」後就會開始計時,顯示可使用 Google Cloud 資源的時間。

您將在真正的雲端環境完成實作實驗室活動,而不是模擬或示範環境。為此,我們會提供新的暫時憑證,供您在實驗室活動期間登入及存取 Google Cloud。

為了順利完成這個實驗室,請先確認:

  • 可以使用標準的網際網路瀏覽器 (Chrome 瀏覽器為佳)。
注意事項:請使用無痕模式 (建議選項) 或私密瀏覽視窗執行此實驗室,這可以防止個人帳戶和學員帳戶之間的衝突,避免個人帳戶產生額外費用。
  • 是時候完成實驗室活動了!別忘了,活動一旦開始將無法暫停。
注意事項:務必使用實驗室專用的學員帳戶。如果使用其他 Google Cloud 帳戶,可能會產生額外費用。

如何開始實驗室及登入 Google Cloud 控制台

  1. 按一下「Start Lab」按鈕。如果實驗室會產生費用,請在開啟的對話方塊中選取付款方式。右側的「Lab setup and access」面板會顯示下列項目:

    • 「Open Google Cloud console」按鈕
    • 此實驗室所需的臨時憑證 (使用者名稱和密碼)
    • 完成此實驗室所需的其他資訊 (如有)

    請注意,實驗室計時器位於頁面頂端附近,會顯示剩餘時間。

  2. 按一下「Open Google Cloud console」。如果使用 Chrome 瀏覽器,也可以按一下滑鼠右鍵,選取「在無痕視窗中開啟連結」。

    接著,實驗室會啟動相關資源,並開啟另一個分頁,顯示「登入」頁面。

    提示:您可以在不同的視窗並排開啟分頁。

    注意:頁面顯示「選擇帳戶」對話方塊時,請點選「使用其他帳戶」。
  3. 如有必要,請將下方的 Username 貼到「登入」對話方塊。

    {{{user_0.username | "Username"}}}

    您也可以在「Lab setup and access」面板找到「Username」。

  4. 點選「下一步」。

  5. 複製下方的 Password,並貼到「歡迎使用」對話方塊。

    {{{user_0.password | "Password"}}}

    您也可以在「Lab setup and access」面板找到「Password」。

  6. 點選「下一步」。

    重要事項:請務必使用實驗室提供的憑證,而非自己的 Google Cloud 帳戶憑證。 注意:如果使用自己的 Google Cloud 帳戶來進行這個實驗室,可能會產生額外費用。
  7. 繼續點按後續頁面:

    • 接受條款及細則。
    • 由於這是臨時帳戶,請勿新增救援選項或雙重驗證機制。
    • 請勿申請免費試用。

Google Cloud 控制台稍後會在這個分頁開啟。

注意:如要使用 Google Cloud 產品和服務,請按一下「導覽選單」,或在「搜尋」欄位輸入服務或產品名稱。「導覽選單」圖示和搜尋欄位

啟動 Cloud Shell

Cloud Shell 是搭載多項開發工具的虛擬機器,提供永久的 5 GB 主目錄,而且在 Google Cloud 中運作。Cloud Shell 提供指令列存取權,方便您使用 Google Cloud 資源。

  1. 點按 Google Cloud 控制台頂端的「啟用 Cloud Shell」圖示 「啟動 Cloud Shell」圖示。

  2. 系統顯示視窗時,請按照下列步驟操作:

    • 繼續操作 Cloud Shell 視窗。
    • 授權 Cloud Shell 使用您的憑證發出 Google Cloud API 呼叫。

連線建立完成即代表已通過驗證,而且專案已設為您的 Project_ID:。輸出內容中有一行文字,宣告本工作階段的 Project_ID:

Your Cloud Platform project in this session is set to {{{project_0.project_id | "PROJECT_ID"}}}

gcloud 是 Google Cloud 的指令列工具,已預先安裝於 Cloud Shell,並支援 Tab 鍵自動完成功能。

  1. (選用) 您可以執行下列指令來列出使用中的帳戶:
gcloud auth list
  1. 點按「授權」。

輸出內容:

ACTIVE: * ACCOUNT: {{{user_0.username | "ACCOUNT"}}} To set the active account, run: $ gcloud config set account `ACCOUNT`
  1. (選用) 您可以使用下列指令來列出專案 ID:
gcloud config list project

輸出內容:

[core] project = {{{project_0.project_id | "PROJECT_ID"}}} 注意:如需 gcloud 的完整說明,請前往 Google Cloud 參閱 gcloud CLI 總覽指南。

建立應用程式

您需要為執行個體範本設定一套機制,在每次建立新的 VM 時,自動安裝必要的應用程式與指令碼。系統將從穩定且容易存取的 Cloud Storage 取得開機指令碼 (startup.sh),並在新的執行個體啟動時執行該指令碼。

您將複製本實驗室的範例應用程式開機指令碼與相關檔案,這個應用程式會將資料模式推送至自訂指標,接著您就能將這項指標設為基準,用來控管自動調度資源的行為。

注意:本實驗室已自動預先建立執行個體範本與群組,而且目前均在運作中。通常自動調度資源功能啟用後,至少要 30 分鐘才會呈現擴充及縮減資源的行為。因此,稍後您將觀察這個既有群組,看看自訂指標指令碼產生的自訂指標值變化,如何控管資源調度機制。

工作 1:建立 bucket

  1. 前往 Cloud 控制台,依序選取「導覽選單」圖示 >「Cloud Storage」>「Bucket」,然後點選「建立」。

  2. 為 bucket 設定不重複的名稱,但要避開可能會用於其他專案的名稱。如要進一步瞭解如何命名 bucket,請參閱 bucket 命名規範。您可以使用專案 ID 加上「bucket」做為 bucket 名稱。在本實驗室中,這個 bucket 將以 YOUR_BUCKET 表示。

  3. 保留預設值,然後點選「建立」。

  4. 如果出現「系統會禁止公開存取」彈出式視窗,請點選「確認」。

bucket 建立完成後,「bucket 詳細資料」頁面會隨即開啟。

檢查工作是否已完成

點選「Check my progress」,確認工作已完成。如果成功建立 Cloud Storage bucket,就會看到評估分數。

建立 Cloud Storage bucket
  1. 接著在 Cloud Shell 執行下列指令,將開機指令碼檔案從實驗室預設的 Cloud Storage bucket 複製到您的 bucket。請記得將 <YOUR BUCKET> 換成剛才建立的 bucket 名稱:
gcloud storage cp -r gs://spls/gsp087/* gs://<YOUR BUCKET>
  1. 上傳指令碼後,在「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 程式。

工作 2:建立執行個體範本

執行個體範本是群組中所有 VM 的藍圖。自動調度資源涉及刪除及建立執行個體,因此這項機制必須有明確依據,才能重新建立執行個體。除了機型和 OS 映像檔,範本還會定義最重要的中繼資料,指向存放於 Cloud Storage bucket 的 startup.sh 指令碼。

  1. 前往 Cloud 控制台,依序點選「導覽選單」圖示 >「Compute Engine」>「執行個體範本」。

  2. 點選頁面頂端的「建立執行個體範本」。

  3. 將執行個體範本命名為 autoscaling-instance01。

  4. 將「位置」設為「全域」。

  5. 在「機器設定」部分,「機器家族」選取「E2」,「機型」則選取「e2-medium」。

  6. 向下捲動畫面,點選「進階選項」。

  7. 在「管理」分頁的「中繼資料」部分,點選「+ 新增項目」按鈕,逐一輸入下列中繼資料鍵與值。請記得將 [YOUR_BUCKET_NAME] 預留位置換成您的 bucket 名稱:

鍵 值
startup-script-url gs://[YOUR_BUCKET_NAME]/startup.sh
gcs-bucket gs://[YOUR_BUCKET_NAME]

「中繼資料」頁面

  1. 點選「建立」。

檢查工作是否已完成

點選「Check my progress」,確認工作已完成。如果成功建立執行個體範本,就會看到評估分數。

建立執行個體範本

工作 3:建立執行個體群組

執行個體群組扮演著容器和控制器的角色,負責管理這一批 VM。為了控管環境,一開始要將自動調度資源模式設為「關閉」,待確認第一個執行個體成功執行自訂指標指令碼後再啟用。

  1. 在左側窗格,點選「執行個體群組」。

  2. 點選頁面頂端的「建立執行個體群組」。

  3. 將「名稱」設為 autoscaling-instance-group-1。

  4. 在「執行個體範本」部分,選取剛才建立的執行個體範本。

  5. 在「位置」部分,選取「單一可用區」,「區域」與「可用區」則分別設為 和 。

  6. 將「自動調度資源模式」設為「關閉:不自動調度資源」。

執行個體群組建立完成後,您會再回頭編輯自動調度資源設定。現在,請保留其他設定的預設值。

  1. 點選「建立」。
注意:您可以忽略執行個體群組旁邊的警告:「自動調度資源功能已停用,群組中的執行個體數量不會自動調整。系統已為您保留自動調度資源設定」。

檢查工作是否已完成

點選「Check my progress」,確認工作已完成。如果成功建立執行個體群組,就會看到評估分數。

建立執行個體群組

工作 4:確認執行個體群組已建立

請稍候,直到剛才新建的執行個體群組旁出現綠色勾號。開機指令碼可能需要幾分鐘的時間,才能完成安裝並開始回報值。

您必須確認單一測試執行個體已成功執行 writeToCustomMetric.js 指令碼,而且資料順利流入 Cloud Monitoring。如果系統未回報指標資料,自動配置器就無法採取行動。請檢查 VM 記錄是否顯示 nodeapp: available,確認這個資料管道運作正常。

若幾分鐘後還沒有反應,請點選「重新整理」。

注意:如果實驗室預先建立的其他執行個體群組旁顯示紅色圖示,直接忽略這則警告即可。執行個體群組初始化時會出現警告,時間可能長達 10 到 15 分鐘。請放心,這是正常情況。
  1. 一樣在「執行個體群組」視窗,點選 autoscaling-instance-group-1 名稱,查看該群組中正在執行的執行個體。

  2. 向下捲動畫面,並點選執行個體名稱。由於自動調度資源功能尚未開始新增執行個體,目前只有一個執行個體正在執行。

  3. 在「詳細資料」分頁的「記錄」部分,點選「Logging」連結,查看該 VM 執行個體的記錄。

  4. 稍候 1 到 2 分鐘,讓系統累積一些資料。接著,將「顯示查詢」切換鈕設為開啟,您會在「查詢」預覽方塊看到 resource.type 和 resource.labels.instance_id。

 「查詢」預覽方塊

  1. 在第 3 行加入 "nodeapp",完成後的程式碼應如下所示:

第 1 行:resource.type=&quot;gce.instance&quot;。第 2 行:resource.labels.instance_id=&quot;4519089149916136834&quot;。第 3 行:&quot;nodeapp&quot;

  1. 點選「執行查詢」。

如果 Node.js 指令碼是在 Compute Engine 執行個體執行,系統就會向 API 傳送要求,記錄項目中也會顯示 nodeapp: available。

注意:若未看到這個記錄項目,表示 Node.js 指令碼沒有回報自訂指標值。請確認輸入的中繼資料正確無誤。如果中繼資料有誤,最簡單的方法是重新開始實驗室。應用程式可能需要約 10 分鐘才能完成啟動。

工作 6:為執行個體群組設定自動調度資源功能

確認第一個執行個體成功回報自訂指標資料後,就能根據該指標的數值,為執行個體群組設定自動調度資源功能。

  1. 前往 Cloud 控制台,依序點選「Compute Engine」>「執行個體群組」。

  2. 點選 autoscaling-instance-group-1 群組。

  3. 點選「編輯」。

  4. 在「自動調度資源」部分,將「自動調度資源模式」設為「開啟:在群組中新增和移除執行個體」。

  5. 將「執行個體數量下限」設為 1,並將「執行個體數量上限」設為 3,界定承諾成本與效能的上下限。換句話說,您至少須支付 1 個執行個體的費用,而系統保證不會擴充超過 3 個執行個體,這樣您就能有效控管成本支出。

  6. 在「自動調度資源信號」部分,點選「新增信號」來編輯指標。請設定下列欄位,其餘欄位則一概保留預設值:

    • 在「信號類型」部分,選取「Cloud Monitoring 指標」,然後點選「設定」。
    • 在「資源和指標」部分,點選「選取指標」,然後依序選取「VM Instance」>「自訂指標」>「Custom/appdemo_queue_depth_01」。
    • 點選「套用」。
    • 將「使用率目標」設為 150。

    當自訂監控指標值高於或低於目標值時,自動配置器會調度代管執行個體群組的資源,視需要增加或減少執行個體數量。目標值可以是任意雙精度值,但本實驗室選擇設為 150,因為這正好符合自訂監控指標回報的值。

    • 在「使用率目標類型」部分,選擇「度量圖」,然後點選「選取」。

    「度量圖」會根據所有執行個體指標的目前平均值來調度資源。例如,「平均佇列深度為 200,超過我指定的目標值 150,因此需要再加一部機器。」這個選項適用於佇列深度或 CPU 使用率這類指標。反之,若將「目標模式」設為 DELTA_PER_MINUTE 或 DELTA_PER_SECOND,自動調度資源的依據就會是觀察到的變化率,而不是平均值。

  7. 點選「儲存」。

注意:選取「度量圖」後,請再次點選下拉式選單,並重新選取「度量圖」,有時這樣能確保 UI 正確登錄值。

檢查工作是否已完成

點選「Check my progress」,確認工作已完成。如果成功為執行個體群組設定自動調度資源功能,就會看到評估分數。

為執行個體群組設定自動調度資源功能

工作 7:觀察執行個體群組自動調度資源

Node.js 指令碼會隨時間調整各執行個體回報的自訂指標值。指標值上升時,執行個體群組會透過新增 VM 來擴充資源。一旦偵測到指標值下降,執行個體群組就會移除 VM,藉此縮減資源。請注意,指令碼模擬的是實際指標,因此指標值也可能會上下浮動。

接下來,請點選「監控」分頁標籤,查看自動調度資源後的群組大小圖表,瞭解執行個體群組如何根據指標調度資源。

  1. 在左側窗格,點選「執行個體群組」。
  2. 點選清單中的 builtin-igm 執行個體群組。
  3. 點選「監控」分頁標籤。
  4. 啟用「自動重新整理」功能。

這個群組已經預先啟動一段時間,因此您可以直接在自動調度資源圖表中,查看該執行個體群組的相關詳細資料。自動配置器約需 5 分鐘來正確辨識自訂指標,而指令碼則可能需要 10 到 15 分鐘才能產生足夠的資料,進而觸發自動調度資源行為。

「監控」分頁型頁面,顯示兩個監控圖表

只要將滑鼠游標懸停在圖表上,即可查看更多詳細資料。

您可以切換回先前建立的執行個體群組,查看其運作情況 (但實驗室剩下的時間可能不夠,不一定能看到執行個體群組自動調度資源)。

在實驗室剩餘的時間內,您可以觀察執行個體增減時,自動調度資源圖表會如何起伏變化。

工作 8:自動調度資源範例

請參考這個自動調度資源範例,瞭解在規模較大的環境中,運算資源與自動調度資源後的執行個體數量如何相互配合。

當下方圖表回報的自訂指標屬性匯總值變動時,上方圖表顯示的執行個體數量也會隨之增減。每個執行個體啟動後,最多需要稍候五分鐘,才會開始回報自訂指標值。在等待自動調度資源功能啟動的同時,可以先參考這張圖表,瞭解接下來的運作情況:

「成員」分頁型頁面,顯示包含多個資料點的圖表

為了觸發擴充資源行為,指令碼一開始產生的值偏高,大約會維持 15 分鐘。

  • 11:27:自動調度資源群組開始運作,最初只有一個執行個體。目前自訂指標的匯總目標值為 150。
  • 11:31:系統取得初始指標資料。由於指標值大於目標值 150,自動調度資源群組啟動了第二個執行個體。
  • 11:33:開始取得第二個執行個體的自訂指標資料,現在的匯總目標值為 300。這時指標值高於 300,因此自動調度資源群組啟動了第三個執行個體。
  • 11:37:開始取得第三個執行個體的自訂指標資料,現在的匯總目標值為 450。由於累計指標值超過 450,自動調度資源群組隨即啟動第四個執行個體。
  • 11:42:開始取得第四個執行個體的自訂指標資料,現在的匯總目標值為 600。累計指標值現在已超過新的目標值 600,但因為自動調度資源群組達到大小上限,系統不會再執行任何擴充動作。
  • 11:44:應用程式指令碼進入為期 15 分鐘的低指標時段。即使累計指標值低於目標值 600,仍須等到 10 分鐘的內建縮減延遲時間過後,系統才會開始調整。
  • 11:54:四節點叢集的自訂指標資料已經低於匯總目標值 600,時間超過 10 分鐘。系統隨即縮減資源,接連移除兩個執行個體。
  • 11:56:已移除節點的自訂指標資料不再納入自動調度資源計算,匯總目標值調降為 300。
  • 12:00:應用程式指令碼重新進入為期 15 分鐘的高指標時段。累計自訂指標值再次超過匯總目標值 300,因此自動調度資源群組啟動了第三個執行個體。
  • 12:03:系統取得新執行個體的自訂指標資料,但由於回報的累計值仍低於目標值 450,自動調度資源群組並未做出任何調整。
  • 12:04:累計自訂指標值超過目標值 450,自動調度資源群組隨即啟動第四個執行個體。

恭喜!

恭喜!在本實驗室中,您建立了 Compute Engine 代管執行個體群組,這個群組會根據自訂 Cloud Monitoring 指標的值自動調度資源。您也學會使用 Cloud 控制台,以圖表呈現自訂指標和執行個體群組大小。

後續步驟/瞭解詳情

Google Cloud 教育訓練與認證

協助您瞭解如何充分運用 Google Cloud 的技術。我們的課程會介紹專業技能和最佳做法,讓您可以快速掌握要領並持續進修。我們提供從基本到進階等級的訓練課程,並有隨選、線上和虛擬課程等選項,方便您抽空參加。認證可協助您驗證及證明自己在 Google Cloud 技術方面的技能和專業知識。

使用手冊上次更新日期:2026 年 5 月 20 日

實驗室上次測試日期:2026 年 2 月 25 日

Copyright 2026 Google LLC 保留所有權利。Google 和 Google 標誌是 Google LLC 的商標,其他公司和產品名稱則有可能是其關聯公司的商標。

Before you begin

  1. Labs create a Google Cloud project and resources for a fixed time
  2. Labs have a time limit and no pause feature. If you end the lab, you'll have to restart from the beginning.
  3. On the top left of your screen, click Start lab to begin

Use private browsing

  1. Copy the provided Username and Password for the lab
  2. Click Open console in private mode

Sign in to the Console

  1. Sign in using your lab credentials. Using other credentials might cause errors or incur charges.
  2. Accept the terms, and skip the recovery resource page
  3. Don't click End lab unless you've finished the lab or want to restart it, as it will clear your work and remove the project

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

Use private browsing to run the lab

Using an Incognito or private browser window is the best way to run this lab. This prevents any conflicts between your personal account and the Student account, which may cause extra charges incurred to your personal account.