메인 콘텐츠로 건너뛰기

데이터베이스 마이그레이션이란 무엇인가요?

데이터베이스 마이그레이션이란 무엇인가요?

데이터베이스 마이그레이션이란 데이터베이스를 한 환경에서 다른 환경으로 이동하는 프로세스를 말합니다. 기업에서는 애플리케이션을 현대화하려고 할 때, 관련 데이터베이스를 온프레미스 서버에서 클라우드로 마이그레이션합니다. 

데이터베이스를 클라우드로 마이그레이션함으로써 기업은 서비스 안정성, 확장성, 성능을 향상시킬 수 있습니다. 또한 클라우드 데이터 마이그레이션을 통해 온프레미스 데이터 센터를 유지 관리하는 데 드는 인프라 비용을 절감할 수 있습니다.

데이터 볼륨을 클라우드로 이동하는 것은 데이터 무결성, 규정 준수 및 비즈니스 연속성을 보장하는 데 중요합니다. 다음 사항을 고려합니다.

예산

데이터 마이그레이션에는 데이터 감사, 매핑, 테스트 및 마이그레이션 후 모니터링과 같은 작업이 포함됩니다. 데이터베이스에 액세스하는 응용 프로그램을 수정해야 마이그레이션된 데이터베이스에서 데이터를 읽을 수 있는 경우도 있습니다. 기업은 이러한 작업에 필요한 시간, 비용 및 리소스에 대한 예산을 책정해야 합니다. 

가동 중지 시간

데이터베이스를 마이그레이션할 때 소스 대상과 대상 간에 전환할 때 가동 중지 시간을 계획하십시오. 가동 중지 시간을 없애는 것은 불가능하지만 마이그레이션을 계획하고 적절한 데이터베이스 마이그레이션 도구를 사용하여 비즈니스 중단을 줄일 수 있습니다. 예를 들어, 전환하기 훨씬 전에 클라우드 데이터베이스를 테스트하여 애플리케이션 안정성과 데이터 정확성을 보장할 수 있습니다. 

소스 및 타겟 시스템 

동종 전송은 유사한 데이터베이스 엔진을 사용하는 소스 시스템에서 대상 시스템으로 데이터를 이동합니다. 반대로 다른 대상 플랫폼으로 데이터를 이동하는 것을 이기종 전송이라고 합니다. 예를 들어, MySQL 데이터베이스를 MySQL 데이터베이스로 마이그레이션하는 것은 동질적인 반면, Postgres SQL을 Amazon Aurora로 전송하는 것은 이기종입니다. 동종 전송은 추가 조작 없이 데이터베이스를 대상 대상으로 이동할 수 있기 때문에 더 간단합니다. 그러나 이기종 마이그레이션이 필요한 경우 데이터베이스 설계자는 데이터를 전송하기 전에 데이터를 정리하고 변환해야 합니다. 

마이그레이션 유형 

데이터베이스 마이그레이션은 다음과 같은 유형일 수 있습니다.

  • 부분 마이그레이션은 전체 데이터세트의 일부만 원본 데이터베이스에서 클라우드로 이동합니다. 
  • 전체 데이터베이스 마이그레이션은 모든 데이터를 원본에서 대상 플랫폼으로 전송합니다.

전송 후 소스 데이터베이스는 애플리케이션과의 연결이 끊깁니다. 또 다른 유형의 마이그레이션은 지속적인 마이그레이션 또는 데이터 복제입니다. 소스의 데이터를 대상 데이터베이스로 무기한 복제합니다. 

데이터베이스의 유형에는 어떤 것들이 있나요?

마이그레이션하기 전에 사용 사례에 가장 적합한 마이그레이션 유형을 고려하세요.

오프라인 마이그레이션

오프라인 마이그레이션은 심각한 가동 중지 시간을 견딜 수 있는 중요하지 않은 데이터베이스를 이동하는 데 적합합니다. 오프라인 마이그레이션을 수행할 때는 특정 기간 동안 응용 프로그램이 데이터베이스에 쓰는 것을 중지해야 합니다. 데이터베이스 설계자는 시간 격차를 통해 데이터베이스를 클라우드로 옮기고 애플리케이션을 수정할 수 있습니다. 일반적으로 기업은 클라우드 마이그레이션 도구가 지원하지 않는 레거시 시스템을 현대화할 때 오프라인 마이그레이션을 선택합니다. 마찬가지로 오프라인 데이터베이스 마이그레이션은 시기적절한 데이터 업데이트가 중요하지 않은 테스트 및 개발 프로젝트에 적합합니다.
온프레미스 Oracle 데이터베이스를 Amazon RDS for Oracle로 마이그레이션하는 예를 들어 보겠습니다. 서로 다른 인프라에서 호스팅되고 있음에도 불구하고 두 데이터베이스 모두 비슷한 엔진을 공유합니다. 따라서 아래에서 설명하는 것처럼 데이터 마이그레이션 프로세스는 간단합니다. 

