MySQL

페이지 이동경로

MySQL

카카오 i 클라우드(Kakao i Cloud)의 MySQL은 완전 관리형 데이터베이스 서비스로, VPC(Virtual Private Cloud) 환경에서 제공됩니다.
MySQL 서비스에서는 복잡한 설치 과정 없이 콘솔에서 쉽게 MySQL 인스턴스를 프로비저닝(Provisioning)하고, 논리적으로 분리된 네트워크에서 안전하게 MySQL 인스턴스를 사용할 수 있습니다.

안내
현재 인스턴스 자동 복구, 읽기 전용 인스턴스(Read Replica) 추가, 고가용성 관련 기능 등은 개발 중입니다. 현재(2023년 1월 기준) 높은 서비스 안정성을 요구하는 환경에서의 사용은 권장하지 않습니다.

주요 개념

MySQL 서비스의 주요 개념은 다음과 같습니다.

MySQL 서비스 주요 개념

주요 개념 설명
인스턴스 그룹 인스턴스와 백업 생명주기를 관리하는 객체
인스턴스 인스턴스 그룹이 관리하는 VM으로, 가용성에 따라 Primary, Standby, Read Replica(추후 지원 예정)로 역할이 결정됨
인스턴스 타입 데이터베이스에서 사용할 가상 CPU(vCPU)와 시스템 메모리를 포함한 가상화된 하드웨어 리소스
- 워크로드에 따라 최적화된 MySQL 인스턴스 타입을 선택할 수 있도록 다양한 타입을 지원
인스턴스 그룹/인스턴스 생명 주기 인스턴스 그룹/인스턴스의 다양한 생명 주기에 따라, 운영 상태와 작업 상태를 확인 및 관리
백업 데이터베이스 중단 없이 온라인으로 진행되며, 백업 생성 및 삭제 등의 관리
볼륨 MySQL 서비스를 위한 Block Storage 디바이스인 볼륨을 사용하여 데이터베이스를 제공
- 사용자가 직접 Block Storage를 생성하거나 구성할 필요 없음
네트워크와 보안 VPC에서 네트워크와 보안 기능을 제공하며, 필요한 네트워크 요구사항에 따라 논리적으로 분리된 서비스 환경 구축 가능
- 모든 MySQL 인스턴스는 VPC 환경을 제공함

인스턴스 그룹

인스턴스 그룹은 인스턴스와 백업 생명주기를 관리하는 객체입니다.
MySQL 인스턴스 그룹은 운영 상태와 종료 상태를 포함하는 다양한 상태값을 가지며, 사용자는 이를 확인하여 인스턴스 그룹을 관리할 수 있습니다. 고가용성 및 읽기 전용 인스턴스(Read Replica) 구성과 관련된 기능은 추후 지원 예정입니다.

인스턴스 그룹 생명 주기 및 상태값

MySQL 인스턴스 그룹을 생성하면 Pending 상태로 시작되며, Provisioning과 Primary Configuring , Primary Available 상태를 거쳐 Available 상태로 전환됩니다 Available 상태의 MySQL 인스턴스 그룹은 사용자가 선택한 네트워크의 엔드포인트와 포트를 통해 접근할 수 있습니다. MySQL 인스턴스 그룹의 포트는 3306으로 제공되며, 추후 다른 포트로 변경하는 기능을 제공할 예정입니다.

MySQL 인스턴스 그룹의 생명 주기

이미지 이미지 MySQL 인스턴스 그룹 생명주기

MySQL 인스턴스 그룹의 상태값

인스턴스 그룹 생명주기 상태

