AWS 실습AWS 허브발행일 2025. 12. 15.원본 https://blog.naver.com/jword_/224110989453 ↗

온프레미스데이터 RDS로 이전하기 (MariaDB)

온프레미스데이터 RDS로 이전하기 (MariaDB) — #MySQL #MariaDB #RDS #AWSRDS #개발자의도구들 문제상황 정의 AWS EKS로 MSA 서...

#DevOps/cloudOps#Naver Blog

#MySQL #MariaDB #RDS #AWSRDS #개발자의도구들

​

문제상황 정의

AWS EKS로 MSA 서버를 이전하고자 합니다. AWS EKS환경에서 사용할 DB 데이터를 RDS에 두어 EKS Pods와 RDS가 직접 통신하도록 구조를 변경하고자 합니다.

이미지

현재 온프레미스(윈도우) 환경에 테이블 및 데이터를 저장해두었습니다. 이 데이터를 RDS에서도 그대로 사용하기 위해서 마이그레이션을 진행하고자 합니다.

​

​

mysqldump

mysqldump는 MySQL/MariaDB에서 공식 제공하는 논리적 백업 도구입니다. 데이터베이스의 구조(스키마)와 데이터를 SQL문 형태의 텍스트 파일로 추출합니다.

​

동작원리

  • 데이터 베이스를 읽습니다.
  • CREATE TABLE, INSERT INTO 등의 SQL 문으로 변환합니다.
  • 생성된 파일을 다른 서버에서 실행하면 원본과 동일한 데이터 베이스가 재구성됩니다.

​

주의점

  • 대용량 데이터(수십 GB 이상)에서는 속도가 느립니다.
  • 백업 중에는 원본 테이블 잠금이 발생할 수 있습니다.
  • snapShot을 생상하여 특정 시점까지의 데이터만 복사하면 잠금을 피할 수 있습니다.

​

저의 경우 데이터의 크리가 얼마 안되기 때문에, 빠르게 이전하기 위해 이 방법을 사용했습니다.

Hands On

로컬 mariaDB MSA 데이터 베이스

이미지

현재 하나의 서버 커넥션에 MSA 서버별 데이터베이스를 분리해서 저장하고 있습니다.

​

이미지

이미지

각 데이터베이스는 각각의 테이블들을 보유하고 있습니다.

​

백업용 명령어

다음 명령어는 전체 테이블 구조 및 데이터에 대한 dump를 한번에 생성할 수 있도록 돕습니다.

text 코드 예제
                                    // 전체 백업 명령어
// in mysqldump.exe 프로그램 경로
  "[mysqldump.exe path]" \
    -u root -p1234 \
    --single-transaction \
    --databases marketing marketing-follow marketing-image \
    marketing-like marketing-noti marketing-timeline marketing-user-profile \
    > "[dump saving path]\marketing_all_backup.sql"

​

AWS RDS 생성

RDS 생성에는 다음 절차를 따라야 합니다.

  • VPC 생성 (혹은 기본 VPC 사용 가능) - 여기서는 기본 VPC를 사용합니다.
  • 보안 그룹 생성
  • 인바운드 규칙 추가
  • RDS 인스턴스 생성

​

이미지

\* 퍼블릭 서브넷에 생성 이후 AWS EKS 환경에서는 private 환경으로 이전시키면 됩니다.

​

명령어 한번에 정리

bash 코드 예제
                                    # ------------------------------------------------------------
# 1. AWS CLI 및 자격증명 확인
# ------------------------------------------------------------

aws --version
aws sts get-caller-identity

# 리전 확인
aws configure get region

# ------------------------------------------------------------
# 2. VPC / 네트워크 구성 확인
# ------------------------------------------------------------

# VPC 목록 확인
aws ec2 describe-vpcs \
  --query "Vpcs[*].[VpcId,Tags[?Key=='Name'].Value|[0],CidrBlock,IsDefault]" \
  --output table

# NACL 확인
aws ec2 describe-network-acls \
  --filters "Name=vpc-id,Values=[you_vpc_id]" \
  --query "NetworkAcls[*].[NetworkAclId,IsDefault,Entries]" \
  --output json

# Internet Gateway 확인
aws ec2 describe-internet-gateways \
  --filters "Name=attachment.vpc-id,Values=[you_vpc_id]" \
  --query "InternetGateways[*].[InternetGatewayId,Attachments[0].State]" \
  --output table

# ------------------------------------------------------------
# 3. Security Group 생성
# ------------------------------------------------------------

# 보안 그룹 생성
aws ec2 create-security-group \
  --group-name marketing-rds-sg \
  --description "Security group for Marketing RDS" \
  --vpc-id [you_vpc_id]

# 인바운드 규칙 추가 (3306 포트)
aws ec2 authorize-security-group-ingress \
  --group-id [your_sg_group_id] \
  --protocol tcp \
  --port 3306 \
  --cidr 0.0.0.0/0

# ------------------------------------------------------------
# 4. RDS 생성
# ------------------------------------------------------------

# RDS MariaDB 인스턴스 생성
aws rds create-db-instance \
  --db-instance-identifier marketing-db \
  --db-instance-class db.t3.micro \
  --engine mariadb \
  --engine-version 10.11 \
  --master-username [you_user_name] \
  --master-user-password [your_pw] \
  --allocated-storage 20 \
  --vpc-security-group-ids [your_security_group] \
  --publicly-accessible \
  --backup-retention-period 7 \
  --no-multi-az

# RDS 상태 확인
aws rds describe-db-instances \
  --db-instance-identifier marketing-db \
  --query "DBInstances[0].[DBInstanceStatus,Endpoint.Address,Endpoint.Port]" \
  --output text

# ------------------------------------------------------------
# 5. RDS 접속 및 데이터 복원
# ------------------------------------------------------------

# RDS 접속 테스트
"C:\Program Files\MariaDB 11.5\bin\mysql.exe" \
  -h [your-rds-endpoint] \
  -u [rds-user] \
  -p[rds-pw] \
  --ssl-verify-server-cert=false \
  -e "SELECT VERSION(); SHOW DATABASES;"

# 백업 데이터 복원
"C:\Program Files\MariaDB 11.5\bin\mysql.exe" \
  -h [your-rds-endpoint] \
  -u [rds-user] \
  -p[rds-pw] \
  --ssl-verify-server-cert=false \
  < "[mysqldummp-file-path]"

결과 확인

이미지

내 컴퓨터에서 RDS로 접속

  • endpoint
  • port
  • user
  • password

​

이미지

이미지

Database 및 Table과 데이터까지 모두 잘 백업된 것을 볼 수 있습니다.

​