AWS Database Migration Service
사용 설명서 (버전 API 버전 2016-01-01)

AWS Database Migration Service에서 Amazon S3를 대상으로 사용

지원되는 데이터베이스 원본에서 AWS DMS를 사용하여 Amazon S3에 데이터를 마이그레이션할 수 있습니다. AWS DMS 작업에서 S3를 대상으로 사용할 때 전체 로드와 변경 데이터 캡처(CDC) 데이터는 쉼표로 분리된 값(CSV) 형식에 작성됩니다. 증분식 카운터(LOAD00001.csv, LOAD00002 등)를 사용하여 전체 로드 중에 생성된 AWS DMS 이름 파일입니다. AWS DMSnames CDC 파일은 20141029-1134010000.csv 등과 같은 타임스탬프를 사용합니다. 각 원본 테이블마다 AWS DMS는 지정된 대상 폴더 아래에 폴더를 생성합니다. AWS DMS는 지정된 S3 버킷에 모든 전체 로드와 CDC 파일을 작성합니다.

파라미터 bucketFolder에는 S3 버킷에 업로드하기 전에 csv 파일이 저장된 위치가 포함되어 있습니다. 테이블 데이터는 S3 버킷에 다음 형식으로 저장됩니다.

<schema_name>/<table_name>/LOAD001.csv <schema_name>/<table_name>/LOAD002.csv <schema_name>/<table_name>/<time-stamp>.csv

추가 연결 속성을 사용하여 열 구분 기호, 행 구분 기호 등 여러 파라미터를 지정할 수 있습니다. 추가 연결 속성에 대한 자세한 내용은 이 섹션의 마지막에 나오는 Amazon S3를 AWS DMS의 대상으로 사용 시 추가 연결 속성을 참조하십시오.

AWS DMS를 사용하여 변경 내용을 복제하는 경오 CSV 출력 파일의 첫 번째 열은 다음과 같이 데이터가 어떻게 변경되었는지를 나타냅니다.

I,101,Smith,Bob,4-Jun-14,New York U,101,Smith,Bob,8-Oct-15,Los Angeles U,101,Smith,Bob,13-Mar-17,Dallas D,101,Smith,Bob,13-Mar-17,Dallas

이 예의 경우 소스 데이터베이스에 EMPLOYEE 테이블이 있다고 가정합니다. AWS DMS가 다음 이벤트에 대해 데이터를 CVS 파일에 씁니다.

  • 새 직원(Bob Smith, 직원 ID 101)이 2014년 6월 4일에 뉴욕 지사에 입사했습니다. CSV 파일에서 첫 번째 열의 I는 새 행이 소스 데이터베이스의 EMPLOYEE 테이블에 삽입(INSERT)되었음을 나타냅니다.

  • 2015년 10월 8일에 Bob은 LA 지사로 전근갑니다. CSV 파일에서 첫 번째 열의 U는 Bob의 새 지사 위치를 반영하여 EMPLOYEE 테이블이 업데이트(UPDATE)되었음을 나타냅니다. 이 줄 뒷부분에는 UPDATE 이후에 EMPLOYEE 테이블에서 이 행이 어떻게 표시되는지가 반영됩니다.

  • 2017년 3월 13일에 Bob은 Dallas 지사로 다시 전근갑니다. CSV 파일에서 U는 이 행이 다시 업데이트(UPDATE)되었음을 나타냅니다. 이 줄 뒷부분에는 UPDATE 이후에 EMPLOYEE 테이블에서 이 행이 어떻게 표시되는지가 반영됩니다.

  • Bob은 Dallas에서 얼마간 근무한 후 퇴사합니다. CSV 파일에서 D는 소스 테이블에서 이 행이 다시 업데이트(DELETE)되었음을 나타냅니다. 이 줄의 나머지에는 삭제 전에 EMPLOYEE 테이블에서 이 행이 어떻게 표시되었는지가 반영됩니다.

Amazon S3를 대상으로 사용하기 위한 사전 요구 사항

대상으로 사용 중인 Amazon S3 버킷이 데이터를 마이그레이션하는 데 사용 중인 DMS 복제 인스턴스와 동일한 리전에 있어야 합니다.

마이그레이션에서 사용하는 AWS 계정에는 대상으로 사용하고 있는 Amazon S3 버킷에 대한 쓰기 및 삭제 액세스 권한이 있어야 합니다. 마이그레이션 작업을 생성하는 데 사용되는 사용자 계정에 할당된 역할에는 다음 권한 집합이 있어야 합니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:PutObject", "s3:DeleteObject" ], "Resource": [ "arn:aws:s3:::buckettest2*" ] }, { "Effect": "Allow", "Action": [ "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::buckettest2*" ] } ] }

Amazon S3을 대상으로 사용할 때 적용되는 제한 사항

다음 제한 사항이 대상으로 사용하고 있는 Amazon S3의 파일에 적용됩니다.

  • 지원되는 데이터 정의 언어(DDL) 명령은 TRUNCATE TABLE, DROP TABLE, and CREATE TABLE입니다.

  • 전체 LOB 모드는 지원되지 않습니다.

  • 전체 로드 중에 원본 테이블의 구조 변경은 지원되지 않습니다. 전체 로드 중에 데이터 변경은 지원되지 않습니다.

  • 동일한 원본 테이블에서 동일한 대상 S3 엔드포인트 버킷으로 데이터를 복제하는 작업을 여러 번 수행하면 동일한 파일에 해당 작업을 쓰게 됩니다. 동일한 테이블의 데이터 원본인 경우 서로 다른 대상 엔드포인트(버킷)을 지정하는 것이 좋습니다.

