본문으로 건너뛰기

클러스터 모드 미사용 시

다음 API는 클러스터 모드미사용으로 설정했을 때 사용할 수 있습니다.

주의
  • user.password 필드의 값은 암호화한 값을 넣어야지만 정상적으로 생성이 가능합니다.

인스턴스 세트 생성

신규 인스턴스 세트 생성

신규 인스턴스 세트를 생성합니다.

Request
인스턴스 세트 생성 Request Syntax
curl -X POST "https://redis.kr-central-2.kakaocloud.com/v1/instance-sets" \
-H "X-Auth-Token: {token-id}" \
-H "Content-Type: application/json" \
-d '{Body}'
종류파라미터유형설명
Header{token-id}*StringAPI 인증 토큰 참고
Content-Type*String콘텐츠 유형 기본값: application/json
BodydescriptionString인스턴스 세트 설명
- 글자수: 최대 100자
- 이모지 입력 불가
- 줄 바꿈 입력 불가 (CR, LF)
replicas*Integer노드 수
- Primary와 Replica를 포함한 총 노드 수
flavorId*String플레이버 ID
instanceSetName*String인스턴스 세트 이름
- 글자수: 4 ~ 20자
- 영어 소문자/숫자/- 제외 모든 값 입력 불가
- - 연속 입력 불가
- 영어로 시작해야 함
- 영어/숫자로 끝나야 함
- 공백 입력 불가
recoveryEnabled*Boolean고가용성 모드 활성화 여부
- true: 고가용성 모드 사용
- false: 고가용성 모드 사용 안 함
subnets[]*Object Array배치 가능한 서브넷 목록
subnets[].id*String서브넷 ID
- 서브넷 ID는 콘솔 > VPC > 서브넷에서 확인
subnetAssignments[]*Object Array서브넷 배치 목록
- subnets 필드에 있는 서브넷만 사용 가능
subnetAssignments[].primary*ObjectPrimary에 배치할 서브넷
subnetAssignments[].primary.id*StringPrimary에 배치할 서브넷 ID
subnetAssignments[].replicas[]*Object ArrayReplica에 배치할 서브넷 목록
subnetAssignments[].replicas[].id*StringReplica에 배치할 서브넷 ID
securityGroups[]*Object Array인스턴스 세트에 연결할 보안 그룹 목록
securityGroups[].id*String인스턴스 세트에 연결할 보안 그룹 ID
- 보안 그룹 ID는 콘솔 > VPC > 보안 그룹에서 확인 가능
backupScheduleObject자동 백업 정책
- 해당 필드가 없으면 자동 백업 사용하지 않음
backupSchedule.cronString백업 일정의 크론 표현
- 시간만 설정 가능함
- 5자리 크론 표현식 사용 (예시: "* 1 * * " → 매일 1시(KST)에 자동백업 생성)
- 시간 자리에는 0-23 사이의 값만 입력 가능 (특수문자 입력 불가)
- 시간을 제외한 다른 자리에는 별표(*)만 입력 가능
backupSchedule.retentionLimitInteger백업의 보존 기간(단위: 일)
- 최소 1일, 최대 35일
port*IntegerRedis 포트 번호
- 현재 6379만 설정 가능
projectId*String프로젝트 ID
version*StringRedis 버전
- 클러스터 미사용일 경우 5.0.6, 6.2.5 버전 지원
userObject데이터베이스 사용자 정보
- db 접근 시 계정 정보
user.nameString데이터베이스 사용자 이름
user.passwordString데이터베이스 사용자 암호 (암호화된 형태 또는 암호 해시)
데이터베이스 사용자 암호 암호화 방법
parameterGroupId*String인스턴스 세트에 반영할 파라미터 그룹 ID
인스턴스 세트 생성 Request Body Example
{
"description": "mars-test-description",
"replicas": 3,
"flavorId": "3830ebad-ea2f-4822-8a7d-9e301c86a58d",
"instanceSetName": "mars-repl-test",
"recoveryEnabled": true,
"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"}
]
}
],
"securityGroups": [
{"id": "abcdxxxx-4870-4c4e-a267-2de13e38c2ea"},
{"id": "qwergggg-4870-4c4e-a267-2de13e38c2ea"}
],
"backupSchedule": {
"cron": "* 1 * * *",
"retentionLimit": 30
},
"parameterGroupId": "bbbbcccc-1234-1234-5678-e705e91db2fb",
"port": 6379,
"projectId": "8eebb8f91c0a465096316820a21a9772",
"version": "6.2.5"
}
Response
상태 코드설명
201리소스 생성 요청에 대한 성공 응답
400사용자의 요청이 유효하지 않아 작업을 진행할 수 없음
401인증되지 않은 사용자가 요청한 경우
422사용자의 요청 구문은 유효하지만 작업을 진행할 수 없는 경우
403권한이 없는 사용자가 요청한 경우
409현재 서버의 상태에 중복된 요청이 발생한 경우
500내부 에러로 작업을 진행할 수 없는 경우
필드유형설명
objectIdString인스턴스 세트 ID
인스턴스 세트 생성 Response Example
201 Created
content-length: 52
content-type: application/json; charset=UTF-8

