Amazon OpenSearch Service 클러스터를 AWS Database Migration Service의 대상으로 사용 - AWS Database Migration Service

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

Amazon OpenSearch Service 클러스터를 AWS Database Migration Service의 대상으로 사용

Amazon OpenSearch Service(OpenSearch Service)에 데이터를 마이그레이션하는 데 AWS DMS를 사용할 수 있습니다. OpenSearch Service는 OpenSearch Service 클러스터를 손쉽게 배포, 운영 및 확장할 수 있도록 해주는 관리형 서비스입니다.

OpenSearch Service에서는 인덱스와 문서로 작업할 수 있습니다. 인덱스는 문서 컬렉션이며 문서는 스칼라 값, 배열 및 기타 객체를 포함하는 JSON 객체입니다. OpenSearch은 인덱스의 데이터를 쿼리하고 해당 문서를 검색할 수 있도록 JSON 기반 쿼리 언어를 제공합니다.

AWS DMS가 OpenSearch Service의 대상 엔드포인트에 대한 인덱스를 생성할 때는 소스 엔드포인트의 각 테이블에 대해 1개의 인덱스를 생성합니다. OpenSearch Service 인덱스를 생성하기 위한 비용은 다음과 같은 다양한 요인에 따라 달라집니다. 그러한 요인으로는 생성되는 인덱스 수, 이러한 인덱스 내 데이터의 총량, OpenSearch이 문서마다 저장하는 소량의 메타데이터 등이 있습니다.

마이그레이션 범위에 적합한 컴퓨팅 및 스토리지 리소스를 갖춘 OpenSearch Service 클러스터를 구성합니다. 사용할 복제 작업에 따라 다음 요소를 고려하는 것이 좋습니다.

  • 전체 데이터 로드의 경우, 마이그레이션할 데이터의 총량과 전송 속도를 고려합니다.

  • 지속적인 변경 사항을 복제하는 경우, 업데이트 빈도와 종단 간 지연 시간 요건을 고려합니다.

또한 문서 개수에 주의하며 OpenSearch 클러스터의 인덱스 설정을 구성합니다.

멀티스레드 전체 로드 작업 설정

전송 속도를 높이기 위해 AWS DMS는 OpenSearch Service 대상 클러스터에 대한 멀티스레드 전체 로드를 지원합니다. AWS DMS는 다음을 포함하는 작업 설정으로 이 멀티스레딩을 지원합니다.

  • MaxFullLoadSubTasks – 병렬로 로드할 최대 소스 테이블 수를 표시하려면 이 옵션을 사용합니다. DMS는 전용 하위 작업을 사용하여 각 테이블을 해당 OpenSearch Service 대상 인덱스에 로드합니다. 기본값은 8이며, 최대값은 49입니다.

  • ParallelLoadThreads – AWS DMS에서 각 테이블을 OpenSearch Service 대상 인덱스에 로드하는 데 사용하는 스레드 수를 지정하려면 이 옵션을 사용합니다. OpenSearch Service 대상의 최대값은 32입니다. 이 최대 한도를 증가시키도록 요청할 수 있습니다.

    참고

    ParallelLoadThreads를 기본값(0)에서 변경하지 않으면 AWS DMS는 한 번에 하나의 레코드를 전송합니다. 이 접근 방식은 OpenSearch Service 클러스터에서 고유의 로드를 생성합니다. 이 옵션을 1 이상으로 설정해야 합니다.

  • ParallelLoadBufferSize – 병렬 로드 스레드에서 데이터를 OpenSearch Service 대상에 로드하기 위해 사용하는 버퍼에 저장할 최대 레코드 수를 지정합니다. 기본값은 50입니다. 최대값은 1,000입니다. 이 설정은 ParallelLoadThreads와 함께 사용하십시오. ParallelLoadBufferSize는 둘 이상의 스레드가 있는 경우에만 유효합니다.

DMS가 멀티스레드를 사용하여 OpenSearch Service 클러스터를 로드하는 방법에 관한 자세한 내용은 AWS 블로그 게시물 AWS Database Migration Service 마이그레이션을 위한 Amazon OpenSearch Service 확장을 참조하십시오.

멀티스레드 CDC 로드 작업 설정

