쿠키 기본 설정 선택

당사는 사이트와 서비스를 제공하는 데 필요한 필수 쿠키 및 유사한 도구를 사용합니다. 고객이 사이트를 어떻게 사용하는지 파악하고 개선할 수 있도록 성능 쿠키를 사용해 익명의 통계를 수집합니다. 필수 쿠키는 비활성화할 수 없지만 '사용자 지정' 또는 ‘거부’를 클릭하여 성능 쿠키를 거부할 수 있습니다.

사용자가 동의하는 경우 AWS와 승인된 제3자도 쿠키를 사용하여 유용한 사이트 기능을 제공하고, 사용자의 기본 설정을 기억하고, 관련 광고를 비롯한 관련 콘텐츠를 표시합니다. 필수가 아닌 모든 쿠키를 수락하거나 거부하려면 ‘수락’ 또는 ‘거부’를 클릭하세요. 더 자세한 내용을 선택하려면 ‘사용자 정의’를 클릭하세요.

MongoDB를 AWS DMS에서 소스로 사용

포커스 모드
MongoDB를 AWS DMS에서 소스로 사용 - AWS 데이터베이스 마이그레이션 서비스

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

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

AWS DMS가 소스로 지원하는 MongoDB 버전에 대한 자세한 내용은 의 소스 AWS DMS 섹션을 참조하세요.

MongoDB 버전 지원에 대한 다음 사항에 유의하세요.

  • AWS DMS 3.4.5 이상 버전은 MongoDB 버전 4.2와 4.4를 지원합니다.

  • AWS DMS 3.4.5 이상 버전과 MongoDB 4.2 이상 버전은 분산 트랜잭션을 지원합니다. MongoDB 분산 트랜잭션에 대한 자세한 내용은 MongoDB 설명서Transactions를 참조하세요.

  • AWS DMS 3.5.0 이상 버전은 MongoDB 3.6 이전 버전을 지원하지 않습니다.

  • AWS DMS 3.5.1 이상 버전은 MongoDB 버전 5.0을 지원합니다.

  • AWS DMS 3.5.2 이상 버전은 MongoDB 버전 6.0을 지원합니다.

MongoDB가 생소하다면 다음과 같은 MongoDB 데이터베이스의 중요 개념을 잘 이해하시기 바랍니다.

  • MongoDB의 레코드는 필드와 값으로 구성된 데이터 구조인 문서입니다. 필드의 값에는 다른 문서, 배열 및 문서의 배열이 포함될 수 있습니다. 문서는 대체로 관계형 데이터베이스 테이블의 행에 상응합니다.

  • MongoDB의 모음은 문서 그룹이며 대략 관계형 데이터베이스 테이블에 상응합니다.

  • MongoDB의 데이터베이스는 모음 세트이며, 대략 관계형 데이터베이스의 스키마에 해당합니다.

  • 내부적으로 MongoDB 문서는 이진 JSON(BSON) 파일에 문서의 각 필드별로 형식을 포함하는 압축 형식으로 저장됩니다. 각 문서에는 고유 ID가 있습니다.

AWS DMS는 MongoDB를 소스로 사용 시 두 가지 마이그레이션 모드, 즉 문서 모드 또는 테이블 모드를 지원합니다. MongoDB 엔드포인트를 생성할 때 또는 AWS DMS 콘솔에서 메타데이터 모드 파라미터를 설정하여 사용할 마이그레이션 모드를 지정합니다. 선택에 따라 엔드포인트 구성 패널에서 _id를 별도의 열로 확인 표시 버튼을 선택하여 프라이머리 키 역할을 하는 _id라는 두 번째 열을 생성할 수 있습니다.

마이그레이션 모드 선택은 아래 설명된 대로 결과로 얻는 대상 데이터의 형식에 영향을 미칩니다.

문서 모드

문서 모드에서 MongoDB 문서는 있는 그대로 마이그레이션됩니다. 즉 해당 문서 데이터는 대상 테이블에서 _doc라는 단일 열로 통합됩니다. 문서 모드는 MongoDB를 소스 엔드포인트로 사용할 때의 기본 설정입니다.

예를 들어, myCollection이라는 MongoDB 모음의 문서를 가정해 보십시오.

> db.myCollection.find() { "_id" : ObjectId("5a94815f40bd44d1b02bdfe0"), "a" : 1, "b" : 2, "c" : 3 } { "_id" : ObjectId("5a94815f40bd44d1b02bdfe1"), "a" : 4, "b" : 5, "c" : 6 }