{
"objectId": "xxxxxxxx-7347-4d87-a49f-e705e91db2fb"
}

기존 백업 이름으로 인스턴스 세트 생성(복원)

기존 백업 이름으로 인스턴스 세트를 복원합니다.

주의

기존 백업으로 복원 시 백업 당시 Redis 메모리 크기가 복원할 클러스터 플레이버의 메모리의 60%보다 큰 경우 인스턴스 세트 생성(복원) 요청에 실패할 수 있습니다.

Request
인스턴스 세트 생성 Request Syntax
curl -X POST "https://redis.kr-central-2.kakaocloud.com/v1/instance-sets" \
-H "X-Auth-Token: {token-id}" \
-H "Content-Type: application/json" \
-d '{Body}'
종류파라미터유형설명
Header{token-id}*StringAPI 인증 토큰 참고
Content-Type*String콘텐츠 유형 기본값: application/json
BodydescriptionString인스턴스 세트 설명
- 글자수: 최대 100자
- 이모지 입력 불가
- 줄 바꿈 입력 불가 (CR, LF)
replicas*Integer노드 수
- Primary와 Replica를 포함한 총 노드 수
flavorId*String플레이버 ID
instanceSetName*String인스턴스 세트 이름
- 글자수: 4 ~ 20자
- 영어 소문자/숫자/- 제외 모든 값 입력 불가
- - 연속 입력 불가
- 영어로 시작해야 함
- 영어/숫자로 끝나야 함
- 공백 입력 불가
recoveryEnabled*Boolean고가용성 모드 활성화 여부
- true: 고가용성 모드 사용
- false: 고가용성 모드 사용 안 함
subnets[]*Object Array배치 가능한 서브넷 목록
subnets[].id*String서브넷 ID
- 서브넷 ID는 콘솔 > VPC > 서브넷에서 확인
subnetAssignments[]*Object Array서브넷 배치 목록
- subnets 필드에 있는 서브넷만 사용 가능
subnetAssignments[].primary*ObjectPrimary에 배치할 서브넷
subnetAssignments[].primary.id*StringPrimary에 배치할 서브넷 ID
subnetAssignments[].replicas[]*Object ArrayReplica에 배치할 서브넷 목록
subnetAssignments[].replicas[].id*StringReplica에 배치할 서브넷 ID
securityGroups[]*Object Array인스턴스 세트에 연결할 보안 그룹 목록
securityGroups[].id*String인스턴스 세트에 연결할 보안 그룹 ID
- 보안 그룹 ID는 콘솔 > VPC > 보안 그룹에서 확인 가능
restoreSourceObject복원 소스 정보
restoreSource.backupNameStringMemStore 백업 목록의 이름 1개
backupScheduleObject자동 백업 정책
- 해당 필드가 없으면 자동 백업 사용하지 않음
backupSchedule.cronString백업 일정의 크론 표현
- 시간만 설정 가능함
- 5자리 크론 표현식 사용 (예시: "* 1 * * " → 매일 1시(KST)에 자동백업 생성)
- 시간 자리에는 0-23 사이의 값만 입력 가능 (특수문자 입력 불가)
- 시간을 제외한 다른 자리에는 별표(*)만 입력 가능
backupSchedule.retentionLimitInteger백업의 보존 기간(단위: 일)
- 최소 1일, 최대 35일
port*IntegerRedis 포트 번호
- 현재 6379만 설정 가능
projectId*String프로젝트 ID
version*StringRedis 버전
- 클러스터 미사용일 경우 5.0.6, 6.2.5 버전 지원
userObject데이터베이스 사용자 정보
- db 접근 시 계정 정보
user.nameString데이터베이스 사용자 이름
user.passwordString데이터베이스 사용자 암호 (암호화된 형태 또는 암호 해시)
데이터베이스 사용자 암호 암호화 방법
parameterGroupId*String인스턴스 세트에 반영할 파라미터 그룹 ID
인스턴스 세트 생성 Request Body Example
{
"description": "mars-test-description",
"replicas": 3,
"flavorId": "3830ebad-ea2f-4822-8a7d-9e301c86a58d",
"instanceSetName": "mars-repl-test",
"recoveryEnabled": true,
"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"}
]
}
],
"securityGroups": [
{"id": "abcdxxxx-4870-4c4e-a267-2de13e38c2ea"},
{"id": "qwergggg-4870-4c4e-a267-2de13e38c2ea"}
],
"restoreSource": {
"backupName": "scheduled.testhen.2024-02-27-16-47.KST"
},
"backupSchedule": {
"cron": "* 1 * * *",
"retentionLimit": 30
},
"parameterGroupId": "bbbbcccc-1234-1234-5678-e705e91db2fb",
"port": 6379,
"projectId": "8eebb8f91c0a465096316820a21a9772",
"version": "6.2.5"
}
Response
상태 코드설명
201리소스 생성 요청에 대한 성공 응답
400사용자의 요청이 유효하지 않아 작업을 진행할 수 없음
401인증되지 않은 사용자가 요청한 경우
403권한이 없는 사용자가 요청한 경우
409현재 서버의 상태에 중복된 요청이 발생한 경우
500내부 에러로 작업을 진행할 수 없는 경우
필드유형설명
objectIdString인스턴스 세트 ID
인스턴스 세트 생성 Response Example
201 Created
content-length: 52
content-type: application/json; charset=UTF-8