상태 설명
Pending MySQL 인스턴스 그룹을 구성하기 위한 준비 중
- MySQL 인스턴스 그룹을 처음 만들면 Pending 상태로 시작
Provisioning MySQL 인스턴스 그룹의 인스턴스를 생성하는 중
Primary Configuring MySQL 인스턴스 그룹의 Primary 인스턴스들이 사용할 가상의 하드웨어 리소스를 할당하고 구성하는 중입니다.
* 인스턴스 그룹 운영상태(가용 상태)의 형태로 Standby 인스턴스의 가용성 상태를 함께 표기
Primary Available MySQL 인스턴스 그룹의 Standby 인스턴스들이 사용할 가상의 하드웨어 리소스를 할당하고 구성하는 중으로, 사용자가 정상적으로 사용할 수 있는 상태입니다.
* 인스턴스 그룹 운영상태(가용 상태)의 형태로 Standby 인스턴스의 가용성 상태를 함께 표기
** HA 구성자체는 유지되고 있으며 Primary Instance는 정상적으로 사용 가능
Scaling-out MySQL 인스턴스 그룹의 Standby 인스턴스를 추가하는 중입니다.
Scaling-in MySQL 인스턴스 그룹의 Standby 인스턴스를 삭제하는 중입니다.
Unavailable MySQL 인스턴스 그룹의 Primary 인스턴스가 비정상적인 상태 이고, 사용자가 정상적으로 사용할 수 없는 상태입니다. 고가용성으로 생성한 MySQL 인스턴스 그룹에서는 수동 Failover 를 수행할 수 있습니다.
Available MySQL 인스턴스 그룹의 모든 인스턴스가 Running 상태로, 사용자가 정상적으로 사용할 수 있는 상태
- Available 상태의 MySQL 인스턴스 그룹은 사용자가 선택한 네트워크의 Endpoint IP인 3306 포트를 통해 접근
- 3306 포트 이외의 포트로 변경하는 기능은 지원 예정
Error MySQL 인스턴스 그룹의 일부 인스턴스에 오류가 발생하여 일시적으로 사용할 수 없는 상태
Fatal MySQL 인스턴스 그룹의 일부 인스턴스에 오류가 발생하여 사용할 수 없는 상태
Terminating MySQL 인스턴스 그룹의 모든 인스턴스를 완전히 종료, 반납하고 인스턴스 그룹에서 수행된 백업이 삭제되는 중
Terminated MySQL 인스턴스 그룹의 수행된 백업이 삭제되고, 모든 인스턴스가 종료되어 사용할 수 없는 상태

인스턴스 그룹의 가용성 상태

인스턴스 그룹의 상태가 ‘Primary Configuring’(Primary 리소스 할당, 구성) 또는 ‘Primary Available’ (Standby 리소스 할당, 구성)일 때 운영상태(가용 상태)의 형태로 인스턴스 그룹의 운영상태와 함께 Standby 인스턴스의 가용성 상태를 함께 표기하고 있습니다.

MySQL 인스턴스 그룹의 가용성 상태값

MySQL 인스턴스 그룹의 가용성 상태

상태 설명
READY 모든 Standby HA 구성이 준비됨
PARTIAL-READY HA를 구성중이며 구성이 완료된 Standby가 1개 이상
PARTIAL-UNAVAILABLE 구성이 완료된 Standby가 1개 이상, 사용할 수 없는 Standby가 1개 이상
CONFIGURING 모든 Standby 구성이 준비됨
STANDALONE 구성이 완료된 Standby가 없으며, 사용할 수 없는 Standby가 1개 이상
UNAVAILABLE 모든 Standby가 사용할 수 없는 상태

인스턴스

인스턴스는 인스턴스 그룹이 관리하는 VM(Virtual Machine)입니다.
MySQL 인스턴스는 CPU와 메모리를 포함해 가상화한 데이터베이스로, MySQL 인스턴스 그룹에 포함되는 객체입니다. MySQL 인스턴스에는 각 상태값이 존재하며, 가용성에 따라 Primary, Standby, Read Replica(추후 지원 예정) 역할 중 결정됩니다.

인스턴스 역할