데이터를 문서 모드를 사용하는 관계형 데이터베이스 테이블로 마이그레이션 하면, 데이터의 구조는 다음과 같습니다. MongoDB 문서의 데이터 필드는 _doc 열로 통합됩니다.

oid_id _doc
5a94815f40bd44d1b02bdfe0 { "a" : 1, "b" : 2, "c" : 3 }
5a94815f40bd44d1b02bdfe1 { "a" : 4, "b" : 5, "c" : 6 }

선택적으로 추가 연결 속성 extractDocIDtrue로 설정하여 프라이머리 키 역할을 하는 "_id"라는 두 번째 열을 생성할 수 있습니다. CDC를 사용할 경우, 이 파라미터를 true로 설정합니다.

문서 모드에서 AWS DMS는 다음과 같이 모음 생성 및 이름 바꾸기를 관리합니다.

  • 소스 데이터베이스에 새 모음을 추가하면 AWS DMS가 모음의 새 대상 테이블을 생성하고 모든 문서를 복제합니다.

  • 소스 데이터베이스에서 기존 모음의 이름을 바꾸면 AWS DMS는 대상 테이블의 이름을 바꾸지 않습니다.

대상 엔드포인트가 Amazon DocumentDB인 경우, 문서 모드에서 마이그레이션을 실행하세요.

테이블 모드

테이블 모드에서 AWS DMS는 MongoDB 문서의 각 상위 수준 필드를 대상 테이블의 열로 변환합니다. 필드가 중첩된 경우, AWS DMS는 중첩된 값을 단일 열로 평면화합니다. 그런 다음 AWS DMS는 대상 테이블의 열 집합에 키 필드와 데이터 형식을 추가합니다.

각 MongoDB 문서별로 AWS DMS는 각 키와 유형을 대상 테이블의 열 집합에 추가합니다. 예를 들어 AWS DMS는 테이블 모드를 사용해 앞의 예제를 다음 테이블로 마이그레이션합니다.

oid_id a b c
5a94815f40bd44d1b02bdfe0 1 2 3
5a94815f40bd44d1b02bdfe1 4 5 6

중첩된 값은 점으로 분리된 키 이름을 포함하는 열에 평면화됩니다. 열은 마침표로 각각 분리된 연속된 평면화된 필드 이름으로 이름이 지정됩니다. 예를 들어 AWS DMS는 a.b.c.라는 이름이 지정된 열로 {"a" : {"b" : {"c": 1}}} 같은 중첩된 값 필드를 가진 JSON 문서를 마이그레이션합니다.

AWS DMS는 대상 열을 생성하기 위해 지정된 수의 MongoDB 문서를 스캔하고 모든 필드와 유형의 집합을 생성합니다. 그런 다음 AWS DMS는 이 집합을 사용해 대상 테이블의 열을 생성합니다. 콘솔을 사용해 MongoDB 소스 엔드포인트를 생성하거나 수정한다면, 스캔(검사)할 문서의 수를 지정할 수 있습니다. 기본 값은 1000 개 문서입니다. AWS CLI를 사용하는 경우, 추가 연결 속성 docsToInvestigate를 사용할 수 있습니다.

테이블 모드에서 AWS DMS는 문서와 모음을 다음과 같이 관리합니다.

  • 기존 모음에 문서를 추가할 때 문서가 복제됩니다. 대상에 없는 필드가 있으면 이 필드는 복제되지 않습니다.

  • 문서를 업데이트하면 업데이트된 문서가 복제됩니다. 대상에 없는 필드가 있으면 이 필드는 복제되지 않습니다.

  • 문서 삭제는 완벽하게 지원됩니다.

  • 새 모음을 CDC 작업 중에 추가해도 대상에 테이블이 새로 생성되지 않습니다.

  • AWS DMS는 변경 데이터 캡처(CDC) 단계에서 모음 이름 변경을 지원하지 않습니다.

MongoDB를 AWS DMS 소스로 사용할 때 필요한 권한

MongoDB 소스를 이용한 AWS DMS 마이그레이션의 경우에는 루트 권한을 가진 사용자 계정을 생성하거나 마이그레이션할 데이터베이스에서만 권한이 있는 사용자를 생성할 수 있습니다.

다음 코드는 루트 계정이 되도록 사용자를 생성합니다.

