컷 오버 - AWS 규범적 지침

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

컷 오버

데이터베이스 전환 전략은 일반적으로 애플리케이션의 다운타임 요구 사항과 밀접하게 연관되어 있습니다. 데이터베이스 전환에 사용할 수 있는 전략에는 오프라인 마이그레이션, 플래시-컷 마이그레이션, 액티브/액티브 데이터베이스 구성, 증분 마이그레이션 등이 있습니다. 다음 단원에서 각각에 대해 살펴 봅니다.

오프라인 마이그레이션

쓰기 작업 중에 애플리케이션을 장기간 오프라인 상태로 전환할 수 있는 경우 AWS DMS 전체 로드 작업 설정이나 오프라인 마이그레이션 옵션 중 하나를 데이터 마이그레이션에 사용할 수 있습니다. 마이그레이션이 진행되는 동안 읽기 트래픽은 계속될 수 있지만 쓰기 트래픽은 중지해야 합니다. 원본 데이터베이스에서 모든 데이터를 복사해야 하므로 I/O 및 CPU와 같은 원본 데이터베이스 리소스가 사용됩니다.

크게 보면 오프라인 마이그레이션에는 다음과 같은 단계가 포함됩니다:

  1. 스키마 변환을 완료하세요.

  2. 쓰기 트래픽의 다운타임을 시작합니다.

  3. 오프라인 마이그레이션 옵션 중 하나를 사용하여 데이터를 마이그레이션합니다.

  4. 데이터를 확인합니다.

  5. 애플리케이션이 새 데이터베이스를 가리키도록 합니다.

  6. 애플리케이션 다운타임을 종료하세요.

플래시컷 마이그레이션

플래시컷 마이그레이션의 주요 목표는 다운타임을 최소화하는 것입니다. 이 전략은 원본 데이터베이스에서 대상 데이터베이스로의 CDC (연속 데이터 복제) 를 사용합니다. 데이터가 마이그레이션되는 동안 모든 읽기/쓰기 트래픽은 현재 데이터베이스에서 계속됩니다. 원본 데이터베이스에서 모든 데이터를 복사해야 하므로 I/O 및 CPU와 같은 원본 서버 리소스가 사용됩니다. 이 데이터 마이그레이션 활동이 애플리케이션 성능 SLA에 영향을 미치지 않는지 테스트해야 합니다.

상위 수준에서 플래시 컷 마이그레이션에는 다음 단계가 포함됩니다.

  1. 스키마 변환을 완료하세요.

  2. 연속 데이터 복제 모드에서 AWS DMS을(를) 설정합니다.

  3. 소스 데이터베이스와 대상 데이터베이스가 동기화되면 데이터를 확인합니다.

  4. 애플리케이션 다운타임을 시작합니다.

  5. 새 데이터베이스를 가리키는 새 버전의 애플리케이션을 출시합니다.

  6. 애플리케이션 다운타임을 종료하세요.

액티브/액티브 데이터베이스 구성

액티브/액티브 데이터베이스 구성에는 쓰기 트래픽에 두 데이터베이스를 모두 사용하는 동안 소스 및 대상 데이터베이스를 동기화하는 메커니즘을 설정하는 작업이 포함됩니다. 이 전략은 오프라인 또는 플래시컷 마이그레이션보다 더 많은 작업이 필요하지만 마이그레이션 중에도 더 많은 유연성을 제공합니다. 예를 들어 마이그레이션 중에 다운타임을 최소화하는 것 외에도 한 번에 전환을 수행하는 대신 작고 통제된 일괄 처리를 통해 프로덕션 트래픽을 새 데이터베이스로 이동할 수 있습니다. 이중 쓰기 작업을 수행하여 두 데이터베이스를 모두 변경하거나 HVR과 같은 양방향 복제 도구를 사용하여 데이터베이스를 동기화된 상태로 유지할 수 있습니다. 이 전략은 설정 및 유지 관리 측면에서 더 복잡하므로 데이터 일관성 문제를 방지하려면 더 많은 테스트가 필요합니다.

높은 수준의 액티브/액티브 데이터베이스 구성에는 다음 단계가 포함됩니다.

  1. 스키마 변환을 완료하세요.

  2. 원본 데이터베이스의 기존 데이터를 대상 데이터베이스로 복사한 다음 양방향 복제 도구 또는 애플리케이션의 이중 쓰기를 사용하여 두 데이터베이스를 동기화된 상태로 유지합니다.

  3. 소스 데이터베이스와 대상 데이터베이스가 동기화되면 데이터를 확인합니다.

  4. 트래픽의 일부를 새 데이터베이스로 이동하기 시작합니다.

  5. 모든 데이터베이스 트래픽이 새 데이터베이스로 이동될 때까지 트래픽을 계속 이동시키세요.

증분 마이그레이션

증분 마이그레이션에서는 전체 전환을 한 번에 수행하는 대신 더 작은 부분으로 나누어 애플리케이션을 마이그레이션합니다. 이 전환 전략은 현재 애플리케이션 아키텍처 또는 애플리케이션에서 수행하려는 리팩터링에 따라 다양한 변형이 있을 수 있습니다.

디자인 패턴을 사용하여 새로운 독립 마이크로서비스를 추가하여 기존의 모놀리식 레거시 애플리케이션의 일부를 대체할 수 있습니다. 이러한 독립 마이크로서비스에는 애플리케이션의 다른 부분에서 공유하거나 액세스할 수 없는 자체 테이블이 있습니다. 다른 전환 전략을 사용하여 이러한 마이크로서비스를 하나씩 새 데이터베이스로 마이그레이션합니다. 마이그레이션된 마이크로서비스는 새 데이터베이스를 읽기/쓰기 트래픽에 사용하기 시작하고 애플리케이션의 다른 모든 부분은 기존 데이터베이스를 계속 사용합니다. 모든 마이크로서비스가 마이그레이션되면 레거시 애플리케이션을 사용 중지합니다. 이 전략은 마이그레이션을 더 작고 관리하기 쉬운 부분으로 나누므로 한 번의 대규모 마이그레이션과 관련된 위험을 줄일 수 있습니다.