- 인쇄
- PDF
Source DB 및 Target DB 접속 설정
- 인쇄
- PDF
VPC 환경에서 이용 가능합니다.
마이그레이션 전에 Source DB와 Target DB의 설정을 확인하고 데이터베이스 연결을 위한 접속 정보를 설정합니다. 다음 중 마이그레이션하려는 상황에 알맞은 경우를 선택하여 설정 방법을 확인해 주십시오.
- 같은 VPC 안에서 마이그레이션: Source DB가 네이버 클라우드 플랫폼 내 VPC에 존재하고, Target DB를 같은 VPC에 생성하는 경우
- Public Subnet 내 Target DB로 마이그레이션: Source DB와 Target DB의 도메인이 다르고, Target DB를 Public Subnet에 생성하는 경우
- Private Subnet / Public Subnet 내 Target DB로 마이그레이션: Source DB와 Target DB의 도메인이 다르고, Target DB를 Private Subnet 에 생성한 경우 혹은 Public Subnet 에 생성하였지만 Public 도메인을 할당 받지 않은 경우
- Source DB가 Private Subnet인 경우에 대한 마이그레이션: Source DB와 Target DB가 서로 다른 VPC에 있고, Source DB를 Private Subnet에 생성하는 경우
사전 준비
Source DB와 Target DB를 연결하기 전에 다음 사전 작업을 차례대로 실행해 주십시오.
- 네이버 클라우드 플랫폼 콘솔에서 Source DB가 생성된 VPC에 Target DB를 생성해 주십시오.
- Target DB는 Source DB와 DBMS 종류가 같아야 합니다.
- Source DB와 Major 버전이 동일한 DBMS 버전이 권장됩니다.
- Target DB 생성 방법에 대한 자세한 내용은 Cloud DB for MySQL 시작을 참조해 주십시오.
- Source DB 복제를 위해, Source DB의 바이너리 로그 설정을 확인해 주십시오.
- 필수 사항: 바이너리 로그 활성화
log_bin
의 값이ON
으로 표시되는지 확인server_id
값 지정
- 권고 사항: 바이너리 로그 보관 기간을 5일 이상으로 설정
- 설정 변수
expire_logs_days
또는binlog_expire_logs_seconds
의 값 설정 - 바이너리 로그 보관 기간이 마이그레이션 진행 시간보다 짧을 경우 복제 진행 시 아래와 같은 에러 메시지가 출력됩니다. 이 경우 Source DB 설정 변경 이후 마이그레이션 삭제 및 재생성이 필요합니다.
Got fatal error 1236 from master when reading data from binary log: 'Could not find first log file name in binary log index file'
- 설정 변수
- 필수 사항: 바이너리 로그 활성화
- Source DB의 Character Set/Collation 및 Definer 계정을 점검해 주십시오.
- Cloud DB for MySQL은 [utf8, utf8mb4, euckr] Character Set에 대해서만 지원합니다. Source DB상에 이 외의 설정으로 되어 있다면 변경 후 진행해 주시기 바랍니다.
- Source DB에서 사용하는 Collation이 Target DB에서도 지원하는지 확인해 주시기 바랍니다.
ex) 8.0 이전 버전에서는 utf8mb4_0900_ai_ci가 지원되지 않습니다. - Source DB 상에서 사용 중인 Definer 계정은 계정명과 허용 호스트명이 동일하게 Cloud DB for MySQL 에 등록되어 있어야 마이그레이션 진행이 가능합니다.
- Source DB Character Set 점검 쿼리
SELECT character_set_name FROM information_schema.TABLES T, information_schema.COLLATION_CHARACTER_SET_APPLICABILITY CCSA WHERE CCSA.collation_name = T.table_collation AND TABLE_SCHEMA NOT IN ( 'information_schema', 'mysql', 'performance_schema', 'sys' ) AND CCSA.character_set_name NOT IN ( 'utf8', 'utf8mb3', 'utf8mb4', 'euckr' ); SELECT DEFAULT_CHARACTER_SET_NAME FROM information_schema.SCHEMATA T WHERE SCHEMA_NAME NOT IN ( 'information_schema', 'mysql', 'performance_schema', 'sys' ) AND DEFAULT_CHARACTER_SET_NAME NOT IN ( 'utf8', 'utf8mb3', 'utf8mb4', 'euckr');
- Source DB Collation 점검 쿼리
SELECT DISTINCT (table_collation) as table_collate FROM information_schema.TABLES WHERE TABLE_SCHEMA NOT IN ('information_schema', 'mysql', 'performance_schema', 'sys'); SELECT DISTINCT (COLLATION_CONNECTION) as table_collate FROM information_schema.views WHERE TABLE_SCHEMA NOT IN ('information_schema', 'mysql', 'performance_schema', 'sys'); SELECT DISTINCT (COLLATION_CONNECTION) as table_collate FROM information_schema.ROUTINES WHERE ROUTINE_SCHEMA NOT IN ('information_schema', 'mysql', 'performance_schema', 'sys'); SELECT DISTINCT (DATABASE_COLLATION) as table_collate FROM information_schema.ROUTINES WHERE ROUTINE_SCHEMA NOT IN ('information_schema', 'mysql', 'performance_schema', 'sys'); SELECT DISTINCT (COLLATION_CONNECTION) as table_collate FROM information_schema.TRIGGERS WHERE TRIGGER_SCHEMA NOT IN ('information_schema', 'mysql', 'performance_schema', 'sys'); SELECT DISTINCT (DATABASE_COLLATION) as table_collate FROM information_schema.TRIGGERS WHERE TRIGGER_SCHEMA NOT IN ('information_schema', 'mysql', 'performance_schema', 'sys'); SELECT DISTINCT (DEFAULT_COLLATION_NAME) as table_collate FROM information_schema.SCHEMATA WHERE SCHEMA_NAME NOT IN ('information_schema', 'mysql', 'performance_schema', 'sys');
- Source DB Definer 계정 점검 쿼리
SELECT DEFINER FROM information_schema.ROUTINES WHERE ROUTINE_SCHEMA NOT IN ( 'information_schema', 'mysql', 'performance_schema', 'sys' ) AND SECURITY_TYPE = 'DEFINER'; SELECT DEFINER FROM information_schema.VIEWS WHERE table_schema NOT IN ( 'information_schema', 'mysql', 'performance_schema', 'sys' ) AND SECURITY_TYPE = 'DEFINER' ;
- (MySQL 5.7 에서 8.0 으로 mysqldump 방식 이용하는 경우) sql_mode 를 점검해 주십시오.
- MySQL 5.7 버전 및 MariaDB 10.1.7 이상 버전에서 Default 값으로 지원하는 sql_mode='NO_AUTO_CREATE_USER' 설정은 MySQL 8.0 버전부터는 지원하지 않습니다.
- 아래 점검은 mysqldump 방식으로 진행시 필요합니다. mydumper 방식을 통해 마이그레이션 진행시 sql_mode 는 Target DB 설정을 따라가므로 별도 점검이 필요치 않습니다.
- Source DB에 해당 설정이 적용되어 있다면 아래 내용을 참고하여 조치 후 마이그레이션 진행이 필요합니다.
- sql_mode 설정 점검 쿼리
SELECT ROUTINE_SCHEMA, ROUTINE_NAME, SQL_MODE FROM information_schema.routines WHERE ROUTINE_SCHEMA NOT IN ('sys','mysql'); SELECT TRIGGER_SCHEMA, TRIGGER_NAME, sql_mode FROM information_schema.triggers WHERE TRIGGER_SCHEMA NOT IN ('sys','mysql'); SELECT @@sql_mode ;
- sql_mode 호환성 이슈 조치 방법
- Source DB > [DB Config 관리] 에서 sql_mode='NO_AUTO_CREATE_USER' 제거 설정 - Source DB > Procedure, Function, Trigger 를 삭제 후 재생성 1. Procedure, Function, Trigger 에 대해서만 drop 및 create 구문이 생성된 sql 파일 생성 $ mysqldump -u {사용자명} -p -h {Source DB 호스트명} --set-gtid-purged=OFF --routines --triggers --no-create-info --no-data --no-create-db --add-drop-trigger {사용자 DB} > backup.sql 2. backup.sql 파일내 NO_AUTO_CREATE_USER 구문 모두 제거 ex) SET sql_mode = 'STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' => SET sql_mode = 'STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION' 3. 적용하기 $ mysql -u {사용자명} -p -h {Source DB 호스트명} {사용자 DB} < backup.sql
같은 VPC 안에서 마이그레이션
Source DB가 네이버 클라우드 플랫폼 내 VPC에 존재하고, Target DB를 같은 VPC에 생성하는 경우에 접속 정보를 설정하는 방법을 설명합니다.
다음 절차를 차례대로 실행해 주십시오.
1. Target DB 접속 설정
Target DB에서 Source DB로 접속할 수 있도록 Target DB 서버에 적용된 ACG의 Outbound 규칙을 설정합니다.
여기에서는 접속 설정에 필요한 내용만 설명합니다. ACG 설정에 관한 자세한 내용은 Server 사용 가이드의 ACG를 참조해 주십시오.
ACG 규칙을 설정하는 방법은 다음과 같습니다.
- Target DB의 상세 정보에서 Target DB 서버에 적용된 ACG를 확인해 주십시오.
- ACG 항목의 을 클릭하여 ACG 화면으로 이동해 주십시오.
- Target DB에 적용된 ACG를 클릭한 후 [ACG 설정] 버튼을 클릭해 주십시오.
- [Outbound] 탭을 클릭해 주십시오.
- 다음 규칙을 입력한 후 [추가] 버튼을 클릭해 주십시오.
- 프로토콜: TCP 선택
- 목적지: Source DB가 생성된 서브넷의 IP 주소 범위 입력(<예시> 10.0.0.0/24)
- 허용 포트: Source DB 접속 포트 입력
- [적용] 버튼을 클릭해 주십시오.
2. Source DB 접속 설정
Source DB의 접속 정보를 설정해야 합니다. Source DB에 적용된 ACG 규칙과 ACL을 설정해 주십시오.
Source DB 서버 ACG 설정
Source DB 서버의 방화벽(ACG)을 설정하여 Target DB에서 접속할 수 있도록 설정해야 합니다.
다음 트래픽을 허용하도록 Source DB 서버에 적용된 ACG의 Inbound 규칙을 수정해 주십시오.(ACG 참조)- 프로토콜: TCP
- 접근 소스: Target DB가 생성된 서브넷의 IP 주소 범위(<예시> 10.0.0.0/24)
- 허용 포트: Target DB 접속 포트
아래와 같은 경우 Source DB에 Outbound를 설정해 주십시오.
- Source DB가 ACG가 아닌 NACL 정책을 사용하는 네이버 클라우드 플랫폼 서버
- 네이버 클라우드 플랫폼 서버가 아닐 경우
- ACG는 stateful을 따르기 때문에 outbound를 별도로 설정하지 않아도 가능합니다.
- Network ACL은 stateless를 따르기 때문에 outbound를 설정해야 합니다.
Source DB 계정 생성 및 ACL 설정
Source DB와 Target DB를 연결하기 위해 다음과 같은 계정을 생성하고 ACL에 추가해 주십시오.(DB User 관리 참조)
- 계정의 접속 IP(Host): Target DB가 생성된 서브넷의 IP 주소 범위
- 계정의 DB 권한
- 데이터베이스 백업과 복제를 위한 권한을 포함하도록 설정
- 마이그레이션을 위해 필요한 최소 권한 항목 참조
- 암호: 반드시
mysql_native_password
형식으로 생성된 암호 사용(MySQL 기동/정지 및 접속 절차 참조)
Public Subnet 내 Target DB로 마이그레이션
Source DB와 Target DB의 도메인이 다르고, Target DB를 Public Subnet에 생성하는 경우에 접속 정보를 설정하는 방법을 설명합니다.
다음 절차를 차례대로 실행해 주십시오.
- Target DB와 Source DB에 Public 도메인을 할당해 주십시오.(Public 도메인 관리 참조)
- 1. Target DB 접속 설정
- 2. Source DB 접속 설정
1. Target DB 접속 설정
Target DB에서 Source DB로 접속할 수 있도록 Target DB 서버에 적용된 ACG의 Outbound 규칙을 설정합니다.
여기에서는 접속 설정에 필요한 내용만 설명합니다. ACG 설정에 관한 자세한 내용은 Server 사용 가이드의 ACG를 참조해 주십시오.
ACG 규칙을 설정하는 방법은 다음과 같습니다.
- Target DB의 상세 정보에서 Target DB 서버에 적용된 ACG를 확인해 주십시오.
- ACG 항목의 을 클릭하여 ACG 화면으로 이동해 주십시오.
- Target DB에 적용된 ACG를 클릭한 후 [ACG 설정] 버튼을 클릭해 주십시오.
- [Outbound] 탭을 클릭해 주십시오.
- 다음 규칙을 입력한 후 [추가] 버튼을 클릭해 주십시오.
- 프로토콜: TCP 선택
- 목적지: Source DB의 Public 도메인 IP 주소 입력(<예시> 101.101.220.90/32)
- 허용 포트: Source DB 접속 포트 입력
- [적용] 버튼을 클릭해 주십시오.
2. Source DB 접속 설정
Source DB의 접속 정보를 설정해야 합니다. Source DB에 적용된 ACG 규칙과 ACL을 설정해 주십시오.
Source DB 서버 ACG 설정
Source DB 서버의 방화벽(ACG)을 설정하여 Target DB에서 접속할 수 있도록 설정해야 합니다. 다음 트래픽을 허용하도록 Source DB 서버에 적용된 ACG의 Inbound 규칙을 수정해 주십시오.
- 프로토콜: TCP
- 접근 소스: Target DB에 할당된 Public 도메인 IP 주소(<예시> 101.101.220.246/32)
- 허용 포트: Target DB 접속 포트
아래와 같은 경우 Source DB에 Outbound를 설정해주십시오.
- Source DB가 ACG가 아닌 NACL 정책을 사용하는 네이버 클라우드 플랫폼 서버
- 네이버 클라우드 플랫폼 서버가 아닐 경우
- ACG는 stateful을 따르기 때문에 outbound를 별도로 설정하지 않아도 가능합니다.
- Network ACL은 stateless를 따르기 때문에 outbound를 설정해야합니다.
Source DB 계정 생성 및 ACL 설정
Source DB와 Target DB를 연결하기 위해 다음과 같은 계정을 생성하고 ACL에 추가해 주십시오.
- 계정의 접속 IP(Host): Target DB에 할당된 Public 도메인의 IP 주소
- 계정의 DB 권한
- 데이터베이스 백업과 복제를 위한 권한을 포함하도록 설정
- 마이그레이션을 위해 필요한 최소 권한 항목 참조
- 암호: 반드시
mysql_native_password
형식으로 생성된 암호 사용(MySQL 기동/정지 및 접속 절차 참조)
Private Subnet / Public Subnet 내 Target DB로 마이그레이션
Source DB와 Target DB의 도메인이 다르고, Target DB를 Private Subnet에 생성하는 경우에 접속 정보를 설정하는 방법을 설명합니다.
Target DB 가 Public Subnet 으로 생성된 경우에도 아래 방법으로 진행이 가능합니다.
다음 절차를 차례대로 실행해 주십시오.
- Source DB에 Public 도메인을 할당해 주십시오.(Public 도메인 관리 참조)
- 1. Target DB 접속 설정
- 2. Source DB 접속 설정
1. Target DB 접속 설정
Target DB의 접속 정보를 설정합니다. 다음 절차를 차례대로 진행해 주십시오.
1. NAT Gateway 생성
Target DB 서버와 연결할 NAT Gateway를 생성합니다.
여기에서는 접속 설정에 필요한 내용만 설명합니다. NAT Gateway 생성에 관한 자세한 내용은 VPC 사용 가이드의 NAT Gateway 생성을 참조해 주십시오.
NAT Gateway를 생성하는 방법은 다음과 같습니다.
- 네이버 클라우드 플랫폼 콘솔에서 Services > Networking > VPC 메뉴를 차례대로 클릭해 주십시오.
- Subnet Management 메뉴를 클릭해 주십시오.
- [ Subnet 생성 ] 버튼을 클릭해주십시오.
- Public NatGateway 용도의 Subnet을 생성해주십시오.
- NAT Gateway 메뉴를 클릭해 주십시오.
- [NAT Gateway 생성] 버튼을 클릭해 주십시오.
- 공인 NAT Gateway를 생성해주십시오.
NAT Gateway 이름을 입력한 후, Target DB가 생성된 VPC와 서브넷을 선택해 주십시오.
- [생성] 버튼을 클릭해 주십시오.
- 생성한 NAT Gateway의 IP주소를 확인해 주십시오.
2. Route Table 연결
Route Table을 생성하고 라우팅 규칙에 NAT Gateway를 추가합니다. Target DB가 존재하는 서브넷에 Route Table을 적용합니다.
여기에서는 접속 설정에 필요한 내용만 설명합니다. Route Table에 관한 자세한 내용은 VPC 사용 가이드의 Route Table을 참조해 주십시오.
Route Table을 적용하는 방법은 다음과 같습니다.
- 네이버 클라우드 플랫폼 콘솔에서 Services > Networking > VPC 메뉴를 차례대로 클릭해 주십시오.
- Route Table 메뉴를 클릭해 주십시오.
- [Route Table 생성] 버튼을 클릭해 주십시오.
- Route Table 이름을 입력하고 VPC와 Subnet 지원 유형을 선택해 주십시오.
- VPC: Target DB가 생성된 VPC 선택
- Subnet 지원 유형:
- Target DB 가 Private Subnet인 경우 Public NatGateway 가 있는 공인 선택
- Target DB 가 Public Subnet인 경우 공인 선택
- [생성] 버튼을 클릭해 주십시오.
- 생성한 Route Table을 클릭하고 [Route 설정] 버튼을 클릭해 주십시오.
- 다음 정보를 입력하고 [생성] 버튼을 클릭해 주십시오.
- Destination: Source DB에 할당된 Public 도메인의 IP 주소 입력(<예시> 101.101.220.90/32)
- Target Type: NATGW 선택
- Target Name: 1. NAT Gateway 생성에서 생성한 NAT Gateway 선택
- [확인] 버튼을 클릭해 주십시오.
- Route Table을 클릭하고 [연관 Subnet 설정] 버튼을 클릭해 주십시오.
- Subnet 이름에서 NatGateway가 생성된 서브넷을 선택하고 [생성] 버튼을 클릭해 주십시오.
- [확인] 버튼을 클릭해 주십시오.
3. Target DB 서버 ACG 설정
Target DB에서 Source DB로 접속할 수 있도록 Target DB 서버에 적용된 ACG의 Outbound 규칙을 설정합니다.
여기에서는 접속 설정에 필요한 내용만 설명합니다. ACG 설정에 관한 자세한 내용은 Server 사용 가이드의 ACG를 참조해 주십시오.
ACG 규칙을 설정하는 방법은 다음과 같습니다.
- Target DB의 상세 정보에서 Target DB 서버에 적용된 ACG를 확인해 주십시오.
- ACG 항목의 을 클릭하여 ACG 화면으로 이동해 주십시오.
- Target DB에 적용된 ACG를 클릭한 후 [ACG 설정] 버튼을 클릭해 주십시오.
- [Outbound] 탭을 클릭해 주십시오.
- 다음 규칙을 입력한 후 [추가] 버튼을 클릭해 주십시오.
- 프로토콜: TCP 선택
- 목적지: Source DB의 Public 도메인 IP 주소 입력(<예시> 101.101.220.90/32)
- 허용 포트: Source DB 접속 포트 입력
- [적용] 버튼을 클릭해 주십시오.
2. Source DB 접속 설정
Source DB의 접속 정보를 설정해야 합니다. Source DB에 적용된 ACG 규칙과 ACL을 설정해 주십시오.
Source DB 서버 ACG 설정
Source DB 서버의 방화벽(ACG)을 설정하여 Target DB에서 접속할 수 있도록 설정해야 합니다. 다음 트래픽을 허용하도록 Source DB 서버에 적용된 ACG의 Inbound 규칙을 수정해 주십시오.
- 프로토콜: TCP
- 접근 소스: 1. NAT Gateway 생성에서 생성한 NAT Gateway의 IP 주소
- 허용 포트: Target DB 접속 포트
아래와 같은 경우 Source DB에 Outbound를 설정해 주십시오.
- Source DB가 ACG가 아닌 NACL 정책을 사용하는 네이버 클라우드 플랫폼 서버
- 네이버 클라우드 플랫폼 서버가 아닐 경우
- ACG는 stateful을 따르기 때문에 outbound를 별도로 설정하지 않아도 가능합니다.
- Network ACL은 stateless를 따르기 때문에 outbound를 설정해야 합니다.
Source DB 계정 생성 및 ACL 설정
Source DB와 Target DB를 연결하기 위해 다음과 같은 계정을 생성하고 ACL에 추가해 주십시오.
- 계정의 접속 IP(Host): 1. NAT Gateway 생성에서 생성한 NAT Gateway의 IP 주소
- 계정의 DB 권한
- 데이터베이스 백업과 복제를 위한 권한을 포함하도록 설정
- 마이그레이션을 위해 필요한 최소 권한 항목 참조
- 암호: 반드시
mysql_native_password
형식으로 생성된 암호 사용(MySQL 기동/정지 및 접속 절차 참조)
Source DB가 Private Subnet인 경우에 대한 마이그레이션
Source DB와 Target DB가 서로 다른 VPC에 있고, Source DB를 Private Subnet에 생성하는 경우에 접속 정보를 설정하는 방법을 설명합니다.
다음 절차를 차례대로 실행해 주십시오.
- Target DB와 Source DB 통신을 위한 VPC Peering 생성 (VPC Peering 참고)
- Target DB 접속 설정
- Source DB 접속 설정
- Endpoint 설정
1. VPC Peering 생성
Source DB와 Target DB 간 TCP 통신이 이루어질 수 있도록 VPC Peering을 구성하는 방법을 설명합니다. TCP는 양방향 통신 기반이므로 Source DB가 속한 VPC, Target DB가 속한 VPC 각각을 요청 VPC로 한 두 개의 VPC Peering 상품을 생성해 주어야 합니다.
여기에서는 접속 설정에 필요한 내용만 설명합니다. VPC Peering 생성에 관한 자세한 내용은 Networking 사용 가이드의 VPC Peering을 참조해 주십시오.
VPC Peering을 구성하는 방법은 다음과 같습니다.
- 네이버 클라우드 플랫폼 콘솔에서 Services > Networking > VPC 메뉴를 차례대로 클릭해 주십시오.
- VPC Peering 메뉴를 클릭해 주십시오.
- [VPC Peering 생성] 버튼을 클릭해 주십시오.
- 요청 VPC: Target DB가 속한 VPC 선택
- 수락 VPC: Source DB가 속한 VPC 선택
- [생성] 버튼을 눌러 주십시오.
양방향 통신을 위하여 추가적인 VPC Peering 생성이 필요합니다.
- 네이버 클라우드 플랫폼 콘솔에서 Services > Networking > VPC 메뉴를 차례대로 클릭해 주십시오.
- VPC Peering 메뉴를 클릭해 주십시오.
- [VPC Peering 생성] 버튼을 클릭해 주십시오.
- 요청 VPC: Source DB가 속한 VPC 선택
- 수락 VPC: Target DB가 속한 VPC 선택
- [생성] 버튼을 눌러 주십시오.
2. Target DB 접속 설정
Target DB 서버 ACG 설정
Target DB에서 Source DB로 접속할 수 있도록 Target DB에서 적용된 ACG의 Outbound 규칙을 설정합니다.
여기에서는 접속 설정에 필요한 내용만 설명합니다. ACG 설정에 관한 자세한 내용은 Server 사용 가이드의 ACG를 참조해 주십시오.
ACG 규칙을 설정하는 방법은 다음과 같습니다.
- Target DB의 상세 정보에서 Target DB 서버에 적용된 ACG를 확인해 주십시오.
- ACG 항목의 을 클릭하여 ACG 화면으로 이동해 주십시오.
- Target DB에 적용된 ACG를 클릭한 후 [ACG 설정] 버튼을 클릭해 주십시오.
- [Outbound] 탭을 클릭해 주십시오.
- 다음 규칙을 입력한 후 [추가] 버튼을 클릭해 주십시오.
- 프로토콜: TCP 선택
- 목적지: Source DB 서버의 사설 IP 주소 입력(<예시> 10.1.2.16/32)
- 사설 IP 확인 방법: nslookup {Private 도메인}
- 허용 포트: Source DB 접속 포트 입력
- [적용] 버튼을 클릭해 주십시오.
Route Table 연결
Route Table을 생성하고 라우팅 규칙에 VPC Peering을 추가합니다.
여기에서는 접속 설정에 필요한 내용만 설명합니다. Route Table에 설정에 관한 자세한 내용은 VPC 사용 가이드의 Route Table을 참조해 주십시오.
Route Table을 적용하는 방법은 다음과 같습니다.
- 네이버 클라우드 플랫폼 콘솔에서 Services > Networking > VPC 메뉴를 차례대로 클릭해 주십시오.
- Route Table 메뉴를 클릭해 주십시오.
- [Route Table 생성] 버튼을 클릭해 주십시오.
- Route Table 이름을 입력하고 VPC와 Subnet 지원 유형을 선택해 주십시오.
- VPC: Target DB가 속한 VPC 선택
- Subnet 지원 유형:
- Target DB가 Private Subnet에 속한 경우 사설 선택
- Target DB가 Public Subnet에 속한 경우 공인 선택
- [생성] 버튼을 클릭해 주십시오.
- 생성한 Route Table을 클릭하고 [Route 설정] 버튼을 클릭해 주십시오.
- 다음 정보를 입력하고 [생성] 버튼을 클릭해 주십시오.
- Destination: Source DB가 속한 Subnet의 IP 주소 입력(<예시> 10.1.2.0/24)
- Target Type: VPCPEERING 선택
- Target Name: VPC Peering 생성에서 생성한 VPC Peering 상품 선택
- [확인] 버튼을 클릭해 주십시오.
- Route Table을 클릭하고 [연관 Subnet 설정] 버튼을 클릭해 주십시오.
- Subnet 이름에서 VPC Peering이 생성된 Subnet을 선택하고 [생성] 버튼을 클릭해 주십시오.
- [확인] 버튼을 클릭해 주십시오.
3. Source DB 접속 설정
Source DB 서버 ACG 설정
Source DB 서버의 방화벽(ACG)을 설정하여 Target DB에서 접속할 수 있도록 설정해야 합니다. 다음 트래픽을 허용하도록 Source DB 서버에 적용된 ACG의 Inbound 규칙을 수정해 주십시오.
- 프로토콜: TCP
- 목적지: Target DB 서버의 사설 IP 주소 입력(<예시> 10.2.0.7/32)
- 사설 IP 확인 방법: nslookup {Private 도메인}
- 허용 포트: Target DB 접속 포트 입력
Route Table 연결
Route Table을 생성하고 라우팅 규칙에 VPC Peering을 추가합니다.
여기에서는 접속 설정에 필요한 내용만 설명합니다. Route Table에 설정에 관한 자세한 내용은 VPC 사용 가이드의 Route Table을 참조해 주십시오.
Route Table을 적용하는 방법은 다음과 같습니다.
- 네이버 클라우드 플랫폼 콘솔에서 Services > Networking > VPC 메뉴를 차례대로 클릭해 주십시오.
- Route Table 메뉴를 클릭해 주십시오.
- [Route Table 생성] 버튼을 클릭해 주십시오.
- Route Table 이름을 입력하고 VPC와 Subnet 지원 유형을 선택해 주십시오.
- VPC: Source DB가 속한 VPC 선택
- Subnet 지원 유형: Source DB가 Private Subnet에 속해 있으므로 사설 선택
- [생성] 버튼을 클릭해 주십시오.
- 생성한 Route Table을 클릭하고 [Route 설정] 버튼을 클릭해 주십시오.
- 다음 정보를 입력하고 [생성] 버튼을 클릭해 주십시오.
- Destination: Target DB가 속한 Subnet의 IP 주소 입력(<예시> 10.2.0.0/24)
- Target Type: VPCPEERING 선택
- Target Name: VPC Peering 생성에서 생성한 VPC Peering 상품 선택
- [확인] 버튼을 클릭해 주십시오.
- Route Table을 클릭하고 [연관 Subnet 설정] 버튼을 클릭해 주십시오.
- Subnet 이름에서 VPC Peering이 생성된 Subnet을 선택하고 [생성] 버튼을 클릭해 주십시오.
- [확인] 버튼을 클릭해 주십시오.
Source DB 계정 생성 및 ACL 설정
Source DB와 Target DB를 연결하기 위해 다음과 같은 계정을 생성하고 ACL에 추가해 주십시오.
- 계정의 접속 IP(Host): Target DB 의 사설 IP 주소
- 계정의 DB 권한
- 데이터베이스 백업과 복제를 위한 권한을 포함하도록 설정
- 마이그레이션을 위해 필요한 최소 권한 항목 참조
- 암호: 반드시
mysql_native_password
형식으로 생성된 암호 사용(MySQL 기동/정지 및 접속 절차 참조)
4. Endpoint 설정
Migration을 위한 Source DB Endpoint 설정하는 방법을 설명합니다.
여기에서는 설정에 필요한 내용만 설명합니다. Endpoint 설정에 관한 자세한 내용은 VPC 사용 가이드의 Endpoint Management을 참조해 주십시오.
- Endpoint URL: Source DB의 Private Domain
- DB PORT: Source DB 접속 포트
- DB User: Source DB 접속 계정
- DB Password: Source DB 접속 패스워드
마이그레이션을 위해 필요한 최소 권한 항목
- Source DB가 GTID 모드인 경우 아래 명령을 실행해 주십시오.
백업 방식 : mysqldump 선택할 경우
- Target DB 가 8.0.32 버전 미만인 경우
GRANT PROCESS, SHOW DATABASES, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO '[사용자명]'@'[HOST IP]';
GRANT SELECT ON mysql.* TO '[사용자명]'@'[HOST IP]';
GRANT SELECT, SHOW VIEW, LOCK TABLES, TRIGGER ON [사용자 DB].* TO '[사용자명]'@'[HOST IP]';
- Target DB 가 8.0.32 버전 이상인 경우
GRANT {RELOAD|FLUSH_TABLES}, PROCESS, SHOW DATABASES, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO '[사용자명]'@'[HOST IP]';
GRANT SELECT ON mysql.* TO '[사용자명]'@'[HOST IP]';
GRANT SELECT, SHOW VIEW, LOCK TABLES, TRIGGER ON [사용자 DB].* TO '[사용자명]'@'[HOST IP]';
- Source DB가 GTID 모드가 아닌 경우 아래 명령을 실행해 주십시오.
GRANT RELOAD, PROCESS , SHOW DATABASES, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO '[사용자명]'@'[HOST IP]';
GRANT SELECT ON mysql.* TO '[사용자명]'@'[HOST IP]';
GRANT SELECT, SHOW VIEW, TRIGGER ON [사용자 DB].* TO '[사용자명]'@'[HOST IP]';
- GTID 모드가 아닌 경우 Source DB 유저에 대하여 [RELOAD] 권한이 필요하며, 정책상 이를 부여 받지 못할 경우 Source DB를 GTID 모드로 변경 후 마이그레이션 진행해주시기 바랍니다.
- AWS RDS 환경에서 마이그레이션 진행을 원하시는 경우 권한 정책상 GTID 모드로 변경 후 마이그레이션 진행이 필요합니다.
- MySQL 8.0.20 버전 이후 Routine Dump 를 위해서는 [SHOW_ROUTINE] 권한이 필요합니다.
- Target DB 버전 8.0.32 이후부터는 Source DB가 GTID 모드인 경우에 대해서도 [RELOAD] 혹은 [FLUSH_TABLES] 권한이 추가로 필요합니다. 정책상 이를 부여 받지 못한 경우 Target DB 버전 8.0.32 미만에서 수행해주시기 바랍니다.
- 시스템 테이블 권한 [Y] 설정이 필요합니다.
백업 방식 : mydumper 선택할 경우
GRANT BACKUP_ADMIN, {RELOAD|FLUSH_TABLES}, PROCESS, SHOW DATABASES, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO '[사용자명]'@'[HOST IP]';
GRANT SELECT ON mysql.* TO '[사용자명]'@'[HOST IP]';
GRANT SELECT ON sys.* TO '[사용자명]'@'[HOST IP]';
GRANT SELECT, SHOW VIEW, LOCK TABLES, TRIGGER ON [사용자 DB].* TO '[사용자명]'@'[HOST IP]';
- mydumper 사용을 위해서는 Source DB 사용자 계정에 BACKUP_ADMIN, {RELOAD|FLUSH_TABLES} 권한이 필요합니다.
해당 권한 확인 후 필요 시 고객 문의를 통해 요청 바랍니다. - 시스템 테이블 권한 [Y] 설정이 필요합니다.