1단계 — 네트워크 연결 설정

보안 네트워크를 사용하여 온 프레미스 데이터베이스를 AWS 클라우드에 연결합니다. 가상 사설 네트워크를 설정하거나 AWS Direct Connect를 사용하여 온프레미스와 클라우드 간 연결을 활성화할 수 있습니다. AWS Direct Connect를 사용하면 퍼블릭 인터넷을 거치지 않고 데이터베이스를 직접 연결할 수 있습니다. 

2단계 — 애플리케이션 쓰기 중지

대상 데이터베이스의 예기치 않은 변경을 방지하려면 응용 프로그램이 원본 데이터베이스에 쓰는 것을 중지하십시오. 

3단계 — 온프레미스에서 클라우드로 데이터 전송

다음으로 클라우드 서버에 기본 데이터 전송 도구를 배포합니다. 비용을 줄이려면 Amazon EC2에서 도구를 설정하는 것이 좋습니다. 이렇게 하면 기본 데이터베이스 도구를 실행하는 데 사용한 리소스에 대해서만 비용을 지불하면 됩니다. 그런 다음 도구를 사용하여 소스 데이터베이스에서 데이터를 추출하고 클라우드 데이터베이스에 복원합니다. 

4단계 - 데이터베이스 전환 수행

전체 데이터베이스를 클라우드로 전송한 후 데이터 일관성을 보장하기 위해 검증합니다. 그런 다음 애플리케이션의 모든 데이터 쿼리를 새 데이터베이스로 리디렉션합니다.

프로덕션 워크로드 마이그레이션

프로덕션 워크로드를 마이그레이션하려면 중요하지 않은 데이터베이스를 이동하는 것과는 다른 접근 방식이 필요합니다. 프로덕션 워크로드와 해당 데이터 소스를 오프라인으로 전환할 수 없습니다. 사용자는 데이터 전송이 진행 중인 경우에도 평소와 같이 서비스에 액세스할 수 있어야 합니다. 따라서 애플리케이션을 종료하지 않고도 마이그레이션을 가능하게 하려면 충분한 계획과 조정이 필요합니다.

아키텍트는 자체 개발 스크립트 또는 타사 데이터 복제 도구를 사용하여 프로덕션 워크로드에 맞게 데이터베이스를 마이그레이션합니다. 스크립트나 도구는 온프레미스 데이터베이스의 데이터를 클라우드 데이터베이스로 복제합니다. 데이터 복제가 이루어지는 동안에도 온프레미스 데이터베이스는 계속 작동합니다. 

소프트웨어 개발자가 새롭고 지속적인 데이터 요구 사항을 수용하기 위해 스크립트를 수정할 때 문제가 발생합니다. 또한 성공적인 데이터베이스 마이그레이션을 위해 사용하는 타사 데이터베이스 도구를 업데이트해야 할 수도 있습니다. 

온라인 데이터베이스 복제

데이터베이스 복제에는 새 데이터베이스 엔진에서 데이터베이스 스키마를 설정하는 스크립트를 작성한 다음 원본에서 대상 데이터베이스로 데이터를 전송하는 작업이 포함됩니다. 스키마에는 관련 데이터베이스에 데이터를 저장하고 정렬하기 위한 정의가 포함되어 있습니다. 엔지니어는 타사 데이터 복제 도구를 사용하여 여러 서버에서 여러 데이터 사본을 만들고 유지할 수 있습니다. 두 방법 모두 상당한 수동 개입이 필요하고 실수가 발생하기 쉬우며 비효율적일 수 있기 때문에 똑같이 어려운 작업입니다.
데이터베이스를 온라인으로 복제하는 더 효율적이고 안전한 방법을 원한다면 AWS Database Migration Service (DMS)를 고려해 보십시오.  다양한 데이터베이스 엔진에서 데이터베이스 마이그레이션을 자동화하는 클라우드 서비스입니다. 데이터 전송을 수동으로 스크립팅하는 대신 DMS에서 원본 데이터베이스의 스키마를 자동으로 스캔하고 대상에 대한 새 스키마를 생성하도록 할 수 있습니다. 이를 통해 개발자는 번거로운 데이터베이스 관리 대신 애플리케이션 혁신에 집중할 수 있습니다.
아래에서는 온프레미스 데이터베이스를 클라우드로 복제하는 방법을 공유합니다. 

