클러스터 모드 사용 시
다음 API는 클러스터 모드를 사용으로 설정한 클러스터에 사용할 수 있습니다.
주의
user.password
필드의 값은 암호화한 값을 넣어야지만 정상적으로 생성이 가능합니다.
클러스터 생성
새로운 클러스터를 생성합니다. 생성 시, 최소 샤드 개수는 1개, 최대 샤드 개수는 12개입니다.
Request
클러스터 생성 Request Syntax
curl -X POST "https://redis.kr-central-2.kakaocloud.com/v1/clusters" \
-H "X-Auth-Token: {token-id}" \
-H "Content-Type: application/json" \
-d '{Body}'
종류 | 파라미터 | 유형 | 설명 |
---|---|---|---|
Header | {token-id} * | String | API 인증 토큰 참고 |
Content-Type* | String | 콘텐츠 유형 기본값: application/json | |
Body | name* | String | 클러스터 이름 |
description | String | 클러스터 설명 | |
version* | String | Redis 버전7.2.7 , 7.2.6 , 7.0.15 , 6.2.17 , 6.2.16 , 6.2.5 지원 | |
port* | Integer | Redis 포트 번호, 2000 ~ 50000 내 입력 | |
shardCount* | Integer | 샤드 수 | |
nodeCountPerShard* | Integer | 샤드 당 노드 수 | |
flavorId* | String | 플레이버 ID | |
parameterGroupId* | String | 클러스터에 연결할 파라미터 그룹 ID | |
subnets[]* | Object Array | 배치 가능한 서브넷 목록 | |
subnets[].id* | String | 서브넷 ID - 서브넷 ID는 콘솔 > VPC > 서브넷에서 확인 | |
subnetAssignments[]* | Object Array | 서브넷 배치 목록 | |
subnetAssignments[].primary* | Object | Primary에 배치할 서브넷 | |
subnetAssignments[].primary.id* | String | Primary에 배치할 서브넷 ID | |
subnetAssignments[].replicas[]* | Object Array | Replica에 배치할 서브넷 목록 | |
subnetAssignments[].replicas[].id* | String | Replica에 배치할 서브넷 ID | |
tlsEnabled | Boolean | TLS 활성화 여부 | |
backupSchedule | Object | 자동 백업 정책, 해당 필드가 없으면 자동 백업 사용하지 않음 | |
backupSchedule.cron | String | 백업 일정의 크론 표현 시간만 설정 가능, 5자리 크론 표현식 사용 | |
backupSchedule.retentionLimit | Integer | 백업의 보존 기간(단위: 일) | |
user | Object | 데이터베이스 사용자 정보 - db 접근 시 계정 정보 | |
user.name | String | 데이터베이스 사용자 이름 | |
user.password | String | 데이터베이스 사용자 암호 (암호화된 형태 또는 암호 해시) 데이터베이스 사용자 암호 암호화 방법 | |
securityGroups[]* | Object Array | 클러스터에 연결할 보안 그룹 목록 | |
securityGroups[].id* | String | 클러스터에 연결할 보안 그룹 ID - 보안 그룹 ID는 콘솔 > VPC > 보안 그룹에서 확인 가능 |
클러스터 생성 Request Body Example
{
"name": "test-cluster",
"description": "test-cluster",
"version": "6.2.5",
"port": 6379,
"shardCount": 2,
"nodeCountPerShard": 3,
"flavorId": "3830ebad-ea2f-4822-8a7d-9e301c86a58d",
"parameterGroupId": "bbbbcccc-1234-1234-5678-e705e91db2fb",
"subnets": [
{"id": "xxxxxxxx-0a69-4f8b-b56d-59ce12b4d55b"},
{"id": "yyyyyyyy-0a69-4f8b-b56d-59ce12b4d55b"}
],
"subnetAssignments": [
{
"primary": {"id": "xxxxxxxx-0a69-4f8b-b56d-59ce12b4d55b"},
"replicas": [
{"id": "yyyyyyyy-0a69-4f8b-b56d-59ce12b4d55b"},
{"id": "yyyyyyyy-0a69-4f8b-b56d-59ce12b4d55b"}
]
},
{
"primary": {"id": "xxxxxxxx-0a69-4f8b-b56d-59ce12b4d55b"},
"replicas": [
{"id": "yyyyyyyy-0a69-4f8b-b56d-59ce12b4d55b"},
{"id": "yyyyyyyy-0a69-4f8b-b56d-59ce12b4d55b"}
]
}
],
"user": {
"name": "testuser",
"password": "if2iOwJYiklliJIT8tvqoY~~~~",
},
"tlsEnabled": false,
"restoreSource": {
"backupName": "{restore-source-backup-name-env}"
},
"backupSchedule": {
"cron": "* 1 * * *",
"retentionLimit": 7
},
"securityGroups": [
{"id": "abcdxxxx-4870-4c4e-a267-2de13e38c2ea"},
{"id": "qwergggg-4870-4c4e-a267-2de13e38c2ea"}
]
}
Response
상태 코드 | 설명 |
---|---|
201 | 리소스 생성 요청에 대한 성공 응답 |
400 | 사용자의 요청이 유효하지 않아 작업을 진행할 수 없음 |
401 | 인증되지 않은 사용자가 요청한 경우 |
403 | 권한이 없는 사용자가 요청한 경우 |
409 | 현재 서버의 상태에 중복된 요청이 발생한 경우 |
422 | 사용자의 요청 구문은 유효하지만 작업을 진행할 수 없는 경우 |
500 | 내부 에러로 작업을 진행할 수 없는 경우 |
필드 | 유형 | 설명 |
---|---|---|
objectId | String | 클러스터 ID |
클러스터 생성 Response Example
201 Created
content-length: 52
content-type: application/json; charset=UTF-8
{
"objectId": "qwerqwer-7347-4d87-a49f-e705e91db2fb"
}
기존 백업 이름으로 클러스터 생성(복원)
기존 백업 이름으로 클러스터를 복원합니다.
안내
선택한 백업의 클러스터 모드와 동일한 모드로만 복원가능하며, 선택한 백업 Redis 엔진 버전과 같거나 상위 버전으로만 복원 가능
주의
소스 백업의 캐시 크기가 복원할 클러스터 플레이버의 메모리의 60% 이상인 경우, 복원에 실패할 수 있습니다.
Request
기존 백업 이름으로 클러스터 생성 Request Syntax
curl -X POST "https://redis.kr-central-2.kakaocloud.com/v1/clusters" \
-H "X-Auth-Token: {token-id}" \
-H "Content-Type: application/json" \
-d '{Body}'
종류 | 파라미터 | 유형 | 설명 |
---|---|---|---|
Header | {token-id} * | String | API 인증 토큰 참고 |
Content-Type* | String | 콘텐츠 유형 기본값: application/json | |
Body | name* | String | 클러스터 이름 |
description | String | 클러스터 설명 | |
version* | String | Redis 버전7.2.7 , 7.2.6 , 7.0.15 , 6.2.17 , 6.2.16 , 6.2.5 지원 | |
port* | Integer | Redis 포트 번호, 2000 ~ 50000 내 입력 | |
shardCount* | Integer | 샤드 수 - 복원하려는 백업의 샤드수와 동일한 값 입력 필요 | |
nodeCountPerShard* | Integer | 샤드 당 노드 수 | |
flavorId* | String | 플레이버 ID | |
parameterGroupId* | String | 클러스터에 연결할 파라미터 그룹 ID | |
subnets[]* | Object Array | 배치 가능한 서브넷 목록 | |
subnets[].id* | String | 서브넷 ID - 서브넷 ID는 콘솔 > VPC > 서브넷에서 확인 | |
subnetAssignments[]* | Object Array | 서브넷 배치 목록 | |
subnetAssignments[].primary* | Object | Primary에 배치할 서브넷 | |
subnetAssignments[].primary.id* | String | Primary에 배치할 서브넷 ID | |
subnetAssignments[].replicas[]* | Object Array | Replica에 배치할 서브넷 목록 | |
subnetAssignments[].replicas[].id* | String | Replica에 배치할 서브넷 ID | |
tlsEnabled | Boolean | TLS 활성화 여부 | |
restoreSource | Object | 복원 소스 정보 - 소스 정보를 입력하지 않으면 복원이 아닌 신규 클러스터가 생성 | |
restoreSource.backupNames | String | Redis 백업 목록의 이름 | |
backupSchedule | Object | 자동 백업 정책, 해당 필드가 없으면 자동 백업 사용하지 않음 | |
backupSchedule.cron | String | 백업 일정의 크론 표현 시간만 설정 가능, 5자리 크론 표현식 사용 | |
backupSchedule.retentionLimit | Integer | 백업의 보존 기간(단위: 일) | |
user | Object | 데이터베이스 사용자 정보 - db 접근 시 계정 정보 | |
user.name | String | 데이터베이스 사용자 이름 | |
user.password | String | 데이터베이스 사용자 암호 (암호화된 형태 또는 암호 해시) 데이터베이스 사용자 암호 암호화 방법 | |
securityGroups[]* | Object Array | 클러스터에 연결할 보안 그룹 목록 | |
securityGroups[].id* | String | 클러스터에 연결할 보안 그룹 ID - 보안 그룹 ID는 콘솔 > VPC > 보안 그룹에서 확인 가능 |
기존 백업 이름으로 클러스터 생성 Request Body Example
{
"name": "test-cluster",
"description": "test-cluster",
"version": "6.2.5",
"port": 6379,
"shardCount": 2,
"nodeCountPerShard": 3,
"flavorId": "3830ebad-ea2f-4822-8a7d-9e301c86a58d",
"parameterGroupId": "bbbbcccc-1234-1234-5678-e705e91db2fb",
"subnets": [
{"id": "xxxxxxxx-0a69-4f8b-b56d-59ce12b4d55b"},
{"id": "yyyyyyyy-0a69-4f8b-b56d-59ce12b4d55b"}
],
"subnetAssignments": [
{
"primary": {"id": "xxxxxxxx-0a69-4f8b-b56d-59ce12b4d55b"},
"replicas": [
{"id": "yyyyyyyy-0a69-4f8b-b56d-59ce12b4d55b"},
{"id": "yyyyyyyy-0a69-4f8b-b56d-59ce12b4d55b"}
]
},
{
"primary": {"id": "xxxxxxxx-0a69-4f8b-b56d-59ce12b4d55b"},
"replicas": [
{"id": "yyyyyyyy-0a69-4f8b-b56d-59ce12b4d55b"},
{"id": "yyyyyyyy-0a69-4f8b-b56d-59ce12b4d55b"}
]
}
],
"user": {
"name": "testuser",
"password": "if2iOwJYiklliJIT8tvqoY~~~~",
},
"tlsEnabled": false,
"restoreSource": {
"backupName": "{restore-source-backup-name-env}"
},
"backupSchedule": {
"cron": "* 1 * * *",
"retentionLimit": 7
},
"securityGroups": [
{"id": "abcdxxxx-4870-4c4e-a267-2de13e38c2ea"},
{"id": "qwergggg-4870-4c4e-a267-2de13e38c2ea"}
]
}
Response
상태 코드 | 설명 |
---|---|
201 | 리소스 생성 요청에 대한 성공 응답 |
400 | 사용자의 요청이 유효하지 않아 작업을 진행할 수 없음 |
401 | 인증되지 않은 사용자가 요청한 경우 |
403 | 권한이 없는 사용자가 요청한 경우 |
409 | 현재 서버의 상태에 중복된 요청이 발생한 경우 |
422 | 사용자의 요청 구문은 유효하지만 작업을 진행할 수 없는 경우 |
500 | 내부 에러로 작업을 진행할 수 없는 경우 |
필드 | 유형 | 설명 |
---|---|---|
objectId | String | 클러스터 ID |
기존 백업 이름으로 클러스터 생성 Response Example
201 Created
content-length: 52
content-type: application/json; charset=UTF-8
{
"objectId": "qwerqwer-7347-4d87-a49f-e705e91db2fb"
}