보안

Amazon S3를 대상으로 사용할 수 있도록 마이그레이션에 사용되는 계정에는 대상으로 사용되는 Amazon S3 버킷에 대한 쓰기 및 삭제 액세스 권한이 있어야 합니다. Amazon S3에 액세스하는 데 필요한 권한을 가진 IAM 역할의 Amazon 리소스 이름(ARN)을 지정해야 합니다.

AWS DMS는 Amazon S3에 대해 미리 제공된 ACL이라고 하는 사전정의된 권한 부여 집합을 지원합니다. 각각의 미리 제공된 ACL에는 Amazon S3 버킷에 대한 권한을 설정하는 데 사용할 수 있는 피부여자 및 권한 집합이 있습니다. S3 대상 엔드포인트에 대해 연결 문자열 속성에서 cannedAclForObjects를 사용하여 미리 제공된 ACL을 지정할 수 있습니다. 추가 연결 속성인 cannedAclForObjects의 사용에 대한 자세한 내용은 Amazon S3를 AWS DMS의 대상으로 사용 시 추가 연결 속성 섹션을 참조하십시오. Amazon S3 미리 제공 ACL에 대한 자세한 내용은 미리 제공된 ACL을 참조하십시오.

마이그레이션하는 데 사용하는 IAM 역할이 s3:PutObjectAcl API 작업을 수행할 수 있어야 합니다.

Amazon S3를 AWS DMS의 대상으로 사용 시 추가 연결 속성

추가 연결 속성으로서 다음 옵션을 지정할 수 있습니다. 여러 추가 연결 속성 설정은 세미콜론으로 구분해야 합니다.

옵션 설명
addColumnName

.csv 출력 파일에 열 이름 정보를 추가할 수 있도록 하는 선택적 파라미터입니다. 기본값은 false입니다.

예:

addColumnName=true;

bucketFolder

S3 버킷의 폴더 이름을 설정하는 선택적 파라미터입니다. 지정하는 경우, 경로 <bucketFolder>/<schema_name>/<table_name>/에 테이블이 생성됩니다. 이 파라미터를 지정하지 않을 경우, 사용되는 경로는 <schema_name>/<table_name>/입니다.

예:

bucketFolder=testFolder;

bucketName

S3 버킷의 이름

예:

bucketName=buckettest;

cannedAclForObjects

AWS DMS에서 S3 버킷에 작성된 객체에 대한 사전 정의된 (미리 제공된) 액세스 제어 목록을 지정할 수 있도록 합니다. Amazon S3 미리 제공 ACL에 대한 자세한 내용인 Amazon S3 개발자 안내서의 미리 제공된 ACL을 참조하십시오.

예:

cannedAclForObjects=PUBLIC_READ;

이 속성의 유효한 값은 NONE; PRIVATE; PUBLIC_READ; PUBLIC_READ_WRITE; AUTHENTICATED_READ; AWS_EXEC_READ; BUCKET_OWNER_READ; BUCKET_OWNER_FULL_CONTROL입니다.

이 속성은 지정하지 않으면 NONE으로 기본 설정됩니다.

cdcInsertsOnly

INSERT 작업만을 .CSV 출력 파일에 쓰는 선택적 파라미터입니다. 기본적으로 .CSV 레코드의 첫 번째 필드에는 행이 소스 데이터베이스에서 삽입, 업데이트 또는 삭제되었는지 여부를 나타내는 I(삽입), U(업데이트) 또는 D(삭제) 글자가 포함되어 있습니다. cdcInsertsOnlytrue로 설정되면 INSERT만 CSV 파일에 기록되고 I 주석은 사용되지 않습니다.

예:

cdcInsertsOnly=true;

compressionType

GZIP을 사용하여 대상 파일을 압축하는 선택적 파라미터입니다. [NONE](기본값)으로 설정하거나 사용하지 않으면 파일이 압축되지 않습니다.

예:

compressionType=GZIP;

csvRowDelimiter

원본 파일에서 행을 구분하는 데 사용되는 구분 기호입니다. 기본값은 캐리지 리턴(\n)입니다.

예:

csvRowDelimiter=\n;

csvDelimiter

원본 파일에서 열을 구분하는 데 사용되는 구분 기호입니다. 기본값은 쉼표입니다.

예:

csvDelimiter=,;

maxFileSize

전체 로딩 중 S3 대상으로 마이그레이션하는 동안 CSV 파일의 최대 크기(KB 단위)를 지정합니다.

기본값: 1048576KB(1GB)

유효한 값은 1~1048576입니다

예:

maxFileSize=512

rfc4180

Amazon S3으로 마이그레이션된 데이터와 함께 RFC 규정 준수 동작을 제어하는 데 사용되는 선택적 파라미터입니다. Amazon S3를 대상으로 사용하는 경우, 데이터에 따옴표나 새 행 문자가 있으면 AWS DMS가 전체 열을 추가적인 "로 묶습니다. 데이터 내 모든 따옴표는 두 번 반복됩니다. 이는 RFC 4180를 준수합니다.

기본값은 true입니다.

예:

rfc4180=false;