인스턴스 그룹 생성 및 관리
MySQL 인스턴스 그룹 생성
MySQL 인스턴스 그룹은 인스턴스와 백업 생명주기를 관리하는 객체입니다. 운영 상태와 종료 상태를 포함하는 다양한 상태값을 가지며, 사용자는 이를 확인하고 관리할 수 있습니다. MySQL 인스턴스 그룹의 수는 제한이 없으나 kr-central-1에서는 사용자 프로젝트별로 인스턴스를 최대 10개 생성할 수 있습니다. kr-central-2에서는 프로젝트별로 생성 가능한 인스턴스 개수의 제한은 없습니다.
MySQL 서비스에서 인스턴스 그룹을 만드는 방법은 다음과 같습니다.
- 네트워크 오류, 리소스 부족 등 예기치 못한 원인으로 인스턴스 그룹 생성에 실패했을 경우, Cloud Trail 서비스에서 내역을 확인 할 수 있습니다.
- 인스턴스 그룹 생성 후 볼륨을 확장하더라도 최대 IOPS는 최초 지정된 값으로 고정됩니다. 안정적인 성능을 위해 적절한 볼륨 크기를 설정해 주세요.
- kr-central-1
- kr-central-2
-
카카오클라우드 콘솔 > Data Store > MySQL 메뉴로 이동합니다.
-
[인스턴스 그룹 만들기] 버튼을 클릭합니다.
-
인스턴스 그룹 만들기에서 정보를 입력한 후, [생성하기] 버튼을 클릭합니다.
항목 구분 설명 기본 설정 인스턴스 그룹 이름 MySQL 인스턴스 그룹의 이름
- 동일 프로젝트 내에서 중복된 MySQL 인스턴스 그룹 이름은 사용할 수 없음
- 예시: mysql-instance-01설명(선택) 인스턴스 그룹에 대한 부가 설명을 100자까지 입력 가능 MySQL 설정 엔진 버전 MySQL 데이터베이스의 버전이 자동 선택됨
- MySQL 데이터베이스 버전 5.7.33 제공MySQL 사용자 이름 MySQL 데이터베이스 관리자 계정의 이름
- 예시: admin
* 예약된 계정 이름(root)은 입력 불가MySQL 비밀번호 MySQL 데이터베이스 관리자 계정의 초기 비밀번호
- 형식: 8~16자 이내
- 공백,/
,'
,"
,@
문자는 사용할 수 없음
⚠️ 관리자 계정 패스워드는 데이터베이스 구동 이후에 변경 가능
⚠️ 데이터베이스 구동 후 사용자가 변경한 관리자 계정 패스워드는 확인 불가인스턴스 가용성/개수 단일 Primary 인스턴스만 1개 생성 고가용성 Primary 인스턴스 1개, Standby 인스턴스 1~5개 생성
- 자세한 설명은 인스턴스 가용성 구성 및 역할 참고Standby 인스턴스 개수 인스턴스 가용성을 고가용성으로 선택한 경우에만 설정
- 1~5개 생성 가능인스턴스 유형 데이터베이스 컴퓨팅 자원 구성을 위한 인스턴스 유형 선택
- 자세한 설명은 인스턴스 유형 참고스토리지 유형/크기 SSD 데이터베이스에서 사용할 볼륨의 유형과 크기 설정
- 볼륨 유형: 현재는SSD
유형만 지원하며, 향후 다양한 유형을 지원 예정
- 볼륨 크기: 100 GB~5,120GB 크기로 볼륨을 생성 가능
* 선택한 인스턴스 유형에 따라 최소 용량 제한은 달라질 수 있음네트워크 구성 네트워크 MySQL 인스턴스의 데이터베이스가 구성될 네트워크 선택 서브넷 MySQL 인스턴스의 데이터베이스가 구성될 네트워크의 서브넷 선택
-
카카오클라우드 콘솔 > Data Store > MySQL 메뉴로 이동합니다.
-
[인스턴스 그룹 만들기] 버튼을 클릭합니다.
-
인스턴스 그룹 만들기에서 정보를 입력한 후, [생성하기] 버튼을 클릭합니다.
항목 구분 설명 기본 설정 인스턴스 그룹 이름 MySQL 인스턴스 그룹의 이름
- 동일 프로젝트 내에서 중복된 MySQL 인스턴스 그룹 이름은 사용할 수 없음
- 예시: mysql-instance-01설명(선택) 인스턴스 그룹에 대한 부가 설명을 100자까지 입력 가능 인스턴스 가용성 고가용성 (Primary, Standby 인스턴스) Primary 인스턴스와 다수의 Standby 인스턴스를 생성 가능
- Single AZ 또는 Multi-AZ단일 (Primary 인스턴스) 단일 Primary 인스턴스만 생성 가능
- Single AZ(가용 영역)만 이용 가능MySQL 설정 엔진 버전 MySQL 데이터베이스의 버전이 자동 선택됨
- MySQL 데이터베이스 버전 8.0.34 제공Primary 포트 MySQL Primary 인스턴스와 통신할 포트, 1024 ~ 65535 내 지정 가능, 기본값 3306 Standby 포트 MySQL Standby 인스턴스와 통신할 포트, 1024 ~ 65535 내 지정 가능, 고가용성을 선택한 경우 지정, 기본값 3307 MySQL 사용자 이름 MySQL 데이터베이스 사용자 계정의 이름
- 예시: admin
* 예약된 계정 이름(root)은 입력 불가
* 권한에 대한 자세한 내용은 인스턴스 그룹 사용자 계정참고MySQL 비밀번호 MySQL 데이터베이스 관리자 계정의 초기 비밀번호
- 형식: 8~16자 이내
- 공백,/
,'
,"
,@
문자는 사용할 수 없음
⚠️ 관리자 계정 패스워드는 데이터베이스 구동 이후에 변경 가능
⚠️ 데이터베이스 구동 후 사용자가 변경한 관리자 계정 패스워드는 확인 불가파라미터 그룹 선택한 엔진 버전에 맞는 파라미터 그룹을 선택 가능 인스턴스 유형 데이터베이스 컴퓨팅 자원 구성을 위한 인스턴스 유형 선택
- 자세한 설명은 인스턴스 유형 참고기본 스토리지 SSD 데이터베이스에서 사용할 볼륨의 유형과 크기 설정
- 볼륨 타입: 현재는 SSD 유형만 지원하며, 향후 다양한 유형을 지원 예정
- 볼륨 크기: 100 GB~16,384 GB 크기로 볼륨을 생성 가능
* 선택한 인스턴스 유형에 따라 최소 용량 제한은 달라질 수 있습니다.로그 스토리지 SSD 데이터베이스에서 로그 적재에 사용하는 스토리지로, 생성 후 유형은 변경할 수 없음
- 볼륨 타입: 현재는 SSD 유형만 지원하며, 향후 다양한 유형을 지원 예정
- 볼륨 크기: 100 GB~16,384 GB 크기로 볼륨을 생성할 수 있습니다.
* 선택한 인스턴스 유형에 따라 최소 용량 제한은 달라질 수 있습니다.네트워크 설정 Multi-AZ 옵션 고가용성을 선택한 경우 설정할 수 있는 옵션, AZ별 서브넷과 생성할 인스턴스 개수를 지정 가능 VPC MySQL 인스턴스의 데이터베이스가 구성될 네트워크를 선택 서브넷 Primary
Primary 인스턴스가 생성될 서브넷을 선택 인스턴스 개수 1개의 Primary 인스턴스를 포함, 최대 2개의 인스턴스를 생성 가능 서브넷 Standby 인스턴스가 생성될 서브넷
- Primary를 생성할 VPC 선택 후에 서브넷 선택 가능인스턴스 개 수 최대 2개의 Standby 인스턴스를 생성 가능 자동 백업 자동 백업 옵션 자동 백업 옵션 사용 여부, 사용 시 1일 1회 자동으로 백업 진행 백업 보존 기간 자동 백업 보존 기간, 최소 1일에서 35일까지 선택 가능
- 인스턴스 그룹에 생성된 모든 자동 백업의 보존 기간 변경자동 백업 시작 시간 자동 백업 시작 시간, 선택한 시간부터 15분 사이에 백업 시작
인스턴스 그룹에 대한 자세한 설명은 자세한 설명은 인스턴스 그룹을 참고하시기를 바랍니다.
인스턴스 그룹 사용자 계정
MySQL에서는 인스턴스 그룹 생성 시, 사용자가 설정한 ID, 비밀번호로 사용자 계정을 생성합니다.
해당 계정은 User Admin
의 역할을 가지며 인증 후 리소스에 접근할 수 있습니다. 사용자 계정의 역할과 권한은 다음과 같습니다.
- 해당 내용은 kr-central-2에만 해당 하는 내용입니다.
구분 | 역할 | 권한 |
---|---|---|
사용자 계정 | User Admin | GRANT ALTER, APPLICATION_PASSWORD_ADMIN, ALTER ROUTINE, CREATE, CREATE ROLE, CREATE ROUTINE, CREATE TEMPORARY TABLES, CREATE VIEW, DELETE, DROP, DROP ROLE, EVENT, EXECUTE, INDEX, INSERT, LOCK TABLES, PROCESS, REFERENCES, RELOAD, REPLICATION CLIENT, REPLICATION SLAVE, SET_USER_ID, SELECT, SHOW DATABASES, SHOW VIEW, TRIGGER, UPDATE, XA_RECOVER_ADMIN ON . TO '${USER_NAME}'@'%'; (CREATE USER, ROLE ADMIN 권한은 제외) |
MySQL 인스턴스 그룹 연결
MySQL 서비스에서 인스턴스를 인스턴스 그룹에 연결하는 방법은 다음과 같습니다.
MySQL 인스턴스 그룹 생성과 인스턴스 설정을 완료한 후, MySQL 인스턴스 그룹 생성 시 함께 생성된 인스턴스들을 MySQL Client를 사용하여 MySQL 인스턴스 그룹에 연결해야 합니다.
사전 작업
인스턴스 그룹을 MySQL 인스턴스 그룹에 연결하기 위해서는, 연결하려는 MySQL 인스턴스 그룹과 동일한 네트워크를 사용하는 가상 머신(Virtual Machine) 인스턴스와 MySQL 인스턴스 그룹의 엔드포인트가 접근할 수 있는 접속 환경을 준비해야 합니다.
이를 위해 가상 머신(Virtual Machine) 인스턴스의 보안 그룹 아웃바운드 규칙에 kr-central-1 기준 TCP 3306(MySQL 인스턴스 기본 포트값) 포트를 허용합니다. kr-central-2 기준 사용자가 지정한 포트(1024 ~ 65535) 또는 Primary 인스턴스 TCP 3306, Standby 인스턴스 TCP 3307(MySQL 인스턴스 기본 포트값) 포트를 허용합니다.
인스턴스 연결하기
인스턴스를 인스턴스 그룹에 연결할 수 있습니다.
-
Virtual Machine > 인스턴스 생성 및 연결을 참고하여 가상 머신 인스턴스에 접근해 MySQL Client를 준비합니다. MySQL 명령어를 인식하지 않을 때는 별도의 MySQL Client를 설치해야 합니다.
-
카카오클라우드 콘솔에서 Data Store > MySQL 메뉴로 이동합니다.
-
Instance Group 메뉴에서 MySQL 인스턴스 그룹에 연결할 인스턴스 그룹을 선택합니다.
-
세부 정보 탭에서 엔드포인트와 DB 사용자 이름을 확인합니다. 해당 정보는 MySQL 명령어 실행 시 필요한 정보로, 클립보드 등에 복사하여 준비하시기를 바랍니다.
MySQL 인스턴스 그룹 세부 정보
-
MySQL Client를 통해 인스턴스를 MySQL 인스턴스 그룹에 연결하기 위해, 생성한 가상 머신 인스턴스에서 MySQL 인스턴스 연결 명령을 실행합니다.
MySQL 인스턴스 연결 명령어mysql --user={USER} --password={USER_PASSWORD} --host {ENDPOINT} --port {PORT}
항목 설명 user {USER}
: 2번에서 획득한 DB 사용자 이름
- MySQL 인스턴스에 연결하는 DB 관리자 계정의 이름password {USER_PASSWORD}
: MySQL 인스턴스 연결하는 관리자 계정의 초기 패스워드
- MySQL 생성 시 입력한 비밀번호host {ENDPOINT}
: 세부 정보 탭에서 획득한 엔드포인트 정보
- MySQL 인스턴스가 가지고 있는 엔드포인트port {PORT}
: 사용자가 인스턴스 그룹을 만들때 설정한 포트번호
인스턴스의 역할 및 유형에 대한 자세한 설명은 인스턴스를 참고하시기를 바랍니다.
MySQL 엔드포인트는 DNS 기반의 FQDN으로 제공됩니다. (보안 그룹의 아웃바운드 규칙에 udp/53
허용 필요)
Failover 동작 시 해당 도메인 네임에 매핑된 IP가 변경될 수 있습니다. 따라서 아래 사항을 유의하시기를 바랍니다.
- MySQL 엔드포인트 도메인 네임을 캐싱하지 않아야 합니다. (TTL 0초)
(예시) JAVA 기반의 애플리케이션 TTL 설정 : networkaddress.cache.ttl=0
- Primary 스위칭을 진행할 때 기존 연결이 모두 끊기므로, 가용성을 위해 항상 재연결 하도록 설정해야 합니다.
인스턴스 그룹 관리
MySQL 서비스에서 가동 중인 인스턴스와 인스턴스 그룹을 관리하는 방법은 다음과 같습니다.