프로젝트 간에 GCP Compute Engine 인스턴스를 복사하는 방법

Google Cloud Platform(GCP)은 선도적인 클라우드 서비스 제공업체 중 하나로, 기업과 개발자가 애플리케이션을 원활하게 빌드, 배포, 확장할 수 있도록 다양한 도구와 서비스를 제공합니다. GCP 내에서 가장 널리 사용되는 서비스 중 하나는 Compute Engine입니다. 이를 통해 특정 요구 사항에 맞춘 가상 머신(VM)을 만들고 관리할 수 있습니다. 웹 애플리케이션, 데이터베이스, 개발 환경 중 무엇을 실행하든 Compute Engine은 최신 워크로드에 필요한 유연성과 확장성을 제공합니다.

하지만 조직이 성장하거나 구조 조정되면서 Compute Engine 인스턴스를 프로젝트 A에서 프로젝트 B로 전송해야 할 때가 올 수 있습니다. 이는 팀 간에 리소스를 마이그레이션하거나, 프로젝트를 통합하거나, 다른 조직과 협업할 때 자주 발생합니다. GCP는 VM 인스턴스를 프로젝트 간에 이동할 수 있는 직접적인 “복사” 기능을 제공하지 않지만(특히 프로젝트가 서로 다른 계정의 소유인 경우), 스냅샷과 공유 권한을 사용하는 안정적인 해결 방법이 있습니다.

이 종합 가이드에서는 VM의 스냅샷 만들기부터 권한 설정, 대상 프로젝트에 인스턴스 배포까지 전체 과정을 단계별로 안내합니다. 숙련된 클라우드 엔지니어든 GCP를 탐색하는 초보자든, 이 가이드를 통해 이 작업을 효율적으로 수행하는 데 필요한 지식과 도구를 얻을 수 있습니다. 이 글을 마치면 별도 계정이 소유한 프로젝트 간에도 GCP Compute Engine 인스턴스를 원활하게 마이그레이션할 수 있게 됩니다.

처음에는 복잡해 보이는 마이그레이션 과정을 단순화해 보겠습니다.



프로젝트 간에 GCP 컴퓨트 인스턴스를 복사해야 하는 이유

프로젝트 간에 VM 인스턴스를 복사해야 하는 이유는 여러 가지가 있습니다.

  • 프로젝트 마이그레이션: 더 나은 구성이나 청구를 위해 리소스를 새 프로젝트로 이동합니다.
  • 협업: 다른 팀이나 조직과 VM을 공유합니다.
  • 백업 및 복구: 재해 복구를 위해 다른 프로젝트에 VM 백업을 만듭니다.

사전 요구 사항

시작하기 전에 다음 사항을 확인하세요.

  1. 액세스 권한:
    • 소유자 또는 편집자 권한이 프로젝트 A(소스 프로젝트)에 있어야 합니다.
    • 충분한 권한(예: roles/compute.admin)이 프로젝트 B(대상 프로젝트)에 있어야 합니다.
  2. 결제 사용 설정:
    • 리소스를 만들고 사용하려면 두 프로젝트 모두 결제가 사용 설정되어 있어야 합니다.
  3. Cloud SDK 설치됨:
    • 로컬 머신에 Google Cloud SDK을 설치하거나 Cloud Shell을 사용합니다.
  4. 소스 VM 스냅샷:
    • 소스 VM 인스턴스의 스냅샷을 만들어야 합니다.

GCP 컴퓨트 인스턴스를 복사하는 단계별 가이드

1단계: 프로젝트 A에서 소스 VM의 스냅샷 만들기

스냅샷은 VM 디스크의 특정 시점 복사본입니다. 스냅샷을 만들려면 다음을 수행하세요.

  1. Google Cloud Console을 엽니다. 프로젝트: 프로젝트 A.
  2. 다음으로 이동합니다. Compute Engine> 스냅샷.
  3. 스냅샷 만들기.
  4. 필요한 세부 정보를 입력합니다.
    • 이름: 스냅샷에 고유한 이름을 지정합니다(예: my-vm-snapshot).
    • 소스 디스크: 소스 VM의 디스크를 선택합니다.
    • 위치: 멀티 리전 또는 대상 프로젝트에 가까운 리전을 선택합니다.
  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을 소스 VM 디스크 이름으로 바꿉니다.
  • SOURCE_DISK_ZONE을 소스 VM의 영역으로 바꿉니다(예: 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에 새 VM 만들기

    디스크가 생성되면 이를 사용하여 프로젝트 B에서 새 VM을 시작할 수 있습니다.

    • 다음 명령을 실행하여 새 VM을 만듭니다.
    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: 새 VM의 이름.
      • my-new-disk: 스냅샷에서 만든 디스크의 이름.
      • TARGET_ZONE: VM이 생성될 영역.
      • PROJECT_B_ID: 프로젝트 B의 ID.

    5단계: 새 VM 확인

    VM이 생성된 후 실행 중이고 액세스 가능한지 확인합니다.

    1. 다음으로 이동합니다. Compute Engine> VM 인스턴스에서 확인합니다. 프로젝트: 프로젝트 B.
    2. 새 VM의 상태를 확인합니다.
    3. VM에 SSH로 접속하여 예상대로 동작하는지 확인합니다.

    모범 사례

    • 리소스 정리: 더 이상 필요하지 않은 경우 불필요한 요금을 방지하기 위해 프로젝트 A의 스냅샷을 삭제합니다.
    gcloud compute snapshots delete my-vm-snapshot --project=PROJECT_A_ID
    
    • 라벨 사용: 리소스 관리를 개선하기 위해 프로젝트 B의 새 VM과 디스크에 라벨을 추가합니다.
    • 비용 모니터링: 예상치 못한 요금을 방지하기 위해 두 프로젝트의 청구를 주시합니다.

    결론

    GCP Compute Engine 인스턴스를 한 프로젝트에서 다른 프로젝트로 복사하는 작업은, 특히 프로젝트가 서로 다른 계정의 소유인 경우, 스냅샷을 만들고, 공유한 뒤, 이를 사용하여 새 VM을 만드는 과정을 포함합니다. 이 가이드에 설명된 단계를 따르면 보안과 효율성을 보장하면서 VM을 성공적으로 마이그레이션할 수 있습니다.

    이 가이드가 도움이 되었다면 다른 사람과 공유하거나 아래에 댓글을 남겨 주세요. 질문이나 GCP 리소스 관리에 대한 추가 팁이 있으면 알려 주세요!

    댓글 남기기