작업 설정을 사용하여 PutRecords API 직접 호출의 동작을 수정하여 OpenSearch Service 대상 클러스터의 변경 데이터 캡처(CDC) 성능을 개선할 수 있습니다. 이렇게 하려면 ParallelApply* 작업 설정을 사용하여 동시 스레드 수, 스레드당 대기열 및 버퍼에 저장할 레코드 수를 지정해야 합니다. 예를 들어 CDC 로드를 수행하고 32개의 스레드를 병렬로 적용한다고 가정하겠습니다. 또한 버퍼당 50개 레코드가 저장된 스레드당 64개 대기열에 액세스하려고 합니다.

참고

CDC 중에 Amazon OpenSearch Service 대상 엔드포인트에서 ParallelApply* 작업 설정의 사용에 대한 지원은 AWS DMS 버전 3.4.0 이상에서 제공됩니다.

CDC 성능을 승격하기 위해 AWS DMS에서는 다음 작업 설정을 지원합니다.

  • ParallelApplyThreads – 데이터 레코드를 OpenSearch Service 대상 엔드포인트로 푸시하기 위해 CDC 로드 중에 AWS DMS가 사용하는 동시 스레드 수를 지정합니다. 기본값은 0이고 최대값은 32입니다.

  • ParallelApplyBufferSize – CDC 로드 중에 OpenSearch Service 대상 엔드포인트로 푸시할 동시 스레드에 대한 각 버퍼 대기열에 저장할 최대 레코드 수를 지정합니다. 기본값은 100이고 최대값은 1,000입니다. ParallelApplyThreads가 둘 이상의 스레드를 지정할 때 이 옵션을 사용합니다.

  • ParallelApplyQueuesPerThread – 각 스레드가 대기열에서 데이터 레코드를 가져오고 CDC 중에 OpenSearch Service 엔드포인트에 대한 배치 로드를 생성하기 위한 대기열 수를 지정합니다.

ParallelApply* 작업 설정을 사용할 때 partition-key-type 기본값은 테이블의 schema-name.table-name가 아니라 primary-key입니다.

관계형 데이터베이스 테이블에서 OpenSearch Service 인덱스로 마이그레이션

AWS DMS에서는 OpenSearch Service의 스칼라 데이터 형식으로 데이터 마이그레이션을 지원합니다. Oracle 또는 MySQL 같은 관계형 데이터베이스에서 OpenSearch Service로 마이그레이션할 때 필요하다면 이 데이터를 저장하는 방법을 다시 구성할 수 있습니다.

AWS DMS는 다음 OpenSearch Service 스칼라 데이터 형식을 지원합니다.

  • 부울

  • 날짜

  • Float

  • 정수

  • 문자열

AWS DMS는 날짜 형식의 데이터를 문자열 형식으로 변환합니다. 사용자 지정 매핑을 지정하여 이러한 날짜를 해석할 수 있습니다.

AWS DMS는 LOB 데이터 형식의 마이그레이션을 지원하지 않습니다.

Amazon OpenSearch Service 서비스를 AWS Database Migration Service의 대상으로 사용하기 위한 사전 요구 사항

OpenSearch Service 데이터베이스를 AWS DMS의 대상으로 사용하기에 앞서 AWS Identity and Access Management(IAM) 역할을 생성해야 합니다. 이 역할은 AWS DMS가 대상 엔드포인트에서 OpenSearch Service 인덱스에 액세스하도록 해야 합니다. 최소 액세스 권한 집합이 다음 IAM 정책에 나와 있습니다.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "1", "Effect": "Allow", "Principal": { "Service": "dms.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

OpenSearch Service로의 마이그레이션에 사용하는 역할에는 다음 권한이 있어야 합니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "es:ESHttpDelete", "es:ESHttpGet", "es:ESHttpHead", "es:ESHttpPost", "es:ESHttpPut" ], "Resource": "arn:aws:es:region:account-id:domain/domain-name/*" } ] }

앞의 예에서는 region을 AWS 리전 식별자로 교체하고, account-id를 AWS 계정 ID로 교체하고, domain-name을 Amazon OpenSearch Service 도메인 이름으로 교체합니다. arn:aws:es:us-west-2:123456789012:domain/my-es-domain를 예로 들 수 있음

OpenSearch Service를 AWS DMS의 대상으로 사용할 경우 엔드포인트 설정