인스턴스 역할 설명
Primary 사용자가 일반적으로 사용하는 읽기와 쓰기가 목적인 인스턴스
사용자는 DNS를 통해서 MySQL 인스턴스 사용 가능
Standby Primary 장애 상황을 대비한 고가용성 목적의 인스턴스
- 인스턴스 가용성을 고가용성으로 선택했을 경우에 생성하거나 인스턴스 목록에서 추가 가능
- Standby 역할의 인스턴스는 별도의 엔드포인트를 제공하지 않음
- 해당 인스턴스는 사용자에게 사용 목적의 접근을 제공하지 않음
Read Replica
(추후 지원 예정)
Primary의 읽기 부하를 줄이기 위하여 생성한 읽기 전용 복제본 MySQL 인스턴스
- Read Replica의 인스턴스들은 하나의 DNS 엔드포인트로 통합되어 제공되며, Round-Robin 방식으로 Read Transaction을 처리 예정

인스턴스 타입

MySQL 서비스에서는 사용 목적과 예상되는 워크로드에 따라 최적화된 인스턴스 타입을 선택할 수 있도록 지원합니다.
MySQL 인스턴스 그룹의 인스턴스 타입별로 관리형 데이터베이스 사양과 설정이 결정됩니다. MySQL 인스턴스 그룹을 만들 때 인스턴스 타입을 선택할 수 있으며, 리소스를 사용한 만큼 비용이 청구됩니다. 고성능 컴퓨팅과 메모리에 특화된 MySQL 인스턴스 타입은 추가될 예정입니다.

MySQL 인스턴스 타입

MySQL 인스턴스 타입 기본 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

인스턴스 생명 주기 및 상태값

인스턴스는 Pending 상태로 시작하며, ProvisioningStarting 상태를 거쳐 Running 상태로 전환됩니다.

MySQL 인스턴스 생명 주기

이미지 이미지 MySQL 인스턴스 생명주기

MySQL 인스턴스의 상태값

MySQL 인스턴스 생명주기 상태

상태 설명
Pending 인스턴스를 구성하기 위한 준비 중
Provisioning 인스턴스에 사용할 가상의 하드웨어 리소스를 할당하고 구성하는 중
- 인스턴스와 볼륨을 구성
Starting 인스턴스에 데이터베이스를 구성하고 설정을 진행하는 중
Running 인스턴스가 실행 중이며 사용할 수 있는 상태
Begin-Shutdown 인스턴스가 종료를 수행하는 단계
Check-Shutdown 인스턴스가 종료를 확인하는 상태
Begin-Restart 인스턴스 재시작을 수행하는 단계
Check-Restart 인스턴스 재시작을 확인하는 단계
Error 인스턴스에 오류가 발생하여 일시적으로 사용할 수 없는 상태
Fatal 인스턴스에 오류가 발생하여 사용할 수 없는 상태
Terminating 인스턴스를 완전히 종료하고 반납하는 중
Terminated 인스턴스가 종료되어 사용할 수 없는 상태

인스턴스 가용성 구성 및 역할

인스턴스 가용성 구성에 따라 인스턴스 수량과 각 인스턴스의 역할이 결정됩니다. 인스턴스 그룹 생성 후, Standby 추가, 삭제를 통해 가용성 구성을 전환할 수 있습니다.

MySQL 가용성 구성

인스턴스 가용성 구성 생성된 인스턴스 수량 설명
표준 (Single, Primary 인스턴스) 1개 Primary 인스턴스 1개만 생성하며 Standby를 생성할 수 없음
고가용성 (HA, Primary, Standby 인스턴스) 최대 6개 Primary, Standby 인스턴스를 생성
- Primary 1개, Standby 1개에서 5개까지 생성

인스턴스 가용 상태

MySQL 인스턴스간 데이터 복제에 관한 상태를 의미합니다. 가용성을 고가용성으로 선택한 인스턴스 그룹만 해당됩니다.

