PostgreSQL용 Cloud SQL에서 PostgreSQL용 AlloyDB로 마이그레이션

이 페이지에서는 Cloud SQL 백업을 PostgreSQL용 AlloyDB 무료 체험판 클러스터에 복사하여 PostgreSQL용 Cloud SQL 인스턴스를 마이그레이션하는 방법을 설명합니다. Cloud SQL 백업을 AlloyDB 클러스터에 복사하면 PostgreSQL용 Cloud SQL에 데이터를 빠르게 로드할 수 있으므로 AlloyDB로 평가하거나 마이그레이션할 수 있습니다.

이 페이지에서는 Cloud SQL에 익숙하다고 가정합니다. AlloyDB를 처음 사용하는 경우 AlloyDB 개요를 참고하세요.

연속 데이터 복제를 사용하여 Cloud SQL에서 AlloyDB로 데이터를 마이그레이션하는 방법을 알아보려면 PostgreSQL용 Database Migration Service to AlloyDB를 참고하세요.

다음은 지원되지 않습니다.

  • 프로젝트 간 및 리전 간 복원
  • 고객 관리 암호화 키(CMEK)가 있는 인스턴스
  • Identity and Access Management(IAM) 그룹 인증이 있는 인스턴스

시작하기 전에

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  5. Make sure that billing is enabled for your Google Cloud project.

  6. Enable the AlloyDB, Compute Engine, and Service Networking APIs.

    Enable the APIs

  7. 다음이 갖추어졌는지 확인합니다.

필요한 역할

PostgreSQL용 Cloud SQL 백업을 AlloyDB 클러스터에 복사하는 데 필요한 권한을 얻으려면 프로젝트에 다음 IAM 역할을 부여하세요.

Cloud SQL 백업을 AlloyDB 클러스터로 복사

Cloud SQL 백업을 AlloyDB무료 체험판클러스터에 복사하면 백업이 AlloyDB의 동일한 버전의 PostgreSQL로 복원됩니다. 예를 들어 PostgreSQL 14 Cloud SQL 백업은 PostgreSQL 14 무료 체험판클러스터로 복원됩니다. 확장 프로그램 버전과 PostgreSQL 부 버전은 다를 수 있습니다.

Cloud SQL에서 백업을 복사할 때는 AlloyDB무료 체험판 클러스터에서 지원되는 항목의 구성만 지원됩니다.

Cloud SQL 백업을 AlloyDB무료체험판 클러스터에 복사하려면 다음 단계를 따르세요.

콘솔

  1. Google Cloud 콘솔에서 클러스터 페이지로 이동합니다.

    클러스터로 이동

  2. 아직 클러스터를 프로비저닝하지 않은 경우 무료 체험 시작을 클릭합니다. 기존 클러스터가 있는 경우 데이터 이전을 클릭합니다.
  3. Cloud SQL 백업에서 복사를 클릭합니다.
  4. Cloud SQL 백업에서 복사 페이지에서 필요한 API를 사용 설정합니다. API를 이미 사용 설정한 경우 API를 다시 사용 설정할 필요가 없습니다.
  5. 클러스터 유형 선택 페이지에서 무료 체험판 클러스터를 클릭합니다. 무료 체험판 클러스터를 사용할 수 없는 경우 이 필드는 비활성화됩니다.
  6. 클러스터 유형 선택을 클릭합니다.
  7. 사본을 만들 Cloud SQL 인스턴스를 선택한 후 인스턴스 선택을 클릭합니다. Cloud SQL 인스턴스를 필터링할 수 있습니다.
    호환되는 데이터베이스 버전만 표시됩니다. 복제본에는 백업이 없으며 사용 가능한 인스턴스 목록에 표시되지 않습니다.
  8. 가져올 백업을 선택한 다음 백업 선택을 클릭합니다. 이 페이지에는 최근 백업 1,000개가 표시됩니다.
  9. 무료 클러스터 만들기 페이지에서 클러스터 ID와 네트워킹 정보를 입력합니다.
  10. 무료 체험판 시작을 클릭합니다.

작업이 완료되면 기본 인스턴스가 자동으로 생성됩니다. 선택한 PostgreSQL용 Cloud SQL 백업에서 복사된 데이터가 포함된 새 AlloyDB 클러스터가 표시됩니다.

PostgreSQL용 Cloud SQL 백업을 AlloyDB 클러스터에 복사하면 데이터베이스 플래그와 리소스 수준 권한이 자동으로 이전되지 않습니다. 복사가 완료되면 이러한 플래그와 권한을 수동으로 설정해야 합니다.

