복제 인스턴스에 가장 적합한 크기 선택 - AWS Database Migration Service

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

복제 인스턴스에 가장 적합한 크기 선택

적절한 복제 인스턴스를 선택하는 것은 사용 사례의 여러 요소에 따라 달라집니다. 복제 인스턴스 리소스가 사용되는 방식을 이해하는 데 도움이 되도록 다음 설명을 참조하세요. 여기서는 전체 로드 + CDC 작업의 일반적인 시나리오를 다룹니다.

전체 로드 작업 중에는 테이블을 개별적으로 AWS DMS 로드합니다. 기본적으로 한 번에 8개의 테이블이 로드됩니다. AWS DMS 전체 로드 작업 중에 소스에 대한 진행 중인 변경 사항을 캡처하여 나중에 대상 엔드포인트에 변경 내용을 적용할 수 있습니다. 변경 사항은 메모리에 캐시되며, 사용 가능한 메모리가 모두 사용되면 변경 사항이 디스크에 캐시됩니다. 테이블에 대한 전체 로드 작업이 완료되면 캐시된 변경 내용을 대상 테이블에 AWS DMS 즉시 적용합니다.

테이블에 대한 모든 캐시 변경 사항이 적용된 후에는 대상 엔드포인트는 트랜잭션 일치 상태가 됩니다. 이때 타겟은 마지막으로 캐시된 변경 사항과 관련하여 소스 엔드포인트와 동기화됩니다. AWS DMS 그런 다음 소스와 타겟 간의 지속적인 복제를 시작합니다. 이를 위해 는 소스 트랜잭션 로그에서 변경 작업을 AWS DMS 가져와 트랜잭션적으로 일관된 방식으로 대상에 적용합니다. (이 프로세스에서는 일괄 최적화 적용이 선택되지 않은 것으로 가정합니다.) AWS DMS 가능한 경우 복제 인스턴스의 메모리를 통해 진행 중인 변경 사항을 스트리밍합니다. 그렇지 않으면 대상에 적용할 수 있을 때까지 복제 인스턴스의 AWS DMS 디스크에 변경 내용을 기록합니다.

복제 인스턴스의 변경 처리 방식과 해당 프로세스에서 메모리가 사용되는 방식을 어느 정도 제어할 수 있습니다. 변경 처리를 조정하는 방법에 대한 자세한 내용은 변경 처리 튜닝 설정 섹션을 참조하세요.

고려해야 할 요소

메모리 및 디스크 공간은 사용 사례에 적합한 복제 인스턴스를 선택할 때 가장 중요한 요소입니다. 이하에서는 복제 인스턴스를 선택하기 위해 분석해야 할 사용 사례 특성에 대한 설명합니다.

  • 데이터베이스 및 테이블 크기

    데이터 볼륨은 전체 로드 성능을 최적화하기 위한 태스크 구성을 결정하는 데 도움이 됩니다. 예를 들어 1TB 스키마 2개에 대해 테이블을 500GB 태스크 4개로 파티션하여 병렬로 실행할 수 있습니다. 가능한 병렬 처리는 복제 인스턴스에서 사용할 수 있는 CPU 리소스에 따라 달라집니다. 따라서 전체 로드 성능을 최적화하려면 데이터베이스와 테이블의 크기를 이해하는 것이 좋습니다. 이는 수행할 수 있는 태스크의 수를 결정하는 데 도움이 됩니다.

  • 대형 객체

    마이그레이션 범위에 있는 데이터 형식은 성능에 영향을 줄 수 있습니다. 특히 대형 객체(LOB)는 성능과 메모리 소비에 영향을 미칩니다. LOB 값을 마이그레이션하려면 2단계 프로세스를 AWS DMS 수행합니다. 먼저 LOB 값 없이 대상에 행을 AWS DMS 삽입합니다. 그런 다음 LOB 값으로 행을 AWS DMS 업데이트합니다. 이는 메모리에 영향을 미치므로 소스에서 LOB 열을 식별하고 크기를 분석하는 것이 중요합니다.

  • 로드 빈도 및 트랜잭션 크기

    로드 빈도와 초당 트랜잭션 수(TPS)는 메모리 사용량에 영향을 줍니다. TPS 또는 데이터 조작 언어(DML) 활동이 많으면 메모리 사용량이 많아집니다. DMS는 변경 사항이 대상에 적용될 때까지 변경 사항을 캐시하기 때문입니다. CDC 중에 이로 인해 스와핑(메모리 오버플로로 인한 물리적 디스크에 쓰기)이 발생하여 지연 시간이 발생합니다.

  • 테이블 키 및 참조 무결성

    테이블의 키에 대한 정보에 따라 데이터 마이그레이션에 사용하는 CDC 모드(배치 적용 또는 트랜잭션 적용)가 결정됩니다. 일반적으로 트랜잭션 적용은 배치 적용보다 느립니다. 장기 실행 트랜잭션의 경우 마이그레이션해야 할 변경 사항이 많을 수 있습니다. 트랜잭션 적용을 사용하는 경우 일괄 적용에 비해 변경 내용을 저장하는 데 더 많은 메모리가 AWS DMS 필요할 수 있습니다. 프라이머리 키가 없는 테이블을 마이그레이션하는 경우 배치 적용이 실패하고 DMS 작업이 트랜잭션 적용 모드로 전환됩니다. CDC 중에 테이블 간 참조 무결성이 활성화되면 기본적으로 트랜잭션 적용을 AWS DMS 사용합니다. 배치 적용과 트랜잭션 적용의 비교에 대한 자세한 내용은 DMS 배치 적용 기능을 사용하여 CDC 복제 성능을 개선하려면 어떻게 해야 합니까?를 참조하세요.

