백업 볼트에서 AlloyDB 클러스터 복원

이 문서에서는 Google Cloud 콘솔 또는 gcloud CLI를 사용하여 Backup Vault에서 AlloyDB 클러스터를 복원하는 방법을 보여줍니다. Vault에 저장된 백업에서 복원하거나 PITR (point-in-time recovery)을 수행하는 방법을 설명합니다.

백업 및 DR 개념적 기능에 대한 자세한 내용은 백업 및 DR 개요를 참조하세요. 먼저 데이터베이스를 백업하려면 Backup Vault에 AlloyDB 클러스터 백업을 참조하세요.

AlloyDB 클러스터의 재해 복구 옵션

Backup Vault에 저장된 백업은 소스 클러스터의 수명 주기 및 프로젝트와 독립적입니다.

소스 AlloyDB 클러스터가 포함된 원래 워크로드 프로젝트가 삭제된 경우에도 백업을 복원할 수 있습니다. 이는 CMEK 암호화 백업에 필요한 복호화 권한이 워크로드 프로젝트가 아닌 Backup Vault 프로젝트의 백업 및 DR 서비스 에이전트에 고정되어 있기 때문입니다. 이렇게 하면 Backup Vault와 Cloud Key Management Service Vault 키가 손상되지 않고 서비스 에이전트에 권한이 있는 한 백업에 계속 액세스하고 백업을 복원할 수 있습니다.

시작하기 전에

Vault에 저장된 백업에서 AlloyDB 클러스터를 복원하기 전에 필요한 역할 및 권한이 있는지 확인하세요.

Vault에 저장된 백업에서 AlloyDB 클러스터를 복원하는 데 필요한 권한을 얻으려면 관리자에게 다음 IAM 역할을 부여해 달라고 요청하세요.

  • 복원 대상 만들기: AlloyDB 관리자 (roles/alloydb.admin) 대상 클러스터가 있는 프로젝트에 대한
  • Vault에서 백업 읽기: 백업 및 DR 복원 사용자 (roles/backupdr.restoreUser) 소스 백업이 있는 프로젝트에 대한

역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.

이러한 사전 정의된 역할에는 Vault에 저장된 백업에서 AlloyDB 클러스터를 복원하는 데 필요한 권한이 포함되어 있습니다. 필요한 정확한 권한을 보려면 필수 권한 섹션을 펼치세요.

필수 권한

Vault에 저장된 백업에서 AlloyDB 클러스터를 복원하려면 다음 권한이 필요합니다.

  • 복원 대상 만들기: alloydb.clusters.restore
  • Vault에서 백업 읽기:
    • backupdr.bvbackups.useReadOnlyForAlloydbCluster
    • backupdr.bvdataSources.useReadOnlyForAlloydbCluster

커스텀 역할이나 다른 사전 정의된 역할을 사용하여 이 권한을 부여받을 수도 있습니다.

서비스 에이전트 역할 및 키 버전 요구사항

백업은 증분 백업이므로 시간이 지남에 따라 키가 순환된 경우 단일 백업을 Vault 키의 여러 Cloud Key Management Service 키 버전으로 암호화할 수 있습니다. 복원 작업이 성공하려면 다음 기본 요건을 충족해야 합니다.

  • 증분 백업에 사용된 Vault 키의 모든 Cloud Key Management Service 키 버전이 있어야 합니다.

  • Backup Vault 프로젝트의 백업 및 DR 서비스 에이전트에는 백업에 사용된 Vault 키에 대한 Cloud KMS CryptoKey 암호화/복호화(roles/cloudkms.cryptoKeyEncrypterDecrypter) 역할이 있어야 합니다.

복원된 클러스터의 KMS 키 동작

복원 프로세스 중에 특정 CMEK가 제공되지 않으면 복원된 클러스터는 기본적으로 로 암호화됩니다 Google-managed encryption key. Vault 키 또는 원래 소스 클러스터 키로 자동 암호화되지 않습니다.

복원 구성 중에 CMEK가 제공되면 복원된 클러스터가 새로 지정된 키로 암호화됩니다.

Vault에 저장된 백업에서 AlloyDB 클러스터 복원

Vault에 저장된 백업에서 PostgreSQL용 AlloyDB 클러스터를 복원하려면 다음 섹션의 작업을 완료하세요.

백업을 새 클러스터로 복원