무료 클러스터 만들기 페이지에서 PostgreSQL용 Cloud SQL의 어떤 데이터베이스 플래그가 AlloyDB에서 지원되는지 확인할 수 있습니다.

REST API

  1. 백업을 복원하려는 인스턴스의 백업 목록을 가져오려면 backupsRuns.list 메서드를 호출합니다.
          GET "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/backupRuns"
          

    다음을 바꿉니다.

    • PROJECT_ID: 프로젝트 ID
    • INSTANCE_ID: 인스턴스 ID입니다.

    JSON 요청 본문:

          {
            "kind": string,
            "items": [
              {
                object (BackupRun)
              }
            ],
            "nextPageToken": string
          }
          

    요청을 보내려면 다음 옵션 중 하나를 사용하세요.

    curl (Linux, macOS 또는 Cloud Shell)

    다음 명령어는 gcloud init 또는 gcloud auth login를 실행하거나 Cloud Shell를 사용하여 사용자 계정으로 gcloud CLI에 로그인했다고 가정하며, 이때 Cloud Shell를 사용하면 gcloud CLI에 자동으로 로그인됩니다.

    gcloud auth list를 실행하면 활성 계정을 확인할 수 있습니다.

    요청 본문을 request.json 파일에 저장하고 다음 명령어를 실행합니다.

            curl -X GET \
                   -H "Authorization: Bearer $(gcloud auth print-access-token)" \
                   -H "Content-Type: application/json; charset=utf-8" \
                   "https://sqladmin.googleapis.com//sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/backupRuns"
            

    PowerShell (Windows)

    다음 명령어는 gcloud init 또는 gcloud auth login를 실행하거나 Cloud Shell를 사용하여 사용자 계정으로 gcloud CLI에 로그인했다고 가정합니다. 이 경우 Cloud Shell를 사용하면 gcloud CLI에 자동으로 로그인됩니다.

    gcloud auth list를 실행하면 활성 계정을 확인할 수 있습니다.

    요청 본문을 request.json 파일에 저장하고 다음 명령어를 실행합니다.

             $cred = gcloud auth print-access-token
             $headers = @{ "Authorization" = "Bearer $cred" }
             Invoke-WebRequest `
              -Method GET `
              -Headers $headers `
              -ContentType: "application/json; charset=utf-8" `
              -Uri
              "https://sqladmin.googleapis.com//sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/backupRuns"|Select-Object -Expand Content
          

    다음과 유사한 JSON 응답이 표시됩니다.

    응답

    성공하면 응답 본문에 BackupRun 목록이 포함됩니다.

    API 응답은 인스턴스의 백업 목록을 "id": string,를 포함한 배열 목록으로 반환합니다.

  2. restoreFromCloudSQL 메서드를 호출합니다.

            POST https://alloydb.googleapis.com/v1beta/projects/PROJECT_ID/locations/REGION/clusters:restoreFromCloudSQL
          

    다음을 바꿉니다.

    • PROJECT_ID: 프로젝트 ID
    • REGION: AlloyDB 클러스터가 배포되는 리전입니다.

    JSON 요청 본문:

          {
            "clusterId": string,
            "cluster": {
              "databaseVersion": "POSTGRES_14/POSTGRES_15/POSTGRES_16",
              "subscriptionType": "TRIAL"
            },
            // Union field source can be only one of the following:
            "cloudsqlBackupRunSource": {
              object (CloudSQLBackupRunSource)
            }
            // End of list of possible types for union field source.
          }
          

    요청을 보내려면 다음 옵션 중 하나를 사용하세요.

    curl (Linux, macOS, Cloud Shell)

    다음 명령어는 gcloud init 또는 gcloud auth login를 실행하거나 Cloud Shell를 사용하여 사용자 계정으로 gcloud CLI에 로그인했다고 가정합니다. 이 경우 Cloud Shell를 사용하면 gcloud CLI에 자동으로 로그인됩니다.

    gcloud auth list를 실행하면 활성 계정을 확인할 수 있습니다.

    요청 본문을 request.json 파일에 저장하고 다음 명령어를 실행합니다.

            curl -X POST \
                   -H "Authorization: Bearer $(gcloud auth print-access-token)" \
                   -H "Content-Type: application/json; charset=utf-8" \
                   -d @request.json \
                   "https://alloydb.googleapis.com/v1beta/projects/PROJECT_ID/locations/REGION/clusters:restoreFromCloudSQL"
          

    PowerShell (Windows)

    다음 명령어는 gcloud init 또는 gcloudauth login를 실행하거나 Cloud Shell를 사용하여 사용자 계정으로 gcloud CLI에 로그인했다고 가정합니다. 이 경우 Cloud Shell를 사용하면 gcloud CLI에 자동으로 로그인됩니다.

    gcloud auth list를 실행하면 활성 계정을 확인할 수 있습니다.

    요청 본문을 request.json 파일에 저장하고 다음 명령어를 실행합니다.

            $cred = gcloud auth print-access-token
            $headers = @{ "Authorization" = "Bearer $cred" }
            Invoke-WebRequest `
              -Method POST `
              -Headers $headers `
              -ContentType: "application/json; charset=utf-8" `
              -InFile request.json `
              -Uri "https://alloydb.googleapis.com/v1beta/projects/PROJECT_ID/locations/REGION/clusters:restoreFromCloudSQL"|Select-Object -Expand Content
          

    다음과 유사한 JSON 응답이 표시됩니다.

    응답

    성공한 경우 응답 본문에 Operation의 인스턴스가 포함됩니다.

    지정된 프로젝트 및 위치에 새 클러스터가 생성되며, CloudSQLBackupRunSource 메시지에 지정된 백업에서 복원된 볼륨이 포함됩니다.

  3. 클러스터가 READY 상태이면 projects.locationsinstances.create 메서드를 호출하여 기본 인스턴스를 만듭니다.
          POST https://alloydb.googleapis.com/v1beta/{parent=projects/PROJECT_ID/locations/REGION/clusters/CLUSTER_ID}/instances
          

    다음을 바꿉니다.

    • PROJECT_ID: 프로젝트 ID
    • REGION: AlloyDB 클러스터가 배포되는 리전입니다.
    • CLUSTER_ID: 클러스터 ID입니다.

    JSON 요청 본문:

            {
              "instanceId": "string",
              "instance": {
                "object": "Instance"
              }
            }
          

    요청 본문에 Instance의 인스턴스가 포함됩니다.

    요청을 보내려면 다음 옵션 중 하나를 사용하세요.

    curl (Linux, macOS 또는 Cloud Shell)

    다음 명령어는 gcloud init 또는 gcloud auth login를 실행하거나 Cloud Shell를 사용하여 사용자 계정으로 gcloud CLI에 로그인했다고 가정합니다. 이 경우 Cloud Shell를 사용하면 gcloud CLI에 자동으로 로그인됩니다.

    gcloud auth list를 실행하면 활성 계정을 확인할 수 있습니다.

    요청 본문을 request.json 파일에 저장하고 다음 명령어를 실행합니다.

            curl -X POST \
                 -H "Authorization: Bearer $(gcloud auth print-access-token)" \
                 -H "Content-Type: application/json; charset=utf-8" \
                 -d @request.json \
                 "https://alloydb.googleapis.com/v1beta/projects/PROJECT_ID/locations/REGION/clusters/CLUSTER_ID/instances"
          

    PowerShell (Windows)

    다음 명령어는 gcloud init 또는 gcloud auth login를 실행하거나 Cloud Shell를 사용하여 사용자 계정으로 gcloud CLI에 로그인했다고 가정합니다. 이 경우 Cloud Shell를 사용하면 gcloud CLI에 자동으로 로그인됩니다.

    gcloud auth list를 실행하면 활성 계정을 확인할 수 있습니다.

    요청 본문을 request.json 파일에 저장하고 다음 명령어를 실행합니다.

             $cred = gcloud auth print-access-token
             $headers = @{ "Authorization" = "Bearer $cred" }
             Invoke-WebRequest `
               -Method POST `
               -Headers $headers `
               -ContentType: "application/json; charset=utf-8" `
               -InFile request.json `
               -Uri "https://alloydb.googleapis.com/v1beta/projects/PROJECT_ID/locations/REGION/clusters/CLUSTER_ID/instances"|Select-Object -Expand Content
          

    다음과 유사한 JSON 응답이 표시됩니다.

    응답

    성공하면 응답 본문에 새로 생성된 Operation 인스턴스가 포함됩니다.

  4. 인스턴스가 READY 상태로 업데이트되면 인스턴스에 연결하고 Cloud SQL 스냅샷에서 복원된 데이터에 액세스합니다.

다음 단계