{
"objectId": "xxxxxxxx-7347-4d87-a49f-e705e91db2fb"
}

Object Storage 파일로 인스턴스 세트 생성(복원)

Object Storage에 있는 파일로 인스턴스 세트를 복원합니다.

주의

인스턴스 세트 복원 요청 시, Object Storage에서 백업 파일을 불러오던 도중 API 인증 토큰이 만료되는 경우 인스턴스 세트 복원에 실패할 수 있습니다. 또한 백업 파일의 Redis 메모리 크기가 복원할 클러스터 플레이버의 메모리의 60%보다 큰 경우 인스턴스 세트가 정상적으로 생성(복원)되지 않을 수 있습니다

Request
인스턴스 세트 생성 Request Syntax
curl -X POST "https://redis.kr-central-2.kakaocloud.com/v1/instance-sets" \
-H "X-Auth-Token: {token-id}" \
-H "Content-Type: application/json" \
-d '{Body}'
종류파라미터유형설명
Header{token-id}*StringAPI 인증 토큰 참고
Content-Type*String콘텐츠 유형 기본값: application/json
BodydescriptionString인스턴스 세트 설명
- 글자수: 최대 100자
- 이모지 입력 불가
- 입력 불가 (CR, LF)
replicas*Integer노드 수
- Primary와 Replica를 포함한 총 노드 수
flavorId*String플레이버 ID
instanceSetName*String인스턴스 세트 이름
- 글자수: 4 ~ 20자
- 영어 소문자/숫자/- 제외 모든 값 입력 불가
- - 연속 입력 불가
- 영어로 시작해야 함
- 영어/숫자로 끝나야 함
- 공백 입력 불가
recoveryEnabled*Boolean고가용성 모드 활성화 여부
- true: 고가용성 모드 사용
- false: 고가용성 모드 사용
subnets[]*Object Array배치 가능한 서브넷 목록
subnets[].id*String서브넷 ID
- 서브넷 ID는 콘솔 > VPC > 서브넷에서 확인
subnetAssignments[]*Object Array서브넷 배치 목록
- subnets 필드에 있는 서브넷만 사용 가능
subnetAssignments[].primary*ObjectPrimary에 배치할 서브넷
subnetAssignments[].primary.id*StringPrimary에 배치할 서브넷 ID
subnetAssignments[].replicas[]*Object ArrayReplica에 배치할 서브넷 목록
subnetAssignments[].replicas[].id*StringReplica에 배치할 서브넷 ID
securityGroups[]*Object Array인스턴스 세트에 연결할 보안 그룹 목록
securityGroups[].id*String인스턴스 세트에 연결할 보안 그룹 ID
- 보안 그룹 ID는 콘솔 > VPC > 보안 그룹에서 확인 가능
restoreSourceObject복원 소스 정보
restoreSource.files[]String Array사용자 백업 파일의 Object Storage 경로 1개
- 동일 리전/프로젝트 내에 편집 권한이 있는 Object Storage의 경로
- bucket/folder/.../file 형식으로 입력
- 사용자 백업 파일의 Redis 버전이 7 이상일 경우 복원에 실패할 수 있음
backupScheduleObject자동 백업 정책
- 해당 필드가 없으면 자동 백업 사용하지 않음
backupSchedule.cronString백업 일정의 크론 표현
- 시간만 설정 가능함
- 5자리 크론 표현식 사용 (예시: "* 1 * * " → 매일 1시(KST)에 자동백업 생성)
- 시간 자리에는 0-23 사이의 값만 입력 가능 (특수문자 입력 불가)
- 시간을 제외한 다른 자리에는 별표(*)만 입력 가능
backupSchedule.retentionLimitInteger백업의 보존 기간(단위: 일)
- 최소 1일, 최대 35일
port*IntegerRedis 포트 번호
- 현재 6379만 설정 가능
projectId*String프로젝트 ID
version*StringRedis 버전
- 클러스터 미사용일 경우 5.0.6, 6.2.5 버전 지원
userObject데이터베이스 사용자 정보
- db 접근 시 계정 정보
user.nameString데이터베이스 사용자 이름
user.passwordString데이터베이스 사용자 암호 (암호화된 형태 또는 암호 해시)
데이터베이스 사용자 암호 암호화 방법
parameterGroupId*String인스턴스 세트에 반영할 파라미터 그룹 ID
인스턴스 세트 생성 Request Body Example
{
"description": "mars-test-description",
"replicas": 3,
"flavorId": "3830ebad-ea2f-4822-8a7d-9e301c86a58d",
"instanceSetName": "mars-repl-test",
"recoveryEnabled": true,
"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"}
]
}
],
"securityGroups": [
{"id": "abcdxxxx-4870-4c4e-a267-2de13e38c2ea"},
{"id": "qwergggg-4870-4c4e-a267-2de13e38c2ea"}
],
"restoreSource": {
"files": ["bucket/path-to-file"]
},
"backupSchedule": {
"cron": "* 1 * * *",
"retentionLimit": 30
},
"parameterGroupId": "bbbbcccc-1234-1234-5678-e705e91db2fb",
"port": 6379,
"projectId": "8eebb8f91c0a465096316820a21a9772",
"version": "6.2.5"
}
Response
상태 코드설명
201리소스 생성 요청에 대한 성공 응답
400사용자의 요청이 유효하지 않아 작업을 진행할 수 없음
401인증되지 않은 사용자가 요청한 경우
403권한이 없는 사용자가 요청한 경우
409현재 서버의 상태에 중복된 요청이 발생한 경우
500내부 에러로 작업을 진행할 수 없는 경우
필드유형설명
objectIdString인스턴스 세트 ID
인스턴스 세트 생성 Response Example
201 Created
content-length: 52
content-type: application/json; charset=UTF-8

