주요 개념
MemStore는 관리형 캐시 데이터베이스 서비스로, 별도의 설치 과정 없이 Redis OSS를 간편하게 활용할 수 있습니다. MemStore 서비스의 주요 개념은 다음과 같습니다.
주요 개념 | 설명 |
---|---|
Cache Only | 디스크를 사용하지 않고 모든 데이터를 메모리에 저장하는 캐시 서비스 |
클러스터 | 클러스터는 다수의 샤드로 구성되며, 각 샤드는 하나의 Primary 노드와 다수의 Replica 노드로 구성 - 사용자의 필요에 따라 클러스터 모드를 사용/ 사용 안 함으로 선택하여 목적에 맞는 Redis 구성이 가능 |
샤드 | 샤드는 클러스터 데이터셋을 분할하는 단위로 다수의 노드로 구성되며, 각 노드는 한 개의 Primary와 다수의 Replica의 역할을 가짐 - 샤드 추가 : 선택한 클러스터에 부하가 증가할 경우 샤드를 추가함 - 샤드 삭제: 선택한 클러스터에서 불필요한 샤드를 삭제함 |
노드 | Primary 또는 Replica 역할을 하는 Redis OSS가 설치된 VM(Virtual Machine) - 노드 유형: 클러스터 생성 시 데이터의 크기 및 부하를 고려하여 적절한 노드 유형을 선택하여 사용 가능 - 노드 수명 주기와 상태값: 노드 상태값에 따라 상황 파악 가능 - 노드 추가: 선택한 클러스터에 읽기 부하가 증가할 경우 Replica 노드를 추가함 - 노드 삭제: 선택한 클러스터에서 불필요한 노드를 삭제함 |
고가용성 | 노드 장애 시 자동으로 조치하여 서비스를 지속할 수 있는 환경을 제공 - Primary 노드 장애 시, 자동으로 Replica 노드 중 가장 최신의 데이터를 보유한 Replica 노드를 선택하여 Primary로 승격(Automatic Failover)하며 새로운 Replica 노드를 생성하여 Replica 개수를 유지(Auto Healing) - Replica 노드 장애 시, 자동으로 새로운 노드로 대체하여 Replica 개수를 유지 |
승격 | 고가용성 기능을 사용하는 경우 - 사용자는 승격을 요청할 수 없고 서비스에서 필요하다고 판단할 때 자동으로 승격을 수행함 고가용성 기능을 사용하지 않는 경우 - 수동으로 간편하게 Replica 노드를 Primary 노드로 승격 가능 |
읽기/쓰기 전용 엔드포인트 제공 | -클러스터 모드를 사용하지 않을 경우, Redis 접속용으로 읽기/쓰기가 가능한 Primary 엔드포인트와 읽기 전용인 Read 엔드포인트 제공 -클러스터 모드를 사용할 경우, 읽기 전용인 Read 엔드포인트는 제공하지 않으며, 각 노드의 엔드포인트를 제공 |
Cache Only
MemStore에서 제공하는 Redis 서비스는 모든 데이터를 디스크에 저장하지 않고 메모리에 저장해 캐시 용도로만 사용할 수 있습니다.
클러스터
클러스터는 하나 이상의 노드 모음으로서, 자동으로 관리되는 구성단위입니다. 클러스터는 다수의 샤드 내 여러 노드로 구성되며 각 노드는 Primary와 Replica의 역할을 가집니다. 필요에 따라 샤드 또는 Replica 노드 추가, 삭제할 수 있습니다.
클러스터 수명 주기 및 상태값
클러스터의 수명 주기와 상태값은 다음과 같습니다.
- 클러스터 모드를 사용 시
- 클러스터 모드 미사용 시
클러스터 모드를 사용할 경우, 샤드의 상태와 각 노드의 상태는 클러스터의 상태와 의존성을 가지고 있어 동일한 상태를 가집니다.
클러스터 모드를 사용할 경우의 클러스터/ 샤드/ 노드의 수명 주기 다이어그램
상태 | 설명 |
---|---|
Init | 클러스터 생성 초기 상태로 생성 시작 전의 상태 |
Creating | 자원 생성 중 |
Running | 동작 중 |
Modifying | 샤드 추가/삭제, 노드 추가/삭제 등 클러스터의 형상 변경 중 |
Deleting | 자원 삭제 중 |
클러스터 모드를 사용하지 않을 경우의 수명 주기 다이어그램
상태 | 설명 |
---|---|
Init | 클러스터를 생성한 직후의 상태로 생성 시작을 진행하는 상태 |
Provisioning | 클러스터에 포함된 모든 노드들이 필요한 리소스 준비 중 |
Replicating | 클러스터에 포함된 노드들의 역할을 구성하고 엔드포인트 생성 중 |
Running | 서비스가 정상적으로 구성 및 기동이 완료되어 접속 가능 |
ScalingIn | 특정 Replica 노드 삭제 진행 중 |
SwitchingOver | 특정 Replica 노드를 Primary 노드로 승격 진행 중 |
ScalingOut | 새로운 노드를 생성하고, Replica 역할 부여 중 |
Recovering | 고가용성 기능을 사용하는 클러스터의 노드 장애 발생 시, 자동으로 알맞은 조치를 취하고 있는 상태 |
Terminating | 클러스터의 삭제 처리 중 |
Terminated | 클러스터의 삭제 완료 |
Warning | 특정 상태에서 일시적인 오류가 발생한 상태로 문제 해소 시 정상 상태로 복귀 가능 |
Failed | 영구적인 오류 발생으로 인한 비정상 상태이며, 정상 상태로 복귀할 수 없으며 삭제만 가능 |
샤드
샤드는 클러스터 모드를 사용하는 노드의 그룹으로, 클러스 터의 데이터를 각각의 샤드에 분할하여 할당합니다.
최소 1개~ 최대 12개의 샤드로 클러스터를 구성할 수 있으며, 클러스터 모드를 사용할 때의 각 샤드는 최소 2개~ 최대 5개의 노드로 구성할 수 있습니다.
노드
노드는 클러스터에 포함된 VM(Virtual Machine)입니다. 노드 생성 및 삭제 시, 필요한 작업을 수행하며 상태를 자동으로 변경합니다. 클러스터에 속한 각 노드는 Primary 역할 또는 Replica 역할을 부여받습니다. 클러스터 모드를 사용하지 않는 경우, 최대 6개의 노드를 구성할 수 있습니다.
역할 | 설명 |
---|---|
Primary | 사용자가 일반적으로 사용하는 읽기/쓰기 목적의 노드 |
Replica | Primary의 부하를 줄이기 위한 읽기 전용의 노드 |
노드 유형
사용자는 노드 생성 시 데이터의 크기 및 부하를 고려하여 유형을 선택할 수 있습니다. 추후 더 다양하고 특화된 노드 유형을 지원할 예정입니다.
- kr-central-1
- kr-central-2
노드 유형 | vCPU (개) | Memory(GB) |
---|---|---|
A1-2-CO | 2 | 4 |
A1-4-CO | 4 | 8 |
A1-4-STD | 4 | 16 |
A1-8-CO | 8 | 16 |
A1-8-STD | 8 | 32 |
A1-16-MO | 16 | 128 |
노드 유형 | vCPU (개) | Memory(GB) |
---|---|---|
m2a.large | 2 | 8 |
m2a.xlarge | 4 | 16 |
m2a.2xlarge | 8 | 32 |
m2a.4xlarge | 16 | 64 |
m2a.8xlarge | 32 | 128 |
m2a.12xlarge | 48 | 192 |
m2a.16xlarge | 64 | 256 |
m2a.24xlarge | 96 | 384 |
r2a.large | 2 | 16 |
r2a.xlarge | 4 | 32 |
r2a.2xlarge | 8 | 64 |
r2a.4xlarge | 16 | 128 |
r2a.8xlarge | 32 | 256 |
r2a.12xlarge | 48 | 384 |
r2a.16xlarge | 64 | 512 |
r2a.24xlarge | 96 | 768 |
t1i.small | 2 | 2 |
t1i.medium | 2 | 4 |
t1i.large | 2 | 8 |
t1i.xlarge | 4 | 16 |
t1i.2laxrge | 8 | 32 |
t1i 인스턴스 유형은 최초 생성 후 Running
상태로의 전환에 수분 ~ 수십 분의 시간이 소요될 수 있습니다.
또한 CPU 크레딧 잔여량이 부족할 경우 CPU 부하가 있는 작업이 정상 동작하지 않을 수 있으므로 주의가 필요합니다.
노드 수명 주기 및 상태값
클러스터의 수명 주기와 상태값은 다음과 같습니다.
-
클러스터 모드를 사용할 경우
- 노드는 클러스터와 동일한 수명주기를 가집니다. 클러스터 수명 주기 및 상태값을 참고하시기 바랍니다.
-
클러스터 모드를 사용하지 않을 경우
노드 수명주기 다이어그램
상태 | 설명 |
---|---|
Init | 클러스터 생성 시 설정한 각 노드가 생성을 시작하는 상태 |
Provisioning | 서비스를 기동할 운영 서버 생성을 시작한 상태 - 해당 단계에서 수 분이 소요될 수 있음 |
Starting | 운영 서버 생성 완료 후, 서비스의 설치와 기동을 기다림 |
Running | 서비스가 정상적으로 가동되어 접속 가능 상태 |
Terminating | 사용자가 노드 삭제를 요청하여 노드 삭제 중 |
Terminated | 노드가 삭제된 상태 - Terminated 상태가 되면 사용자는 해당 노드 관련 정보를 더 이상 조회 불가 |
Warning | 특정 상태에서 일시적인 오류가 발생한 상태 - 문제 해소 시 정상 상태로 복귀 가능 |
Failed | 영구적인 오류 발생으로 인한 비정상 상태 - 정상 상태로 복귀할 수 없으며 삭제만 가능 |
고가용성
MemStore 서비스는 사용자에 대한 편의성 제공과 안정적인 운영을 위해 고가용성 기능을 제공하고 있습니다. 고가용성 기능을 사용하면, 노드 장애 시 자동으로 조치하여 서비스를 지속할 수 있는 환경을 제공합니다.
사용자는 클러스터 생성 시 클러스터 모드를 사용할 경우에는 고가용성을 기본으로 사용하게 되며 사용 여부를 변경할 수 없습니다. 클러스터 모드를 사용하지 않을 경우, 클러스터 생성 시 고가용성 기능 사용 여부를 선택할 수 있고, 운영 중에도 해당 기능의 사용 여부를 변경할 수 있습니다. 클러스터의 상세 정보 탭에서 클러스터의 고가용성 사용 여부를 확인할 수 있습니다. 고가용성 기능을 사용하는 경 우에도 사용자는 노드를 추가 또는 삭제할 수 있으며, 추가된 노드는 고가용성 범위에 자동으로 포함됩니다.
노드 장애
노드의 역할에 따라 아래와 같은 방식으로 노드 장애를 해결합니다.
구분 | 설명 |
---|---|
Primary 노드 장애 | Primary 노드 장애 시 자동으로 가장 최신의 데이터를 보유한 Replica 노드를 선택하여 Primary로 승격(Automatic Failover)하며 새로운 Replica 노드를 생성하여 Replica 개수를 유지함(Auto Healing) |
Replica 노드 장애 | Replica 노드 장애 시, 자동으로 새로운 노드로 대체하여 Replica 개수를 유지함 |
승격
클러스터 모드 또는 고가용성 기능을 사용하는 경우에는 사용자는 승격 요청을 할 수 없고, 노드 장애 상황에 따라 서비스에서 필요하다고 판단할 때 자동으로 승격을 수행합니다. 고가용성 기능을 사용하지 않는 경우에 승격 기능을 수동으로 제공하고 있습니다. Primary 노드에 장애가 발생할 경우, 사용자는 승격 기능을 통해 Replica 노드를 Primary 노드로 승격할 수 있습니다.
읽기/쓰기 전용 엔드포인트 제공
클러스터 생성 시 client가 접속할 수 있는 읽기 전용인 Read 엔드포인트를 제공합니다.
해당 주소는 사용자가 선택한 사설 네트워크(서브넷)에서 접속 가능하며, 접근 권한 및 보안 설정까지 자동으로 처리되어 안전합니다.
클러스터 모드를 사용할 경우에는 Read 엔드포인트를 제공하지 않으며, 각 노드의 엔드포인트를 통해 접속할 수 있습니다.
백업
생성된 클러스터 정보를 백업하여 복원에 사용할 수 있습니다.
현재 백업은 클러스터 모드 사용 안 함에만 우선 제공하고 있습니다.
백업 상태값
구분 | 설명 |
---|---|
Available | 백업이 완료되어 복원, 복사, 내보내기를 할 수 있는 상태 |
Pending | 백업 요청은 받아들여졌으나 시작하지 않은 상태 |
Creating | 백업을 수행 중이거나 원본 백업으로부터 새 백업이 복 사되고 있는 상태 |
Restoring | provisioning에 사용되고 있는 상태 |
Copying | 다른 백업을 만들기 위해 복사되고 있는 상태 |
Exporting | 사용자의 Object Storage로 내보내고 있는 상태 |
Error | 백업 중 오류가 발생한 상태 |
Deleting | 백업을 삭제 중인 상태 |
파라미터 반영 상태
상태값 | 설명 |
---|---|
Pending | 파라미터 반영을 대기하는 상태입니다. |
Applying | 클러스터에 파라미터를 반영 중인 상태입니다. |
In-Sync | 클러스터에 파라미터가 정상 반영된 상태입니다. |
Error-Sync | 클러스터에 파라미터 반영을 실패한 상태입니다. 파라미터 반영 재시도 를 할 수 있습니다. 재시도 시 반영 상태가 Applying 으로 변경됩니다. |
Suspended | 순차 반영 시 앞 순서의 클러스터가 파라미터 반영에 실패하여 다음 작업을 대기 중인 상태입니다. Pending에서 Suspended로 상태가 변경되면 파라미터 반영 재시도 를 할 수 있습니다. 재시도 시 반영 상태가 Applying 으로 변경됩니다. |