< Lab >
Migrating to Cloud SQL from Amazon RDS for MySQL Using Database Migration Service
Database Migration Service (DMS) 를 사용하여 MySQL용 Amazon RDS에서 Cloud SQL로 마이그레이션
- Google Cloud Shell 활성화
- 클라우드 셸을 열고 PROJECT_ID 설정 확인
- 활성 계정 이름 나열
gcloud auth list
- 프로젝트 ID 나열
gcloud config list project
- 데이터베이스 마이그레이션 API가 활성화되어 있는지 확인
- 콘솔에서 Database Migration API 입력 후 활성화
- Cloud Shell에서 AWS CLI 도구 설치 및 구성
(Cloud Shell에 AWS CLI 도구를 설치하여 GCP에서 AWS 리소스에 액세스)
- 클라우드 셸에 AWS CLI 도구 설치
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip" unzip awscliv2.zip sudo ./aws/install
- 클라우드 셸에서 AWS CLI 도구 설정 명령 입력 후 제공된 값을 입력
AWS 액세스 키 ID : AKIA47W7SEPZL7NUU4S4aws configure
AWS 보안 액세스 키 : HrYP7nFGknLbsYDyVS/4gDLEr8g8/UE1Iq6dUxp/
기본 지역 이름 : us-east-1
기본 출력 형식 : 값 입력 없이 엔터
- MySQL용 Amazon RDS 인스턴스에 대한 새 연결 프로필 생성
- 콘솔창에 Database Migration - Connection profiles - 프로필 만들기 클릭 - Amazon RDS for MySQL 선택 후 정보 입력
연결 프로필 이름 : mysql-rds
연결 프로필 ID : 자동 생성된 값 유지
호스트 이름 또는 IP 주소 : qm1rh5kx1ttllhu.c8kr6negwygx.us-east-1.rds.amazonaws.com
포트 : 3306
사용자 이름 : admin
비밀번호 : changeme
암호화 유형 : None - mysql-rds라는 새 연결 프로필 생성 확인
- 일회성 마이그레이션 작업 생성
- 새 마이그레이션 작업 만들기 (Get started) :
콘솔에서 Database Migration - Migration jobs - 마이그레이션 작업 만들기 - 정보 입력
마이그레이션 작업 이름 : rds-to-cloudsql
마이그레이션 작업 ID : 자동 생성된 값 유지
소스 데이터베이스 엔진 : Amazon RDS for MySQL
마이그레이션 작업 유형 : One-time - 소스 인스턴스 정의 (Define a source) :
소스 연결 프로필로 mysql-rds 선택 - 대상 인스턴스 만들기 (Create a destination) :
Cloud SQL에서 대상 인스턴스를 만드는데 필요한 정보 입력
대상 인스턴스 ID : mysql-cloudsql
루트 비밀번호 : supersecret
데이터베이스 버전 : Cloud SQL for MySQL 5.7
존 : Any
연결 : Public IP
머신 유형 : db-n1-standard-1
저장 유형 : SSD
저장 용량 : 10 - 연결 방법 정의 (Define connectivity method) :
IP allowlist 선택 - Destination outgoing IP 주소를 복사해 Amazon RDS 인스턴스 IP 허용 목록을 구성
+) Destination outgoin IP address : 35.193.230.155
- 소스 인스턴스의 IP 허용 목록 구성
(소스 인스턴스와 대상 인스턴스 간의 연결을 허용하려면 소스에서 IP 허용 목록을 수정해야 함
Amazon RDS의 경우 대상 인스턴스(예: Cloud SQL)의 퍼블릭 IP 주소로 데이터베이스 보안 그룹을 수정하여 이를 수행)
- Cloud SQL 인스턴스의 IP 주소가 Amazon RDS 인스턴스의 IP 허용 목록에 추가
aws ec2 authorize-security-group-ingress \ --group-id sg-00d128ff6122dcd36 \ --protocol tcp \ --port 3306 \ --cidr 35.193.230.155/32
- 일회성 마이그레이션 작업 테스트 및 실행
- 마이그레이션 작업 창으로 돌아가 요약을 검토
- 테스트 작업 클릭
- 테스트가 성공적으로 끝나면 작업 만들기 및 시작을 클릭
- DMS에서 1회 마이그레이션 작업 상태 검토
- 콘솔창에서 Database Mirgration - Migration jobs 틀릭 - rds-to-cloudsql을 클릭한 후 마이그레이션 작업 상태 검토
- MySQL용 Cloud SQL에서 데이터 확인
- Cloud SQL에서 MySQL 데이터베이스 확인 :
콘솔에서 SQL 클릭 후 mysql-cloudsql 인스턴스 ID 클릭 - 기본 인스턴스 메뉴에서 데이터베이스를 클릭
- customer_data 및 sales_data라는 데이터베이스가 Cloud SQL로 마이그레이션된 것 확인
- MySQL 데이터베이스에 연결 :
기본 인스턴스 메뉴에서 Overview 클릭
- 이 인스턴스에 연결 패널에서 클라우드 셸 열기 버튼 클릭 후 암호를 입력해 MySQL 대화형 콘솔 활성화
gcloud sql connect mysql-cloudsql --user=root --quiet supersecret
- MySQL용 Cloud SQL 데이터베이스의 데이터 검토 :
데이터베이스를 선택한 후 customer 테이블의 레코드 수를 쿼리한 후
MySQL용 Amazon RDS 인스턴스에서 마이그레이션된 customer 테이블에서 5030개의 레코드가 있는 것 확인
use customers_data; select count(*) from customers;
- MySQL 대화형 콘솔 종료
exit