{
"objectId": "xxxxxxxx-7347-4d87-a49f-e705e91db2fb"
}

인스턴스 세트 삭제

인스턴스 세트를 삭제합니다. 생성된 자동백업이 있는 인스턴스 세트의 경우 콘솔에서 삭제가 불가능할 수 있고, 이 경우 API를 통해 keepAutomaticBackups 파라미터를 포함시켜 요청하면 삭제할 수 있습니다.

Request
인스턴스 세트 삭제 Request Syntax
curl -X DELETE "https://redis.kr-central-2.kakaocloud.com/v1/instance-sets/{instance-set-id}?keepAutomaticBackups={keep-auto-backup}" \
-H "X-Auth-Token: {token-id}"
종류파라미터유형설명
Header{token-id}*StringAPI 인증 토큰 참고
URL{instance-set-id}*String인스턴스 세트 ID
Query{keep-auto-backup}Boolean자동 백업 보관 유무
- 자동백업이 생성되어 있는 경우 필수 입력
- true: 해당 인스턴스 세트로 만든 자동 백업을 7일간 보관 (단, 7일 이전에 삭제 예정인 백업은 그대로 유지됨)
- false: 인스턴스 세트와 함께 자동 백업 삭제
Response
상태 코드설명
200리소스 조회/삭제 요청에 대한 성공 응답
400사용자의 요청이 유효하지 않아 작업을 진행할 수 없음
401인증되지 않은 사용자가 요청한 경우
403권한이 없는 사용자가 요청한 경우
404사용자가 요청한 리소스가 존재하지 않은 경우
500내부 에러로 작업을 진행할 수 없는 경우
필드유형설명
objectIdString인스턴스 세트 ID
인스턴스 세트 삭제 Response Example
200 OK
content-length: 52
content-type: application/json; charset=UTF-8