콘솔

  1. Google Cloud 콘솔에서 Vault에 저장된 백업 페이지로 이동합니다.

    Vault에 저장된 백업으로 이동

  2. 복원할 백업을 선택합니다. 백업의 백업 세부정보 페이지 또는 메뉴에서 복원을 선택합니다.

    백업 복원 페이지가 표시됩니다. 리소스 유형 은 AlloyDB로 미리 채워져 있습니다.

  3. 리소스 이름에서 복원할 AlloyDB 클러스터를 선택합니다.

  4. 백업 을 클릭합니다. 사용 가능한 모든 백업을 보여주는 창이 나타납니다.

  5. 복원할 특정 백업을 선택합니다.

  6. 복원 대상 선택에서 AlloyDB 클러스터를 복원할 프로젝트를 선택합니다.

  7. 계속 을 클릭합니다.

    다음 페이지에는 지금까지의 복원 세부정보가 표시되고 새 클러스터 구성 이라는 메시지가 표시됩니다. 백업에 저장된 구성을 기준으로 새 AlloyDB 클러스터가 생성됩니다. 복원이 완료된 후 클러스터를 맞춤설정할 수 있습니다.

  8. 문자로 시작하는 소문자, 숫자, 하이픈을 사용하여 새 클러스터 ID 를 제공합니다.

  9. 비공개 연결 방법을 선택합니다. 외부 IP 주소를 할당하지 않고 Google Cloud 또는 서드 파티가 호스팅하는 VPC 네트워크에서 서비스를 연결하는 방법에는 두 가지가 있습니다.

    • 비공개 서비스 액세스: 피어링 연결을 사용하여 클러스터를 단일 VPC 네트워크에 할당합니다. AlloyDB 클러스터와 동일한 VPC 네트워크에 있는 특정 Google Cloud 및 서드 파티 서비스에 연결할 때 사용합니다. 추가 API가 필요합니다.

    • Private Service Connect: 허용 목록 및 Private Service Connect 엔드포인트를 사용하여 하나 이상의 VPC 네트워크에서 클러스터 액세스를 사용 설정합니다.

gcloud

gcloud beta alloydb clusters restore RESTORED_CLUSTER_ID \
    --project=WORKLOAD_PROJECT_ID \
    --region=REGION \
    --backupdr-backup=BACKUP_NAME

다음을 바꿉니다.

  • RESTORED_CLUSTER_ID: 복원 중인 새 AlloyDB 클러스터의 ID입니다.

  • WORKLOAD_PROJECT_ID: AlloyDB 클러스터를 복원할 프로젝트의 ID입니다.

  • REGION: AlloyDB 클러스터를 복원할 Google Cloud 리전입니다.

  • BACKUP_NAME: 복원할 백업의 이름입니다.

기본 인스턴스 만들기

백업 및 DR에서 클러스터 생성을 완료한 후 클러스터의 기본 인스턴스를 만듭니다.

새 기본 인스턴스를 만들 때는 크기 및 플래그를 비롯한 구성을 지정해야 합니다. 백업 및 DR은 인스턴스 구성을 백업의 일부로 저장하지 않습니다. 구성은 원래 기본 인스턴스의 구성과 정확하게 일치하지 않아도 됩니다.

백업 및 DR에서 인스턴스 생성을 완료하면 이를 사용하여 복원된 데이터에 액세스할 수 있습니다.

읽기 풀 인스턴스 설정

필요한 경우 읽기 풀 인스턴스를 설정하여 새 클러스터 구성을 완료합니다.

AlloyDB 클러스터를 특정 시점으로 복원

PostgreSQL용 AlloyDB 클러스터를 특정 시점으로 복원하려면 다음 섹션의 작업을 완료하세요.

요구사항

  • CMEK 암호화 소스 클러스터의 PITR (point-in-time restore)이 성공하려면 소스 클러스터 키와 Vault 키가 모두 존재하고 액세스할 수 있어야 합니다.

  • 워크로드 프로젝트의 PostgreSQL용 AlloyDB 서비스 에이전트에는 소스 클러스터 키에 대한 Cloud KMS CryptoKey 암호화/복호화(roles/cloudkms.cryptoKeyEncrypterDecrypter) 역할이 있어야 하며 Backup Vault 프로젝트의 백업 및 DR 서비스 에이전트에는 Vault 키에 대한 Cloud KMS CryptoKey 암호화/복호화 (roles/cloudkms.cryptoKeyEncrypterDecrypter) 역할이 있어야 합니다.

백업을 새 클러스터로 복원

콘솔

  1. Google Cloud 콘솔에서 Vault에 저장된 백업 페이지로 이동합니다.

    Vault에 저장된 백업으로 이동

    Vault에 저장된 백업 페이지에는 백업 계획이 적용된 데이터 리소스와 해당 프로젝트 내의 Backup Vault에 저장된 백업만 나열됩니다.

  2. 백업 목록 상단에서 특정 시점에서 복원 을 선택합니다.

    특정 시점에서 새 클러스터로 복원 창이 나타납니다. 이 창에서 복원할 특정 시점과 만들 새 클러스터의 세부정보를 선택합니다.

  3. 이 클러스터의 복구 기간 내에 클러스터 데이터를 복원할 대상 시간을 입력합니다.

  4. 새 클러스터를 구성합니다. 백업에 저장된 구성을 기준으로 새 AlloyDB 클러스터가 생성됩니다. 복원이 완료된 후 클러스터를 맞춤설정할 수 있습니다.

  5. 문자로 시작하는 소문자, 숫자, 하이픈을 사용하여 새 클러스터 ID 를 제공합니다.

  6. 비공개 연결 방법을 선택합니다. 외부 IP 주소를 할당하지 않고 Google Cloud 또는 서드 파티가 호스팅하는 VPC 네트워크에서 서비스를 연결하는 방법에는 두 가지가 있습니다.

    • 비공개 서비스 액세스: 피어링 연결을 사용하여 클러스터를 단일 VPC 네트워크에 할당합니다. AlloyDB 클러스터와 동일한 VPC 네트워크에 있는 특정 Google Cloud 및 서드 파티 서비스에 연결할 때 사용합니다. 추가 API가 필요합니다.

    • Private Service Connect: 허용 목록 및 Private Service Connect 엔드포인트를 사용하여 하나 이상의 VPC 네트워크에서 클러스터 액세스를 사용 설정합니다.