1단계 — 기존 데이터 인벤토리

현재 온프레미스에 호스팅된 데이터베이스를 분석합니다. 프로세스를 가속화하려면 AWS DMS 플릿 어드바이저를 사용하십시오. 이 도구는 기존 데이터베이스 및 분석 서버 플릿을 분석하고 잠재적 마이그레이션 경로를 식별합니다. 또한 성능, 스키마, 사용 패턴 및 기타 메트릭을 컴파일합니다. 

2단계 — 데이터베이스를 클라우드로 이동

AWS DMS를 사용하여 전체 데이터베이스를 온프레미스 데이터 센터에서 클라우드로 마이그레이션합니다. 또한 DMS의 변경 데이터 캡처 (CDC) 모드를 켜서 거의 실시간으로 복제할 수 있습니다. DMS는 CDC를 통해 원본 데이터베이스에 발생한 데이터 변경 사항을 캡처하고 모든 복제된 데이터베이스에 변경 사항을 적용합니다. 

데이터베이스 리팩터링

경우에 따라 데이터베이스 마이그레이션 전략에는 리팩터링 또는 이기종 전송이 포함됩니다. 기업은 라이선스 비용 절감, 클라우드 기능 액세스, 데이터 품질 개선 등 여러 가지 이유로 애플리케이션을 현대화할 때 데이터베이스를 리팩터링합니다.  이기종 마이그레이션에서는 원본 데이터베이스에 저장된 정보를 그대로 이동할 수 없습니다. 대상 데이터베이스가 지원하는 새 스키마에 따라 데이터를 정리, 변환 및 구조화해야 합니다. 

다음은 데이터베이스를 리팩터링하는 데 도움이 되는 단계입니다. 

1단계 — 데이터베이스 감사

온프레미스 데이터베이스를 분석하고 데이터를 저장하는 데 사용되는 스키마를 식별합니다. 현재 데이터를 새 데이터베이스에 저장하는 방법을 계획합니다. 경우에 따라 데이터베이스 리팩터링에는 여러 데이터베이스를 하나로 통합하거나 단일 데이터베이스의 데이터를 여러 데이터베이스로 배포하는 작업이 포함됩니다. 

2단계 — 데이터베이스 스키마 변환

원본 데이터베이스에서 컴파일한 스키마를 대상 데이터베이스에 필요한 형식으로 변환합니다. AWS DMS 스키마 변환을 사용하여 프로세스를 간소화할 수 있습니다. 

참고: 데이터베이스 엔지니어는 특히 매우 복잡한 데이터세트의 경우 새 스키마를 수동으로 만들거나 수정해야 할 수 있습니다. 

3단계 — 데이터베이스 마이그레이션 시작

AWS DMS를 사용하여 온프레미스에서 클라우드 데이터베이스로 데이터를 마이그레이션합니다. 마이그레이션 중에 클라우드 데이터베이스가 모든 변경 사항을 캡처하도록 하려면 CDC 모드를 켜십시오. 모든 데이터를 전송한 후 애플리케이션 서비스를 클라우드 데이터베이스로 리디렉션합니다. 

AWS는 데이터베이스 마이그레이션 요구 사항을 어떻게 지원할 수 있나요?

기업은 데이터베이스를 클라우드로 마이그레이션하여 인프라 비용을 절감하고, 서비스 신뢰성을 개선하며, 다른 클라우드 기능을 활용합니다. 데이터베이스 마이그레이션은 전체 데이터베이스를 있는 그대로 이전하는 것만큼 단순할 수도 있고, 새로운 데이터 요구 사항을 충족하기 위해 전체 스키마를 재구성하는 것만큼 단순할 수도 있습니다. 마이그레이션이 복잡한지 여부와 관계없이 데이터가 안전하고 정확하게 제시간에 이동할 수 있도록 하는 것은 필수입니다. 실시간에 가까운 전환, 데이터베이스 분석, 자동 데이터 전송 등을 지원하는 관리형 도구에 대한 AWS Database Migration Service를 살펴보세요.