use admin db.createUser( { user: "root", pwd: "password", roles: [ { role: "root", db: "admin" } ] } )

MongoDB 3.x 소스의 경우, 다음 코드는 마이그레이션할 데이터베이스에 대한 최소 권한이 있는 사용자를 생성합니다.

use database_to_migrate db.createUser( { user: "dms-user", pwd: "password", roles: [ { role: "read", db: "local" }, "read"] })

MongoDB 4.x 소스의 경우, 다음 코드는 최소 권한을 가진 사용자를 생성합니다.

{ resource: { db: "", collection: "" }, actions: [ "find", "changeStream" ] }

예를 들어 “admin” 데이터베이스에 다음 역할을 생성합니다.

use admin db.createRole( { role: "changestreamrole", privileges: [ { resource: { db: "", collection: "" }, actions: [ "find","changeStream" ] } ], roles: [] } )

그리고 역할이 생성되면 마이그레이션할 데이터베이스에 사용자를 생성합니다.

> use test > db.createUser( { user: "dms-user12345", pwd: "password", roles: [ { role: "changestreamrole", db: "admin" }, "read"] })

CDC를 위한 MongoDB 복제본 세트 구성

MongoDB에서 지속적 복제 또는 CDC를 사용하려면 AWS DMS가 MongoDB 작업 로그(oplog)에 액세스할 수 있어야 합니다. oplog를 생성하려면 복제 세트를 배포하여 합니다(복제 세트가 없는 경우). 자세한 내용은 MongoDB 설명서를 참조하십시오.

CDC는 소스 엔드포인트로 설정된 MongoDB 복제본 세트의 기본 또는 보조 노드와 함께 사용할 수 있습니다.

독립형 인스턴스를 복제본 집합으로 변환하려면
  1. 명령줄을 사용하여 mongo에 연결합니다.

    mongo localhost
  2. mongod 서비스를 중단합니다.

    service mongod stop
  3. 다음 명령을 사용하여 mongod를 다시 시작합니다.

    mongod --replSet "rs0" --auth -port port_number
  4. 다음 명령을 사용하여 복제본 집합에 대한 연결을 테스트합니다.

    mongo -u root -p password --host rs0/localhost:port_number --authenticationDatabase "admin"

문서 모드 마이그레이션을 계획하고 있다면 MongoDB 엔드포인트 생성 시 _id as a separate column 옵션을 선택하십시오. 이 옵션을 선택하면 프라이머리 키로 작동하는 두 번째 열인 _id 가 생성됩니다. 이 두 번째 열은 AWS DMS가 데이터 조작 언어(DML) 작업을 지원하는 데 필요합니다.

참고

AWS DMS는 작업 로그(oplog)를 사용하여 지속적 복제 중의 변경 사항을 캡처합니다. AWS DMS가 레코드를 읽기 전에 MongoDB가 oplog에서 레코드를 삭제하면 작업이 실패합니다. 24시간 이상 변경 사항이 유지되도록 oplog의 크기를 조정하는 것이 좋습니다.

AWS DMS에서 MongoDB를 소스로 사용하기 위한 보안 요구 사항

AWS DMS는 MongoDB의 두 가지 인증 메서드를 지원합니다. 이 두 가지 인증 메서드는 암호를 암호화하는 데 사용되므로 authType 파라미터를 PASSWORD로 설정할 때만 사용됩니다.

MongoDB 인증 메서드는 다음과 같습니다.

  • MONGODB-CR - 이전 버전과의 호환성을 위해

  • SCRAM-SHA-1 - MongoDB 버전 3.x 및 4.0 사용 시 기본값

인증 메서드가 지정되어 있지 않으면 AWS DMS는 MongoDB 소스 버전의 기본 메서드를 사용합니다.

MongoDB 모음을 분할하고 병렬로 마이그레이션

마이그레이션 작업의 성능을 개선하기 위해 MongoDB 소스 엔드포인트는 테이블 매핑에서 병렬 전체 로드 옵션 두 가지를 지원합니다.

다시 말해 JSON 설정에서 병렬 전체 로드를 위해 테이블 매핑에 자동 분할 또는 범위 분할을 사용하여 모음을 병렬로 마이그레이션할 수 있습니다. 자동 분할을 사용하면 AWS DMS가 각 스레드에서 마이그레이션 소스를 자동으로 분할하는 기준을 지정할 수 있습니다. 범위 분할을 사용하면 DMS가 각 스레드에서 마이그레이션할 각 세그먼트의 특정 범위를 AWS DMS에 지시할 수 있습니다. 이러한 설정에 대한 자세한 내용은 테이블 및 컬렉션 설정 규칙과 작업 섹션을 참조하세요.