{
"objectId": "aabbccdd-a1d4-465b-8009-1d272bcc2db7"
}

인스턴스 세트 변경

인스턴스 세트의 자동 백업 정책, 연결된 파라미터 그룹을 변경합니다.

Request
인스턴스 세트 변경 Request Syntax
curl -X PATCH "https://redis.kr-central-2.kakaocloud.com/v1/instance-sets/{instance-set-id}" \
-H "X-Auth-Token: {token-id}" \
-d '{Body}'
종류파라미터유형설명
Header{token-id}*StringAPI 인증 토큰 참고
URL{instance-set-id}*String인스턴스 세트 ID
BodybackupScheduleObject백업 스케줄 설정
backupSchedule.cronString백업 일정의 크론 표현
- 시간만 설정 가능
- 5자리 크론 표현식 사용
- cron 값을 ""으로 넘겨주면 백업 삭제
backupSchedule.retentionLimitInteger백업의 보존 기간(단위: 일)
descriptionString인스턴스 세트 설명
parameterGroupIdString인스턴스 세트에 연결할 파라미터 그룹 ID
- parameterGroupId 값을 ""으로 수정 불가능
Response
상태 코드설명
200리소스 조회/삭제 요청에 대한 성공 응답
400사용자의 요청이 유효하지 않아 작업을 진행할 수 없음
401인증되지 않은 사용자가 요청한 경우
403권한이 없는 사용자가 요청한 경우
404사용자가 요청한 리소스가 존재하지 않은 경우
500내부 에러로 작업을 진행할 수 없는 경우
필드유형설명
objectIdString인스턴스 세트 ID
인스턴스 세트 변경 Response Example
200 OK
content-length: 52
content-type: application/json; charset=UTF-8