gcloud

  1. 다음 명령어를 사용하여 데이터 소스 ID를 찾습니다.

    gcloud backup-dr data-source-references fetch-for-resource-type alloydb.googleapis.com/Cluster \
        --location=REGION \
        --project=WORKLOAD_PROJECT_ID \
        --filter='dataSourceGcpResourceInfo.gcp_resourcename="projects/WORKLOAD_PROJECT_NUMBER/locations/REGION/clusters/CLUSTER_NAME'
    
  2. 이전 단계에서 찾은 데이터 소스 ID를 사용하여 클러스터를 복원합니다.

    gcloud beta alloydb clusters restore RESTORED_CLUSTER_ID \
        --project=WORKLOAD_PROJECT_ID \
        --region=REGION \
        --backupdr-data-source=projects/VAULT_PROJECT_ID/locations/REGION/backupVaults/BV_ID/dataSources/DS_ID \
        --point-in-time=POINT_IN_TIME
    

    다음을 바꿉니다.

    • WORKLOAD_PROJECT_ID: AlloyDB 클러스터를 복원할 프로젝트의 ID입니다.

    • REGION: AlloyDB 클러스터를 복원할 Google Cloud 리전입니다.

    • RESTORED_CLUSTER_ID: 복원 중인 새 AlloyDB 클러스터의 ID입니다.

    • VAULT_PROJECT_ID: Backup Vault가 포함된 프로젝트의 ID입니다.

    • BV_ID: Backup Vault의 ID입니다.

    • DS_ID: 데이터 소스의 ID입니다.

    • POINT_IN_TIME: 클러스터를 복원할 특정 시점입니다. 샘플 값은 2025-10-10T10:16:10Z입니다.

기본 인스턴스 만들기

백업 및 DR에서 클러스터 생성을 완료한 후 클러스터의 기본 인스턴스를 만듭니다.

새 기본 인스턴스를 만들 때는 크기 및 플래그를 비롯한 구성을 지정해야 합니다. 백업 및 DR은 인스턴스 구성을 백업의 일부로 저장하지 않습니다. 구성은 원래 기본 인스턴스의 구성과 정확하게 일치하지 않아도 됩니다.

백업 및 DR에서 인스턴스 생성을 완료하면 이를 사용하여 복원된 데이터에 액세스할 수 있습니다.

읽기 풀 인스턴스 설정

필요한 경우 읽기 풀 인스턴스를 설정하여 새 클러스터 구성을 완료합니다.

Backup Vault의 백업 나열

gcloud CLI를 사용하여 백업을 나열하고 복원할 백업을 선택합니다.

  1. 다음 명령어를 사용하여 데이터 소스 ID를 찾습니다.

       gcloud backup-dr data-source-references fetch-for-resource-type alloydb.googleapis.com/Cluster \
         --location=REGION \
         --project=WORKLOAD_PROJECT_ID \
         --filter='dataSourceGcpResourceInfo.gcp_resourcename="projects/WORKLOAD_PROJECT_NUMBER/locations/REGION/clusters/CLUSTER_NAME "'
     ```
    
  2. 다음 명령어를 사용하여 백업을 나열합니다.

       gcloud backup-dr backups list \
         --project=VAULT_PROJECT_ID \
         --location=REGION \
         --backup-vault=BV_ID \
         --data-source='projects/VAULT_PROJECT_ID/locations/REGION/backupVaults/BV_ID/dataSources/DS_ID'
    

다음을 바꿉니다.

  • REGION: Google Cloud 리전입니다.

  • WORKLOAD_PROJECT_ID: AlloyDB 클러스터가 있는 프로젝트의 ID입니다.

  • WORKLOAD_PROJECT_NUMBER: AlloyDB 클러스터가 있는 프로젝트의 번호입니다.

  • CLUSTER_NAME: AlloyDB 클러스터의 이름입니다.

  • VAULT_PROJECT_ID: Backup Vault가 포함된 프로젝트의 ID입니다.

  • BV_ID: Backup Vault의 ID입니다.

  • DS_ID: 데이터 소스의 ID입니다.

다음 단계