공통
공통 API는 클러스터 모드의 설정(사용/사용 안 함)에 관계없이 사용할 수 있습니다.
엔진 버전 목록 조회
사용 가능한 엔진 버전 목록을 조회합니다.
Request
엔진 버전 목록 조회 Request Syntax
curl -X GET "https://redis.kr-central-2.kakaocloud.com/v1/redis/versions" \
-H "accept: application/json" \
-H "X-Auth-Token: {token-id}"
종류 | 파라미터 | 유형 | 설명 |
---|---|---|---|
Header | {token-id} * | String | API 인증 토큰 참고 |
Response
상태 코드 | 설명 |
---|---|
200 | 리소스 생성 요청에 대한 성공 응답 |
400 | 사용자의 요청이 유효하지 않아 작업을 진행할 수 없음 |
403 | 권한이 없는 사용자가 요청한 경우 |
404 | 사용자가 요청한 리소스 존재하지 않은 경우 |
필드 | 유형 | 설명 |
---|---|---|
[] | String Array | 엔진 버전 목록 |
엔진 버전 목록 조회 Response Example
200 OK
content-length: ...
content-type: application/json; charset=UTF-8
["6.2.5","5.0.6"]
플레이버 목록 조회
사용 가능한 플레이버 목록을 조회합니다.
Request
플레이버 목록 조회 Request Syntax
curl -X GET "https://redis.kr-central-2.kakaocloud.com/v1/redis/flavors" \
-H "accept: application/json" \
-H "X-Auth-Token: {token-id}"
종류 | 파라미터 | 유형 | 설명 |
---|---|---|---|
Header | {token-id} * | String | API 인증 토큰 참고 |
Response
상태 코드 | 설명 |
---|---|
200 | 리소스 생성 요청에 대한 성공 응답 |
401 | 인증되지 않은 사용자가 요청한 경우 |
403 | 권한이 없는 사용자가 요청한 경우 |
404 | 사용자가 요청한 리소스 존재하지 않은 경우 |
500 | 내부 에러로 작업을 진행할 수 없는 경우 |
필드 | 유형 | 설명 |
---|---|---|
flavors[] | Object Array | 플레이버 목록 |
flavors[].id | String | 플레이버 ID |
flavors[].name | String | 플레이버 이름 |
flavors[].vcpus | Integer | 플레이버의 가상 CPU 수 |
flavors[].memory | Integer | 플레이버의 메모리 크기(GiB) |
플레이버 목록 조회 Response Example
200 OK
content-length: ...
content-type: application/json; charset=UTF-8
{
"flavors": [
{
"id": "3830ebad-ea2f-4822-8a7d-9e301c86a58d",
"name": "a1-2-co",
"vcpus": 2,
"memory": 4
},
{
"id": "9e34af24-e1fa-475f-ba5c-11f0116e1d85",
"name": "a1-4-co",
"vcpus": 4,
"memory": 8
},
{
"id": "f443e5e2-84c1-47c1-984b-ee2221b96fe8",
"name": "a1-8-co",
"vcpus": 8,
"memory": 16
}
]
}
클러스터 목록 조회
모든 클러스터 목록을 조회합니다.
Request
클러스터 목록 조회 Request Syntax
curl -X GET "https://redis.kr-central-2.kakaocloud.com/v1/clusters" \
-H "X-Auth-Token: {token-id}"
종류 | 파라미터 | 유형 | 설명 |
---|---|---|---|
Header | {token-id} * | String | API 인증 토큰 참고 |
Query | {parameter-group-id or parameter-group-name} | String | 파라미터 그룹 ID 또는 이름 |
Response
상태 코드 | 설명 |
---|---|
200 | 리소스 생성 요청에 대한 성공 응답 |
400 | 사용자의 요청이 유효하지 않아 작업을 진행할 수 없음 |
401 | 인증되지 않은 사용자가 요청한 경우 |
403 | 권한이 없는 사용자가 요청한 경우 |
500 | 내부 에러로 작업을 진행할 수 없는 경우 |
필드 | 유형 | 설명 |
---|---|---|
clusters[] | Object Array | 클러스터 목록 |
clusters.projectId | String | 프로젝트 ID |
clusters.objectId | String | 오브젝트 ID |
clusters.name | String | 클러스터의 이름 |
clusters.description | String | 클러스터의 설명 |
clusters.version | String | Redis 버전 |
clusters.port | Integer | Redis 포트 번호 |
clusters.clusterEnabled | Boolean | 클러스터 모드 활성화 여부 - true : 클러스터 모드 사용 - false : 클러스터 모드 미사용 |
clusters.recoveryEnabled | Boolean | 고가용성 모드 활성화 여부 - true : 고가용성 모드 사용 (클러스터 모드를 사용하는 경우 항상 true ) - false : 고가용성 모드 미사용 |
clusters.shardCount | Integer | 샤드 개수 |
clusters.totalNodeCount | Integer | 총 노드 개수 |
clusters.flavorId | String | 플레이버 ID |
clusters.vcpu | Integer | 가상 CPU 개수 |
clusters.memory | Integer | 메모리 크기(GiB) |
clusters.endpoints | Object | 엔드포인트 주소 |
clusters.endpoints.primaryEndpoint | String | 기본 엔드포인트 주소 |
clusters.endpoints.readEndpoint | String | 읽기 전용 엔드포인트 주소 - 클러스 터 모드를 사용하는 경우, 읽기 전용 엔드포인트 없음 |
clusters.userName | String | 사용자 ID, 인증 미사용의 경우 - |
clusters.subnets[] | Object Array | 배치 가능한 서브넷 목록 |
clusters.subnets[].id | String | 서브넷 ID |
clusters.subnetAssignments[] | Object Array | 서브넷 배치 목록 |
clusters.subnetAssignments[].primary | Object | Primary에 배치되어 있는 서브넷 |
clusters.subnetAssignments[].primary.id | String | Primary에 배치되어 있는 서브넷 ID |
clusters.subnetAssignments[].replicas[] | Object Array | Replica에 배치되어 있는 서브넷 목록 |
clusters.subnetAssignments[].replicas[].id | String | Replica에 배치되어 있는 서브넷 ID |
clusters.securityGroups[] | Object Array | 클러스터에 연결되어 있는 보안 그룹 목록 |
clusters.securityGroups[].id | String | 보안 그룹 ID |
clusters.backupSchedule | Object | 자동 백업 정책 |
clusters.backupSchedule.cron | string | 자동 백업 일정의 크론 표현식 |
clusters.backupSchedule.retentionLimit | integer | 자동 백업의 보존 기간(단위: 일) |
clusters.creator | String | 클러스터 생성자 ID |
clusters.license | String | 라이센스 종류 |
clusters.status | String | 클러스터 상태 |
clusters.parameterGroupId | String | 클러스터에 반영되어 있는 파라미터 그룹 ID |
clusters.parameterGroupName | String | 클러스터에 반영되어 있는 파라미터 그룹 이름 |
clusters.parameterGroupSyncStatus | String | 클러스터에 파라미터 그룹의 싱크 상태 |
clusters.createdAt | Integer | 클러스터 생성 시간 (RFC3339) |
클러스터 목록 조회 Response Example
200 OK
content-length: ...
content-type: application/json; charset=UTF-8
{
"clusters": [
{
"projectId": "377813fe9e0144dc8cd867c2zxcvasdf",
"objectId": "qqqqwwww-7347-4d87-a49f-e705e91db2fb",
"name": "test-cluster",
"description": "test-cluster",
"version": "6.2.5",
"port": 6379,
"clusterEnabled": true, /* redis cluster */
"recoveryEnabled": true,
"shardCount": 2,
"totalNodeCount": 6,
"flavorId": "ffffffff-ea2f-4822-8a7d-9e301c86a58d",
"vcpu": 2,
"memory": 16,
"endpoints": {
"primaryEndpoint": "",
"readEndpoint": ""
},
"userName": "testusername",
"subnets": [ /* node 배치 가능한 subnet 리스트 */
{"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"}
]
}
],
"securityGroups": [
{"id": "abcdxxxx-4870-4c4e-a267-2de13e38c2ea"},
{"id": "qwergggg-4870-4c4e-a267-2de13e38c2ea"}
],
"backupSchedule": null,
"creator": "ms@kakaoenterprise.com",
"license": "GPL",
"status": "Modifying",
"createdAt": 2024-03-06T02:35:13Z
},
{
"projectId": "377813fe9e0144dc8cd867c2zxcvasdf",
"objectId": "aaaassss-7347-4d87-a49f-e705e91db2fb",
"name": "test-instance-group",
"description": "test-instance-group",
"version": "6.2.5",
"port": 6379,
"clusterEnabled": false, /* redis instance set */
"recoveryEnabled": false,
"shardCount": 0,
"totalNodeCount": 4,
"flavorId": "3830ebad-ea2f-4822-8a7d-9e301c86a58d",
"vcpu": 2,
"memory": 8,
"endpoints": {"primaryEndpoint": "", "readEndpoint": ""},
"userName": "testusername",
"subnets": [
{"id": "xxxxxxxx-0a69-4f8b-b56d-59ce12b4d55b"},
],
"subnetAssignments": [
{
"primary": {"id": "xxxxxxxx-0a69-4f8b-b56d-59ce12b4d55b"},
"replicas": [
{"id": "xxxxxxxx-0a69-4f8b-b56d-59ce12b4d55b"},
{"id": "xxxxxxxx-0a69-4f8b-b56d-59ce12b4d55b"},
{"id": "xxxxxxxx-0a69-4f8b-b56d-59ce12b4d55b"}
]
}
],
"securityGroups": [
{"id": "abcdxxxx-4870-4c4e-a267-2de13e38c2ea"},
{"id": "qwergggg-4870-4c4e-a267-2de13e38c2ea"}
],
"backupSchedule": {
"cron": "* 1 * * *",
"retentionLimit": 15
},
"creator": "ms@kakaoenterprise.com",
"license": "GPL",
"status": "Creating",
"parameterGroupId": "bbbbcccc-1234-1234-5678-e705e91db2fb",
"parameterGroupName": "test-parameter-group",
"parameterGroupSyncStatus": "In-Sync",
"createdAt": 2024-03-06T02:35:13Z
}
]
}
클러스터 상세 정보 조회
특정 클러스터의 상세 정보를 조회합니다.
Request
클러스터 상세 정보 조회 Request Syntax
curl -X GET "https://redis.kr-central-2.kakaocloud.com/v1/clusters/{cluster-id}" \
-H "X-Auth-Token: {token-id}"
종류 | 파라미터 | 유형 | 설명 |
---|---|---|---|
URL | {cluster-id} * | String | 클러스터 ID |
Header | {token-id} * | String | API 인증 토큰 참고 |
Response
상태 코드 | 설명 |
---|---|
200 | 리소스 조회/삭제 요청에 대한 성공 응답 |
400 | 사용자의 요청이 유효하지 않아 작업을 진행할 수 없음 |
401 | 인증되지 않은 사용자가 요청한 경우 |
403 | 권한이 없는 사용자가 요청한 경우 |
404 | 사용자가 요청한 리소스가 존재하지 않은 경우 |
500 | 내부 에러로 작업을 진행할 수 없는 경우 |
필드 | 유형 | 설명 |
---|---|---|
projectId | String | 프로젝트 ID |
objectId | String | 오브젝트 ID |
name | String | 클러스터의 이름 |
description | String | 클러스터의 설명 |
version | String | Redis 버전 |
port | Integer | Redis 포트 번호 |
clusterEnabled | Boolean | 클러스터 모드 활성화 여부 - true : 클러스터 모드 사용 - false : 클러스터 모드 사용 안 함 |
recoveryEnabled | Boolean | 고가용성 모드 활성화 여부 - true : 고가용성 모드 사용 (클러스터 모드를 사용하는 경우 항상 true ) - false : 고가용성 모드 미사용 |
shardCount | Integer | 샤드 개수 - 클러스터 모드를 사용하지 않는 경우 0 |
totalNodeCount | Integer | 총 노드 개수 |
flavorId | String | 플레이버 ID |
vcpu | Integer | 가상 CPU 개수 |
memory | Integer | 메모리 크기(GiB) |
endpoints | Object | 엔드포인트 주소 |
endpoints.primaryEndpoint | String | 기본 엔드포인트 주소 |
endpoints.readEndpoint | String | 읽기 전용 엔드포인트 주소 - 클러스터 모드를 사용하는 경우, 읽기 전용 엔드포인트 없음 |
userName | String | 사용자 ID, 인증 미사용의 경우 - |
subnets[] | Object Array | 배치 가능한 서브넷 목록 |
subnets[].id | String | 서브넷 ID |
subnetAssignments[] | Object Array | 서브넷 배치 목록 |
subnetAssignments[].primary | Object | Primary에 배치되어 있는 서브넷 |
subnetAssignments[].primary.id | String | Primary에 배치되어 있는 서브넷 ID |
subnetAssignments[].replicas[] | Object Array | Replica에 배치되어 있는 서 브넷 목록 |
subnetAssignments[].replicas[].id | String | Replica에 배치되어 있는 서브넷 ID |
securityGroups[] | Object Array | 클러스터에 연결되어 있는 보안 그룹 목록 |
securityGroups[].id | String | 보안 그룹 ID |
backupSchedule | Object | 자동 백업 정책 - 클러스터 모드를 사용하는 경우 null |
backupSchedule.cron | string | 자동 백업 일정의 크론 표현식 |
backupSchedule.retentionLimit | integer | 자동 백업의 보존 기간(단위: 일) |
creator | String | 클러스터 생성자 |
license | String | 라이센스 종류 |
status | String | 클러스터 상태 |
parameterGroupId | String | 클러스터에 반영되어 있는 파라미터 그룹 ID |
parameterGroupName | String | 클러스터에 반영되어 있는 파라미터 그룹 이름 |
parameterGroupSyncStatus | String | 클러스터에 파라미터 그룹의 싱크 상태 |
createdAt | Integer | 클러스터 생성 시간 (RFC3339) |
userName | String | 사용자 계정 이름, 인증 미사용의 경우 - |
클러스터 상세 정보 조회 Response Example
200 OK
content-length: ...
content-type: application/json; charset=UTF-8
{
"projectId": "377813fe9e0144dc8cd867c2zxcvasdf",
"objectId": "qqqqwwww-7347-4d87-a49f-e705e91db2fb",
"name": "test-cluster",
"description": "test-cluster",
"version": "6.2.5",
"port": 6379,
"clusterEnabled": true, /* redis cluster */
"recoveryEnabled": true,
"shardCount": 2,
"totalNodeCount": 6,
"flavorId": "ffffffff-ea2f-4822-8a7d-9e301c86a58d",
"vcpu": 2,
"memory": 16,
"endpoints": {
"primaryEndpoint": "",
"readEndpoint": ""
},
"userName": "testusername",
"subnets": [ /* node 배치 가능한 subnet 리스트 */
{"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"}
]
}
],
"securityGroups": [
{"id": "abcdxxxx-4870-4c4e-a267-2de13e38c2ea"},
{"id": "qwergggg-4870-4c4e-a267-2de13e38c2ea"}
],
"backupSchedule": null,
"creator": "ms@kakaoenterprise.com",
"license": "GPL",
"status": "Modifying",
"parameterGroupId": "bbbbcccc-1234-1234-5678-e705e91db2fb",
"parameterGroupName": "test-parameter-group",
"parameterGroupSyncStatus": "In-Sync",
"createdAt": 2024-03-06T02:35:13Z
}
인스턴스 세트 상세 정보 조회
지정한 인스턴스 세트의 상세 정보를 조회합니다.
Request
인스턴스 세트(클러스터 모드 미사용) 상세 정보 조회 Request Syntax
curl -X GET "https://redis.kr-central-2.kakaocloud.com/v1/clusters/{instance-set-id}" \
-H "X-Auth-Token: {token-id}"
종류 | 파라미터 | 유형 | 설명 |
---|---|---|---|
URL | {instance-set-id} * | String | 인스턴스 세트 ID |
Header | {token-id} * | String | API 인증 토큰 참고 |
Response
상태 코드 | 설명 |
---|---|
200 | 리소스 조회/삭제 요청에 대한 성공 응답 |
400 | 사용자의 요청이 유효하지 않아 작업을 진행할 수 없음 |
401 | 인증되지 않은 사용자가 요청한 경우 |
403 | 권한이 없는 사용자가 요청한 경우 |
404 | 사용자가 요청한 리소스가 존재하지 않은 경우 |
500 | 내부 에러로 작업을 진행할 수 없는 경우 |
필드 | 유형 | 설명 |
---|---|---|
projectId | String | 프로젝트 ID |
objectId | String | 클러스터/인스턴스 세트 ID |
name | String | 클러스터의 이름 |
description | String | 클러스터의 설명 |
version | String | Redis 버전 |
port | Integer | Redis 포트 번호 |
clusterEnabled | Boolean | 클러스터 모드 활성화 여부 - true : 클러스터 모드 사용 - false : 클러스터 모드 미사용 |
recoveryEnabled | Boolean | 고가용성 모드 활성화 여부 - true : 고가용성 모드 사용 (클러스터 모드를 사용하는 경우 항상 true ) - false : 고가용성 모드 미사용 |
shardCount | Integer | 샤드 개수 - 클러스터 모드를 사용하지 않는 경우 0 |
totalNodeCount | Integer | 총 노드 개수 |
flavorId | String | 플레이버 ID |
vcpu | Integer | 가상 CPU 개수 |
memory | Integer | 메모리 크기(GiB) |
endpoints | Object | 엔드포인트 주소 |
endpoints.primaryEndpoint | String | 기본 엔드포인트 주소 |
endpoints.readEndpoint | String | 읽기 전용 엔드포인트 주소 - 클러스터 모드를 사용하는 경우 읽기 전용 엔드포인트 없음 |
userName | String | 사용자 ID, 인증 미사용의 경우 - |
subnets[] | Object Array | 배치 가능한 서브넷 목록 |
subnets[].id | String | 서브넷 ID |
subnetAssignments[] | Object Array | 서브넷 배치 목록 |
subnetAssignments[].primary | Object | Primary에 배치되어 있는 서브넷 |
subnetAssignments[].primary.id | String | Primary에 배치되어 있는 서브넷 ID |
subnetAssignments[].replicas[] | Object Array | Replica에 배치되어 있는 서브넷 목록 |
subnetAssignments[].replicas[].id | String | Replica에 배치되어 있는 서브넷 ID |
securityGroups[] | Object Array | 클러스터에 연결되어 있는 보안 그룹 목록 |
securityGroups[].id | String | 보안 그룹 ID |
backupSchedule | Object | 자동 백업 정책 |
backupSchedule.cron | string | 자동 백업 일정의 크론 표현식 |
backupSchedule.retentionLimit | integer | 자동 백업의 보존 기간(단위: 일) |
creator | String | 클러스터 생성자 |
license | String | 라이센스 종류 |
status | String | 클러스터 상태 |
parameterGroupId | String | 클러스터에 반영되어 있는 파라미터 그룹 ID |
parameterGroupName | String | 클러스터에 반영되어 있는 파라미터 그룹 이름 |
parameterGroupSyncStatus | String | 클러스터에 파라미터 그룹의 싱크 상태 |
createdAt | Integer | 클러스터 생성 시간 (RFC3339) |
userName | String | 사용자 계정 이름, 인증 미사용의 경우 - |
인스턴스 세트(클러스터 모드 미사용) 상세 정보 조회 Response Example
200 OK
content-length: ...
content-type: application/json; charset=UTF-8
{
"projectId": "377813fe9e0144dc8cd867c2zxcvasdf",
"objectId": "aaaassss-7347-4d87-a49f-e705e91db2fb",
"name": "test-instance-group",
"description": "test-instance-group",
"version": "6.2.5",
"port": 6379,
"clusterEnabled": false, /* redis instance set */
"recoveryEnabled": false,
"shardCount": 0,
"totalNodeCount": 4,
"flavorId": "3830ebad-ea2f-4822-8a7d-9e301c86a58d",
"vcpu": 2,
"memory": 8,
"endpoints": {"primaryEndpoint": "", "readEndpoint": ""},
"userName": "testusername",
"subnets": [
{"id": "xxxxxxxx-0a69-4f8b-b56d-59ce12b4d55b"}
],
"subnetAssignments": [
{
"primary": {"id": "xxxxxxxx-0a69-4f8b-b56d-59ce12b4d55b"},
"replicas": [
{"id": "xxxxxxxx-0a69-4f8b-b56d-59ce12b4d55b"},
{"id": "xxxxxxxx-0a69-4f8b-b56d-59ce12b4d55b"},
{"id": "xxxxxxxx-0a69-4f8b-b56d-59ce12b4d55b"}
]
}
],
"securityGroups": [
{"id": "abcdxxxx-4870-4c4e-a267-2de13e38c2ea"},
{"id": "qwergggg-4870-4c4e-a267-2de13e38c2ea"}
],
"backupSchedule": {
"cron": "* 1 * * *",
"retentionLimit": 15
},
"creator": "ms@kakaoenterprise.com",
"license": "GPL",
"status": "Creating",
"parameterGroupId": "bbbbcccc-1234-1234-5678-e705e91db2fb",
"parameterGroupName": "test-parameter-group",
"parameterGroupSyncStatus": "In-Sync",
"createdAt": 2024-03-06T02:35:13Z
}
클러스터 파라미터 그룹 반영 재시도
파라미터 그룹 반영 상태가 Error-Sync
, Suspended
등으로 정상이 아닌 경우, 클러스터에 파라미터 그룹 반영을 재시도합니다.
Request
파라미터 그룹 반영 재시도 Request Syntax
curl -X POST "https://redis.kr-central-2.kakaocloud.com/v1/clusters/{cluster-id or instance-set-id}/parameter-group/apply" \
-H "X-Auth-Token: {token-id}"
종류 | 파라미터 | 유형 | 설명 |
---|---|---|---|
URL | {cluster-id or instance-set-id} * | String | 클러스터 ID 또는 인스턴스 세트 ID |
Header | {token-id} * | String | API 인증 토큰 참고 |
Response
상태 코드 | 설명 |
---|---|
200 | 리소스 조회/삭제 요청에 대한 성공 응답 |
400 | 사용자의 요청이 유효하지 않아 작업을 진행할 수 없음 |
401 | 인증되지 않은 사용자가 요청한 경 우 |
403 | 권한이 없는 사용자가 요청한 경우 |
404 | 사용자가 요청한 리소스가 존재하지 않은 경우 |
500 | 내부 에러로 작업을 진행할 수 없는 경우 |
필드 | 유형 | 설명 |
---|---|---|
objectId | String | 클러스터 ID |
파라미터 그룹 반영 재시도 Response Example
200 OK
content-length: ...
content-type: application/json; charset=UTF-8
{
"objectId": "aaaassss-7347-4d87-a49f-e705e91db2fb",
}