{
"objectId": "aabbccdd-a1d4-465b-8009-1d272bcc2db7"
}

백업 정책/설명 변경

인스턴스 세트의 자동 백업 정책 혹은 설명을 변경합니다.

Request
백업 정책 변경 Request Syntax
curl -X PATCH "https://redis.kr-central-2.kakaocloud.com/v1/instance-sets/{instance-set-id}" \
-H "X-Auth-Token: {token-id}" \
-d '{Body}'
종류파라미터유형설명
URL{instance-set-id}*String인스턴스 세트 ID
Header{token-id}*StringAPI 인증 토큰 참고
BodybackupScheduleObject백업 스케줄 설정
backupSchedule.cronString백업 일정의 크론 표현
- cron 값을 " "으로 넘겨주면 retentionLimit 값에 관계없이 설정된 자동 백업 정책이 삭제 됨
- 시간만 설정 가능함
- 5자리 크론 표현식 사용(예: "* 1 * * " → 매일 1시(KST)에 자동백업 생성)
- 시간 자리에는 0-23 사이의 값만 입력 가능 (특수문자 입력 불가)
- 시간을 제외한 다른 자리에는 별표(*)만 입력 가능
backupSchedule.retentionLimitInteger백업의 보존 기간(단위: 일)
- 최소 1일, 최대 35일
descriptionString설명
백업 정책 변경 Request Body Example
{
"backupSchedule": {
"cron": "* 3 * * *",
"retentionLimit": 15
},
"description": ""
}
Response
상태 코드설명
200리소스 수정 요청에 대한 성공 응답
400사용자의 요청이 유효하지 않아 작업을 진행할 수 없음
401인증되지 않은 사용자가 요청한 경우
403권한이 없는 사용자가 요청한 경우
404사용자가 요청한 리소스가 존재하지 않은 경우
500내부 에러로 작업을 진행할 수 없는 경우
필드유형설명
objectIdString인스턴스 세트 ID
백업 정책 변경 Response Example
200 OK
content-length: ...
content-type: application/json; charset=UTF-8

{
"objectId": "ffddssaa-7347-4d87-a49f-e705e91db2fb"
}

인스턴스 세트의 인스턴스 목록 조회

인스턴스 세트의 인스턴스(노드) 목록을 조회합니다.

Request
인스턴스 목록 조회 Request Syntax
curl -X GET "https://redis.kr-central-2.kakaocloud.com/v1/instance-sets/{instance-set-id}/instances" \
-H "X-Auth-Token: {token-id}"
종류파라미터유형설명
URL{instance-set-id}*String인스턴스 세트 ID
Header{token-id}*StringAPI 인증 토큰 참고
Response
상태 코드설명
200리소스 조회/삭제 요청에 대한 성공 응답
400사용자의 요청이 유효하지 않아 작업을 진행할 수 없음
401인증되지 않은 사용자가 요청한 경우
403권한이 없는 사용자가 요청한 경우
500내부 에러로 작업을 진행할 수 없는 경우
필드유형설명
sizeInteger데이터 개수
data[]Object Array인스턴스 목록
data[].instanceNameString인스턴스 이름
data[].descriptionString인스턴스 세트 설명
data[].projectIdString프로젝트 ID
data[].roleString인스턴스 역할 (primary/replica)
data[].flavorIdString플레이버 ID
data[].versionStringRedis 버전
data[].portIntegerRedis 포트 번호
data[].subnetObject할당되어 있는 서브넷 정보
data[].subnet.idString서브넷 ID
data[].creatorString인스턴스 세트 생성자
data[].objectIdString인스턴스 ID
data[].endpointString인스턴스 엔드포인트(프라이빗 IP)
data[].licenseString라이선스
data[].createdAtInteger생성 시간 (RFC3339)
data[].statusString인스턴스 상태 (PROVISIONING/FAILED 등)
인스턴스 목록 조회 Response Example
200 OK
content-type: application/json; charset=UTF-8

