--- title: "restoreCluster" slug: "pub-clouddb-serverless-v1-cluster-restorecluster" updated: 2026-10-13T10:08:55Z published: 2026-10-13T10:08:55Z canonical: "api.ncloud-docs.com/pub-clouddb-serverless-v1-cluster-restorecluster" --- > ## Documentation Index > Fetch the complete documentation index at: https://api.ncloud-docs.com/llms.txt > Use this file to discover all available pages before exploring further. # restoreCluster VPC 환경에서 이용 가능합니다. Ncloud 표준 표현을 적용한 API입니다. 클러스터 백업 또는 Imported Backup을 복원하여 새 클러스터를 생성합니다. 복원은 비동기로 처리되며, 새 클러스터의 엔진 버전은 복원할 백업의 값을 따릅니다. 특정 시점으로의 복원(PITR)은 제공하지 않습니다. ## 요청 요청 형식을 설명합니다. 요청 형식은 다음과 같습니다. | 메서드 | URI | | --- | --- | | POST | /mysql/v1/clusters/restore | ### 요청 헤더 Cloud DB Serverless API에서 공통으로 사용하는 헤더에 대한 정보는 [Cloud DB Serverless 요청 헤더](/docs/pub-clouddb-serverless-v1-overview#%EC%9A%94%EC%B2%AD%ED%97%A4%EB%8D%94)를 참조해 주십시오. ### 요청 바디 요청 바디에 대한 설명은 다음과 같습니다. | 필드 | 타입 | 필수 여부 | 설명 | | --- | --- | --- | --- | | `name` | String | Required | 생성할 클러스터 이름 - 영문 소문자, 숫자, 특수문자 `-`를 조합하여 3~30자 이내로 입력 - 문자열의 시작은 영문자, 마지막은 영문자 또는 숫자로 구성 - `sys-`로 시작하는 이름 사용 불가 - 계정 내에서 중복 불가 | | `source` | Object | Required | 복원 소스 | | `source.type` | String | Required | 복원 소스 종류 - `BACKUP` \| `IMPORTED_BACKUP` - `BACKUP`: 클러스터 자동 백업 - `IMPORTED_BACKUP`: Object Storage에서 가져온 백업 | | `source.originalClusterName` | String | Conditional | 원본 클러스터 이름 - `source.type`이 `BACKUP`인 경우, 필수 입력 - [listClusters](/docs/pub-clouddb-serverless-v1-cluster-listclusters) 참조 | | `source.backupName` | String | Required | 복원할 백업 이름 - `source.type`이 `BACKUP`인 경우: [listBackups](/docs/pub-clouddb-serverless-v1-backup-listbackups) 참조 - `source.type`이 `IMPORTED_BACKUP`인 경우: [listImportedBackups](/docs/pub-clouddb-serverless-v1-backup-listimportedbackups) 참조 | | `source.adminUserName` | String | Conditional | 새 클러스터의 관리 계정 이름 - 영문자, 숫자, 특수문자 `_`, `-`를 조합하여 4~16자 이내로 입력 - 문자열의 시작은 영문자, 마지막은 영문자 또는 숫자로 구성 - 예약어(`admin`, `root`, `agent` 등) 사용 불가 - `source.type`이 `IMPORTED_BACKUP`인 경우, 필수 입력 | | `source.adminPassword` | String | Conditional | 새 클러스터의 관리 계정 비밀번호 - 영문자, 숫자, 특수문자를 각각 1자 이상 포함하여 8~20자 이내로 입력 - 특수문자 ```, `&`, `+`, `\`, `"`, `'`, `/` 및 공백 사용 불가 - `source.type`이 `IMPORTED_BACKUP`인 경우, 필수 입력 | | `source.storageType` | String | Optional | 데이터 스토리지 타입 - `CB2` - 현재 `CB2`만 제공 - `source.type`이 `IMPORTED_BACKUP`인 경우에만 입력 | | `network` | Object | Required | 네트워크 설정 | | `network.vpcNo` | Integer | Required | VPC 번호 - [getVpcList](/docs/networking-vpc-vpcmanagement-getvpclist) 참조 | | `network.subnetNo` | Integer | Required | 서브넷 번호 - [getSubnetList](/docs/networking-vpc-subnetmanagement-getsubnetlist) 참조 | | `network.port` | Integer | Required | DB 접속 포트 | | `multiZone` | Boolean | Required | 멀티 존 구성 여부 - `true` \| `false` - `true`: Primary와 Replica 인스턴스를 서로 다른 존에 배치 - `false`: 단일 존 구성 | | `unit` | Object | Required | 컴퓨팅 Unit 범위 - `autoScale.scaleUp.enabled`가 `false`이면 `unit.max` 값으로 고정 - Unit을 고정하려면 `unit.min`과 `unit.max`를 같은 값으로 입력 | | `unit.min` | Number | Required | 최소 값 - `1`~N (0.5 단위) - `unit.max` 이하 | | `unit.max` | Number | Required | 최대 값 - `1`~N (0.5 단위) - `unit.min` 이상 | | `backupConfig` | Object | Required | 자동 백업 설정 | | `backupConfig.backupAuto` | Boolean | Optional | 자동 백업 시각 지정 방식 - `true` (기본값) \| `false` - `true`: Cloud DB Serverless가 지정한 시각에 백업 (`backupConfig.backupTime` 무시) - `false`: `backupConfig.backupTime`에 지정한 시각에 백업 | | `backupConfig.backupTime` | String | Conditional | 자동 백업 시각 - HH:MM 형식 (UTC) - `backupConfig.backupAuto`가 `false`인 경우, 필수 입력 | | `backupConfig.retentionDays` | Integer | Required | 백업 보관 기간 (일) - `1`~`30` | | `autoScale` | Object | Optional | 오토 스케일링 설정 | | `autoScale.scaleOut` | Object | Optional | 수평 확장(스케일 인/아웃) 설정 | | `autoScale.scaleOut.enabled` | Boolean | Optional | 수평 확장 활성화 여부 - `true` \| `false` (기본값) - `true`: 활성화 - `false`: 비활성화 - `false`인 경우에도 임계값과 `autoScale.scaleOut.replica`를 입력할 수 있으며, 활성화 전까지는 적용되지 않음 | | `autoScale.scaleOut.thresholdConnection` | Integer | Conditional | 연결 수 임계값 - `500`~`30000` - `autoScale.scaleOut.enabled`가 `true`인 경우, `autoScale.scaleOut.thresholdCpu`와 둘 중 하나만 필수 입력 (동시 입력 불가) | | `autoScale.scaleOut.thresholdCpu` | Integer | Conditional | CPU 사용률 임계값 (%) - `30`~`99` - `autoScale.scaleOut.enabled`가 `true`인 경우, `autoScale.scaleOut.thresholdConnection`과 둘 중 하나만 필수 입력 (동시 입력 불가) | | `autoScale.scaleOut.replica` | Object | Conditional | Replica 인스턴스 수 범위 - `autoScale.scaleOut.enabled`가 `true`인 경우, 필수 입력 | | `autoScale.scaleOut.replica.min` | Integer | Conditional | 최소 값 - `1`~`3` - `autoScale.scaleOut.replica.max` 이하 - `autoScale.scaleOut.replica` 입력 시 필수 입력 | | `autoScale.scaleOut.replica.max` | Integer | Conditional | 최대 값 - `1`~`15` - `autoScale.scaleOut.replica.min` 이상 - `autoScale.scaleOut.replica` 입력 시 필수 입력 | | `autoScale.scaleUp` | Object | Optional | 수직 확장(스케일 업/다운) 설정 | | `autoScale.scaleUp.enabled` | Boolean | Optional | 수직 확장 활성화 여부 - `true` \| `false` (기본값) - `true`: `unit.min`에서 시작해 부하에 따라 `unit.min`~`unit.max` 범위에서 조정 - `false`: `unit`을 `unit.max` 값으로 고정 | | `highAvailability` | Boolean | Required | 고가용성(자동 장애 조치) 사용 여부 - `true` \| `false` - `true`: 사용 - `false`: 미사용 | ### 요청 예시 요청 예시는 다음과 같습니다. ``` curl --location --request POST 'https://clouddb-serverless.apigw.ntruss.com/mysql/v1/clusters/restore' \ --header 'x-ncp-apigw-timestamp: {Timestamp}' \ --header 'x-ncp-iam-access-key: {Access Key}' \ --header 'x-ncp-apigw-signature-v2: {API Gateway Signature}' \ --header 'Content-Type: application/json' \ --data '{ "name": "test-cluster-02", "source": { "type": "BACKUP", "originalClusterName": "test-cluster-01", "backupName": "test-cluster-01-20261013112000" }, "network": { "vpcNo": 12345, "subnetNo": 67890, "port": 3306 }, "multiZone": false, "unit": { "min": 1, "max": 3 }, "backupConfig": { "backupAuto": true, "retentionDays": 3 }, "autoScale": { "scaleUp": { "enabled": true } }, "highAvailability": true }' ``` ## 응답 응답 형식을 설명합니다. ### 응답 헤더 응답 헤더에 대한 설명은 다음과 같습니다. | 필드 | 필수 여부 | 설명 | | --- | --- | --- | | `retry-after` | - | 권장 폴링 간격 (초) - `done`이 `false`인 동안 이 간격으로 진행 상태 조회 - 202 응답에 포함 | ### 응답 바디 응답 바디에 대한 설명은 다음과 같습니다. | 필드 | 타입 | 필수 여부 | 설명 | | --- | --- | --- | --- | | `id` | String | - | Operation 식별자 - UUID 형식 - 진행 상태 조회: [getClusterOperation](/docs/pub-clouddb-serverless-v1-operation-getclusteroperation) 참조 | | `done` | Boolean | - | 완료 여부 - `true` \| `false` - `true`: 완료 - `false`: 진행 중 | | `metadata` | Object | - | Operation 부가 정보 | | `metadata.operationType` | String | - | 작업 유형 - `CREATE` \| `UPDATE` \| `DELETE` - `CREATE`: 생성 - `UPDATE`: 변경 - `DELETE`: 삭제 | | `metadata.resourceType` | String | - | 대상 리소스 - REST 경로의 리소스 세그먼트와 일치 - <예시> clusters | | `metadata.startDateTime` | String | - | 작업 시작 일시 - ISO 8601 형식 (UTC) | | `metadata.endDateTime` | String | - | 작업 완료 일시 - ISO 8601 형식 (UTC) - 진행 중이면 `null` 반환 | | `metadata.progress` | Integer | - | 진행률 (%) - `0`~`100` - 제공 가능한 작업에 한해 반환 - 완료 후 미반환 | | `results` | Object | - | 성공 결과 - 요청 인덱스를 키로 하는 객체. 단건 작업은 `0` 키 하나를 사용 - 클러스터 작업에서만 값을 반환하며, 그 외 작업은 `null` 반환 | | `results.name` | String | - | 작업 대상 클러스터 이름 | | `error` | Object | - | 실패 사유 - [Error](/docs/pub-clouddb-serverless-v1-overview#Error)와 동일한 형식 - 작업이 실패한 경우에 반환 | ### 응답 상태 코드 응답 상태 코드에 대한 설명은 다음과 같습니다. | HTTP 상태 코드 | 코드 | 메시지 | 설명 | | --- | --- | --- | --- | | 400 | `InvalidParameter` | `The specified parameter is invalid.` | 파라미터 값이 허용 범위나 형식을 벗어난 경우 | | 400 | `InvalidState` | `Indicates that the specified state is not a valid state for an event source.` | 복원 소스 백업이 사용 가능한 상태가 아닌 경우 | | 409 | `Conflict` | `The request could not be processed because of a conflict in the current status of the resource.` | 같은 이름의 클러스터가 이미 존재하는 경우 | | 409 | `ResourceInUse` | `The specified resource is in use.` | 복원 소스 백업이 다른 작업에 사용 중인 경우 | 참고 Cloud DB Serverless API에서 공통으로 사용하는 응답 상태 코드에 대한 정보는 [Cloud DB Serverless 응답 상태 코드](/docs/pub-clouddb-serverless-v1-overview#%EC%9D%91%EB%8B%B5%EC%83%81%ED%83%9C%EC%BD%94%EB%93%9C)를 참조해 주십시오. ### 응답 예시 응답 예시는 다음과 같습니다. ``` { "id": "92bd3ca1-7685-4bd8-a07d-48a224e7fd27", "done": false, "metadata": { "operationType": "CREATE", "resourceType": "clusters", "startDateTime": "2026-10-13T11:25:00.296128721Z", "endDateTime": null }, "results": null } ```