VPC 환경에서 이용 가능합니다.
새 클러스터를 생성합니다. 비동기(LRO)로 처리되며 202와 함께 Operation을 반환합니다. Operation.metadata는 operationType=CREATE, resourceType=clusters로 반환됩니다. autoScale을 생략하면 scale up/down과 scale in/out이 모두 비활성으로 생성되며, scale up/down이 비활성이면 unit은 unit.max 값으로 고정됩니다. unit.min에서 시작해 부하에 따라 조정되게 하려면 autoScale.scaleUp.enabled=true로 요청하고, unit을 고정하려면 unit.min과 unit.max를 같은 값으로 설정합니다. autoScale.scaleOut.enabled=true인 경우 threshold(connection/cpu 중 하나)와 replica 범위가 필수입니다.
요청
요청 형식을 설명합니다. 요청 형식은 다음과 같습니다.
| 메서드 | URI |
|---|---|
| POST | /clusters |
요청 헤더
Cloud DB Serverless API에서 공통으로 사용하는 헤더에 대한 정보는 Cloud DB Serverless 요청 헤더를 참조해 주십시오.
요청 바디
요청 바디에 대한 설명은 다음과 같습니다.
| 필드 | 타입 | 필수 여부 | 설명 |
|---|---|---|---|
name |
String | Required | 클러스터 이름 (하이픈 시작/끝 불가, 예약 prefix 금지, 멤버 내 유일)
|
storageType |
String | Required | 인스턴스 데이터 스토리지 타입
|
network |
Object | Required | 네트워크 설정 |
network.vpcNo |
Integer (int64) | Required | VPC 번호
|
network.subnetNo |
Integer (int64) | Required | 서브넷 번호
|
network.port |
Integer (int32) | Required | DB 접속 포트
|
multiZone |
Boolean | Required | 멀티 존 구성 여부
|
unit |
Object<UnitRange> | Required | 컴퓨팅 unit 범위. scale up/down(autoScale.scaleUp)이 비활성이면 max 값으로 고정되며, 고정 unit을 원하면 min과 max를 같은 값으로 설정 |
initialDatabase |
Object | Required | 초기 database 및 관리 계정 |
initialDatabase.databaseName |
String | Required | 초기 database 이름 (예약 스키마명 mysql·information_schema·performance_schema·sys 사용 불가)
|
initialDatabase.adminUserName |
String | Required | 관리 계정 이름 (예약어 금지 — admin, root, agent 등)
|
initialDatabase.adminPassword |
String (password) | Required | 관리 계정 비밀번호 (영문+숫자+특수문자 각 1개 이상, ` & + \ " ' / 및 공백 금지)
|
backupConfig |
Object<BackupConfig> | Required | 자동 백업 설정 |
autoScale |
Object<AutoscaleConfigRequest> | Optional | Auto Scaling 설정. 생략 시 scale up/down·scale in/out이 모두 비활성으로 생성되며, 이 경우 unit은 unit.max 값으로 고정 |
highAvailability |
Boolean | Required | 고가용성(자동 장애 조치) 사용 여부
|
engineVersion |
String | Required | 생성할 엔진 버전 (GET /engine-versions 참조)
|
UnitRange
컴퓨팅 unit 범위 (0.5 단위, 1 이상, min ≤ max). scale up/down이 활성일 때 min~max 범위에서 조정되며, 비활성이면 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 | 수직 확장(scale up/down) 활성화 여부
|
요청 예시
요청 예시는 다음과 같습니다.
curl --location --request POST 'https://clouddb-serverless.apigw.ntruss.com/mysql/v1/clusters' \
--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": "new-cluster",
"storageType": "CB2",
"network": {
"vpcNo": 12345,
"subnetNo": 67890,
"port": 3306
},
"multiZone": false,
"unit": {
"min": 1,
"max": 3
},
"initialDatabase": {
"databaseName": "db",
"adminUserName": "admin_user",
"adminPassword": "Passw0rd!"
},
"backupConfig": {
"retentionDays": 3
},
"highAvailability": true,
"engineVersion": "8.4.5"
}'
응답
응답 형식을 설명합니다.
응답 헤더
응답 헤더에 대한 설명은 다음과 같습니다.
| 필드 | 필수 여부 | 설명 |
|---|---|---|
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" 키 하나를 사용. 클러스터 작업(resourceType=clusters: 생성·복원·변경·삭제)만 값을 반환하며, 값은 대상 클러스터의 name 하나를 담은 객체. 그 외 리소스(users, databases, config, backups, imported-backups, logs, processes)의 작업은 null. |
error |
Object | - | 실패 사유 (단건 작업) |
error.errorCode |
String | - | 에러 코드 |
error.message |
String | - | 에러 메시지 (기본 영어, 다국어 지원 가능) |
error.detail |
String | - | 에러 상세 정보 (기본 영어, 다국어 지원 가능) |
error.fieldErrors |
List<FieldError> | - | 입력값 에러가 발생한 경우 각 필드별 에러 상세 정보 목록 |
failures |
Map<Error> | null | - | 일괄 작업의 index별 실패 사유 |
results
| 필드 | 타입 | 필수 여부 | 설명 |
|---|---|---|---|
name |
String | - | 작업 대상 클러스터 이름
|
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": "clusters",
"startDateTime": "2026-07-21T10:00:00Z"
},
"results": {
"key": {
"name": "new-cluster"
}
}
}