The latest service changes have not yet been reflected in this content. We will update the content as soon as possible. Please refer to the Korean version for information on the latest updates.
이 가이드는 API 명세를 기반으로 AI가 자동 생성했습니다.
VPC 환경에서 이용 가능합니다.
Ncloud 표준 표현을 적용한 API입니다.
백업(클러스터 백업 또는 Imported Backup)으로부터 새 클러스터를 생성합니다. 비동기(LRO)로 처리됩니다. engineVersion은 백업 소스에서 결정되며, 시점 복원(PITR)은 제공하지 않습니다.
요청
요청 형식을 설명합니다. 요청 형식은 다음과 같습니다.
| 메서드 | URI |
|---|---|
| POST | /clusters/restore |
요청 헤더
Cloud DB Serverless API에서 공통으로 사용하는 헤더에 대한 정보는 Cloud DB Serverless 요청 헤더를 참조해 주십시오.
요청 바디
요청 바디에 대한 설명은 다음과 같습니다.
| 필드 | 타입 | 필수 여부 | 설명 |
|---|---|---|---|
name |
String | Required | 생성할 클러스터 이름
|
source |
Object | Required | 복원 소스. type=BACKUP → originalClusterName+backupName, type=IMPORTED_BACKUP → backupName+adminUserName+adminPassword(+storageType) |
source.type |
String | Required | 복원 소스 종류
|
source.originalClusterName |
String | Optional | 원본 클러스터 이름 (type=BACKUP 시 필수)
|
source.backupName |
String | Required | 백업 이름 (type=BACKUP은 클러스터 백업, type=IMPORTED_BACKUP은 imported backup)
|
source.adminUserName |
String | Optional | 관리 계정 이름 (type=IMPORTED_BACKUP 시 필수. 예약어 금지 — admin, root, agent 등)
|
source.adminPassword |
String (password) | Optional | 관리 계정 비밀번호 (type=IMPORTED_BACKUP 시 필수)
|
source.storageType |
String | Optional | 스토리지 타입 (type=IMPORTED_BACKUP 시 선택)
|
network |
Object | Required | 네트워크 설정 |
network.vpcNo |
Integer (int64) | Required | VPC 번호
|
network.subnetNo |
Integer (int64) | Required | 서브넷 번호
|
network.port |
Integer (int32) | Required | DB 접속 포트
|
multiZone |
Boolean | Required | 복원 클러스터의 멀티 존 구성 여부
|
unit |
UnitRange | Required | 컴퓨팅 unit |
backupConfig |
BackupConfig | Required | 복원 클러스터에 적용할 자동 백업 설정 |
autoScale |
AutoscaleConfigRequest | Optional | 복원 클러스터에 적용할 Auto Scaling 설정 (생략 시 비활성) |
highAvailability |
Boolean | Required | 고가용성(자동 장애 조치) 사용 여부
|
UnitRange
컴퓨팅 unit 범위 (0.5 단위, 1 이상, min ≤ max)
| 필드 | 타입 | 필수 여부 | 설명 |
|---|---|---|---|
min |
Number (double) | Required | 최솟값
|
max |
Number (double) | Required | 최댓값
|
BackupConfig
자동 백업 설정
| 필드 | 타입 | 필수 여부 | 설명 |
|---|---|---|---|
backupAuto |
Boolean | Optional | 자동 백업 시각 지정 방식
|
backupTime |
String | null | Optional | HH:MM (UTC). backupAuto=false 시 필수
|
retentionDays |
Integer (int32) | Required | 백업 보관일
|
AutoscaleConfigRequest
변경할 필드만 포함 (merge-patch)
| 필드 | 타입 | 필수 여부 | 설명 |
|---|---|---|---|
scaleOut |
Object | Optional | 수평 확장 설정 |
scaleOut.enabled |
Boolean | Optional | 수평 확장 활성화 여부
|
scaleOut.thresholdConnection |
Integer (int32) | Optional | 연결 수 임계값
|
scaleOut.thresholdCpu |
Integer (int32) | Optional | CPU 사용률 임계값 (%)
|
scaleOut.replica |
Object | Optional | 복제본 현황 |
scaleOut.replica.min |
Integer (int32) | Optional | 최솟값
|
scaleOut.replica.max |
Integer (int32) | Optional | 최댓값
|
scaleUp |
Object | Optional | 수직 확장 설정 |
scaleUp.enabled |
Boolean | Optional | 수직 확장 활성화 여부
|
요청 예시
요청 예시는 다음과 같습니다.
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": "restored-cluster",
"source": {
"type": "BACKUP",
"backupName": "backup-20260721"
},
"network": {
"vpcNo": 12345,
"subnetNo": 67890,
"port": 3306
},
"multiZone": false,
"unit": {
"min": 1,
"max": 3
},
"backupConfig": {
"retentionDays": 3
},
"highAvailability": true
}'
응답
응답 형식을 설명합니다.
응답 헤더
응답 헤더에 대한 설명은 다음과 같습니다.
| 필드 | 필수 여부 | 설명 |
|---|---|---|
retry-after |
Optional | 권장 폴링 간격 (초). done=false인 동안 이 간격으로 폴링 (202 응답) |
응답 바디
응답 바디에 대한 설명은 다음과 같습니다.
| 필드 | 타입 | 필수 여부 | 설명 |
|---|---|---|---|
id |
String (uuid) | - | Operation 식별자
|
done |
Boolean | - | 완료 여부
|
metadata |
Object | - | 작업 유형·대상 리소스·시각 등 Operation 부가 정보 |
metadata.operationType |
String | - | 작업 유형
|
metadata.resourceType |
String | - | 대상 리소스 (REST 경로의 리소스 세그먼트와 일치 — 컬렉션은 복수형, 싱글턴은 경로 그대로)
|
metadata.startDateTime |
String (date-time) | - | 작업 시작 시각 (RFC3339 UTC)
|
metadata.endDateTime |
String (date-time) | null | - | 완료 시각 (진행 중이면 null) |
metadata.progress |
Integer (int32) | null | - | 진행률 (%) — 제공 가능한 작업에 한함
|
results |
Map<Object> | null | - | 성공 결과. 요청 인덱스를 키로 하는 Map이며 단건 작업은 "0" 키 하나를 사용 |
results.<키> |
Object | - | 해당 index의 생성·변경된 리소스 표현 |
error |
Object | - | 실패 사유 (단건 작업) |
error.errorCode |
String | - | 에러 코드 |
error.message |
String | - | 에러 메시지 (기본 영어, 다국어 지원 가능) |
error.detail |
String | - | 에러 상세 정보 (기본 영어, 다국어 지원 가능) |
error.fieldErrors |
List<FieldError> | - | 입력값 에러가 발생한 경우 각 필드별 에러 상세 정보 목록 |
failures |
Map<Error> | null | - | 일괄 작업의 index별 실패 사유 |
FieldError
필드 에러 정보
| 필드 | 타입 | 필수 여부 | 설명 |
|---|---|---|---|
message |
String | - | 필드 에러 메시지 (기본 영어, 다국어 지원 가능) |
field |
String | - | 입력값 검증 실패 시 해당 필드 이름 |
Error
에러 정보
| 필드 | 타입 | 필수 여부 | 설명 |
|---|---|---|---|
errorCode |
String | - | 에러 코드 |
message |
String | - | 에러 메시지 (기본 영어, 다국어 지원 가능) |
detail |
String | - | 에러 상세 정보 (기본 영어, 다국어 지원 가능) |
fieldErrors |
List<FieldError> | - | 입력값 에러가 발생한 경우 각 필드별 에러 상세 정보 목록 |
응답 상태 코드
Cloud DB Serverless API에서 공통으로 사용하는 응답 상태 코드에 대한 정보는 Cloud DB Serverless 응답 상태 코드를 참조해 주십시오.
이 API에만 해당하는 응답 상태 코드는 다음과 같습니다.
| 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. | 복원 소스 백업이 다른 작업에 사용 중인 경우 |
응답 예시
응답 예시는 다음과 같습니다.
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"done": false,
"metadata": {
"operationType": "CREATE",
"resourceType": "users",
"startDateTime": "2026-07-21T10:00:00Z",
"endDateTime": "string(date-time)",
"progress": "integer"
},
"results": {
"key": {}
},
"error": {
"errorCode": "string",
"message": "string",
"detail": "string",
"fieldErrors": [
{
"message": "string",
"field": "string"
}
]
},
"failures": {
"key": {
"errorCode": "string",
"message": "string",
"detail": "string",
"fieldErrors": [
{
"message": "string",
"field": "string"
}
]
}
}
}