자동 분할 범위를 사용하여 MongoDB 데이터베이스를 병렬로 마이그레이션

AWS DMS가 각 스레드의 데이터를 자동으로 파티셔닝(분할)하는 기준을 지정하여 문서를 병렬로 마이그레이션할 수 있습니다. 특히 스레드당 마이그레이션할 문서 수를 지정합니다. AWS DMS는 이 방식을 사용하여 스레드당 성능을 극대화하는 세그먼트 경계 최적화를 시도합니다.

테이블 매핑에서 다음 테이블 설정 옵션을 사용하여 분할 기준을 지정할 수 있습니다.

테이블 설정 옵션

설명

"type"

(필수) MongoDB를 소스로 사용하는 경우 "partitions-auto"로 설정합니다.

"number-of-partitions"

(선택 사항) 마이그레이션에 사용되는 총 파티션(세그먼트) 수. 기본값은 16입니다.

"collection-count-from-metadata"

(선택 사항) 이 옵션을 true로 설정하면 AWS DMS는 추정 모음 개수를 사용하여 파티션 수를 결정합니다. 이 옵션이 false로 설정된 경우, AWS DMS는 실제 모음 수를 사용합니다. 기본값은 true입니다.

"max-records-skip-per-page"

(선택 사항) 각 파티션의 경계를 결정할 때 한 번에 건너뛰는 레코드 수입니다. AWS DMS는 페이지 매김 건너뛰기 방식을 사용하여 파티션의 최소 경계를 결정합니다. 기본값은 10,000입니다.

상대적으로 큰 값을 설정하면 커서 시간이 초과되고 작업이 실패할 수 있습니다. 상대적으로 작은 값을 설정하면 페이지당 작업 수가 늘어나고 전체 로드 속도가 느려집니다.

"batch-size"

(선택 사항) 배치 하나에서 반환되는 문서 수를 제한합니다. 배치마다 서버를 왕복해야 합니다. 배치 크기가 0인 경우, 커서는 서버에서 정의한 최대 배치 크기를 사용합니다. 기본값은 0입니다.

다음 예제는 자동 분할을 위한 테이블 매핑을 보여 줍니다.