{
"size": 2,
"data": [
{
"instanceName": "test-instance-set-1",
"description": "test",
"projectId": "abcdabcdf4d14b41a36823e2091c3a6d",
"flavorId": "xxxxxxxx-ea2f-4822-8a7d-9e301c86a58d",
"version": "6.2.5",
"port": 6379,
"subnet": {
"id": "qqqqwwww-2726-432e-aa37-04b778ef2ba1"
},
"creator": "ms@kakaoenterprise.com",
"objectId": "abcdefg-a97a-59c8-9e6a-e967383c65e2",
"role": "primary",
"endpoint": "172.30.1.244",
"license": "GPL",
"createdAt": "2024-03-11T01:15:03Z",
"status": "Running"
},
{
"instanceName": "test-instance-set-2",
"description": "test",
"projectId": "abcdabcdf4d14b41a36823e2091c3a6d",
"flavorId": "xxxxxxxx-ea2f-4822-8a7d-9e301c86a58d",
"version": "6.2.5",
"port": 6379,
"subnet": {
"id": "qqqqwwww-2726-432e-aa37-04b778ef2ba1"
},
"creator": "ms@kakaoenterprise.com",
"objectId": "abcdefg-39c8-55c2-b4d3-9009c554d102",
"role": "replica",
"endpoint": "172.30.0.67",
"license": "GPL",
"createdAt": "2024-03-11T01:15:03Z",
"status": "Running"
}
]
}

인스턴스 세트의 인스턴스 삭제

인스턴스 세트의 인스턴스(노드)를 삭제합니다.

  • 고가용성 모드가 활성화되어 있는 경우 Primary 인스턴스는 삭제가 불가능합니다.
  • 고가용성 모드가 활성화되어 있는 경우 Running이 아닌 인스턴스는 삭제가 불가능합니다.
  • 고가용성 모드가 활성화되어 있지 않은 경우 Primary 인스턴스는 Failed 상태일 때만 삭제 가능합니다.
  • 자동백업 정책이 설정되어 있는 인스턴스 세트의 총 노드 개수가 2개일 경우 노드 삭제가 불가합니다.
Request
인스턴스 삭제 Request Syntax
curl -X DELETE "https://redis.kr-central-2.kakaocloud.com/v1/instance-sets/{instance-set-id}/instances/{instance-id}" \
-H "X-Auth-Token: {token-id}"
종류파라미터유형설명
URL{instance-set-id}*String인스턴스 세트 ID
{instance-id}*String인스턴스 ID
Header{token-id}*StringAPI 인증 토큰 참고
Response
상태 코드설명
200리소스 조회/삭제 요청에 대한 성공 응답
400사용자의 요청이 유효하지 않아 작업을 진행할 수 없음
401인증되지 않은 사용자가 요청한 경우
403권한이 없는 사용자가 요청한 경우
404사용자가 요청한 리소스가 존재하지 않은 경우
500내부 에러로 작업을 진행할 수 없는 경우
필드유형설명
objectIdString인스턴스 세트 ID
인스턴스 삭제 Response Example
200 OK
content-length: 52
content-type: application/json; charset=UTF-8

{
"objectId": "aaaabbbb-a1d4-465b-8009-1d272bcc2db7"
}

Replica를 Primary로 승격

특정 Replica를 Primary로 승격합니다. 고가용성 모드가 비활성화되어 있는 경우에만 승격 요청이 가능합니다.

