如何在專案之間複製 GCP Compute Engine 執行個體

Google Cloud Platform (GCP) 是領先的雲端服務供應商之一,提供各種各樣的工具和服務,協助企業和開發人員無縫地建置、部署和擴充應用程式。GCP 中使用最廣泛的服務之一是Compute Engine,它允許你建立和管理根據你的具體需求量身打造的虛擬機器 (VM)。無論你執行的是 Web 應用程式、資料庫還是開發環境,Compute Engine 都能提供現代工作負載所需的彈性和可擴充性。

然而,隨著組織的發展或重組,你可能需要將 Compute Engine 執行個體從專案 A轉移到專案 B。在團隊之間移轉資源、合併專案,甚至與其他組織協作時,經常會出現這種情況。雖然 GCP 不提供在專案之間移動虛擬機器執行個體的直接「複製」功能——尤其是在專案屬於不同帳戶時——但可以使用快照和共用權限實現可靠的因應方法。

在本綜合指南中,我們將逐步帶你完成整個過程,涵蓋從建立虛擬機器快照到設定權限,再到在目標專案中部署執行個體的所有內容。無論你是經驗豐富的雲端工程師還是探索 GCP 的初學者,本指南都將為你提供有效率地執行此任務所需的知識和工具。讀完本文後,你將能夠無縫移轉 GCP Compute Engine 執行個體,即使是在屬於不同帳戶的專案之間。

讓我們深入瞭解,並簡化乍看之下可能很複雜的移轉過程。



為什麼要在專案之間複製 GCP 運算執行個體?

你可能需要在專案之間複製虛擬機器執行個體的原因有以下幾點:

  • 專案移轉:將資源移轉到新專案,以便更好地組織或計費。
  • 協作:與另一個團隊或組織共用虛擬機器。
  • 備份和復原:在不同的專案中建立虛擬機器備份,用於災難復原。

前提條件

開始之前,請確認符合以下條件:

  1. 存取權限:
    • 你擁有擁有者或編輯者權限,位於專案 A(來源專案)中。
    • 你擁有足夠的權限(例如roles/compute.admin),位於專案 B(目標專案)中。
  2. 已啟用帳單:
    • 兩個專案都必須啟用帳單才能建立和使用資源。
  3. 已安裝 Cloud SDK:
  4. 來源虛擬機器快照:
    • 你需要建立來源虛擬機器執行個體的快照。

複製 GCP 運算執行個體的逐步指南

步驟 1:在專案 A 中建立來源虛擬機器的快照

快照是虛擬機器磁碟的時間點複本。建立快照的方法:

  1. 開啟Google Cloud Console,選擇專案 A。
  2. 前往Compute Engine> 快照。
  3. 點選建立快照。
  4. 填寫所需詳細資訊:
    • 名稱:為快照指定一個唯一的名稱(例如my-vm-snapshot)。
    • 來源磁碟:選擇來源虛擬機器的磁碟。
    • 位置:選擇多區域或靠近目標專案的區域。
  5. 點選建立。

或者,你可以使用以下gcloud命令:

gcloud compute snapshots create my-vm-snapshot \
    --source-disk=SOURCE_DISK_NAME \
    --source-disk-zone=SOURCE_DISK_ZONE \
    --project=PROJECT_A_ID

取代:

  • SOURCE_DISK_NAME取代為來源虛擬機器磁碟的名稱。
  • SOURCE_DISK_ZONE取代為來源虛擬機器所在的可用區域(例如us-central1-a)。
  • PROJECT_A_ID取代為專案 A 的 ID。

步驟 2:與專案 B 共用快照

要允許專案 B 存取快照,你必須向目標帳戶授予權限。

  1. 在專案 A中,前往Compute Engine> 快照。
  2. 選擇你建立的快照。
  3. 點選顯示資訊面板(或用於編輯的鉛筆圖示)。
  4. 新增一個IAM 政策繫結:
    • 成員:user:[email protected](取代為目標帳戶的電子郵件)。
    • 角色:Compute Storage Admin。

或者,使用以下gcloud命令:

gcloud compute snapshots add-iam-policy-binding my-vm-snapshot \
    --member="user:[email protected]" \
    --role="roles/compute.storageAdmin" \
    --project=PROJECT_A_ID


步驟 3:使用快照在專案 B 中建立磁碟

現在快照已共用,你可以在專案 B中使用快照建立新磁碟。

  • 切換到專案 B(在 Google Cloud Console 或 Cloud Shell 中):
gcloud config set project PROJECT_B_ID
  • 從共用快照建立新磁碟:
gcloud compute disks create my-new-disk \
    --source-snapshot=projects/PROJECT_A_ID/global/snapshots/my-vm-snapshot \
    --zone=TARGET_ZONE \
    --project=PROJECT_B_ID

    取代:

    • PROJECT_A_ID取代為專案 A 的 ID。
    • my-vm-snapshot取代為快照的名稱。
    • TARGET_ZONE取代為要建立磁碟的可用區域(例如us-central1-a)。
    • PROJECT_B_ID取代為專案 B 的 ID。

    步驟 4:使用磁碟在專案 B 中建立新的虛擬機器

    磁碟建立完成後,你可以使用它在專案 B 中啟動新的虛擬機器。

    • 執行以下命令以建立新的虛擬機器:
    gcloud compute instances create my-new-vm \
        --zone=TARGET_ZONE \
        --disk=name=my-new-disk,boot=yes,auto-delete=no \
        --project=PROJECT_B_ID
    
    
    • 將預留位置取代為相應的值:
      • my-new-vm:新虛擬機器的名稱。
      • my-new-disk:從快照建立的磁碟的名稱。
      • TARGET_ZONE:將建立虛擬機器的可用區域。
      • PROJECT_B_ID:專案 B 的 ID。

    步驟 5:驗證新的虛擬機器

    建立虛擬機器後,請驗證它正在執行且可以存取:

    1. 前往Compute Engine> 虛擬機器執行個體,選擇專案 B。
    2. 檢查新虛擬機器的狀態。
    3. 透過 SSH 連線到虛擬機器,確保它如預期般運作。

    最佳做法

    • 清理資源:如果不再需要快照,請刪除專案 A 中的快照,以避免不必要的費用:
    gcloud compute snapshots delete my-vm-snapshot --project=PROJECT_A_ID
    
    • 使用標籤:為專案 B 中的新虛擬機器和磁碟新增標籤,以便更好地管理資源。
    • 監控成本:留意兩個專案的帳單,以避免意外費用。

    結論

    將 GCP Compute Engine 執行個體從一個專案複製到另一個專案,尤其是在專案屬於不同帳戶的情況下,需要建立快照、共用快照,然後使用它來建立新的虛擬機器。依照本指南中概述的步驟,你可以成功移轉虛擬機器,同時確保安全和效率。

    如果你覺得本指南有幫助,請隨時與他人分享,或在下方留言。如果你有任何問題或管理 GCP 資源的更多提示,請告訴我們!

    發表留言