{ "rules": [ { "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "admin", "table-name": "departments" }, "rule-action": "include", "filters": [] }, { "rule-type": "table-settings", "rule-id": "2", "rule-name": "2", "object-locator": { "schema-name": "admin", "table-name": "departments" }, "parallel-load": { "type": "partitions-auto", "number-of-partitions": 5, "collection-count-from-metadata": "true", "max-records-skip-per-page": 1000000, "batch-size": 50000 } } ] }

자동 분할에는 다음과 같은 제한이 있습니다. 각 세그먼트의 마이그레이션은 모음 개수와 모음의 최소 _id를 개별적으로 가져옵니다. 그런 다음 페이지 매김 건너뛰기를 사용하여 해당 세그먼트의 최소 경계를 계산합니다.

따라서 모음의 모든 세그먼트 경계를 계산할 때까지 각 모음의 최소 _id 값이 일정하게 유지되어야 합니다. 세그먼트 경계를 계산하는 동안 모음의 최소 _id 값을 변경하면 데이터가 손실되거나 행 중복 오류가 발생할 수 있습니다.

범위 분할을 사용하여 MongoDB 데이터베이스를 병렬로 마이그레이션

스레드의 각 세그먼트마다 범위를 지정하여 문서를 병렬로 마이그레이션할 수 있습니다. 이 방식을 사용하면 스레드당 선택한 문서 범위에 따라 각 스레드에서 마이그레이션할 특정 문서를 AWS DMS에 알려 줄 수 있습니다.

다음 예제에 나온 MongoDB 모음에는 항목 7개와 프라이머리 키 _id가 있습니다.

7개의 항목이 있는 MongoDB 모음.

AWS DMS이 병렬로 마이그레이션할 3개의 특정 세그먼트로 모음을 분할하려면 마이그레이션 작업에 테이블 매핑 규칙을 추가하면 됩니다. 이 방법은 다음 JSON 예제에 나와 있습니다.

{ // Task table mappings: "rules": [ { "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "testdatabase", "table-name": "testtable" }, "rule-action": "include" }, // "selection" :"rule-type" { "rule-type": "table-settings", "rule-id": "2", "rule-name": "2", "object-locator": { "schema-name": "testdatabase", "table-name": "testtable" }, "parallel-load": { "type": "ranges", "columns": [ "_id", "num" ], "boundaries": [ // First segment selects documents with _id less-than-or-equal-to 5f805c97873173399a278d79 // and num less-than-or-equal-to 2. [ "5f805c97873173399a278d79", "2" ], // Second segment selects documents with _id > 5f805c97873173399a278d79 and // _id less-than-or-equal-to 5f805cc5873173399a278d7c and // num > 2 and num less-than-or-equal-to 5. [ "5f805cc5873173399a278d7c", "5" ] // Third segment is implied and selects documents with _id > 5f805cc5873173399a278d7c. ] // :"boundaries" } // :"parallel-load" } // "table-settings" :"rule-type" ] // :"rules" } // :Task table mappings

이 테이블 매핑 정의는 소스 모음을 세 개의 세그먼트로 분할하고 병렬로 마이그레이션합니다. 분할 경계는 다음과 같습니다.

Data with _id less-than-or-equal-to "5f805c97873173399a278d79" and num less-than-or-equal-to 2 (2 records) Data with _id > "5f805c97873173399a278d79" and num > 2 and _id less-than-or-equal-to "5f805cc5873173399a278d7c" and num less-than-or-equal-to 5 (3 records) Data with _id > "5f805cc5873173399a278d7c" and num > 5 (2 records)

마이그레이션 작업이 완료되면 다음 예제와 같이 작업 로그에서 테이블이 병렬로 로드된 것을 확인할 수 있습니다. 소스 테이블에서 각 세그먼트를 언로드하는 데 사용된 MongoDB find 절도 확인할 수 있습니다.

[TASK_MANAGER ] I: Start loading segment #1 of 3 of table 'testdatabase'.'testtable' (Id = 1) by subtask 1. Start load timestamp 0005B191D638FE86 (replicationtask_util.c:752) [SOURCE_UNLOAD ] I: Range Segmentation filter for Segment #0 is initialized. (mongodb_unload.c:157) [SOURCE_UNLOAD ] I: Range Segmentation filter for Segment #0 is: { "_id" : { "$lte" : { "$oid" : "5f805c97873173399a278d79" } }, "num" : { "$lte" : { "$numberInt" : "2" } } } (mongodb_unload.c:328) [SOURCE_UNLOAD ] I: Unload finished for segment #1 of segmented table 'testdatabase'.'testtable' (Id = 1). 2 rows sent. [TASK_MANAGER ] I: Start loading segment #1 of 3 of table 'testdatabase'.'testtable' (Id = 1) by subtask 1. Start load timestamp 0005B191D638FE86 (replicationtask_util.c:752) [SOURCE_UNLOAD ] I: Range Segmentation filter for Segment #0 is initialized. (mongodb_unload.c:157) [SOURCE_UNLOAD ] I: Range Segmentation filter for Segment #0 is: { "_id" : { "$lte" : { "$oid" : "5f805c97873173399a278d79" } }, "num" : { "$lte" : { "$numberInt" : "2" } } } (mongodb_unload.c:328) [SOURCE_UNLOAD ] I: Unload finished for segment #1 of segmented table 'testdatabase'.'testtable' (Id = 1). 2 rows sent. [TARGET_LOAD ] I: Load finished for segment #1 of segmented table 'testdatabase'.'testtable' (Id = 1). 1 rows received. 0 rows skipped. Volume transfered 480. [TASK_MANAGER ] I: Load finished for segment #1 of table 'testdatabase'.'testtable' (Id = 1) by subtask 1. 2 records transferred.

현재, AWS DMS는 다음과 같은 MongoDB 데이터 형식을 세그먼트 키 열로 지원합니다.

  • Double

  • String

  • ObjectId

  • 32비트 정수

  • 64비트 정수

MongoDB를 AWS DMS 소스로 사용 시 여러 데이터베이스 마이그레이션

AWS DMS 버전 3.4.5 이상은 지원되는 모든 MongoDB 버전에서 단일 작업으로 여러 데이터베이스 마이그레이션을 지원합니다. 여러 데이터베이스를 마이그레이션하려면 다음 단계에 따릅니다.

  1. MongoDB 소스 엔드포인트를 생성할 때 다음 중 하나를 수행합니다.

    • DMS 콘솔의 엔드포인트 생성 페이지에서 엔드포인트 구성 아래 데이터베이스 이름을 비워 둡니다.

    • AWS CLI CreateEndpoint 명령을 사용하여 MongoDBSettingsDatabaseName 파라미터에 빈 문자열 값을 할당합니다.

  2. MongoDB 소스에서 마이그레이션하려는 각 데이터베이스의 데이터베이스 이름을 작업 테이블 매핑의 스키마 이름으로 지정합니다. 콘솔의 안내 입력을 사용하거나 JSON에서 직접 이 작업을 수행할 수 있습니다. 안내 입력에 대한 자세한 내용은 콘솔에서 테이블 선택 및 변환 규칙 지정 섹션을 참조하세요. JSON에 대한 자세한 내용은 선택 규칙 및 작업 섹션을 참조하세요.

예를 들면 다음과 같이 JSON을 지정하여 MongoDB 데이터베이스 3개를 마이그레이션할 수 있습니다.

예 스키마에서 모든 테이블 마이그레이션

다음 JSON은 소스 엔드포인트에 있는 Customers, Orders, Suppliers 데이터베이스의 모든 테이블을 대상 엔드포인트로 마이그레이션합니다.

{ "rules": [ { "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "Customers", "table-name": "%" }, "rule-action": "include", "filters": [] }, { "rule-type": "selection", "rule-id": "2", "rule-name": "2", "object-locator": { "schema-name": "Orders", "table-name": "%" }, "rule-action": "include", "filters": [] }, { "rule-type": "selection", "rule-id": "3", "rule-name": "3", "object-locator": { "schema-name": "Inventory", "table-name": "%" }, "rule-action": "include", "filters": [] } ] }

AWS DMS에서 MongoDB를 소스로 사용 시 적용되는 제한 사항

다음은 MongoDB를 AWS DMS에서 원본으로 사용 시 제한 사항입니다.

  • 테이블 모드에서 모음에 있는 문서의 데이터 형식은 동일한 필드의 값에 사용하는 데이터 형식과 일치해야 합니다. 예를 들어 모음의 문서에 '{ a:{ b:value ... }'가 포함된 경우, 해당 a.b 필드의 value를 참조하는 모음의 모든 문서는 모음의 어디에 표시되든 value에 동일한 데이터 형식을 사용해야 합니다.

  • _id 옵션이 별도의 열로 설정된 경우 ID 문자열이 200자를 초과할 수 없습니다.

  • 객체 ID와 배열 형식 키는 테이블 모드에서 oidarray 접두사가 붙은 열로 변환됩니다.

    내부적으로 이러한 열은 접두사 이름으로 참조됩니다. AWS DMS에서 이러한 열을 참조하는 변환 규칙을 사용하는 경우, 접두사가 붙은 열을 지정해야 합니다. 예를 들면 ${oid__id}를 지정하고 ${_id}를 지정하지 않거나 ${array__addresses}를 지정하고 ${_addresses}는 지정하지 않습니다.

  • 모음 이름과 키 이름에는 달러 기호($)를 포함할 수 없습니다.

  • AWS DMS는 RDBMS 대상이 있는 테이블 모드에서 대소문자가 다른 동일한 필드를 포함하는 모음은 지원하지 않습니다. 예를 들어 AWS DMS는 Field1field1이라는 두 개의 모음을 사용할 수 없습니다.

  • 테이블 모드와 문서 모드에는 앞서 설명한 제한이 있습니다.

  • 자동 분할을 사용한 병렬 마이그레이션에는 앞에서 설명한 제한 사항이 있습니다.

  • MongoDB에는 소스 필터가 지원되지 않습니다.

  • AWS DMS는 중첩 수준이 97보다 큰 문서는 지원하지 않습니다.

  • AWS DMS는 MongoDB 버전 5.0의 다음 기능을 지원하지 않습니다.

    • 라이브 리샤딩

    • 클라이언트 측 필드 수준 암호화(CSFLE)

    • 시계열 모음 마이그레이션

      참고

      Amazon DocumentDB는 시계열 모음을 지원하지 않기 때문에 전체 로드 단계에서 마이그레이션된 시계열 모음은 Amazon DocumentDB에서 일반 모음으로 변환됩니다.

MongoDB를 AWS DMS 소스로 사용 시 엔드포인트 구성 설정

MongoDB 소스 엔드포인트를 설정할 때 AWS DMS 콘솔을 사용하여 여러 엔드포인트 구성 설정을 지정할 수 있습니다.

다음 표에서는 MongoDB 데이터베이스를 AWS DMS 소스로 사용할 때 제공되는 구성 설정을 설명합니다.

설정(속성) 유효값 기본값과 설명

인증 모드

"none"

"password"

"password"는 사용자 이름과 암호를 입력하라는 메시지를 표시합니다. "none"을 지정하면 사용자 이름 및 암호 파라미터가 사용되지 않습니다.

인증 소스

유효한 MongoDB 데이터베이스 이름입니다.

인증을 위한 보안 인증 정보를 검증하는 데 사용할 MongoDB 데이터베이스의 이름입니다. 기본값은 "admin"입니다.

인증 메커니즘

"default"

"mongodb_cr"

"scram_sha_1"

인증 메커니즘입니다. "default" 값은 "scram_sha_1"입니다. authType"no"로 설정된 경우에는 이 설정이 사용되지 않습니다.

메타데이터 모드

문서 및 테이블

문서 모드 또는 테이블 모드를 선택합니다.

스캔할 문서 수(docsToInvestigate)

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

이 옵션은 테이블 모드에서 대상 테이블 정의를 정의할 때만 사용하세요.

_id를 별도의 열로

상자의 확인 표시

프라이머리 키 역할을 하는 _id라는 두 번째 열을 생성하는 선택적 확인 표시 상자입니다.

socketTimeoutMS

NUMBER

추가 연결 속성(ECA) 전용입니다.

이 설정은 밀리초 단위이며 MongoDB 클라이언트의 연결 제한 시간을 구성합니다. 값이 0보다 작거나 같으면 MongoDB 클라이언트 기본값이 사용됩니다.

UseUpdateLookUp

true

false

true인 경우, CDC 업데이트 이벤트 중에 AWS DMS는 업데이트된 전체 문서를 대상으로 복사합니다. false로 설정하면 AWS DMS는 MongoDB update 명령을 사용하여 대상에서 문서의 수정된 필드만 업데이트합니다.

ReplicateShardCollections

true

false

true인 경우, AWS DMS는 데이터를 샤드 모음에 복제합니다. AWS DMS는 대상 엔드포인트가 DocumentDB Elastic 클러스터인 경우에만 이 설정을 사용합니다.

이 설정이 true인 경우 다음 사항에 유의하세요.

  • TargetTablePrepModenothing으로 설정해야 합니다.

  • AWS DMS는 자동으로 useUpdateLookupfalse로 설정합니다.

문서메타데이터 모드로 선택하면 다른 옵션을 사용할 수 있습니다.

대상 엔드포인트가 DocumentDB인 경우, 문서 모드에서 마이그레이션을 실행해야 합니다. 또한 소스 엔드포인트를 수정하고 _id를 별도의 열로 옵션을 선택합니다. 이는 소스 MongoDB 워크로드에 트랜잭션이 포함된 경우에 필수 사전 요구 사항입니다.

MongoDB용 소스 데이터 형식

AWS DMS용 원본으로 MongoDB를 사용하는 데이터 마이그레이션은 대다수 MongoDB 데이터 형식을 지원합니다. 다음 표에서 AWS DMS를 사용하는 경우 지원되는 MongoDB 원본 데이터 형식과 AWS DMS 데이터 형식으로부터의 기본 매핑을 확인할 수 있습니다. MongoDB 데이터 형식에 대한 자세한 내용은 MongoDB 설명서의 BSON Types(BSON 형식)를 참조하십시오.

대상에서 매핑된 데이터 형식을 확인하는 방법에 대한 정보는 사용 중인 대상 엔드포인트에 대한 섹션을 참조하십시오.

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

MongoDB 데이터 형식

AWS DMS 데이터 유형

부울

바이너리

BLOB

날짜

날짜

Timestamp

날짜

정수

INT4

Long

INT8

Double

REAL8

String(UTF-8)

CLOB

배열

CLOB

OID

String

REGEX

CLOB

코드

CLOB

프라이버시사이트 이용 약관쿠키 기본 설정
© 2025, Amazon Web Services, Inc. 또는 계열사. All rights reserved.