이 페이지에서는 Cloud SQL 인스턴스를 백업 보관소에 백업하는 방법을 설명합니다. 백업을 Backup Vault로 전송하면 변경 불가능성과 강제 보관이 제공됩니다.
Google Cloud 콘솔에서 백업 계획을 적용하여 Cloud SQL 인스턴스를 Backup Vault에 백업할 수 있습니다. 다음 두 가지 방법 중 하나로 백업할 수 있습니다. 두 방법 모두 백업을 백업 보관소에 안전하게 저장할 수 있으므로 데이터 손실이나 기타 예기치 않은 이벤트가 발생할 경우 Cloud SQL 인스턴스를 안정적으로 복구할 수 있습니다.
- 예약 백업 일, 주, 월, 연도와 같은 특정 간격으로 Cloud SQL 인스턴스를 자동으로 백업할 수 있습니다.
- 주문형 백업 필요할 때마다 주문형 백업을 만들 수 있습니다. 온디맨드 백업은 데이터베이스를 크게 변경하기 전에 백업을 만들거나 임시 데이터 보호에 유용합니다.
시작하기 전에
- Cloud SQL 인스턴스가 있는 위치에서 백업 및 DR 서비스 API를 사용 설정합니다.
- API 사용 설정하기
- Backup Vault 만들기
- 백업 계획 만들기
- 백업 사용자에게 IAM 역할 및 권한 할당
- Cloud SQL 프로젝트에서 Backup Vault 액세스 권한 부여
- 버킷에 로그 애널리틱스를 설정하여 백업 및 DR 백업 작업을 모니터링합니다.
백업 사용자의 IAM 역할 및 권한
예약된 백업을 구성하거나 주문형 백업을 실행하는 데 필요한 권한을 얻으려면 관리자에게 백업 보관함 프로젝트에 대한 다음 IAM 역할을 부여해 달라고 요청하세요.
-
백업 및 DR 백업 사용자 (
roles/backupdr.backupUser
) -
뷰어 (
roles/viewer
)
역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.
이러한 사전 정의된 역할에는 예약된 백업을 구성하거나 주문형 백업을 실행하는 데 필요한 권한이 포함되어 있습니다. 필요한 정확한 권한을 보려면 필수 권한 섹션을 펼치세요.
필수 권한
예약된 백업을 구성하거나 주문형 백업을 실행하려면 다음 권한이 필요합니다.
-
backupdr.backupPlans.list
-
backupdr.backupPlanAssociations.createForCloudSqlInstance
-
backupdr.backupPlanAssociations.fetchForCloudSqlInstance
-
backupdr.backupPlanAssociations.list
-
backupdr.backupPlanAssociations.getForCloudSqlInstance
-
backupdr.backupPlanAssociations.triggerBackupForCloudSqlInstance
-
backupdr.backupPlanAssociations.deleteForCloudSqlInstance
-
backupdr.backupPlans.useForCloudSqlInstance
-
backupdr.locations.list
-
backupdr.operations.get
-
cloudasset.assets.searchAllResources
커스텀 역할이나 다른 사전 정의된 역할을 사용하여 이 권한을 부여받을 수도 있습니다.
다음 표에는 각 API 호출에 필요한 동적 권한이 나와 있습니다.
리소스 | 리소스에 수행할 작업 | 각 API 호출에 필요한 권한 | 할당해야 하는 프로젝트 |
---|---|---|---|
Backup Vault | BackupVault 생성 | backupdr.backupVaults.create | 관리 프로젝트 |
BackupVault 삭제 | backupdr.backupVaults.delete | 관리 프로젝트 | |
BackupVault 업데이트 | backupdr.backupVaults.update | 관리 프로젝트 | |
List BackupVaults | backupdr.backupVaults.list | 관리 프로젝트 | |
BackupVault 가져오기 | backupdr.backupVaults.get | 관리 프로젝트 | |
백업 계획 | Create BackupPlan | backupdr.backupPlans.create | 관리 프로젝트 |
Delete BackupPlan | backupdr.backupPlans.delete | 관리 프로젝트 | |
Get BackupPlan | backupdr.backupPlans.get | 관리 프로젝트 | |
백업 계획 나열 | backupdr.backupPlans.list | 관리 프로젝트 | |
백업 계획 연결 | 백업 계획 연결 만들기 | cloudsql.instances.updateBackupDrConfig | 워크로드 프로젝트 |
backupdr.backupPlanAssociations.createForCloudSqlInstance | 워크로드 프로젝트 | ||
backupdr.backupPlans.useForCloudSqlInstance | 관리 프로젝트 | ||
백업 계획 연결 삭제 | backupdr.backupPlanAssociations.deleteForCloudSqlInstance | 워크로드 프로젝트 | |
cloudsql.instances.updateBackupDrConfig | 워크로드 프로젝트 | ||
백업 계획 연결에서 주문형 백업 트리거 | backupdr.backupPlanAssociations.triggerBackupForCloudSqlInstance | 워크로드 프로젝트 | |
백업 계획 연결 가져오기 | backupdr.backupPlanAssociations.getForCloudSqlInstance | 워크로드 프로젝트 | |
백업 계획 연결 목록 | backupdr.backupPlanAssociations.list | 워크로드 프로젝트 | |
백업 계획 연결 가져오기 | backupdr.backupPlanAssociations.fetchForCloudSqlInstance | 워크로드 프로젝트 | |
데이터 소스 | 데이터 소스 가져오기 | backupdr.bvdataSources.get | 관리 프로젝트 |
데이터 소스 나열 | backupdr.backupPlanAssociations.list | 관리 프로젝트 | |
PITR 복원 | backupdr.bvdataSources.useReadOnlyForCloudSqlInstance | 관리 프로젝트 | |
백업 | 백업 가져오기 | backupdr.bvbackups.get | 관리 프로젝트 |
백업 나열 | backupdr.bvbackups.list | 관리 프로젝트 | |
백업 삭제 | backupdr.bvbackups.delete | 관리 프로젝트 | |
백업 복원 | backupdr.bvbackups.useReadOnlyForCloudSqlInstance | 관리 프로젝트 | |
데이터 소스 참조 | 데이터 소스 참조 가져오기 | backupdr.dataSourceReferences.getForCloudSqlInstance | 워크로드 프로젝트 |
데이터 소스 참조 가져오기 | backupdr.dataSourceReferences.fetchForCloudSqlInstance | 워크로드 프로젝트 | |
작업 | 작업 나열 | backupdr.operations.list | 해당 프로젝트 |
가져오기 작업 | backupdr.operations.get | 해당 프로젝트 |
Cloud SQL 프로젝트에서 백업 볼트 액세스 권한 부여
Backup Vault가 생성된 프로젝트와 다른 프로젝트에서 Cloud SQL 인스턴스를 백업하려면 Cloud SQL 프로젝트 내의 Backup Vault 서비스 에이전트에 백업 및 DR Cloud SQL 운영자 (roles/backupdr.cloudSqlOperator
) IAM 역할을 부여해야 합니다. 백업이 저장될 Backup Vault 프로젝트가 Cloud SQL 프로젝트와 다른 경우 Cloud SQL 프로젝트 내의 Backup Vault 서비스 에이전트에 역할을 할당합니다.
Backup Vault가 생성된 동일한 프로젝트에서 Cloud SQL 인스턴스를 백업하는 경우 부여해야 하는 역할이 없습니다.
백업하려는 프로젝트 내에서 백업 보관소 서비스 에이전트에 역할을 부여하는 방법에 대한 자세한 내용은 서비스 에이전트에 역할 부여를 참고하세요.
예약 백업 구성
다음 안내에 따라 Cloud SQL 인스턴스의 예약 백업을 구성하세요.
콘솔
Google Cloud 콘솔에서 보관된 백업 페이지로 이동합니다.
백업 예약을 클릭합니다.
리소스 유형 목록에서 Cloud SQL을 선택합니다.
프로젝트 목록에서 Cloud SQL 인스턴스가 있는 프로젝트를 선택합니다.
리전 목록에서 인스턴스가 있는 리전을 선택합니다.
리소스 목록에서 찾아보기를 클릭합니다. 백업할 Cloud SQL 인스턴스를 선택하고 완료를 클릭합니다.
계속을 클릭합니다.
백업 계획 목록에서 선택을 클릭합니다.
Cloud SQL 인스턴스를 보호할 백업 계획을 선택합니다.
완료를 클릭합니다.
백업 세부정보를 검토하고 예약을 클릭합니다.
gcloud
예약 백업을 구성합니다.
gcloud backup-dr backup-plan-associations create BACKUP_PLAN_ASSOCIATION_NAME \ --location=CSQL_REGION \ --project=CSQL_PROJECT_ID \ --resource=projects/CSQL_PROJECT_ID/instances/CSQL_INSTANCE_ID \ --resource-type=sqladmin.googleapis.com/Instance \ --backup-plan=projects/PROJECT_ID/locations/LOCATION/backupPlans/BACKUP_PLAN
다음을 바꿉니다.
BACKUP_PLAN_ASSOCIATION_NAME
: 백업 계획 연결의 이름CSQL_REGION
: Cloud SQL 인스턴스가 있는 리전입니다.CSQL_PROJECT_ID
: Cloud SQL 인스턴스가 있는 프로젝트의 이름입니다.CSQL_INSTANCE_ID
: Cloud SQL 인스턴스 ID입니다.PROJECT_ID
: 백업 계획이 있는 프로젝트의 이름입니다.LOCATION
: 인스턴스 위치
백업이 예약된 인스턴스 나열
다음 안내에 따라 백업이 예약된 Cloud SQL 인스턴스를 나열합니다.
콘솔
Google Cloud 콘솔에서 보관된 백업 페이지로 이동합니다.
표 상단에서 표 필터링 > 리소스 유형을 선택합니다. Cloud SQL을 선택합니다. 이렇게 하면 백업 계획이 적용되고 백업이 프로젝트 내의 Backup Vault에 저장된 Cloud SQL 인스턴스만 표시됩니다.
gcloud
백업이 예약된 Cloud SQL 인스턴스를 나열합니다.
gcloud alpha backup-dr backup-plan-associations fetch-for-resource-type sqladmin.googleapis.com/Instance \
--location=LOCATION \
--project=PROJECT_ID
다음을 바꿉니다.
- LOCATION: 예약된 백업의 위치입니다.
- PROJECT_ID: Cloud SQL 인스턴스가 있는 프로젝트의 이름입니다.
주문형 백업 만들기
원하는 백업 규칙을 즉시 실행하도록 트리거하여 백업 계획이 있는 Cloud SQL 인스턴스의 주문형 백업을 시작할 수 있습니다. 주문형 백업은 일반적으로 마지막 백업 이후 변경된 데이터만 캡처합니다 (증분).
주문형 백업을 만들 때 Cloud SQL 인스턴스와 연결된 백업 계획에서 규칙을 선택할 수 있습니다. 이 규칙은 주문형 백업이 삭제되는 시기를 결정합니다. 작업 페이지에서 백업 작업 상태를 확인할 수 있습니다. 자세한 내용은 Google Cloud 콘솔에서 백업 및 복원 작업 모니터링을 참고하세요.
다음 안내에 따라 주문형 백업을 만듭니다.
콘솔
Google Cloud 콘솔에서 보관된 백업 페이지로 이동합니다.
Vaulted backups 페이지에는 백업 계획이 적용되고 프로젝트 내의 Backup Vault에 백업이 저장된 데이터 리소스만 표시됩니다.
백업할 리소스를 선택합니다.
메뉴 또는 리소스의 세부정보 페이지에서 주문형 백업 만들기를 선택합니다.주문형 백업 만들기 창에서 사용할 백업 규칙을 선택하고 만들기를 클릭합니다.
주문형 백업 작업의 상태를 보려면 알림을 클릭합니다.
gcloud
주문형 백업을 만듭니다. 기존 백업 계획 연결을 사용하여 주문형 백업을 시작합니다. 이 단일 주문형 백업의 만료 기간을 결정할 규칙 ID를 지정합니다.
gcloud backup-dr backup-plan-associations trigger-backup BACKUP_PLAN_ASSOCIATION_NAME \ --backup-rule-id=RULE_ID \ --project=PROJECT_ID \ --location=LOCATION \ [--no-async]
다음을 바꿉니다.
BACKUP_PLAN_ASSOCIATION_NAME: 백업 계획 연결의 이름
RULE_ID: 주문형 백업을 실행하기 위해 연결할 백업 규칙 이름
PROJECT_ID: 프로젝트의 이름입니다.
LOCATION: 예약된 백업의 위치입니다.
Cloud SQL 인스턴스 보호 해제
인스턴스에 적용된 백업 계획을 삭제하여 Cloud SQL 인스턴스의 보호를 해제할 수 있습니다. Cloud SQL 인스턴스에서 백업 계획을 삭제해도 백업 계획이 사용되는 동안 생성된 백업은 삭제되지 않습니다. 기존 백업은 만료될 때까지 계속 액세스하고 관리할 수 있습니다.
다음 안내에 따라 Cloud SQL 인스턴스의 보호를 해제합니다.
콘솔
Google Cloud 콘솔에서 보관된 백업 페이지로 이동합니다.
백업 계획을 삭제할 데이터베이스의 이름을 클릭합니다.
백업 계획 삭제를 선택합니다.
gcloud
Cloud SQL 인스턴스의 보호를 해제합니다.
gcloud backup-dr backup-plan-associations delete BACKUP_PLAN_ASSOCIATION_NAME \
--project=PROJECT_ID \
--location=LOCATION
다음을 바꿉니다.
- BACKUP_PLAN_ASSOCIATION_NAME: 삭제하려는 백업 계획 연결의 이름입니다.
- PROJECT_ID: 프로젝트의 이름입니다.
- LOCATION: 예약 백업의 위치입니다.