가용 상태 설명
CONFIGURED MySQL 인스턴스의 데이터 복제가 정상적으로 수행되는 상태
SWITCHING Failover 가 진행되는 상태, Primary 인스턴스에만 해당되는 상태
SERVER RESTARTING MySQL 인스턴스를 수행하는 VM 을 재기동 하는 상태
CONFIGURATION FINALIZING MySQL 인스턴스의 데이터 복제설정이 마무리 되는 상태
CONFIGURING MySQL 인스턴스의 데이터 복제설정을 진행하는 상태
REPLICATION ABNORMAL MySQL 인스턴스의 데이터 복제가 정상적으로 수행되지 못하는 상태
TERMINATING MySQL 인스턴스가 SCALE-IN 수행되었을 때의 상태
UNAVAILABLE MySQL 인스턴스의 데이터 복제가 중지된 상태, MySQL 인스턴스를 더이상 사용할 수 없는 상태
TERMINATED MySQL 인스턴스가 삭제된 상태

백업

백업은 MySQL 인스턴스 그룹 단위로 관리됩니다. 백업을 통한 신규 인스턴스의 생성과 특정 시간에 수행되는 자동 백업 기능은 추후 지원 예정입니다.

백업 생명 주기 및 상태값

백업은 Pending 상태로 시작하며, Processing 상태를 거쳐 Succeeded 상태가 되면 완료됩니다.

백업의 생명 주기 이미지 이미지 백업 생명주기

백업의 상태값

백업 상태

상태 설명
Pending 백업 초기 상태
Processing 현재 백업이 수행되는 중
Succeeded 백업이 성공적으로 종료된 상태
Failed 백업이 비정상적으로 종료된 상태
Deleting 백업을 삭제하는 중
Deleted 백업이 완전히 삭제된 상태

Failover

MySQL은 고가용성(HA, High Availability) 기능을 지원합니다. 백업 인스턴스 가용성 타입을 고가용성으로 선택한 경우 다수의 Standby 인스턴스를 생성할 수 있으며, 장애가 발생하여 정상적인 서비스 제공이 어려운 경우 Failover를 할 수 있습니다. 현재(23년 1월 기준) 수동 Failover만 제공하고 있습니다.

Failover시 순단현상이 발생할 수 있습니다.
Failover을 수행할 적절한 Standby 인스턴스가 없다면 primary instance가 재기동됩니다.

Failover 생명 주기 및 상태값

Failover의 생명 주기

이미지 이미지 Failover 생명주기

Failover의 상태값

Failover 상태

상태 설명
SWITCHING Failover를 진행하는 중 입니다. MySQL 서비스를 사용할 수 없습니다.
PRIMARY-CONFIGURING Primary 인스턴스를 구성하는 상태 입니다. 경우에 따라서는 MySQL 서비스를 사용할 수 없습니다.
PRIMARY-AVAILABLE Standby 인스턴스를 구성하는 상태 입니다.

볼륨

Block Storage 디바이스인 볼륨을 사용하여 데이터베이스를 제공합니다. 따라서 사용자가 직접 Block Storage를 생성 및 구성하는 등 관리할 필요가 없습니다.

네트워크와 보안

모든 MySQL 인스턴스는 VPC 환경을 제공합니다. VPC에서 네트워크와 보안 기능을 제공하며, 필요한 네트워크 요구사항에 따라 논리적으로 분리된 서비스 환경을 구축할 수 있습니다.

사용 가이드

안내
카카오 i 클라우드의 MySQL 서비스에 대한 자세한 사용 가이드는 MySQL > How-to Guides 문서를 참고하시기 바랍니다.

MySQL 사용 가이드

문서 설명
인스턴스 그룹 생성하기 MySQL 인스턴스 그룹을 생성하는 방법을 설명합니다.
인스턴스 그룹 연결하기 인스턴스를 MySQL 인스턴스 그룹에 연결하는 방법을 설명합니다.
인스턴스 그룹 관리하기 MySQL 인스턴스 그룹을 관리하는 방법을 설명합니다.
인스턴스 추가하기 MySQL 인스턴스를 추가하는 방법을 설명합니다.
인스턴스 관리하기 MySQL 인스턴스를 관리하는 방법을 설명합니다.
인스턴스 Failover MySQL 인스턴스를 Failover하는 방법을 설명합니다.
백업 관리하기 MySQL 백업을 관리하는 방법을 설명합니다.