AWS DMS의 상위 수준 보기
데이터베이스 마이그레이션을 수행하기 위해 AWS DMS에서는 소스 데이터 저장소에 연결하고, 소스 데이터를 읽고, 대상 데이터 저장소에서 사용할 수 있도록 데이터 형식을 지정합니다. 그런 다음 데이터를 대상 데이터 저장소에 로드합니다. 이러한 처리 대다수는 메모리에서 나타나지만, 큰 트랜잭션에는 디스크로의 일부 버퍼링이 필요할 수 있습니다. 캐시된 트랜잭션과 로그 파일도 디스크에 기록됩니다.
상위 수준에서 AWS DMS를 사용할 때에는 다음 작업을 수행합니다.
-
네트워크 환경에서 마이그레이션에 적합한 데이터베이스를 검색합니다.
-
소스 데이터베이스 스키마와 대부분의 데이터베이스 코드 객체를 대상 데이터베이스와 호환되는 형식으로 자동 변환합니다.
-
복제 서버를 생성합니다.
데이터 저장소에 대한 연결 정보가 있는 소스 및 대상 엔드포인트를 생성합니다.
-
하나 이상의 마이그레이션 작업을 생성하여 원본과 대상 데이터 저장소 간 데이터를 마이그레이션합니다.
작업은 세 가지 주요 단계로 구성되어 있습니다.
기존 데이터 마이그레이션(전체 로드)
캐시된 변경 사항 적용
지속적 복제(변경 데이터 캡처)
소스의 기존 데이터가 대상으로 이전되는 전체 로드 마이그레이션 도중 AWS DMS는 소스 데이터 저장소에 있는 테이블의 데이터를 대상 데이터 저장소에 있는 테이블로 로드합니다. 전체 로드가 진행되는 동안 로드 중인 테이블에 적용된 변경 사항은 복제 서버에서 캐시되고, 이것은 캐시된 변경 사항입니다. 이 테이블의 전체 로드가 시작될 때까지 AWS DMS에서 지정된 테이블에 대한 변경 내용을 캡처하지 않는다는 점을 잘 알고 있어야 합니다. 즉, 변경 캡처가 시작되는 시점은 각 테이블별로 다릅니다.
지정된 테이블의 전체 로드가 완료되면, AWS DMS는 즉시 이 테이블의 캐시된 변경 사항을 적용하기 시작합니다. 테이블이 로드되고 캐시된 변경 사항이 적용되면 AWS DMS는 지속적 복제 단계를 위한 트랜잭션으로 변경 사항을 수집하기 시작합니다. 트랜잭션에 테이블이 아직 완전히 로드되지 않은 경우 변경 사항은 복제 인스턴스에 로컬로 저장됩니다. AWS DMS가 모든 캐시된 변경 사항을 모든 테이블에 적용한 후 테이블은 트랜잭션에서 일관성이 있습니다. 이 시점에서 AWS DMS는 지속적 복제 단계로 이동하고 트랜잭션으로써 변경 사항을 적용합니다.
지속적 복제 단계가 시작되면, 트랜잭션의 백로그는 일반적으로 원본과 대상 데이터베이스 사이에서 일부 지연 시간을 유발합니다. 결국 마이그레이션은 이 트랜잭션 백로그를 통해 진행된 후 일정한 상태에 도달합니다. 이 시점에서 애플리케이션을 종료하고, 남은 트랙잭션을 대상에 적용하도록 허용하고, 애플리케이션을 불러오면 이제 대상 데이터베이스를 가리킵니다.
AWS DMS는 데이터 마이그레이션을 수행하는 데 필요한 대상 스키마 객체를 생성합니다. AWS DMS를 사용하면 미니멀리스트 접근 방식을 취하여 데이터를 효율적으로 마이그레이션하는 데 필요한 바로 그 객체만 생성할 수 있습니다. 이 접근 방식에서는 AWS DMS가 테이블과 프라이머리 키를 생성하고 경우에 따라 고유 인덱스도 생성하지만, 소스의 데이터를 효율적으로 마이그레이션하는 데 필요하지 않은 다른 객체를 생성하지 않습니다.
또는 AWS DMS 내에서 DMS Schema Conversion을 사용하여 소스 데이터베이스 스키마와 대부분의 데이터베이스 코드 객체를 대상 데이터베이스와 호환되는 형식으로 자동 변환할 수 있습니다. 이 변환에는 테이블, 뷰, 저장 프로시저, 함수, 데이터 형식, 동의어 등이 포함됩니다. DMS Schema Conversion에서 자동으로 변환할 수 없는 모든 객체는 명확하게 표시됩니다. 마이그레이션을 완료하기 위해 이러한 객체를 수동으로 변환할 수 있습니다.