Request
Replica를 Primary로 승격 Request Syntax
curl -X PATCH "https://redis.kr-central-2.kakaocloud.com/v1/instance-sets/{instance-set-id}/primary" \
-H "X-Auth-Token: {token-id}" \
-H "Content-Type: application/json" \
-d '{Body}'
종류파라미터유형설명
URL{instance-set-id}*String인스턴스 세트 ID
Header{token-id}*StringAPI 인증 토큰 참고
Content-Type*String콘텐츠 유형 기본값: application/json
BodyprimaryId*StringPrimary로 승격할 인스턴스 ID
Replica를 Primary로 승격 Request Body Example
{
"primaryId": "instance-idid-xxxx-a49f-e705e91db2fb"
}
Response
상태 코드설명
200리소스 수정 요청에 대한 성공 응답
400사용자의 요청이 유효하지 않아 작업을 진행할 수 없음
401인증되지 않은 사용자가 요청한 경우
403권한이 없는 사용자가 요청한 경우
404사용자가 요청한 리소스가 존재하지 않은 경우
500내부 에러로 작업을 진행할 수 없는 경우
필드유형설명
objectIdString인스턴스 세트 ID
Replica를 Primary로 승격 Response Example
200 OK
content-length: 52
content-type: application/json; charset=UTF-8

{
"objectId": "bbccxxzz-7347-4d87-a49f-e705e91db2fb"
}

인스턴스 추가

인스턴스(Replica 1개)를 추가합니다. Replica는 최대 5개까지 생성 가능합니다.

Request
인스턴스 추가 Request Syntax
curl -X PATCH "https://redis.kr-central-2.kakaocloud.com/v1/instance-sets/{instance-set-id}/replicas" \
-H "X-Auth-Token: {token-id}" \
-H "Content-Type: application/json" \
-d '{Body}'
종류파라미터유형설명
URL{instance-set-id}*String인스턴스 세트 ID
Header{token-id}*StringAPI 인증 토큰 참고
Content-Type*String콘텐츠 유형 기본값: application/json
Bodysubnet*Object배치할 서브넷 정보
subnet.id*String서브넷 ID
인스턴스 추가 Request Body Example
{
"subnet": { "id": "xxxxxxxx-0a69-4f8b-b56d-59ce12b4d55b" }
}
Response
상태 코드설명
200리소스 수정 요청에 대한 성공 응답
400사용자의 요청이 유효하지 않아 작업을 진행할 수 없음
401인증되지 않은 사용자가 요청한 경우
403권한이 없는 사용자가 요청한 경우
404사용자가 요청한 리소스가 존재하지 않은 경우
500내부 에러로 작업을 진행할 수 없는 경우
필드유형설명
objectIdString인스턴스 세트 ID
인스턴스 추가 Response Example
200 OK
content-length: 52
content-type: application/json; charset=UTF-8

{
"objectId": "qqwweerr-7347-4d87-a49f-e705e91db2fb"
}

고가용성 모드 설정

고가용성 모드를 설정 또는 설정 해제합니다. 인스턴스 세트의 상태가 Running인 경우에만 변경 가능합니다.

Request
고가용성 모드 설정 Request Syntax
curl -X PATCH "https://redis.kr-central-2.kakaocloud.com/v1/instance-sets/{instance-set-id}/recovery" \
-H "X-Auth-Token: {token-id}" \
-H "Content-Type: application/json" \
-d '{Body}'
종류파라미터유형설명
URL{instance-set-id}*String인스턴스 세트 ID
Header{token-id}*StringAPI 인증 토큰 참고
Content-Type*String콘텐츠 유형 기본값: application/json
Bodyenabled*Boolean활성화 여부
- true: 고가용성 모드 설정
- false: 고가용성 모드 해제
고가용성 모드 설정 Request Body Example
{
"enabled": true
}
Response
상태 코드설명
200리소스 수정 요청에 대한 성공 응답
400사용자의 요청이 유효하지 않아 작업을 진행할 수 없음
401인증되지 않은 사용자가 요청한 경우
403권한이 없는 사용자가 요청한 경우
404사용자가 요청한 리소스가 존재하지 않은 경우
500내부 에러로 작업을 진행할 수 없는 경우
필드유형설명
objectIdString인스턴스 세트 ID
고가용성 모드 설정 Response Example
200 OK
content-length: 52
content-type: application/json; charset=UTF-8

{
"objectId": "aassddff-7347-4d87-a49f-e705e91db2fb"
}