클러스터 모드 미사용 시
다음 API는 클러스터 모드를 미사용으로 설정했을 때 사용할 수 있습니다.
user.password
필드의 값은 암호화한 값을 넣어야지만 정상적으로 생성이 가능합니다.
인스턴스 세트 생성
신규 인스턴스 세트 생성
신규 인스턴스 세트를 생성합니다.
Request
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} * | String | API 인증 토큰 참고 |
Content-Type* | String | 콘텐츠 유형 기본값: application/json | |
Body | description | String | 인스턴스 세트 설명 - 글자수: 최대 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* | 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 - 보안 그룹 ID는 콘솔 > VPC > 보안 그룹에서 확인 가능 | |
backupSchedule | Object | 자동 백업 정책 - 해당 필드가 없으면 자동 백업 사용하지 않음 | |
backupSchedule.cron | String | 백업 일정의 크론 표현 - 시간만 설정 가능함 - 5자리 크론 표현식 사용 (예시: "* 1 * * " → 매일 1시(KST)에 자동백업 생성) - 시간 자리에는 0-23 사이의 값만 입력 가능 (특수문자 입력 불가) - 시간을 제외한 다른 자리에는 별표( * )만 입력 가능 | |
backupSchedule.retentionLimit | Integer | 백업의 보존 기간(단위: 일) - 최소 1일, 최대 35일 | |
port* | Integer | Redis 포트 번호 - 2000 ~ 50000 내 입력 | |
projectId* | String | Project ID | |
version* | String | Redis 버전 - 클러스터 미사용일 경우 7.2.6 , 7.0.15 , 6.2.16 , 6.2.5 , 5.0.6 버전 지원 | |
user | Object | 데이터베이스 사용자 정보 - db 접근 시 계정 정보 | |
user.name | String | 데이터베이스 사용자 이름 | |
user.password | String | 데이터베이스 사용자 암호 (암호화된 형태 또는 암호 해시) 데이터베이스 사용자 암호 암호화 방법 | |
parameterGroupId* | String | 인스턴스 세트에 반영할 파라미터 그룹 ID |
{
"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 | 내부 에러로 작업을 진행할 수 없는 경우 |
필드 | 유형 | 설명 |
---|---|---|
objectId | String | 인스턴스 세트 ID |
201 Created
content-length: 52
content-type: application/json; charset=UTF-8
{
"objectId": "xxxxxxxx-7347-4d87-a49f-e705e91db2fb"
}
기존 백업 이름으로 인스턴스 세트 생성(복원)
기존 백업 이름으로 인스턴스 세트를 복원합니다.
기존 백업으로 복원 시 백업 당시 Redis 메모리 크기가 복원할 클러스터 플레이버의 메모리의 60%보다 큰 경우 인스턴스 세트 생성(복원) 요청에 실패할 수 있습니다.
Request
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} * | String | API 인증 토큰 참고 |
Content-Type* | String | 콘텐츠 유형 기본값: application/json | |
Body | description | String | 인스턴스 세트 설명 - 글자수: 최대 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* | 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 - 보안 그룹 ID는 콘솔 > VPC > 보안 그룹에서 확인 가능 | |
restoreSource | Object | 복원 소스 정보 | |
restoreSource.backupName | String | MemStore 백업 목록의 이름 1개 | |
backupSchedule | Object | 자동 백업 정책 - 해당 필드가 없으면 자동 백업 사용하지 않음 | |
backupSchedule.cron | String | 백업 일정의 크론 표현 - 시간만 설정 가능함 - 5자리 크론 표현식 사용 (예시: "* 1 * * " → 매일 1시(KST)에 자동백업 생성) - 시간 자리에는 0-23 사이의 값만 입력 가능 (특수문자 입력 불가) - 시간을 제외한 다른 자리에는 별표( * )만 입력 가능 | |
backupSchedule.retentionLimit | Integer | 백업의 보존 기간(단위: 일) - 최소 1일, 최대 35일 | |
port* | Integer | Redis 포트 번호 - 2000 ~ 50000 내 입력 | |
projectId* | String | Project ID | |
version* | String | Redis 버전 - 클러스터 미사용일 경우 7.2.6 , 7.0.15 , 6.2.16 , 6.2.5 , 5.0.6 버전 지원 | |
user | Object | 데이터베이스 사용자 정보 - db 접근 시 계정 정보 | |
user.name | String | 데이터베이스 사용자 이름 | |
user.password | String | 데이터베이스 사용자 암호 (암호화된 형태 또는 암호 해시) 데이터베이스 사용자 암호 암호화 방법 | |
parameterGroupId* | String | 인스턴스 세트에 반영할 파라미터 그룹 ID |
{
"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 | 내부 에러로 작업을 진행할 수 없는 경우 |
필드 | 유형 | 설명 |
---|---|---|
objectId | String | 인스턴스 세트 ID |
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
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} * | String | API 인증 토큰 참고 |
Content-Type* | String | 콘텐츠 유형 기본값: application/json | |
Body | description | String | 인스턴스 세트 설명 - 글자수: 최대 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* | 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 - 보안 그룹 ID는 콘솔 > VPC > 보안 그룹에서 확인 가능 | |
restoreSource | Object | 복원 소스 정보 | |
restoreSource.files[] | String Array | 사용자 백업 파일의 Object Storage 경로 1개 - 동일 리전/프로젝트 내에 편집 권한이 있는 Object Storage의 경로 - bucket/folder/.../file 형식으로 입력 - 백업 시 사용한 엔진 버전과 동일하거나 상위 엔진 버전으로만 복원 가능 | |
backupSchedule | Object | 자동 백업 정책 - 해당 필드가 없으면 자동 백업 사용하지 않음 | |
backupSchedule.cron | String | 백업 일정의 크론 표현 - 시간만 설정 가능함 - 5자리 크론 표현식 사용 (예시: "* 1 * * " → 매일 1시(KST)에 자동백업 생성) - 시간 자리에는 0-23 사이의 값만 입력 가능 (특수문자 입력 불가) - 시간을 제외한 다른 자리에는 별표( * )만 입력 가능 | |
backupSchedule.retentionLimit | Integer | 백업의 보존 기간(단위: 일) - 최소 1일, 최대 35일 | |
port* | Integer | Redis 포트 번호 - 2000 ~ 50000 내 입력 | |
projectId* | String | Project ID | |
version* | String | Redis 버전 - 클러스터 미사용일 경우 7.2.6 , 7.0.15 , 6.2.16 , 6.2.5 , 5.0.6 버전 지원 | |
user | Object | 데이터베이스 사용자 정보 - db 접근 시 계정 정보 | |
user.name | String | 데이터베이스 사용자 이름 | |
user.password | String | 데이터베이스 사용자 암호 (암호화된 형태 또는 암호 해시) 데이터베이스 사용자 암호 암호화 방법 | |
parameterGroupId* | String | 인스턴스 세트에 반영할 파라미터 그룹 ID |
{
"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 | 내부 에러로 작업을 진행할 수 없는 경우 |
필드 | 유형 | 설명 |
---|---|---|
objectId | String | 인스턴스 세트 ID |
201 Created
content-length: 52
content-type: application/json; charset=UTF-8
{
"objectId": "xxxxxxxx-7347-4d87-a49f-e705e91db2fb"
}
인스턴스 세트 삭제
인스턴스 세트를 삭제합니다. 생성된 자동백업이 있는 인스턴스 세트의 경우 콘솔에서 삭제가 불가능할 수 있고, 이 경우 API를 통해 keepAutomaticBackups 파라미터를 포함시켜 요청하면 삭제할 수 있습니다.
Request
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} * | String | API 인증 토큰 참고 |
URL | {instance-set-id} * | String | 인스턴스 세트 ID |
Query | {keep-auto-backup} | Boolean | 자동 백업 보관 유무 - 자동백업이 생성되어 있는 경우 필수 입력 - true : 해당 인스턴스 세트로 만든 자동 백업을 7일간 보관 (단, 7일 이전에 삭제 예정인 백업은 그대로 유지됨)- false : 인스턴스 세트와 함께 자동 백업 삭제 |
Response
상태 코드 | 설명 |
---|---|
200 | 리소스 조회/삭제 요청에 대한 성공 응답 |
400 | 사용자의 요청이 유효하지 않아 작업을 진행할 수 없음 |
401 | 인증되지 않은 사용자가 요청한 경우 |
403 | 권한이 없는 사용자가 요청한 경우 |
404 | 사용자가 요청한 리소스가 존재하지 않은 경우 |
500 | 내부 에러로 작업을 진행할 수 없는 경우 |
필드 | 유형 | 설명 |
---|---|---|
objectId | String | 인스턴스 세트 ID |
200 OK
content-length: 52
content-type: application/json; charset=UTF-8
{
"objectId": "aabbccdd-a1d4-465b-8009-1d272bcc2db7"
}
인스턴스 세트 변경
인스턴스 세트의 자동 백업 정책, 연결된 파라미터 그룹을 변경합니다.
Request
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} * | String | API 인증 토큰 참고 |
URL | {instance-set-id} * | String | 인스턴스 세트 ID |
Body | backupSchedule | Object | 백업 스케줄 설정 |
backupSchedule.cron | String | 백업 일정의 크론 표현 - 시간만 설정 가능 - 5자리 크론 표현식 사용 - cron 값을 "" 으로 넘겨주면 백업 삭제 | |
backupSchedule.retentionLimit | Integer | 백업의 보존 기간(단위: 일) | |
description | String | 인스턴스 세트 설명 | |
parameterGroupId | String | 인스턴스 세트에 연결할 파라미터 그룹 ID - parameterGroupId 값을 "" 으로 수정 불가능 |
Response
상태 코드 | 설명 |
---|---|
200 | 리소스 조회/삭제 요청에 대한 성공 응답 |
400 | 사용자의 요청이 유효하지 않아 작업을 진행할 수 없음 |
401 | 인증되지 않은 사용자가 요청한 경우 |
403 | 권한이 없는 사용자가 요청한 경우 |
404 | 사용자가 요청한 리소스가 존재하지 않은 경우 |
500 | 내부 에러로 작업을 진행할 수 없는 경우 |
필드 | 유형 | 설명 |
---|---|---|
objectId | String | 인스턴스 세트 ID |
200 OK
content-length: 52
content-type: application/json; charset=UTF-8
{
"objectId": "aabbccdd-a1d4-465b-8009-1d272bcc2db7"
}
백업 정책/설명 변경
인스턴스 세트의 자동 백업 정책 혹은 설명을 변경합니다.
Request
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} * | String | API 인증 토큰 참고 |
Body | backupSchedule | Object | 백업 스케줄 설정 |
backupSchedule.cron | String | 백업 일정의 크론 표현 - cron 값을 " "으로 넘겨주면 retentionLimit 값에 관계없이 설정된 자동 백업 정책이 삭제 됨- 시간만 설정 가능함 - 5자리 크론 표현식 사용(예: "* 1 * * " → 매일 1시(KST)에 자동백업 생성) - 시간 자리에는 0-23 사이의 값만 입력 가능 (특수문자 입력 불가) - 시간을 제외한 다른 자리에는 별표( * )만 입력 가능 | |
backupSchedule.retentionLimit | Integer | 백업의 보존 기간(단위: 일) - 최소 1일, 최대 35일 | |
description | String | 설명 |
{
"backupSchedule": {
"cron": "* 3 * * *",
"retentionLimit": 15
},
"description": ""
}
Response
상태 코드 | 설명 |
---|---|
200 | 리소스 수정 요청에 대한 성공 응답 |
400 | 사용자의 요청이 유효하지 않아 작업을 진행할 수 없음 |
401 | 인증되지 않은 사용자가 요청한 경우 |
403 | 권한이 없는 사용자가 요청한 경우 |
404 | 사용자가 요청한 리소스가 존재하지 않은 경우 |
500 | 내부 에러로 작업을 진행할 수 없는 경우 |
필드 | 유형 | 설명 |
---|---|---|
objectId | String | 인스턴스 세트 ID |
200 OK
content-length: ...
content-type: application/json; charset=UTF-8
{
"objectId": "ffddssaa-7347-4d87-a49f-e705e91db2fb"
}
인스턴스 세트의 인스턴스 목록 조회
인스턴스 세트의 인스턴스(노드) 목록을 조회합니다.
Request
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} * | String | API 인증 토큰 참고 |
Response
상태 코드 | 설명 |
---|---|
200 | 리소스 조회/삭제 요청에 대한 성공 응답 |
400 | 사용자의 요청이 유효하지 않아 작업을 진행할 수 없음 |
401 | 인증되지 않은 사용자가 요청한 경우 |
403 | 권한이 없는 사용자가 요청한 경우 |
500 | 내부 에러로 작업을 진행할 수 없는 경우 |
필드 | 유형 | 설명 |
---|---|---|
size | Integer | 데이터 개수 |
data[] | Object Array | 인스턴스 목록 |
data[].instanceName | String | 인스턴스 이름 |
data[].description | String | 인스턴스 세트 설명 |
data[].projectId | String | Project ID |
data[].role | String | 인스턴스 역할 (primary/replica) |
data[].flavorId | String | 플레이버 ID |
data[].version | String | Redis 버전 |
data[].port | Integer | Redis 포트 번호 |
data[].subnet | Object | 할당되어 있는 서브넷 정보 |
data[].subnet.id | String | 서브넷 ID |
data[].creator | String | 인스턴스 세트 생성자 |
data[].objectId | String | 인스턴스 ID |
data[].endpoint | String | 인스턴스 엔드포인트(프라이빗 IP) |
data[].license | String | 라이선스 |
data[].createdAt | String | 생성 시간 (RFC3339) |
data[].status | String | 인스턴스 상태 (PROVISIONING/FAILED 등) |
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
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} * | String | API 인증 토큰 참고 |
Response
상태 코드 | 설명 |
---|---|
200 | 리소스 조회/삭제 요청에 대한 성공 응답 |
400 | 사용자의 요청이 유효하지 않아 작업을 진행할 수 없음 |
401 | 인증되지 않은 사용자가 요청한 경우 |
403 | 권한이 없는 사용자가 요청한 경우 |
404 | 사용자가 요청한 리소스가 존재하지 않은 경우 |
500 | 내부 에러로 작업을 진행할 수 없는 경우 |
필드 | 유형 | 설명 |
---|---|---|
objectId | String | 인스턴스 세트 ID |
200 OK
content-length: 52
content-type: application/json; charset=UTF-8
{
"objectId": "aaaabbbb-a1d4-465b-8009-1d272bcc2db7"
}
Replica를 Primary로 승격
특정 Replica를 Primary로 승격합니다. 고가용성 모드가 비활성화되어 있는 경우에만 승격 요청이 가능합니다.
Request
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} * | String | API 인증 토큰 참고 |
Content-Type* | String | 콘텐츠 유형 기본값: application/json | |
Body | primaryId* | String | Primary로 승격할 인스턴스 ID |
{
"primaryId": "instance-idid-xxxx-a49f-e705e91db2fb"
}
Response
상태 코드 | 설명 |
---|---|
200 | 리소스 수정 요청에 대한 성공 응답 |
400 | 사용자의 요청이 유효하지 않아 작업을 진행할 수 없음 |
401 | 인증되지 않은 사용자가 요청한 경우 |
403 | 권한이 없는 사용자가 요청한 경우 |
404 | 사용자가 요청한 리소스가 존재하지 않은 경우 |
500 | 내부 에러로 작업을 진행할 수 없는 경우 |
필드 | 유형 | 설명 |
---|---|---|
objectId | String | 인스턴스 세트 ID |
200 OK
content-length: 52
content-type: application/json; charset=UTF-8
{
"objectId": "bbccxxzz-7347-4d87-a49f-e705e91db2fb"
}
인스턴스 추가
인스턴스(Replica 1개)를 추가합니다. Replica는 최대 5개까지 생성 가능합니다.
Request
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} * | String | API 인증 토큰 참고 |
Content-Type* | String | 콘텐츠 유형 기본값: application/json | |
Body | subnet* | Object | 배치할 서브넷 정보 |
subnet.id* | String | 서브넷 ID |
{
"subnet": { "id": "xxxxxxxx-0a69-4f8b-b56d-59ce12b4d55b" }
}
Response
상태 코드 | 설명 |
---|---|
200 | 리소스 수정 요청에 대한 성공 응답 |
400 | 사용자의 요청이 유효하지 않아 작업을 진행할 수 없음 |
401 | 인증되지 않은 사용자가 요청한 경우 |
403 | 권한이 없는 사용자가 요청한 경우 |
404 | 사용자가 요청한 리소스가 존재하지 않은 경우 |
500 | 내부 에러로 작업을 진행할 수 없는 경우 |
필드 | 유형 | 설명 |
---|---|---|
objectId | String | 인스턴스 세트 ID |
200 OK
content-length: 52
content-type: application/json; charset=UTF-8
{
"objectId": "qqwweerr-7347-4d87-a49f-e705e91db2fb"
}
고가용성 모드 설정
고가용성 모드를 설정 또는 설정 해제합니다. 인스턴스 세트의 상태가 Running인 경우에만 변경 가능합니다.
Request
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} * | String | API 인증 토큰 참고 |
Content-Type* | String | 콘텐츠 유형 기본값: application/json | |
Body | enabled* | Boolean | 활성화 여부 - true : 고가용성 모드 설정- false : 고가용성 모드 해제 |
{
"enabled": true
}
Response
상태 코드 | 설명 |
---|---|
200 | 리소스 수정 요청에 대한 성공 응답 |
400 | 사용자의 요청이 유효하지 않아 작업을 진행할 수 없음 |
401 | 인증되지 않은 사용자가 요청한 경우 |
403 | 권한이 없는 사용자가 요청한 경우 |
404 | 사용자가 요청한 리소스가 존재하지 않은 경우 |
500 | 내부 에러로 작업을 진행할 수 없는 경우 |
필드 | 유형 | 설명 |
---|---|---|
objectId | String | 인스턴스 세트 ID |
200 OK
content-length: 52
content-type: application/json; charset=UTF-8
{
"objectId": "aassddff-7347-4d87-a49f-e705e91db2fb"
}