추가 연결 속성을 사용하는 것과 비슷하게 엔드포인트 설정을 사용하여 OpenSearch Service 대상 데이터베이스를 구성할 수 있습니다. AWS DMS 콘솔을 사용하거나 AWS CLIcreate-endpoint 명령을 --elasticsearch-settings '{"EndpointSetting": "value", ...}' JSON 구문과 함께 사용하여 대상 엔드포인트를 생성할 때 설정을 지정합니다.

OpenSearch Service를 대상으로 사용할 수 있는 엔드포인트 설정이 다음 테이블에 나와 있습니다.

속성 이름 유효값 기본값과 설명

FullLoadErrorPercentage

0보다 크고 100 이하인 양의 정수입니다.

10 - 전체 로드 작업의 경우 이 속성이 작업 실패 전에 허용되는 오류의 임계값을 결정합니다. 예를 들어 소스 엔드포인트에 1,500개 행이 있으며 이 파라미터가 10으로 설정되어 있다고 가정합니다. 이 경우, AWS DMS가 대상 엔드포인트에 작성할 때 150개(행 수의 10%)를 초과하는 오류를 포착하면 작업이 실패합니다.

ErrorRetryDuration

0보다 큰 양의 정수입니다.

300 - 대상 엔드포인트에 오류가 발생하면 AWS DMS가 이를 몇 초 동안 재시도합니다. 그렇지 않으면 작업이 실패한 것입니다.

Amazon OpenSearch Service를 AWS Database Migration Service의 대상으로 사용할 때의 제한 사항

Amazon OpenSearch Service를 대상으로 사용할 때에는 다음 제한 사항이 적용됩니다.

  • OpenSearch Service는 동적 매핑(자동 추정)을 사용하여 마이그레이션된 데이터에 사용할 데이터 형식을 결정합니다.

  • OpenSearch Service는 각 문서를 고유한 ID로 저장합니다. 다음은 ID의 예입니다.

    "_id": "D359F8B537F1888BC71FE20B3D79EAE6674BE7ACA9B645B0279C7015F6FF19FD"

    각 문서 ID의 길이는 스토리지 요구 사항에 부합하도록 64바이트입니다. 예를 들어, AWS DMS 소스로부터 10만 개 행을 마이그레이션한다면 그에 따른 OpenSearch Service 인덱스에는 640만 바이트의 스토리지가 추가로 필요하게 됩니다.

  • OpenSearch Service에서는 기본 키 속성 업데이트를 허용하지 않습니다. 대상에 원치 않는 데이터가 발생할 수 있으므로 변경 데이터 캡처(CDC)와 함께 지속적인 복제 사용 시 이 제한이 중요합니다. CDC 모드에서 기본 키는 32바이트 길이의 SHA256 값으로 매핑됩니다. 이는 사람이 읽을 수 있는 64바이트 문자열로 변환되며 OpenSearch Service 문서 ID로 사용됩니다.

  • AWS DMS가 마이그레이션할 수 없는 항목을 인식하면 Amazon CloudWatch Logs에 오류 메시지를 작성합니다. 이러한 동작은 오류 메시지를 예외 테이블에 작성하는 다른 AWS DMS 대상 엔드포인트의 경우와는 다릅니다.

  • AWS DMS는 마스터 사용자 및 암호를 사용하여 세분화된 액세스 제어가 활성화된 Amazon ES 클러스터에 대한 연결을 지원하지 않습니다.

  • AWS DMS는 OpenSearch Service 서버리스는 지원하지 않습니다.

  • OpenSearch Service는 기존 인덱스에 데이터를 쓰는 것을 지원하지 않습니다.

Amazon OpenSearch Service의 대상 데이터 유형

AWS DMS에서 다른 형식의 데이터베이스에서 가져온 데이터를 마이그레이션할 때, 원본 데이터베이스의 데이터 형식을 AWS DMS 데이터 형식이라고 하는 중간 데이터 형식에 매핑합니다. 그런 다음, 중간 데이터 형식을 대상 데이터 형식에 매핑합니다. 다음 테이블에는 각 AWS DMS 데이터 형식과 OpenSearch Service에서 매핑되는 데이터 형식이 나와 있습니다.

AWS DMS 데이터 형식 OpenSearch Service 데이터 형식

부울

부울

날짜

문자열

시간

날짜

타임스탬프

날짜

INT4

integer

Real4

float

UINT4

integer

AWS DMS 데이터 형식에 관한 추가 정보는 AWS Database Migration Service에서 사용되는 데이터 형식 단원을 참조하십시오.