본문 바로가기

개발공부/Database

Data 마이그레이션 이란?

데이터 마이그레이션(Data Migration)은 한 시스템, 저장소, 형식 또는 애플리케이션에서 다른 시스템으로 데이터를 이동하는 과정을 의미합니다. 주로 다음과 같은 경우에 이루어집니다:

  • 시스템 업그레이드: 기존의 레거시 시스템에서 최신 시스템으로 전환할 때.
  • 데이터베이스 변경: MySQL에서 PostgreSQL로 DBMS를 변경하거나, 온프레미스 DB에서 클라우드 기반 DB로 이전할 때.
  • 애플리케이션 통합: 서로 다른 애플리케이션 간 데이터를 통합할 때.
  • 스토리지 교체: 로컬 스토리지에서 클라우드 스토리지(AWS S3 등)로 이동할 때.

데이터 마이그레이션 단계

  1. 계획: 마이그레이션 범위, 영향도, 일정 등을 수립.
  2. 데이터 분석: 기존 데이터 구조, 품질, 양 등을 분석.
  3. 데이터 매핑: 이전 시스템과 새로운 시스템 간의 데이터 구조를 매핑.
  4. 데이터 변환: 필요 시 새로운 시스템에 맞게 데이터 변환.
  5. 이전(마이그레이션): 실제 데이터 이전 수행.
  6. 검증 및 테스트: 데이터 무결성 검증, 애플리케이션 정상 작동 확인.
  7. 운영 및 모니터링: 마이그레이션 후 시스템 안정화 모니터링.

데이터 마이그레이션 유형

  • Storage Migration: 스토리지 장비나 위치 변경.
  • Database Migration: 데이터베이스 관리 시스템(DBMS) 변경.
  • Application Migration: 한 애플리케이션에서 다른 애플리케이션으로 데이터 이동.
  • Cloud Migration: 온프레미스에서 클라우드(AWS, GCP, Azure 등)로 이전.

데이터 마이그레이션 도구 예시

  • AWS DMS(AWS Database Migration Service)
  • Flyway, Liquibase (데이터베이스 마이그레이션 도구)
  • Apache NiFi, Talend (ETL 기반 데이터 이전 도구)

 

 

 


1. 계획(Planning)

  • 목표 설정: 무엇을, 왜, 어떻게 마이그레이션할 것인지 정의합니다.
    • 예: 온프레미스 MySQL 데이터를 AWS RDS로 이전한다.
  • 범위 정의: 어떤 데이터, 시스템, 애플리케이션이 영향을 받는지 파악합니다.
  • 리스크 분석: 데이터 손실, 시스템 중단 등 잠재적 문제를 식별하고 대비책 마련.
  • 일정 수립: 각 단계별로 세부 일정을 계획합니다.
  • 팀 구성: 마이그레이션을 수행할 팀과 역할을 지정합니다.
    • 예: DBA, 개발자, 시스템 관리자, QA 담당자 등.

2. 데이터 분석(Assessment and Analysis)

  • 기존 데이터 검토: 마이그레이션할 데이터의 양, 구조, 품질, 중복 여부 등을 분석.
  • 데이터 관계 파악: 테이블 간 관계, 외래 키(Foreign Key), 제약 조건(Constraints) 등을 확인.
  • 소스 시스템 이해: 현재 시스템이 어떻게 데이터를 저장하고 처리하는지 분석.
  • 타겟 시스템 분석: 새로운 시스템에서 요구하는 데이터 구조와 형식을 파악.

3. 데이터 매핑(Data Mapping)

  • 소스와 타겟 간 매핑: 기존 데이터 구조를 새로운 데이터 구조에 어떻게 매핑할지 결정.
    • 예: 소스 DB의 user_info 테이블이 타겟 DB의 users 테이블로 매핑.
  • 데이터 변환 규칙 설정: 데이터 타입 변환, 값 매핑, NULL 처리 방안 등을 정의.
    • 예: VARCHAR(255)를 TEXT로 변환, status=1이면 active로 변환.

4. 데이터 변환(Transformation)

  • 스키마 변환: 새로운 시스템에 맞게 데이터베이스 스키마를 변경.
  • 데이터 클렌징: 중복 제거, NULL 값 처리, 형식 변환 등 데이터 품질 개선.
  • 데이터 마스킹(옵션): 민감한 데이터를 마스킹하여 보안 유지.
  • ETL 프로세스 수행: 추출(Extract) → 변환(Transform) → 적재(Load) 과정을 거침.
    • 도구 예시: AWS DMS, Apache NiFi, Talend 등.

5. 데이터 이전(Migration Execution)

  • 마이그레이션 실행: 실제 데이터를 소스에서 타겟으로 이동.
  • 테스트 마이그레이션 수행: 본격적인 이전 전에 샘플 데이터를 사용해 테스트.
  • 전체 마이그레이션 진행: 문제없이 테스트가 완료되면 전체 데이터 마이그레이션 진행.
  • 모니터링: 마이그레이션 도중 오류 발생 여부, 데이터 유실 여부 등을 모니터링.

6. 검증 및 테스트(Validation and Testing)

  • 데이터 무결성 검증: 데이터가 손실 없이, 변형 없이 이전되었는지 확인.
    • 예: 이전 후 데이터 개수, 테이블 구조, 외래 키 관계 검증.
  • 애플리케이션 테스트: 데이터베이스와 연동된 애플리케이션이 정상적으로 작동하는지 테스트.
  • 성능 테스트: 마이그레이션 후 시스템의 성능을 확인하고 최적화 필요 여부 파악.
  • 회귀 테스트: 마이그레이션으로 인해 기존 기능에 문제가 생기지 않았는지 테스트.

7. 운영 및 모니터링(Deployment and Monitoring)

  • 운영 환경 적용: 최종 데이터 이전 완료 후, 시스템을 운영 환경에 적용.
  • 모니터링: 마이그레이션 이후 시스템 안정성, 성능, 데이터 무결성 등을 지속적으로 모니터링.
  • 백업 수행: 데이터 손실 방지를 위해 운영 환경 데이터를 정기적으로 백업.
  • 문서화: 마이그레이션 과정, 문제 해결 방안, 향후 개선 사항 등을 문서로 정리.

추가 팁

  • 점진적 마이그레이션: 한 번에 전체 데이터를 이전하는 것이 아니라, 단계별로 나눠서 이전하는 방법을 고려하세요.
  • 롤백 계획: 마이그레이션 실패 시, 빠르게 원래 상태로 복구할 수 있는 롤백 방안을 반드시 마련하세요.