이러한 지표를 사용하여 복제 인스턴스를 컴퓨팅 최적화해야 하는지 아니면 메모리 최적화해야 하는지 결정하세요.

일반적인 문제

마이그레이션 중에 다음과 같이 복제 인스턴스에서 리소스 경합을 유발하는 일반적인 문제가 발생할 수 있습니다. 복제 인스턴스 지표에 대한 자세한 내용은 복제 인스턴스 지표 섹션을 참조하세요.

  • 복제 인스턴스의 메모리가 부족해지면 데이터가 디스크에 쓰여집니다. 디스크에서 읽을 때 지연 시간이 발생할 수 있는데, 충분한 메모리로 복제 인스턴스 크기를 조정하면 지연 시간을 피할 수 있습니다.

  • 복제 인스턴스에 할당된 디스크 크기는 필요한 것보다 작을 수 있습니다. 디스크 크기는 메모리에서 데이터가 넘칠 때 사용되며 태스크 로그를 저장하는 데도 사용됩니다. 최대 IOPS도 이에 따라 달라집니다.

  • 여러 태스크를 실행하거나 병렬성이 높은 태스크를 실행하면 복제 인스턴스의 CPU 사용량에 영향을 줍니다. 이로 인해 태스크 처리 속도가 느려지고 지연 시간이 길어집니다.

모범 사례

복제 인스턴스의 크기를 조정할 때는 다음과 같이 가장 일반적인 2가지 모범 사례를 고려해야 합니다. 자세한 정보는 AWS Database Migration Service의 모범 사례을 참조하세요.

  1. 워크로드의 규모를 파악하고 컴퓨팅 집약적인지 메모리 집약적인지 판단하세요. 이를 기반으로 복제 인스턴스의 클래스 및 크기를 결정할 수 있습니다.

    • AWS DMS 메모리에서 LOB를 처리합니다. 이 작업에는 상당한 양의 메모리가 필요합니다.

    • 태스크 수와 스레드 수는 CPU 사용량에 영향을 줍니다. 전체 로드 작업 중에는 MaxFullLoadSubTasks를 8개 이상 사용하지 마세요.

  2. 전체 로드 중에 워크로드가 많으면 복제 인스턴스에 할당된 디스크 공간을 늘리세요. 이렇게 하면 복제 인스턴스가 할당된 최대 IOPS를 사용할 수 있습니다.

위 가이드라인에서 가능한 시나리오를 모두 다루는 것은 아닙니다. 복제 인스턴스의 크기를 결정할 때 특정 사용 사례의 구체적인 내용을 고려하는 것이 중요합니다.

이전 테스트에서 CPU와 메모리가 워크로드에 따라 달라지는 것으로 나타났습니다. 특히 LOB는 메모리에 영향을 미치고 태스크 수 또는 병렬 처리는 CPU에 영향을 미칩니다. 마이그레이션을 실행한 후에는 복제 인스턴스의 CPU, 여유 메모리, 여유 스토리지, IOPS를 모니터링하세요. 수집한 데이터를 기반으로 필요에 따라 복제 인스턴스의 크기를 늘리거나 줄일 수 있습니다.