AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별...

162
AWS Database Migration Service 단계별 마이그레이션 가이드 API 버전 2016-01-01

Transcript of AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별...

Page 1: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

API 버전 2016-01-01

Page 2: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

AWS Database Migration Service: 단계별 마이그레이션 가이드Copyright © 2020 Amazon Web Services, Inc. and/or its affiliates. All rights reserved.

Amazon's trademarks and trade dress may not be used in connection with any product or service that is not Amazon's,in any manner that is likely to cause confusion among customers, or in any manner that disparages or discreditsAmazon. All other trademarks not owned by Amazon are the property of their respective owners, who may or may notbe affiliated with, connected to, or sponsored by Amazon.

Page 3: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

Table of ContentsAWS Database Migration Service 단계별 연습 ........................................................................................ 1Amazon Web Services(AWS)로 데이터베이스 마이그레이션 ..................................................................... 2

AWS Migration Tool .................................................................................................................... 2이 가이드의 연습 단계 ................................................................................................................. 2

Amazon Aurora MySQL로 온프레미스 Oracle 데이터베이스 마이그레이션 ................................................... 4비용 .......................................................................................................................................... 4마이그레이션 고급 개요 ............................................................................................................... 5

1단계: Oracle 원본 데이터베이스 준비 ................................................................................... 52단계: Aurora MySQL 대상 데이터베이스 시작 및 준비 ............................................................. 53단계: 복제 인스턴스 시작 .................................................................................................. 64단계: 원본 엔드포인트 생성 ................................................................................................ 65단계: 대상 엔드포인트 생성 ................................................................................................ 66단계: 마이그레이션 작업 생성 및 실행 .................................................................................. 7

마이그레이션 단계별 지침 ............................................................................................................ 81단계: Oracle 원본 데이터베이스 구성 ................................................................................... 82단계: Aurora 대상 데이터베이스 구성 ................................................................................. 103단계: 복제 인스턴스 생성 ................................................................................................. 114단계: Oracle 원본 엔드포인트 생성 .................................................................................... 135단계: Aurora MySQL 대상 엔드포인트 생성 ........................................................................ 156단계: 마이그레이션 작업 생성 ........................................................................................... 167단계: 마이그레이션 작업 모니터링 ..................................................................................... 21문제 해결 ......................................................................................................................... 21

마이그레이션을 위한 샘플 데이터베이스 사용 ............................................................................... 22Amazon RDS Oracle 데이터베이스를 Amazon Aurora MySQL로 마이그레이션 ........................................... 23

비용 ........................................................................................................................................ 23사전 조건 ................................................................................................................................. 24마이그레이션 아키텍처 .............................................................................................................. 25단계별 마이그레이션 ................................................................................................................. 26

1단계: CloudFormation 템플릿을 사용하여 VPC에서 RDS 인스턴스 시작 ................................... 272단계: 로컬 컴퓨터에 SQL 도구와 AWS Schema Conversion Tool 설치 ..................................... 313단계: Oracle DB Instance와의 연결을 테스트하고 샘플 스키마 생성 ......................................... 344단계: Aurora MySQL DB 인스턴스와의 연결 테스트 .............................................................. 375단계: AWS SCT(AWS Schema Conversion Tool)를 사용하여 Oracle 스키마를 Aurora MySQL로변환 ................................................................................................................................ 396단계: 스키마 변환 검증 .................................................................................................... 467단계: AWS DMS 복제 인스턴스 생성 ................................................................................ 488단계: AWS DMS 원본 및 대상 엔드포인트 생성 ................................................................... 499단계: AWS DMS 마이그레이션 작업 생성 및 실행 ................................................................ 5110단계: AWS DMS 마이그레이션이 성공적으로 완료되었는지 확인 ........................................... 5411단계: 연습 리소스 삭제 ................................................................................................... 56

다음 단계 ................................................................................................................................. 57SQL Server 데이터베이스를 Amazon Aurora MySQL로 마이그레이션 ....................................................... 58

사전 조건 ................................................................................................................................. 58단계별 마이그레이션 ................................................................................................................. 59

1단계: 로컬 컴퓨터에 SQL 드라이버와 AWS Schema Conversion Tool 설치 ............................... 592단계: Microsoft SQL Server 원본 데이터베이스 구성 ............................................................. 603단계: Aurora MySQL 대상 데이터베이스 구성 ...................................................................... 624단계: AWS SCT를 사용하여 SQL Server 스키마를 Aurora MySQL로 변환 ................................ 625단계: AWS DMS 복제 인스턴스 생성 ................................................................................ 706단계: AWS DMS 원본 및 대상 엔드포인트 생성 ................................................................... 717단계: AWS DMS 마이그레이션 작업 생성 및 실행 ................................................................ 758단계: Aurora MySQL로 전환 ............................................................................................. 78

문제 해결 ................................................................................................................................. 78Oracle 데이터베이스를 PostgreSQL로 마이그레이션 .............................................................................. 80

API 버전 2016-01-01iii

Page 4: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

사전 조건 ................................................................................................................................. 80단계별 마이그레이션 ................................................................................................................. 81

1단계: 로컬 컴퓨터에 SQL 드라이버와 AWS Schema Conversion Tool 설치 ............................... 812단계: Oracle 원본 데이터베이스 구성 ................................................................................. 823단계: PostgreSQL 대상 데이터베이스 구성 .......................................................................... 854단계: AWS Schema Conversion Tool(AWS SCT)을 사용하여 Oracle 스키마를 PostgreSQL로 변환합니다. ......................................................................................................................... 855단계: AWS DMS 복제 인스턴스 생성 ................................................................................ 936단계: AWS DMS 원본 및 대상 엔드포인트 생성 ................................................................... 947단계: AWS DMS 마이그레이션 작업 생성 및 실행 ................................................................ 988단계: PostgreSQL로 전환 ............................................................................................... 101

마이그레이션 롤백 ................................................................................................................... 102문제 해결 ............................................................................................................................... 102

Amazon RDS for Oracle Database를 Amazon Redshift로 마이그레이션 ................................................... 104사전 조건 ............................................................................................................................... 104마이그레이션 아키텍처 ............................................................................................................. 105단계별 마이그레이션 ................................................................................................................ 106

1단계: CloudFormation 템플릿을 사용하여 VPC에서 RDS 인스턴스 시작 ................................. 1072단계: 로컬 컴퓨터에 SQL 도구와 AWS Schema Conversion Tool 설치 ................................... 1113단계: Oracle DB Instance와의 연결을 테스트하고 샘플 스키마 생성 ....................................... 1144단계: Amazon Redshift 데이터베이스와의 연결 테스트 ........................................................ 1185단계: AWS SCT를 사용하여 Oracle 스키마를 Amazon Redshift로 변환 ................................... 1196단계: 스키마 변환 검증 ................................................................................................... 1267단계: AWS DMS 복제 인스턴스 생성 ................................................................................ 1278단계: AWS DMS 원본 및 대상 엔드포인트 생성 .................................................................. 1289단계: AWS DMS 마이그레이션 작업 생성 및 실행 ............................................................... 13110단계: AWS DMS 마이그레이션이 성공적으로 완료되었는지 확인 ......................................... 13511단계: 연습 리소스 삭제 ................................................................................................. 137

다음 단계 ............................................................................................................................... 138MySQL 호환 데이터베이스를 AWS로 마이그레이션 .............................................................................. 139Amazon Aurora MySQL로 MySQL 호환 데이터베이스 마이그레이션 ....................................................... 140

Amazon S3을 사용하여 외부 MySQL 데이터베이스의 데이터를 Amazon Aurora MySQL로 마이그레이션 ......................................................................................................................................... 140

사전 조건 ....................................................................................................................... 1401단계: DB 클러스터로 복원할 파일 백업 ............................................................................. 1432단계: Amazon S3 버킷에 파일 복사 .................................................................................. 1443단계: Amazon S3 버킷에서 Aurora MySQL DB 클러스터 복원 .............................................. 144

mysqldump를 사용하여 Amazon Aurora MySQL로 MySQL 마이그레이션 ......................................... 150Amazon RDS MySQL DB 인스턴스에서 Amazon Aurora MySQL DB 클러스터로 데이터 마이그레이션 ... 150

RDS MySQL 스냅샷을 Aurora MySQL로 마이그레이션 ......................................................... 151문서 이력 ....................................................................................................................................... 158

API 버전 2016-01-01iv

Page 5: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

AWS Database Migration Service 단계별 연습

AWS Database Migration Service(AWS DMS)를 사용하여 Oracle, PostgreSQL, Microsoft SQL Server,Amazon Redshift, Amazon Aurora, MariaDB, MySQL과 같이 가장 널리 사용되는 상용 및 오픈 소스 데이터베이스와의 데이터 마이그레이션을 수행할 수 있습니다. 이 서비스는 Oracle에서 Oracle로의 동종 마이그레이션뿐만 아니라 Oracle에서 MySQL로 또는 MySQL에서 MySQL과 호환되는 Amazon Aurora로 등 서로 다른 데이터베이스 플랫폼 간 이종 마이그레이션도 지원합니다. 원본 또는 대상 데이터베이스는 AWS 서비스에 있어야 합니다.

이 가이드를 통해 샘플 데이터를 AWS로 마이그레이션하는 단계별 연습을 진행할 수 있습니다:

• Amazon Web Services(AWS)로 데이터베이스 마이그레이션 (p. 2)• Amazon Aurora MySQL로 온프레미스 Oracle 데이터베이스 마이그레이션 (p. 4)• Amazon RDS Oracle 데이터베이스를 Amazon Aurora MySQL로 마이그레이션 (p. 23)• SQL Server 데이터베이스를 Amazon Aurora MySQL로 마이그레이션 (p. 58)• Oracle 데이터베이스를 PostgreSQL로 마이그레이션 (p. 80)• Amazon RDS for Oracle Database를 Amazon Redshift로 마이그레이션 (p. 104)• MySQL 호환 데이터베이스를 AWS로 마이그레이션 (p. 139)• Amazon Aurora MySQL로 MySQL 호환 데이터베이스 마이그레이션 (p. 140)

DMS 사용 설명서에서 추가 리소스를 볼 수 있습니다.

• 안내서: MongoDB에서 Amazon DocumentDB로 마이그레이션• AWS Database Migration Service 및 AWS Snowball Edge을 사용하여 대규모 데이터 스토어 마이그레이

API 버전 2016-01-011

Page 6: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

AWS Migration Tool

Amazon Web Services(AWS)로 데이터베이스 마이그레이션AWS Migration Tool

여러 AWS 도구와 서비스를 사용하여 외부 데이터베이스의 데이터를 AWS로 마이그레이션할 수 있습니다.마이그레이션할 데이터베이스 유형에 따라 데이터베이스 엔진의 기본 마이그레이션 도구가 효과적인지도알 수 있습니다.

AWS Database Migration Service(AWS DMS)를 사용하면 안전하고 효율적으로 데이터베이스를 AWS로 마이그레이션할 수 있습니다. 마이그레이션하는 동안 원본 데이터베이스가 변함없이 운영되어 데이터베이스를 사용하는 애플리케이션의 가동 중지 시간을 최소화할 수 있습니다. AWS DMS를 사용하면 AWS에서 가장 널리 사용되는 상용 및 오픈 소스 데이터베이스로 Oracle 데이터를 마이그레이션할 수 있습니다.

AWS DMS는 데이터, 테이블 및 기본 키를 대상 데이터베이스로 마이그레이션합니다. 다른 모든 데이터베이스 요소는 마이그레이션되지 않습니다. 예를 들어, Oracle 데이터베이스를 MySQL과 호환되는 AmazonAurora로 마이그레이션하는 경우 AWS DMS와 함께 AWS Schema Conversion Tool을 사용해야 합니다.

AWS Schema Conversion Tool(SCT)은 보기, 저장 프로시저 및 함수를 포함하여 소스 데이터베이스 스키마 및 사용자 지정 코드 대부분을 대상 데이터베이스와 호환되는 형식으로 자동으로 변환하여 이종 데이터베이스를 쉽게 마이그레이션하도록 해줍니다. 자동으로 변환할 수 없는 코드는 수동으로 변환할 수 있도록명확하게 표시됩니다. 이 도구를 사용하여 원본 Oracle 데이터베이스를 Amazon RDS 또는 EC2의 AmazonAurora MySQL, MySQL 또는 PostgreSQL 대상 데이터베이스로 변환할 수 있습니다.

AWS DMS와 AWS SCT가 다른 별개의 도구이며 각기 다른 요구 사항에 부합한다는 점, 그리고 마이그레이션 프로세스에서 서로 상호 작용하지 못한다는 점을 이해하고 있어야 합니다. DMS 모범 사례에 따라 이 자습서의 마이그레이션 방법이 아래에 간략하게 소개되어 있습니다.

• AWS DMS는 미니멀리스트 접근 방식을 취하고 기본 키가 있는 테이블 등의 데이터를 효율적으로 마이그레이션하는 데 필요한 해당 개체만을 생성합니다. 따라서 DMS를 사용하여 외래 키나 제약 조건 없이 데이터와 함께 테이블을 로드합니다. (SCT를 사용하여 테이블 스크립트를 생성하고 나서 DMS를 통해 로드를생성하기 전에 대상에서 SCT를 생성합니다.

• SCT 활용:• 문제를 식별하기 위한 스키마 변환에 대한 제한 사항 및 조치• 외래 키와 제약 조건을 포함한 대상 스키마를 생성하려면• 원본에서 대상으로의 절차 및 보기 등의 코드를 변환하고 대상에서 적용하려면

Oracle 데이터베이스 마이그레이션의 유형과 크기는 사용해야 하는 도구 결정에 큰 영향을 줍니다. 예를 들어, Oracle 데이터베이스에서 AWS의 다른 데이터베이스 엔진으로 마이그레이션하는 이종 마이그레이션을수행하려면 AWS DMS를 사용하는 것이 가장 좋습니다. AWS에서 Oracle 데이터베이스를 Oracle 데이터베이스로 마이그레이션하는 같은 유형의 마이그레이션 효과를 극대화하려면 기본 Oracle 도구를 사용합니다.

이 가이드의 연습 단계Amazon Aurora MySQL로 온프레미스 Oracle 데이터베이스 마이그레이션 (p. 4)

Amazon RDS Oracle 데이터베이스를 Amazon Aurora MySQL로 마이그레이션 (p. 23)

API 버전 2016-01-012

Page 7: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

이 가이드의 연습 단계

SQL Server 데이터베이스를 Amazon Aurora MySQL로 마이그레이션 (p. 58)

Oracle 데이터베이스를 PostgreSQL로 마이그레이션 (p. 80)

Amazon RDS for Oracle Database를 Amazon Redshift로 마이그레이션 (p. 104)

MySQL 호환 데이터베이스를 AWS로 마이그레이션 (p. 139)

Amazon Aurora MySQL로 MySQL 호환 데이터베이스 마이그레이션 (p. 140)

API 버전 2016-01-013

Page 8: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

비용

Amazon Aurora MySQL로 온프레미스 Oracle 데이터베이스 마이그레이션

다음에서는 AWS Database Migration Service(AWS DMS) 및 AWS Schema Conversion Tool(AWS SCT)을사용하여 온프레미스 Oracle 데이터베이스(소스 엔드포인트)를 MySQL과 호환되는 Amazon Aurora(대상 엔드포인트)으로 마이그레이션하는 프로세스를 보여주는 전체 단계별 연습 및 고급 개요를 볼 수 있습니다.

AWS DMS는 데이터를 Oracle 원본에서 Aurora MySQL 대상으로 마이그레이션합니다. 또한 AWS DMS는원본 데이터베이스에 나타나는 DML(데이터 조작 언어) 및 지원되는 DDL(데이터 정의 언어) 변경 내용을 캡처하고 대상 데이터베이스에 이 변경 내용을 적용합니다. 이런 방식으로 AWS DMS를 통해 원본과 대상 데이터베이스를 서로 지속적으로 동기화할 수 있습니다. 데이터 마이그레이션을 수월하게 진행하기 위해 필요에 따라 DMS는 대상 데이터베이스에서 테이블과 기본 키 인덱스를 생성합니다.

그러나 AWS DMS는 특히 데이터 마이그레이션과 관련되지 않은 보조 인덱스, 시퀀스, 기본값, 저장 프로시저, 트리거, 동의어, 보기 및 기타 스키마 객체를 마이그레이션하지 않습니다. 이 객체를 Aurora MySQL 대상에 마이그레이션하려면 AWS Schema Conversion Tool을 사용하십시오.

Amazon 샘플 데이터베이스 사용하여 진행해 볼 것을 적극 권장합니다. 샘플 데이터베이스를 사용하고 샘플데이터베이스 사본을 가져오는 방법에 대한 지침이 나온 자습서를 확인하려면 마이그레이션을 위한 샘플 데이터베이스 사용 (p. 22) 섹션을 참조하십시오.

이전에 AWS DMS를 사용했거나 읽기보다 마우스 클릭을 선호하는 경우에는 고급 개요로 작업하는 것이 좋습니다. 세부 정보가 필요하고 보다 신중한 접근 방식을 취해야 하는 경우(또는 문제가 생긴 경우), 단계별 지침을 참조하는 것이 좋습니다.

주제: 온프레미스 Oracle에서 Amazon RDS의 Aurora MySQL 또는 MySQL로 마이그레이션

시간:

비용:

원본 데이터베이스: Oracle

대상 데이터베이스: Amazon Aurora MySQL/MySQL

제한 사항:

Oracle Edition: Enterprise, Standard, Express 및 Personal

Oracle 버전: 10g(10.2 이상), 11g, 12c(Amazon Relational Database Service(Amazon RDS)에서는 11g 이상이 필요함.)

MySQL 또는 관련 데이터베이스 버전: 5.5, 5.6, 5.7, MariaDB, Amazon Aurora MySQL

비용AWS DMS에는 아직 계산기가 포함되어 있지 않기 때문에 예상 요금은 다음 표를 참조하십시오.

API 버전 2016-01-014

Page 9: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

마이그레이션 고급 개요

사용자 PC 설정 외에도, 여러 AWS 구성 요소를 생성하여 마이그레이션 프로세스를 완료해야 합니다. AWS구성 요소에는 다음이 포함됩니다.

AWS 서비스 유형 설명

Amazon Aurora MySQL DB 인스턴스 db.r3.large 단일 AZ, 10GB 스토리지, I/O 100만개

AWS DMS 복제 인스턴스 T2.large 복제 로그 보관을위한 50GB의 스토리지 포함

AWS DMS 데이터 전송 무료, 샘플 데이터베이스에서 전송된데이터 양 기준.

 

데이터 전송 매월 첫 1GB 무료  

마이그레이션 고급 개요AWS DMS를 사용하여 데이터를 Oracle에서 Aurora MySQL로 마이그레이션하려면 다음 단계를 진행합니다. 이전에 AWS DMS를 사용했거나 읽기보다 마우스 클릭을 선호하는 경우에는 다음 요약이 마이그레이션을 빠르게 시작하는 데 도움이 됩니다. 마이그레이션에 대한 세부 정보가 필요하거나 문제가 생긴 경우 단계별 지침을 참조하십시오.

1단계: Oracle 원본 데이터베이스 준비AWS DMS를 사용하여 Oracle 소스 데이터베이스의 데이터를 마이그레이션하려면 일부 준비 과정이 필요하므로 모범 사례로서 몇 가지 추가 단계를 권장합니다.

• AWS DMS 계정 – 데이터를 마이그레이션하는 특정 용도에 적합한 별도의 계정을 생성하는 것이 좋습니다. 이 계정에는 데이터를 마이그레이션하는 데 필요한 최소 권한 집합이 있어야 합니다. 이 권한에 대한특정 세부 정보는 아래에 간략하게 나와 있습니다. 단순히 비프로덕션 데이터베이스에서 AWS DMS를 테스트하는 데 관심이 있는 경우에는 어느 DBA 계정이라도 충분합니다.

• 보충 로깅 – 변경 사항을 캡처하려면, DMS를 사용할 수 있도록 보충 로깅을 활성화해야 합니다. 데이터베이스 수준에서 보충 로깅을 활성화하려면, 다음 명령을 발행합니다.

ALTER DATABASE ADD SUPPLEMENTAL LOG DATA

또한 AWS DMS에서는 마이그레이션하는 테이블마다 키 수준 이상의 보충 로깅을 설정하도록 요구합니다. 소스 연결을 위해 다음과 같은 추가 연결 파라미터를 포함하면 AWS DMS에서 이 보충 로깅을 자동으로 추가합니다.

addSupplementalLogging=Y

• 소스 데이터베이스 - 데이터를 마이그레이션하려면 AWS DMS 복제 서버에 소스 데이터베이스에 대한 액세스 권한이 필요합니다. 방화벽 규칙이 AWS DMS 복제 서버에 수신을 허용하는지 확인합니다.

2단계: Aurora MySQL 대상 데이터베이스 시작 및 준비다음은 Aurora MySQL 인스턴스를 시작할 때 고려해야 하는 몇 가지 사항입니다.

API 버전 2016-01-015

Page 10: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드3단계: 복제 인스턴스 시작

• 최상의 결과를 얻으려면 Aurora MySQL 인스턴스와 복제 인스턴스를 동일한 VPC에 배치하고 가능한 경우에 동일한 가용 영역에 배치하는 것이 좋습니다.

• 데이터를 마이그레이션하기 위해 최소 권한을 가진 별도의 계정을 생성하는 것이 좋습니다. AWS DMS 계정은 데이터가 마이그레이션되고 있는 모든 데이터베이스에 대해 다음 권한이 필요합니다.

ALTER, CREATE, DROP, INDEX, INSERT, UPDATE, DELETE, SELECT

또한 AWS DMS에는 awsdms_control 데이터베이스에 대한 전체 액세스 권한이 있어야 합니다. 이 데이터베이스에는 마이그레이션별로 AWS DMS에 필요한 정보가 있습니다. 액세스 권한을 부여하려면, 다음 명령을 실행합니다.

ALL PRIVILEGES ON awsdms_control.* TO 'dms_user'

3단계: 복제 인스턴스 시작AWS DMS 서비스는 복제 인스턴스의 소스 및 대상 데이터베이스에 연결됩니다. 다음은 복제 인스턴스를 시작할 때 고려해야 하는 몇 가지 사항입니다.

• 최상의 결과를 얻으려면 이 Aurora MySQL의 경우에 복제 인스턴스를 대상 데이터베이스와 동일한 VPC및 가용 영역에 배치하는 것이 좋습니다.

• 원본 또는 대상 데이터베이스가 복제 서버를 시작하는 VPC 외부에 있는 경우, 복제 서버를 공개적으로 액세스할 수 있어야 합니다.

• AWS DMS는 상당히 많은 메모리와 CPU를 소모할 수 있습니다. 그렇지만, 필요에 따라 매우 쉽게 확장할수 있습니다. 단일 복제 서버 또는 에서 여러 작업을 실행할 것으로 예상되는 경우

• 기본 스토리지는 대개 대다수 마이그레이션에 충분합니다.

4단계: 원본 엔드포인트 생성AWS DMS가 Oracle 소스 데이터베이스에 액세스하려면 소스 엔드포인트를 생성해야 합니다. 소스 엔드포인트는 AWS DMS가 복제 서버에서 소스 데이터베이스에 연결하는 데 필요한 모든 정보를 정의합니다. 다음은 원본 엔드포인트에 대한 일부 요구 사항입니다.

• 원본 엔드포인트는 복제 서버에서 액세스 가능해야 합니다. 이 작업을 허용하려면, 복제 서버를 화이트리스트로 지정할 수 있도록 방화벽 규칙을 수정해야 할 수도 있습니다. AWS DMS 관리 콘솔에 복제 서버의IP 주소가 나와 있습니다.

• AWS DMS가 변경 사항을 캡처할 수 있도록 Oracle에서 보충 로깅을 활성화해야 합니다. AWS DMS에서보충 로깅을 자동으로 활성화하도록 하려면 Oracle 소스 엔드포인트의 추가 연결 속성에 다음을 추가해야합니다.

addSupplementalLogging=Y

5단계: 대상 엔드포인트 생성AWS DMS가 Aurora MySQL 대상 데이터베이스에 액세스할 수 있도록 대상 엔드포인트를 생성해야 합니다.대상 엔드포인트는 DMS가 Aurora MySQL 데이터베이스에 연결하는 데 필요한 모든 정보를 정의합니다.

• 대상 엔드포인트는 복제 서버에서 액세스 가능해야 합니다. 대상 엔드포인트가 액세스할 수 있도록 보안그룹을 수정해야 할 수도 있습니다.

• 대상에서 데이터베이스를 미리 생성한 경우, 전체 로드 중에 외래 키 점검을 비활성화하는 것이 좋습니다.이를 위해 추가 연결 속성에 다음을 연결해야 합니다.

API 버전 2016-01-016

Page 11: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

6단계: 마이그레이션 작업 생성 및 실행

initstmt=SET FOREIGN_KEY_CHECKS=0

6단계: 마이그레이션 작업 생성 및 실행마이그레이션 작업에서는 데이터가 마이그레이션되는 위치와 방법을 AWS DMS에 지시합니다. 마이그레이션 작업을 생성할 때에는 다음과 같이 마이그레이션 파라미터 설정을 고려해야 합니다.

Endpoints and replication server(엔드포인트 및 복제 서버) — 위에서 만든 엔드포인트와 복제 서버를 선택합니다.

마이그레이션 유형 — 대부분의 경우 migrate existing data and replication ongoing changes(기존 데이터 및복제 진행 중 변경 사항)를 선택합니다. 이 옵션을 통해 AWS DMS에서는 소스 데이터를 로드하는 동시에 데이터 변경 사항을 캡처합니다. 데이터 전체를 로드하고 나면 AWS DMS는 대기 중인 변경 사항을 모두 적용하고 작업이 중지될 때까지 소스 및 대상 데이터베이스를 계속 동기화합니다.

대상 테이블 준비 모드 — AWS DMS가 테이블을 생성하도록 하려면 대상에서 테이블 삭제를 선택합니다.대상 테이블을 생성하는 데 AWS Schema Conversion Tool과 같은 다른 방법을 사용하는 경우, [truncate]를선택합니다.

LOB parameters(LOB 파라미터) — AWS DMS를 사용해 보려면 복제에 LOB 열 포함, 제한적 LOB 모드를선택하고 최대 LOB 크기를 16(16k)으로 설정합니다. LOB에 대한 자세한 내용은 단계별 지침의 세부 정보를참조하십시오.

로깅 활성화 — 마이그레이션 문제를 쉽게 디버깅하려면 항상 로깅을 활성화합니다.

테이블 매핑 — Oracle에서 Aurora MySQL로 마이그레이션할 때에는 스키마, 테이블, 열 이름을 소문자로 변환하는 것이 좋습니다. 이렇게 하려면, 사용자 지정 테이블 매핑을 생성합니다. 다음은 스키마DMS_SAMPLE를 마이그레이션하고 스키마, 테이블 및 열 이름을 소문자로 변환하는 예제입니다.

{ "rules": [ { "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "DMS_SAMPLE", "table-name": "%" }, "rule-action": "include" }, { "rule-type": "transformation", "rule-id": "6", "rule-name": "6", "rule-action": "convert-lowercase", "rule-target": "schema", "object-locator": { "schema-name": "%" } }, { "rule-type": "transformation", "rule-id": "7", "rule-name": "7", "rule-action": "convert-lowercase", "rule-target": "table", "object-locator": { "schema-name": "%",

API 버전 2016-01-017

Page 12: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드마이그레이션 단계별 지침

"table-name": "%" } }, { "rule-type": "transformation", "rule-id": "8", "rule-name": "8", "rule-action": "convert-lowercase", "rule-target": "column", "object-locator": { "schema-name": "%", "table-name": "%", "column-name": "%" } } ]}

마이그레이션 단계별 지침다음에는 Oracle 데이터베이스를 온프레미스 환경에서 Amazon Aurora MySQL로 마이그레이션하는 단계별지침이 나와 있습니다. 이 지침에서는 사용자가 AWS Database Migration Service를 사용하기 위한 설정에나오는 AWS DMS 사용을 위한 설정 단계를 이미 완료했다고 가정합니다.

주제• 1단계: Oracle 원본 데이터베이스 구성 (p. 8)• 2단계: Aurora 대상 데이터베이스 구성 (p. 10)• 3단계: 복제 인스턴스 생성 (p. 11)• 4단계: Oracle 원본 엔드포인트 생성 (p. 13)• 5단계: Aurora MySQL 대상 엔드포인트 생성 (p. 15)• 6단계: 마이그레이션 작업 생성 (p. 16)• 7단계: 마이그레이션 작업 모니터링 (p. 21)• 문제 해결 (p. 21)

1단계: Oracle 원본 데이터베이스 구성AWS DMS(AWS Database Migration Service)에서 Oracle을 원본으로 사용하려면, 먼저 LogMiner에 정보를제공할 수 있도록 ARCHIVELOG MODE가 켜져 있는지 확인해야 합니다. AWS DMS가 변경 사항을 캡처할수 있도록 AWS DMS는 LogMiner를 사용하여 보관 로그의 정보를 읽습니다.

AWS DMS가 이 정보를 읽을 수 있도록 AWS DMS에서 보관 로그를 필요로 하는 한 이 보관 로그가 데이터베이스 서버에 보존되어 있는지 확인해야 합니다. 즉시 변경 사항 캡처를 시작하도록 작업을 구성하는 경우,가장 긴 실행 트랜잭션의 기간보다 약간 더 오랫동안 보관 로그만을 보존해야 합니다. 대개 24시간 동안 보관로그를 보존하면 충분합니다. 과거의 특정 시점에 시작하도록 작업을 구성하는 경우, 앞으로는 보관 로그를사용할 수 있어야 합니다. ARCHIVELOG MODE를 활성화하고 사용자의 온프레미스 Oracle 데이터베이스에서 로그 보존을 보장하기 위한 자세한 지침은 Oracle 설명서를 참조하십시오.

변경 사항을 캡처하려면 AWS DMS가 AWS DMS에 대한 원본 데이터베이스에서 보충 로깅을 활성화해야 합니다. 최소 보충 로깅은 데이터베이스 수준에서 활성화되어야 합니다. AWS DMS에서도 식별 키 로깅이 활성화되어야 합니다. 이 옵션으로 인해 기본 키를 포함하는 행을 업데이트할 때마다(기본 키의 값이 변경되지않았을 경우에도) 데이터베이스는 행의 기본 키 열 전체를 다시 실행 로그 파일에 배치합니다. 데이터베이스또는 테이블 수준에서 이 옵션을 설정할 수 있습니다.

Oracle 원본이 Amazon RDS에 있는 경우, 백업을 활성화한 경우에 한해 데이터베이스는 ARCHIVELOGMODE에 배치됩니다. 다음은 RDS 원본에 24시간 동안 보관 로그를 보존해주는 명령입니다.

API 버전 2016-01-018

Page 13: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

1단계: Oracle 원본 데이터베이스 구성

exec rdsadmin.rdsadmin_util.set_configuration('archivelog retention hours',24);

Oracle 원본 데이터베이스를 구성하려면

1. 다음 명령을 실행하여 데이터베이스 수준에서 보충 로깅을 활성화합니다. 이때 AWS DMS에서는 다음작업이 필요합니다.

ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;

For RDS:exec rdsadmin.rdsadmin_util.alter_supplemental_logging('ADD');

2. 다음 명령을 사용하여 데이터베이스 수준에서 식별 키 보충 로깅을 활성화합니다. AWS DMS에서 필요에 따라 보충 로깅을 자동으로 추가하거나 테이블 수준에서 키 수준 보충 로깅을 활성화하도록 허용하지않을 경우 AWS DMS에서는 데이터베이스 수준에서 보충 키 로깅이 필요합니다.

ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (PRIMARY KEY) COLUMNS;

For RDS:exec rdsadmin.rdsadmin_util.alter_supplemental_logging('ADD','PRIMARY KEY');

3. 키 수준 보충 로깅을 활성화하면 원본 데이터베이스는 약간의 오버헤드를 발생시킵니다. 따라서 테이블하위 집합만을 마이그레이션할 경우, 테이블 수준에서 키 수준의 보충 로깅을 활성화해야 할 수도 있습니다. 테이블 수준에서 키 수준의 보충 로깅을 활성화하려면 다음 명령을 사용합니다.

alter table table_name add supplemental log data (PRIMARY KEY) columns;

테이블에 기본 키가 없는 경우 옵션 2개가 있습니다.

• 테이블에서 첫 번째 고유 인덱스에 포함된 모든 열에 보충 로깅을 추가할 수 있습니다(인덱스 이름별로 정렬).

• 테이블의 모든 열에서 보충 로깅을 추가할 수 있습니다.

테이블에서 열의 하위 집합(고유 인덱스에 포함된 열)에 보충 로깅을 추가하려면, 다음 명령을 실행합니다.

ALTER TABLE table_name ADD SUPPLEMENTAL LOG GROUP example_log_group (ID,NAME) ALWAYS;

모든 테이블 열에서 보충 로깅을 추가하려면, 다음 명령을 실행합니다.

alter table table_name add supplemental log data (ALL) columns;

4. AWS DMS에서 사용할 데이터베이스 계정을 생성하거나 구성합니다. AWS DMS 연결을 위해 AWSDMS에서 필요한 최소 권한이 있는 계정을 사용하는 것이 좋습니다. AWS DMS에는 다음 권한이 필요합니다.

CREATE SESSIONSELECT ANY TRANSACTIONSELECT on V_$ARCHIVED_LOGSELECT on V_$LOG

API 버전 2016-01-019

Page 14: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

2단계: Aurora 대상 데이터베이스 구성

SELECT on V_$LOGFILESELECT on V_$DATABASESELECT on V_$THREADSELECT on V_$PARAMETERSELECT on V_$NLS_PARAMETERSSELECT on V_$TIMEZONE_NAMESSELECT on V_$TRANSACTIONSELECT on ALL_INDEXESSELECT on ALL_OBJECTSSELECT on ALL_TABLESSELECT on ALL_USERSSELECT on ALL_CATALOGSELECT on ALL_CONSTRAINTSSELECT on ALL_CONS_COLUMNSSELECT on ALL_TAB_COLSSELECT on ALL_IND_COLUMNSSELECT on ALL_LOG_GROUPSSELECT on SYS.DBA_REGISTRYSELECT on SYS.OBJ$SELECT on DBA_TABLESPACESSELECT on ALL_TAB_PARTITIONSSELECT on ALL_ENCRYPTED_COLUMNS* SELECT on all tables migrated

변경 사항(CDC)을 캡처하고 적용하려면 다음 권한도 필요합니다.

EXECUTE on DBMS_LOGMNR SELECT on V_$LOGMNR_LOGSSELECT on V_$LOGMNR_CONTENTSLOGMINING /* For Oracle 12c and higher. */* ALTER for any table being replicated (if you want DMS to add supplemental logging)

Oracle 버전 11.2.0.3 이전에서는 다음 권한이 필요합니다. 보기가 표시되는 경우, 다음 권한이 필요합니다.

SELECT on DBA_OBJECTS /* versions before 11.2.0.3 */SELECT on ALL_VIEWS (required if views are exposed)

2단계: Aurora 대상 데이터베이스 구성원본 데이터베이스와 마찬가지로 연결되어 있는 사용자의 액세스 권한을 제한하는 것이 좋습니다. 또한 마이그레이션 이후에 제거할 수 있는 임시 사용자를 생성할 수도 있습니다.

CREATE USER 'dms_user'@'%' IDENTIFIED BY 'dms_user';GRANT ALTER, CREATE, DROP, INDEX, INSERT, UPDATE, DELETE, SELECT ON <target database(s)>.* TO 'dms_user'@'%';

AWS DMS는 데이터베이스 awsdms_control의 대상에서 일부 제어 테이블을 사용합니다. 다음 명령은dms_user가 awsdms_control 데이터베이스에 대한 필수 액세스 권한을 갖도록 해줍니다.

API 버전 2016-01-0110

Page 15: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드3단계: 복제 인스턴스 생성

GRANT ALL PRIVILEGES ON awsdms_control.* TO 'dms_user'@'%';flush privileges;

3단계: 복제 인스턴스 생성AWS DMS 복제 인스턴스는 원본과 대상 간에 실제 데이터 마이그레이션을 수행합니다. 복제 인스턴스도 마이그레이션 중에 변경 사항을 캐시합니다. 복제 인스턴스가 갖는 CPU와 메모리 용량은 마이그레이션에 필요한 전체 시간에 영향을 줍니다. 다음 절차에 따라 복제 인스턴스의 파라미터를 설정합니다.

AWS DMS 복제 인스턴스를 생성하려면

1. AWS Management Console에 로그인하고 https://console.aws.amazon.com/dms/에서 AWS DMS 콘솔을 연 다음 복제 인스턴스를 선택합니다. AWS IAM(Identity and Access Management) 사용자로 로그인한 경우에는 AWS DMS에 액세스하기 위한 적절한 권한이 있어야 합니다. 필요한 권한에 대한 자세한내용은 AWS DMS를 사용하는 데 필요한 IAM 권한을 참조하십시오.

2. [Create replication instance]를 선택합니다.3. [Create replication instance] 페이지에서 다음과 같이 복제 인스턴스 정보를 지정합니다.

이 파라미터의 경우... 수행할 작업

이름 여러 복제 인스턴스를 시작하거나 계정을 공유하려고 계획한 경우, 여러 복제 인스턴스를 빠르게 구분하도록 해주는이름을 선택합니다.

설명 양호한 설명은 다른 사람들에게 사용 중인 복제 인스턴스의용도에 대한 아이디어를 제공하고 사고를 예방할 수 있습니다.

인스턴스 클래스 AWS DMS는 상당히 많은 메모리와 CPU를 사용할 수 있습니다. 대규모 데이터베이스(다수의 테이블)가 있거나 많은LOB 데이터 유형을 사용하는 경우, 큰 인스턴스를 설정하는것이 더 바람직할 수 있습니다. 다음 설명과 같이 여러 작업을 실행하여 처리량을 개선할 수 있습니다. 여러 작업은 더많은 리소스를 소모하고 큰 인스턴스를 필요로 합니다. 테스트를 실행할 때 CPU와 메모리 소모량을 계속 확인해야 합니다. 전체 용량의 CPU나 스왑 공간을 사용하고 있는 경우,쉽게 확장할 수 있습니다.

VPC 여기에서 복제 인스턴스를 시작하는 VPC를 선택할 수 있습니다. 가능한 경우 원본이나 대상 데이터베이스(또는 둘 다)가 있는 동일한 VPC를 선택하는 것이 좋습니다. AWS DMS는 이 VPC 내에서 원본과 대상 데이터베이스에 액세스해야 합니다. 데이터베이스 엔드포인트 중 하나 또는 둘 다 이VPC 밖에 있으면 AWS DMS 액세스를 허용하도록 방화벽규칙을 수정합니다.

[Multi-AZ] 다중 AZ를 선택하는 경우 AWS DMS에서는 별도의 가용 영역에서 기본 및 보조 복제 인스턴스를 시작합니다. 치명적인디스크 장애가 발생한 경우, 기본 복제 인스턴스는 자동으로보조 인스턴스로 장애 조치를 취합니다. 대다수의 경우에 마이그레이션을 수행하는 경우 다중 AZ가 필요하지 않습니다.초기 데이터 로드에 오랜 시간이 소요되고 원본과 대상 데이터베이스 동기화를 상당한 시간 동안 유지해야 하는 경우,

API 버전 2016-01-0111

Page 16: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드3단계: 복제 인스턴스 생성

이 파라미터의 경우... 수행할 작업다중 AZ 구성으로 마이그레이션 서버를 실행하는 것이 좋습니다.

[Publicly accessible] 원본 또는 대상 데이터베이스가 복제 서버가 있는 VPC 외부에 있는 경우, 복제 인스턴스를 공개적으로 액세스할 수 있도록 해야 합니다.

4. [Advanced] 섹션에서 다음 파라미터를 설정한 후 [Next]를 선택합니다.

옵션 수행할 작업

[Allocated storage (GB)] 스토리지는 주로 로그 파일과 캐시된 트랜잭션에서 소모합니다. 캐시 트랜잭션에서 스토리지는 캐시된 트랜잭션을 디스크에 기록해야 할 때에만 사용됩니다. 따라서 AWS DMS는 스토리지를 많이 사용하지 않습니다. 일부 예외 사항은다음과 같습니다.

• 상당한 트랜잭션 로드를 발생하는 매우 큰 테이블. 큰 테이블을 로드하면 다소 시간이 걸릴 수 있으므로, 캐시된트랜잭션은 큰 테이블 로드 중에 디스크에 기록될 가능성이 더 높습니다.

• 캐시된 트랜잭션을 로드하기 전에 일시 중지되도록 구성되는 작업입니다. 이 경우에 모든 테이블에서 전체 로드가완료될 때까지 모든 트랜잭션이 캐시됩니다. 이 구성에서상당량의 스토리지가 캐시된 트랜잭션에서 소모될 수 있습니다.

• Amazon Redshift로 로드되고 있는 테이블을 사용하여 구성된 작업입니다. 그렇지만, 이 구성은 Aurora MySQL가대상일 때는 문제가 아닙니다.

대다수의 경우에 스토리지의 기본 할당량은 충분합니다. 그렇지만, 항상 스토리지 관련 지표에 유의하고 기본 할당량보다 더 많이 소모하게 되면 스토리지를 확장하는 것이 좋습니다.

[Replication Subnet Group] 다중 AZ 구성으로 실행하는 경우, 최소 2개의 서브넷 그룹이 필요합니다.

가용 영역 가능한 경우, 대상 데이터베이스와 동일한 가용 영역에 기본복제 서버를 배치합니다.

[VPC Security group(s)] 보안 그룹을 사용하여 VPC에 대한 수신 및 송신을 제어할수 있습니다. AWS DMS를 통해 하나 이상의 보안 그룹을 복제 서버가 시작하는 VPC와 연결할 수 있습니다.

[KMS master key] AWS DMS를 통해 모든 데이터가 KMS 암호화 키를 사용하여 유휴 상태로 암호화됩니다. 기본적으로 AWS DMS는 사용자의 복제 서버에서 새 암호화 키를 생성합니다. 그렇지만필요에 따라 기존 키를 사용할 수 있습니다.

API 버전 2016-01-0112

Page 17: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

4단계: Oracle 원본 엔드포인트 생성

4단계: Oracle 원본 엔드포인트 생성복제 인스턴스가 생성되는 동안 AWS Management Console을 사용하여 Oracle 원본 엔드포인트를 지정할수 있습니다. 그렇지만, 복제 인스턴스는 연결을 테스트하는 데 사용되기 때문에 복제 인스턴스가 생성된 후에는 연결을 테스트만할 수 있습니다.

AWS 콘솔을 사용하여 원본 또는 대상 데이터베이스 엔드포인트를 지정하려면

1. AWS DMS 콘솔의 탐색 창에서 엔드포인트를 선택합니다.2. 엔드포인트 생성을 선택합니다. 아래와 같이 [Create database endpoint] 페이지가 나타납니다.

3. 원본 Oracle 데이터베이스에 대한 연결 정보를 지정합니다. 다음 표는 원본 설정에 대한 설명입니다.

이 파라미터의 경우... 수행할 작업

[Endpoint type] [Source]를 선택합니다.

[Endpoint Identifier] Oracle 엔드포인트의 식별자를 입력합니다. 엔드포인트의식별자는 AWS 리전 내에서 고유해야 합니다.

소스 엔진 [oracle]을 선택합니다.

[Server name] 데이터베이스가 온프레미스인 경우, AWS DMS가 복제 서버의 데이터베이스와 연결하는 데 사용할 수 있는 IP 주소를입력합니다. Amazon Elastic Compute Cloud(Amazon EC2)또는 Amazon RDS에서 데이터베이스가 실행되고 있는 경

API 버전 2016-01-0113

Page 18: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

4단계: Oracle 원본 엔드포인트 생성

이 파라미터의 경우... 수행할 작업우, 퍼블릭 DNS(Domain Name Service) 주소를 입력합니다.

포트 데이터베이스가 연결을 위해 수신하고 있는 포트를 입력합니다(Oracle 기본값은 1521).

[SSL mode] 이 엔드포인트에서 연결 암호화를 활성화해야 하는 경우Secure Sockets Layer(SSL) 모드를 선택합니다. 선택하는모드에 따라 인증서와 서버 인증서 정보를 제공해야 할 수도있습니다.

사용자명 AWS 계정 사용자 이름을 입력합니다. 마이그레이션별AWS 계정을 생성하는 것이 좋습니다.

암호 앞에 나온 사용자 이름의 암호를 입력합니다.

4. [Advanced ] 탭을 선택하여 추가 연결 문자열과 암호화 키 값을 설정합니다.

옵션 수행할 작업

[Extra connection attributes] 여기에서 엔드포인트의 동작을 제어하는 추가 속성 값을 추가할 수 있습니다. 여기에 나열된 속성은 가장 관련도가 높은 일부 속성입니다. 전체 목록은 설명서를 참조하십시오.세미콜론(;)을 사용하여 여러 항목을 서로 구분합니다.

• addSupplementalLogging: AWS DMS는 이 옵션을 활성화하는 경우(addSupplementalLogging=Y) 보충 로깅을자동으로 추가합니다.

• useLogminerReader: 기본적으로 AWS DMS는 OracleLogMiner를 사용하여 로그에서 변경 데이터를 캡처합니다. AWS DMS는 독자적인 기술을 활용하여 로그 구문을분석할 수도 있습니다. Oracle 12c를 사용하고 LOBS를포함하는 테이블의 변경 사항을 캡처해야 하는 경우, 이것을 [No](useLogminerReader=N)로 설정합니다.

• numberDataTypeScale: Oracle은 정밀도 또는 크기가없는 NUMBER 데이터 형식을 지원합니다. 기본적으로NUMBER는 정밀도가 38이고 크기가 10인 숫자(38,10)로변환됩니다. FLOAT에서 유효한 값은 0—38 또는 -1입니다.

• archivedLogDestId: 이 옵션은 보관된 다시 실행 로그의 대상을 지정합니다. 이 값은 $archived_log 테이블의 DEST_ID 숫자와 같아야 합니다. 여러 로그 대상(DEST_ID)을 사용할 때에는 보관된 다시 실행 로그의 위치 식별자를 지정하는 것이 좋습니다. 그러면 시작 단계부터 올바른 로그에 액세스하도록 보장하여 성능이 개선됩니다. 이 옵션의 기본값은 0입니다.

[KMS master key] 복제 스토리지와 연결 정보를 암호화하기 위해 사용할 암호화 키를 선택합니다. [(Default) aws/dms]를 선택하면, 계정및 리전과 연결된 AWS KMS 키가 사용됩니다.

엔드포인트를 저장하기 전에 테스트할 수 있습니다. 이 작업을 하려면, 테스트를 실시할 VPC 및 복제 인스턴스를 선택합니다. 테스트의 일환으로 AWS DMS는 엔드포인트와 연결된 스키마 목록을 새로 고칩니다. (이원본 엔드포인트를 사용하여 작업을 생성할 때 이 스키마는 원본 옵션으로서 제공됩니다.)

API 버전 2016-01-0114

Page 19: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

5단계: Aurora MySQL 대상 엔드포인트 생성

5단계: Aurora MySQL 대상 엔드포인트 생성그런 다음, 대상 엔드포인트 설정을 지정하여 대상 Amazon Aurora MySQL 데이터베이스에 대한 정보를 제공할 수 있습니다. 다음 표는 대상 설정에 대한 설명입니다.

AWS Management Console을 사용하여 대상 데이터베이스 엔드포인트를 지정하려면

1. AWS DMS 콘솔의 탐색 창에서 엔드포인트를 선택합니다.2. 엔드포인트 생성을 선택합니다. 아래와 같이 [Create database endpoint] 페이지가 나타납니다.

3. 대상 Aurora MySQL 데이터베이스에 대한 연결 정보를 지정합니다. 다음 표는 대상 설정에 대한 설명입니다.

이 파라미터의 경우... 수행할 작업

[Endpoint type] [Target]을 선택합니다.

[Endpoint Identifier] Aurora MySQL 엔드포인트의 식별자를 입력합니다. 엔드포인트의 식별자는 AWS 리전 내에서 고유해야 합니다.

[Target Engine] [aurora]를 선택합니다.

[Servername ] Aurora MySQL 인스턴스의 라이터 엔드포인트를 입력합니다. 라이터 엔드포인트는 기본 인스턴스입니다.

포트 인스턴스에 할당된 포트를 입력합니다.

API 버전 2016-01-0115

Page 20: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

6단계: 마이그레이션 작업 생성

이 파라미터의 경우... 수행할 작업

[SSL mode] 이 엔드포인트에서 연결 암호화를 활성화해야 하는 경우SSL 모드를 선택합니다. 선택하는 모드에 따라 인증서와 서버 인증서 정보를 제공해야 할 수도 있습니다.

사용자명 마이그레이션을 위해 사용 중인 계정의 사용자 이름을 입력합니다. 마이그레이션별 계정을 생성하는 것이 좋습니다.

암호 앞에 나온 사용자 이름의 암호를 입력합니다.

4. [Advanced ] 탭을 선택하여 필요에 따라 추가 연결 문자열과 암호화 키 값을 설정합니다.

옵션 수행할 작업

[Extra connection attributes] 여기에서 엔드포인트의 동작을 제어하는 추가 속성 값을 입력할 수 있습니다. 여기에 나열된 속성은 가장 관련도가 높은 일부 속성입니다. 전제 목록은 설명서를 참조하십시오. 세미콜론(;)을 사용하여 여러 항목을 서로 구분합니다.

• targetDbType: 기본적으로 AWS DMS에서는마이그레이션 중인 각 스키마별로 서로 다른MySQL 데이터베이스를 생성합니다. 때로는 여러 스키마에서 단일 데이터베이스로 여러 객체를 결합해야 할 수도 있습니다. 이 작업을 하려면 이 옵션을 특정 데이터베이스로 설정합니다(targetDbType=SPECIFIC_DATABASE).

• initstmt: 이 옵션을 사용하여 MySQL initstmt 연결 파라미터를 호출하고 mysql initstmt가 수락하는 모든 항목을 수락합니다. Aurora MySQL대상을 작업할 때에는 흔히 외래 키 점검을 비활성화하는 것이 유용합니다. 이 작업을 하려면, 다음과 같이 initstmt 파라미터를 사용합니다.

initstmt=SET FOREIGN_KEY_CHECKS=0

[KMS master key] 복제 스토리지와 연결 정보를 암호화하기 위해사용할 암호화 키를 선택합니다. [(Default) aws/dms]를 선택하면, 계정 및 리전과 연결된 AWSKMS 키가 사용됩니다.

엔드포인트를 저장하기 전에 테스트해 볼 수 있습니다. 이 작업을 하려면, 테스트를 실시할 VPC 및 복제 인스턴스를 선택해야 합니다.

6단계: 마이그레이션 작업 생성마이그레이션 작업을 생성할 때에는 데이터가 마이그레이션되는 방법을 정확하게 AWS DMS에 지시합니다.작업 내에서 마이크레이션될 테이블, 이 테이블을 마이그레이션할 위치, 이 테이블을 마이그레이션할 방법을정의합니다. 변경 캡처를 사용하고 AWS DMS 기능을 적용할 계획인 경우 단일 작업 내에서 트랜잭션이 유지되고 있음을 알고 있어야 합니다. 즉, 동일한 작업에서 단일 트랜잭션에 함께 참여하는 모든 테이블을 마이그레이션해야 합니다.

API 버전 2016-01-0116

Page 21: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

6단계: 마이그레이션 작업 생성

AWS DMS 작업을 사용하면 마이그레이션할 스키마와 마이그레이션 유형을 지정할 수 있습니다. 기존 데이터를 마이그레이션하거나, 지속적 변경 사항을 복제하거나, 또는 데이터 변경 사항만 복제할 수 있습니다. 이연습에서는 기존 데이터만을 마이그레이션합니다.

마이그레이션 작업을 생성하려면

1. 탐색 창에서 [Tasks]를 선택합니다.2. [Create Task]를 선택합니다.3. [Create Task] 페이지에서 작업 옵션을 지정합니다. 다음 표는 설정에 대한 설명입니다.

옵션 수행할 작업

[Task name] 작업에는 항상 조직에 도움이 되는 설명 이름을 부여하는 것이 좋습니다.

[Task description] 작업 설명을 입력합니다.

[Source endpoint] 원본 엔드포인트를 선택합니다.

[Target endpoint] 대상 엔드포인트를 선택합니다.

복제 인스턴스 작업을 실행할 복제 인스턴스를 선택합니다. 원본과 대상 엔드포인트는 인스턴스에서 액세스할 수 있어야 합니다.

[Migration type] AWS DMS에서는 세 가지 마이그레이션 유형을 사용할 수있습니다.

• [Migrate existing data:]

이 옵션을 선택하면 AWS DMS에서는 기존 데이터만 마이그레이션합니다. 원본 데이터에 대한 변경 사항이 대상에 캡처 및 적용되지 않습니다. 전체 로드 기간 동안 중단을 감수할 수 있는 경우, 이 옵션을 통한 마이그레이션은쉽고 간편합니다. 이 메서드는 데이터베이스의 테스트 사본을 생성할 때 사용하기에 좋습니다.

• [Migrate existing data and replicate ongoing changes: ]

이 옵션을 사용하면 AWS DMS가 기존 데이터를 마이그레이션하는 동안 변경 사항을 캡처합니다. AWS DMS는대량 데이터를 로드한 후에도 계속해서 변경 사항을 캡처하고 적용합니다. 결국 원본과 대상 데이터베이스는 동기화되어 가동 중지가 최소화된 마이그레이션이 가능합니다. 이 작업을 수행하려면 다음 단계를 수행하십시오.• 애플리케이션 종료• 최종 변경 사항이 대상으로 흐르도록 허용• 외래 키와 트리거 활성화와 같은 관리 작업 수행• 새 대상 데이터베이스를 가리키는 애플리케이션 시작

Note

AWS DMS는 대량 데이터를 테이블별로 로드하며, 한 번에 <n>개 테이블을 로드합니다. 전체 로드가 진행되면 AWS DMS는 가능한 한 신속하게대상 테이블에 캐시된 변경 사항을 적용하기 시작합니다. 대량 로드 중에 참조 무결성이 위반되므로, 전체 로드에서는 기존 외래 키를 비활성화해야 합니다. 전체 로드가 완료되고 나면, 대상

API 버전 2016-01-0117

Page 22: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

6단계: 마이그레이션 작업 생성

옵션 수행할 작업데이터베이스에는 무결성이 있고 변경 사항이트랜잭션으로 적용됩니다.

• [Replicate data changes only:]

경우에 따라서는 다른 메서드를 사용하여 대량 데이터를로드하도록 선택할 수도 있습니다. 이 접근 방식은 대개같은 유형의 마이그레이션을에만 적용됩니다.

[Start task on create] 상황에 따라서는 작업을 즉시 시작하는 것이 좋습니다. 때로는 인스턴스가 로깅 수준을 변경할 수 있도록 작업 시작을지연해야 할 수도 있습니다.

4. 그 다음, 다음과 같이 [Advanced] 설정을 적용합니다.

옵션 수행할 작업

[Target table preparation mode] AWS DMS를 통해 로드 전에 대상 테이블이 준비되는 방식을 지정할 수 있습니다.

아무 작업 안 함 - 이 옵션을 선택하면 AWS DMS가 테이블을 준비하기 위한 어떤 작업도 하지 않습니다. 테이블 구조는 그대로 유지되고 기존 데이터는 테이블에 남습니다. 이메서드를 사용하여 여러 시스템의 데이터를 통합할 수 있습니다.

대상에서 테이블 삭제 - AWS DMS에서 대상 테이블을 생성하도록 하는 경우 일반적으로 이 옵션을 사용합니다. 이 옵션을 선택하면 AWS DMS에서는 마이그레이션 전에 마이그레이션할 테이블을 삭제하고 다시 생성합니다.

[Truncate] - 대상 시스템에서 일부 또는 전체 테이블을 미리생성할 경우 이 옵션을 선택하고, AWS Schema ConversionTool을 사용할 수 있습니다. 이 옵션을 선택하면 AWS DMS가 로드하기 전에 대상 테이블을 자릅니다. 대상 테이블이없는 경우 AWS DMS에서는 테이블을 생성합니다.

[Include LOB columns in replication] LOB(대형 객체)는 때때로 시스템 사이에서 마이그레이션하기 어려울 수 있습니다. AWS DMS에는 LOB 열을 튜닝할때 도움이 되는 다양한 옵션이 있습니다. AWS DMS에서 어느 데이터 형식을 언제 LOB로 고려하는지 확인하려면 AWSDMS 설명서를 참조하십시오.

[Don't include LOB columns] - 다른 데이터베이스로 데이터를 마이그레이션할 때에는 LOB 저장 방법을 재고해 볼 수있으며, 특히 이종 마이그레이션에서 그러합니다. 이 작업을수행할 경우, LOB 데이터를 마이그레이션할 필요가 없습니다.

전체 LOB 모드 - 전체 LOB 모드에서 AWS DMS은(는) 크기에 상관 없이 모든 LOB를 원본에서 대상으로 마이그레이션합니다. 이 구성에서 AWS DMS에는 예상할 수 있는 최대 크기의 LOB 정보가 없습니다. 또한, LOB는 한 번에 하나씩,조각별로 마이그레이션됩니다. 전체 LOB 모드는 매우 느릴수 있습니다.

API 버전 2016-01-0118

Page 23: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

6단계: 마이그레이션 작업 생성

옵션 수행할 작업제한적 LOB 모드 - 제한적 LOB 모드에서는 AWS DMS이(가) 수용해야 하는 최대 크기의 LOB를 설정합니다. 이렇게하면 AWS DMS이(가) 메모리를 미리 할당하고 LOB 데이터를 대량으로 로드할 수 있습니다. 최대 LOB 크기를 초과하는 LOB는 잘리고 경고가 로그 파일에 발행됩니다. [ limitedLOB mode]는 [full LOB mode]에 비해 상당한 성능 이점이있습니다. 가능하다면 [limited LOB mode] 사용을 권장합니다.

Note

Oracle을 통해 LOB는 가능할 때마다 VARCHAR데이터 형식으로 처리됩니다. 이 접근 방식은 AWSDMS(이)가 데이터베이스에서 데이터를 대량으로 가져오므로, 다른 메서드보다 훨씬 빠릅니다.Oracle에서 VARCHAR의 최대 크기는 64K이므로,Oracle이 원본 데이터베이스일 때 64K 미만의 제한적인 LOB 크기가 최적입니다.

[Max LOB size (K)] 제한적 LOB 모드에서 작업이 실행되도록 구성하면 이 옵션은 AWS DMS에서 수용하는 최대 크기의 LOB를 결정합니다. 이 값보다 큰 LOB는 이 값으로 잘립니다.

[LOB chunk size (K)] 작업이 전체 LOB 모드를 사용하도록 구성된 경우 AWSDMS은(는) LOB를 여러 조각으로 가져옵니다. 이 옵션은 각조각의 크기를 결정합니다. 이 옵션을 설정하면, 네트워크구성에서 허용된 최대 패킷 크기에 특히 유의해야 합니다.LOB 청크 크기가 최대 허용 패킷 크기를 초과하면, 연결 해제 오류가 나타날 수 있습니다.

[Custom CDC start time] 이 파라미터는 데이터 변경 사항만을 복제하도록 구성된 작업에 대한 것입니다. 이 파라미터는 변경 스트림에서 변경사항을 찾기 시작하는 위치를 AWS DMS에 알려줍니다.

[Enable logging] 항상 로깅을 활성화합니다.

5. 추가 파라미터를 설정합니다.

옵션 수행할 작업

[Create control table(s) in targetschema]

AWS DMS는 대상 데이터베이스에서 일부 제어 테이블을필요로 합니다. 기본적으로 이 테이블은 사용자 데이터와 동일한 데이터베이스에서 생성됩니다. 이 파라미터를 통해 어딘가에 이 아티팩트를 배치하도록 AWS DMS에 지시할 수있습니다.

[Maximum number of tables to load inparallel]

AWS DMS는 테이블별로 데이터를 로드합니다. 이 파라미터를 통해 AWS DMS가 동시에 로드할 테이블 수를 제어할수 있습니다. 기본값은 대다수 상황에서 최적인 8입니다.

6. 테이블 매핑 설정을 지정합니다.

테이블 매핑은 작업이 원본에서 대상으로 마이그레이션해야 하는 테이블을 AWS DMS에 지정해 줍니다. 일부 설정이 AWS Management Console을 사용하여 적용될 수 있더라도 테이블 매핑은 JSON으로표현됩니다. 또한, 테이블 매핑에는 대문자에서 소문자로 테이블 이름 변경과 같은 변환도 포함될 수 있습니다.

API 버전 2016-01-0119

Page 24: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

6단계: 마이그레이션 작업 생성

AWS DMS는 원본 데이터베이스에서 각 (비시스템) 스키마별로 기본 테이블 매핑을 생성합니다. 대다수 경우에 테이블 매핑을 사용자 지정해야 합니다. 테이블 매핑을 사용자 지정하려면 사용자 지정 라디오 버튼을 선택합니다. 테이블 매핑 생성에 대한 자세한 내용은 AWS DMS 설명서를 참조하십시오. 다음 테이블 매핑의 기능은 다음과 같습니다.

• 마이그레이션에 DMS_SAMPLE 스키마를 포함합니다.• 테이블 NFL_DATA, MLB_DATA, NAME_DATE, STADIUM_DATA를 제외합니다.• 스키마, 테이블, 열 이름을 소문자로 변환합니다.

{ "rules": [ { "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "DMS_SAMPLE", "table-name": "%" }, "rule-action": "include" }, { "rule-type": "selection", "rule-id": "2", "rule-name": "2", "object-locator": { "schema-name": "DMS_SAMPLE", "table-name": "MLB_DATA" }, "rule-action": "exclude" },{ "rule-type": "selection", "rule-id": "3", "rule-name": "3", "object-locator": { "schema-name": "DMS_SAMPLE", "table-name": "NAME_DATA" }, "rule-action": "exclude" }, { "rule-type": "selection", "rule-id": "4", "rule-name": "4", "object-locator": { "schema-name": "DMS_SAMPLE", "table-name": "NFL_DATA" }, "rule-action": "exclude" },

{ "rule-type": "selection", "rule-id": "5", "rule-name": "5", "object-locator": { "schema-name": "DMS_SAMPLE",

API 버전 2016-01-0120

Page 25: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

7단계: 마이그레이션 작업 모니터링

"table-name": "NFL_STADIUM_DATA" }, "rule-action": "exclude" },{ "rule-type": "transformation", "rule-id": "6", "rule-name": "6", "rule-action": "convert-lowercase", "rule-target": "schema", "object-locator": { "schema-name": "%" } }, { "rule-type": "transformation", "rule-id": "7", "rule-name": "7", "rule-action": "convert-lowercase", "rule-target": "table", "object-locator": { "schema-name": "%", "table-name": "%" } }, { "rule-type": "transformation", "rule-id": "8", "rule-name": "8", "rule-action": "convert-lowercase", "rule-target": "column", "object-locator": { "schema-name": "%", "table-name": "%", "column-name": "%" } } ]}

7단계: 마이그레이션 작업 모니터링콘솔의 3개 섹션에서 마이그레이션 작업 현황을 확인할 수 있습니다.

• 작업 모니터링 – [Task Monitoring] 탭에는 전체 로드 처리량과 변경 캡처 및 적용 지연 시간에 대한 정보가나와 있습니다.

• 테이블 통계 – [Table Statistics] 탭에는 처리된 행 수와 처리된 트랜잭션 수에 대한 세부 정보와 DDL 작업에 대한 정보가 나옵니다.

• 로그 – [Logs] 탭에서 작업의 로그 파일을 볼 수 있습니다(로깅을 켰다고 가정함). 어떤 이유로든 작업에 실패하면 해당 파일에서 오류를 찾습니다. 또한, 파일에서 경고를 찾을 수 있습니다. 작업에서 데이터 잘림은로그 파일의 경고로 나타납니다. 필요에 따라 AWS 명령줄 인터페이스(CLI)를 사용하여 로깅 수준을 증가시킬 수 있습니다.

문제 해결원본으로 Oracle을 사용하고 대상으로 Aurora MySQL을 사용할 때 문제가 나타나는 가장 일반적이 두 영역은 보충 로깅과 대소문자 구분입니다.

API 버전 2016-01-0121

Page 26: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

마이그레이션을 위한 샘플 데이터베이스 사용

• 보충 로깅 – Oracle을 통해 변경 데이터를 복제하려면 보충 로깅을 활성화해야 합니다. 그렇지만, 데이터베이스 수준에서 보충 로깅을 활성화할 경우, 때로는 새 테이블을 생성할 때 보충 로깅을 계속 활성화해야 합니다. 이 문제에 대한 최적의 해결책은 추가 연결 속성을 사용하여 DMS가 보충 로깅을 자동으로 활성화하도록 허용하는 것입니다.

addSupplementalLogging=Y

• 대소문자 구분: Oracle은 대소문자를 구분하지 않습니다(객체 이름을 따옴표로 묶지 않은 경우). 그렇지만,텍스트는 대문자로 표시됩니다. 따라서 AWS DMS는 기본적으로 대문자로 대상 객체를 명명합니다. 대다수의 경우에 변환을 사용하여 스키마, 테이블 또는 열 이름을 소문자로 변경해야 합니다.

추가 팁을 보려면 AWS DMS 사용 설명서의 AWS DMS 문제 해결 단원을 참조하십시오.

Oracle별로 문제를 해결하려면, Oracle 문제 해결 섹션을 참조하십시오.

https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Troubleshooting.html#CHAP_Troubleshooting.Oracle

Aurora MySQL 문제를 해결하려면 MySQL 문제 해결 단원을 참조하십시오.

https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Troubleshooting.html#CHAP_Troubleshooting.MySQL

마이그레이션을 위한 샘플 데이터베이스 사용Amazon에서 제공한 샘플 Oracle 데이터베이스를 사용하여 앞의 개요와 가이드를 잘 살펴보는 것이 좋습니다. 이 데이터베이스는 간단한 스포츠 이벤트 및 티켓팅 시스템을 모방한 것입니다. 샘플 데이터베이스를 생성하는 스크립트는 https://github.com/awslabs/aws-database-migration-samples에서 확인할 수 있습니다.

샘플 데이터베이스를 작성하려면 oracle/sampledb/v1 폴더로 이동하고 README.md 파일의 지침에 따르십시오.

샘플은 약 8-10GB의 데이터를 생성합니다. 샘플 데이터베이스에는 일부 트랜잭션을 생성하는 데 사용할 수 있는 ticketManagment 패키지도 포함되어 있습니다. 트랜잭션을 생성하려면, SQL*Plus 또는 SQLDeveloper에 로그인하고 dms_sample로서 다음을 실행합니다.

SQL>exec ticketManagement.generateTicketActivity(0.01,1000);

첫 번째 파라미터는 트랜잭션 지연 시간(초이고, 두 번째 파라미터는 생성할 트랜잭션 수입니다. 앞의 절차는간단히 사람들에게 "티켓을 판매"합니다. 테이블 sporting_event_ticket 및 ticket_purchase_history에 업데이트가 표시됩니다.

일부 티켓이 "판매된 후"에는 다음 명령을 사용하여 전송할 수 있습니다.

SQL>exec ticketManagement.generateTransferActivity(1,100);

첫 번째 파라미터는 트랜잭션 지연 시간(초이고, 두 번째 파라미터는 생성할 트랜잭션 수입니다. 이 절차도sporting_event_ticket 및 ticket_purchase_history를 업데이트합니다.

API 버전 2016-01-0122

Page 27: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

비용

Amazon RDS Oracle 데이터베이스를Amazon Aurora MySQL로 마이그레이션

이 연습에서는 AWS Database Migration Service와 AWS Schema Conversion Tool을 사용하여 다른 유형의데이터베이스를 Amazon RDS Oracle에서 MySQL과 호환되는 Amazon Aurora로 마이그레이션하는 과정을안내합니다. 다음은 입문용 실습이므로 모든 시나리오를 다루지 않지만 그러한 마이그레이션을 실행할 때 따라야 하는 단계를 이해하는 데 도움이 됩니다.

AWS DMS와 AWS SCT가 다른 별개의 도구이며 각기 다른 요구 사항에 부합한다는 점도 잘 알고 있어야 합니다. 이들 도구는 마이그레이션 프로세스에서 서로 상호작용하지 않습니다. 고급 수준에서 이 마이그레이션에 수반되는 단계는 다음과 같습니다.

1. AWS SCT를 사용하여 다음 작업 진행:• Oracle에서 Aurora MySQL로의 변환 보고서를 실행하여 스키마 변환에 필요한 문제, 제한 사항 및 작업

을 확인합니다.• 스키마 스크립트를 생성하고 대상에서 이것을 적용한 후 AWS DMS를 통해 데이터 로드를 실행합니다.

AWS SCT는 절차 및 보기와 같은 객체에 대한 필수 코드 변환을 수행합니다.2. AWS SCT에서 보고한 문제에 대한 해결책을 확인하고 구현합니다. 예를 들어, Amazon Aurora MySQL에

서 지원되지 않는 Oracle Sequence와 같은 객체 유형은 auto_increment 옵션을 사용하여 처리되어 대리키를 채우거나 애플리케이션 계층에서 시퀀스 로직을 개발할 수 있습니다.

3. AWS DMS 데이터 로드에 영향을 줄 수 있는 외래 키 또는 다른 모든 제약을 비활성화합니다.4. AWS DMS는 전체 로드 접근 방식을 사용하여 원본에서 대상으로 데이터를 로드합니다. AWS DMS가 로

드의 일부로서 대상에서 객체를 생성할 수 있더라도 최소한의 접근 방식에 따라 데이터를 효율적으로 마이그레이션하므로 전체 스키마 구조가 원본에서 대상으로 복제되지 않습니다.

5. 추가 인덱스 생성과 같은 마이그레이션 후 활동을 수행하여 외래 키를 활성화하고 애플리케이션에서 필요한 변경 사항을 적용하여 새 데이터베이스를 가리킵니다.

이 연습에서는 사용자 지정 AWS CloudFormation 템플릿을 사용하여 Oracle 및 Amazon Aurora MySQL용Amazon RDS DB 인스턴스를 생성합니다. 그런 다음, SQL 명령 스크립트를 사용하여 샘플 스키마와 데이터를 Amazon RDS Oracle DB 인스턴스에 설치한 후 Amazon Aurora MySQL로 마이그레이션합니다.

이 연습을 완료하기까지 약 2시간이 소요됩니다. AWS 리소스를 사용하여 이 작업을 완료하기까지 추정 비용은 약 $5.00입니다. 지침에 따라 이 연습이 끝나면 추가 요금이 발생하지 않도록 리소스를 삭제해야 합니다.

주제• 비용 (p. 23)• 사전 조건 (p. 24)• 마이그레이션 아키텍처 (p. 25)• 단계별 마이그레이션 (p. 26)• 다음 단계 (p. 57)

비용이 연습에서는 AWS CloudFormation과 AWS DMS(AWS Database Migration Service) 리소스를 사용하여Amazon RDS(Amazon Relational Database Service) 리소스를 프로비저닝합니다. 이 리소스를 프로비저닝

API 버전 2016-01-0123

Page 28: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

사전 조건

하면 AWS 계정에 시간당 요금이 부과됩니다. AWS Schema Conversion Tool에서는 비용이 부과되지 않습니다. 즉, AWS DMS의 일부로 제공됩니다.

이 연습에 최소의 리소스만이 필요하더라도 이 리소스의 일부는 AWS 프리 티어에 적합하지 않습니다. 이 연습이 끝나면 추가 요금이 발생하지 않도록 리소스를 삭제하는 섹션이 나옵니다. 연습을 마친 후 바로 리소스를 삭제합니다.

AWS에서 이 연습을 실행할 때 발생하는 요금을 추정하기 위해 AWS 월 사용량 계산기를 이용할 수 있습니다. 그렇지만, AWS DMS 서비스는 이 계산기에 아직 포함되어 있지 않습니다. 다음 표에는 AWS DMS와Amazon RDS Oracle Standard Edition Two의 요금이 나와 있습니다.

AWS 서비스 인스턴스 유형 스토리지 및 I/O

Amazon RDS Oracle DB 인스턴스, 라이선스 포함(StandardEdition Two), 단일 AZ

db.m3.medium 단일 AZ, 10GB 스토리지, GP2

Amazon Aurora MySQL DB 인스턴스 db.r3.large 단일 AZ, 10GB 스토리지, I/O 100만개

AWS DMS 복제 인스턴스 t2.small 복제 로그 보관을위한 50GB의 스토리지 포함

AWS DMS 데이터 전송 무료—동일한 가용영역에 있는 RDS인스턴스의 AWSDMS와 데이터베이스 간 데이터 전송은 무료입니다.

데이터 전송 매월 첫 1GB 무료

이 연습을 2시간 동안 실행한다는 가정 하에 AWS 리소스에 대한 추정 요금은 다음과 같습니다.

• 요금 사이트에서 액세스할 수 있는 월 사용량 계산기 링크를 사용하여 추정한 Amazon Aurora MySQL +10GB 스토리지 요금은 $1.78입니다.

• Amazon RDS Oracle SE2(라이선스 포함) + 10GB GP2 스토리지 비용(aws.amazon.comaws.amazon.com에 따라 추정)($0.226) * 2시간 + ($0.115) * 10GB는 $1.602입니다.

• 50GB GP2 스토리지를 지원하는 t2.small 인스턴스의 AWS DMS 서비스 비용(요금 사이트에 따라 추정)($0.036) * 2시간은 $0.072입니다.

이 프로젝트를 실행하는 데 소요되는 총 추정 비용 = $1.78 + $1.602 + $0.072 = $3.454—약 $5.00입니다.

이 요금은 다음 가정을 기반으로 합니다.

• 인터넷으로 전송되는 총 데이터 양은 기가바이트 미만이라고 가정합니다. 앞에 나온 요금 추정치는 RDS및 DMS 서비스와 관련된 데이터 전송과 백업 요금이 프리 티어 한도 내에 있다고 가정한 것입니다.

• Aurora MySQL 데이터베이스가 사용한 스토리지는 GB-월 단위 증분으로 청구되고, 사용된 I/O는 1백만 개요청 단위 증분으로 청구됩니다.

• 동일한 가용 영역에 있는 RDS 인스턴스의 DMS와 데이터베이스 간 데이터 전송은 무료입니다.

사전 조건이 연습을 완료하려면 다음 사전 요구 사항도 필요합니다.

API 버전 2016-01-0124

Page 29: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

마이그레이션 아키텍처

• Amazon RDS, 해당 데이터베이스 기술 및 SQL에 대한 지식.• 마이그레이션할 테이블 생성과 마이그레이션 확인을 위한 SQL 쿼리를 포함하는 사용자 지정 스크립트는

다음과 같습니다.• Oracle-HR-Schema-Build.sql - HR 스키마를 생성하는 SQL 명령문.• Oracle_Aurora_For_DMSDemo.template - AWS CloudFormation 템플릿.

이러한 스크립트는 다름 링크에서 사용할 수 있습니다.dms-sbs-RDSOracle2Aurora.zip

이 연습의 각 단계마다 관련 파일을 다운로드할 수 있는 링크가 포함되어 있거나 해당 단계에 정확한 쿼리가 포함되어 있습니다.

• AWS 리전에서 Amazon RDS(Amazon Relational Database Service)와 AWS DMS(AWS DatabaseMigration Service) 인스턴스를 시작할 수 있도록 해주는 AWS Identity and Access Management(IAM) 자격 증명이 있는 AWS 계정입니다. IAM 자격 증명에 대한 정보는 IAM 사용자 생성 섹션을 참조하십시오.

• Amazon Virtual Private Cloud(Amazon VPC) 서비스 및 보안 그룹에 대한 기본 지식. Amazon RDS에서Amazon VPC를 사용하는 방법에 대한 정보는 가상 사설 클라우드(VPCs) 및 Amazon RDS 섹션을 참조하십시오. Amazon RDS 보안 그룹에 대한 자세한 내용은 Amazon RDS 보안 그룹을 참조하십시오.

• AWS DMS의 지원 기능 및 제한 사항에 대한 이해. AWS DMS에 대한 자세한 내용은 AWS DatabaseMigration Service란 무엇입니까?를 참조하십시오.

• Oracle 및 Amazon Aurora MySQL에서 지원되는 데이터 형식 변환 옵션에 대한 정보. 원본으로 Oracle용데이터 형식에 대한 자세한 내용은 AWS Database Migration Service에서 Oracle 데이터베이스를 원본으로 사용을 참조하십시오. 대상으로 Amazon Aurora MySQL용 데이터 형식에 대한 자세한 내용은 AWSDatabase Migration Service에서 MySQL 호환 데이터베이스를 대상으로 사용을 참조하십시오.

AWS DMS에 대한 자세한 내용은 AWS DMS 설명서를 참조하십시오.

마이그레이션 아키텍처이 예제에서는 AWS CloudFormation을 사용하여 데이터베이스 마이그레이션을 위한 단순 네트워크 토폴로지를 생성하며, 여기에는 원본 데이터베이스, 복제 인스턴스, 동일한 VPC의 대상 데이터베이스가 포함됩니다. AWS CloudFormation에 대한 자세한 내용은 CloudFormation 설명서를 참조하십시오.

AWS CloudFormation을 통해 본 AWS DMS(AWS Database Migration Service) 연습에 필요한 AWS 리소스를 프로비저닝합니다. 이 리소스에는 Oracle 및 Amazon Aurora MySQL용 VPC와 Amazon RDS(AmazonRelational Database Service) 인스턴스가 포함되어 있습니다. AWS CloudFormation을 통해 프로비저닝하므로 프로세스가 간편해져 데이터 마이그레이션과 관련된 작업에 집중할 수 있습니다. AWS CloudFormation템플릿에서 스택을 생성하면 다음 리소스를 프로비저닝합니다.

• 리전에서 퍼블릭 서브넷 2개를 지원하는 CIDR(10.0.0.0/24)을 사용한 VPC, 가용 영역 1(AZ 1)에서 주소가10.0.0.0/26인 DBSubnet1, AZ 2에서 주소가 10.0.0.64/26인 DBSubnet2입니다.

• DBSubnet1과 DBSubnet2를 포함하는 DB 서브넷 그룹입니다.• Oracle RDS Standard Edition Two의 배포 옵션 2개는 다음과 같습니다.

• 라이선스 포함• Single-AZ 설정• db.m3 미디엄 또는 이에 준하는 인스턴스 클래스• 포트 1521• 기본 옵션 및 파리미터 그룹

• Amazon Aurora MySQL DB 인스턴스의 배포 옵션은 다음과 같습니다.• 복제본 없음• db.r3.large 또는 이에 준하는 인스턴스 클래스• 포트 3306• 기본 옵션 및 파리미터 그룹

API 버전 2016-01-0125

Page 30: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

단계별 마이그레이션

• 입력 파라미터를 기반으로 컴퓨터 또는 0.0.0.0/0(어디에서든 액세스)에서 수신 액세스가 지원되는 보안 그룹

사용자의 입력이 거의 필요 없도록 CloudFormation 템플릿을 설계했습니다. 최소 권장 구성으로 필요한AWS 리소스를 프로비저닝합니다. 그렇지만, VPC CIDR 블록과 Amazon RDS 인스턴스 형식과 같은 일부구성과 파라미터를 변경해야 하는 경우에는 언제든지 템플릿을 업데이트하십시오.

AWS Management Console을 사용하여 복제 인스턴스, 엔드포인트 및 작업과 같은 AWS DMS 리소스를 프로비저닝합니다. 로컬 컴퓨터에 SQL Workbench/J 및 AWS Schema Conversion Tool(AWS SCT)과 같은 클라이언트 도구를 설치하여 Amazon RDS 인스턴스에 연결합니다.

다음은 이 연습에 해당하는 마이그레이션 아키텍처에 대한 그림입니다.

단계별 마이그레이션다음 단원에서는 Amazon RDS(Amazon Relational Database Service) Oracle 데이터베이스를 AmazonAurora MySQL로 마이그레이션하기 위한 단계별 지침에 대해 알아봅니다. 이 단계는 사용자가 이미 앞의 섹션에서 설명한 원본 데이터베이스를 준비했다고 가정합니다.

주제• 1단계: CloudFormation 템플릿을 사용하여 VPC에서 RDS 인스턴스 시작 (p. 27)• 2단계: 로컬 컴퓨터에 SQL 도구와 AWS Schema Conversion Tool 설치 (p. 31)• 3단계: Oracle DB Instance와의 연결을 테스트하고 샘플 스키마 생성 (p. 34)• 4단계: Aurora MySQL DB 인스턴스와의 연결 테스트 (p. 37)• 5단계: AWS SCT(AWS Schema Conversion Tool)를 사용하여 Oracle 스키마를 Aurora MySQL로 변

환 (p. 39)• 6단계: 스키마 변환 검증 (p. 46)• 7단계: AWS DMS 복제 인스턴스 생성 (p. 48)• 8단계: AWS DMS 원본 및 대상 엔드포인트 생성 (p. 49)

API 버전 2016-01-0126

Page 31: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

1단계: CloudFormation 템플릿을 사용하여 VPC에서 RDS 인스턴스 시작

• 9단계: AWS DMS 마이그레이션 작업 생성 및 실행 (p. 51)• 10단계: AWS DMS 마이그레이션이 성공적으로 완료되었는지 확인 (p. 54)• 11단계: 연습 리소스 삭제 (p. 56)

1단계: CloudFormation 템플릿을 사용하여 VPC에서RDS 인스턴스 시작시작하기 전에 AWS CloudFormation 템플릿을 다운로드해야 합니다. 다음 지침들을 따릅니다.

1. 컴퓨터에 다음 아카이브를 다운로드합니다. http://docs.aws.amazon.com/dms/latest/sbs/samples/dms-sbs-RDSOracle2Aurora.zip

2. 아카이브에서 CloudFormation 템플릿(Oracle_Aurora_For_DMSDemo.template)을 추출합니다.3. Oracle_Aurora_For_DMSDemo.template 파일을 현재 디렉터리로 복사하여 붙여 넣습니다.

이제 이 연습에서 필요한 AWS 리소스를 프로비저닝해야 합니다.

다음 연습에서는 AWS CloudFormation 템플릿을 사용하여 이 연습에 적합한 Amazon RDS 리소스를 생성합니다.

1. AWS Management 콘솔에 로그인한 다음 https://console.aws.amazon.com/cloudformation에서 AWSCloudFormation 콘솔을 엽니다.

2. [Create stack]을 선택합니다.3. 템플릿 선택 페이지에서 Amazon S3에 템플릿 업로드를 선택합니다.4. 파일 선택을 클릭한 후 dms-sbs-RDSOracle2Aurora.zip 아카이브에서 추출한

Oracle_Aurora_For_DMSDemo.template 파일을 선택합니다.5. [Next]를 선택합니다. [Specify DB Details] 페이지에서 다음과 같이 파라미터 값을 입력합니다.

이 파라미터의 경우... 수행할 작업

[Stack Name ] DMSdemo를 입력합니다.

[OracleDBName] 데이터베이스 고유 이름을 입력합니다. 이름은 문자로 시작해야 합니다. 기본값은 ORCL입니다.

[OracleDBUsername] Oracle 인스턴스를 관리할 관리(DBA) 사용자를 지정합니다. 기본값은 oraadmin입니다.

[OracleDBPassword] 관리 사용자 암호를 입력합니다. 기본값은 oraadmin123입니다.

[AuroraDBUsername] Aurora MySQL 인스턴스를 관리할 관리(DBA) 사용자를 지정합니다. 기본값은 auradmin입니다.

[AuroraDBPassword] 관리 사용자 암호를 입력합니다. 기본값은 auradmin123입니다.

[ClientIP] 로컬 컴퓨터의 IP 주소를 CIDR(x.x.x.x/32) 형식으로 지정합니다. whatsmyip.org에서 IP 주소를 가져올 수 있습니다.RDS 인스턴스의 보안 그룹은 이 IP 주소로의 수신을 허용합니다. 기본값은 어디에서든 액세스 가능한 (0.0.0.0/0)이고,권장되지 않습니다. 이 연습에서 IP 주소를 사용해야 합니다.

API 버전 2016-01-0127

Page 32: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

1단계: CloudFormation 템플릿을 사용하여 VPC에서 RDS 인스턴스 시작

6. [Next]를 선택합니다. 다음 [Options] 페이지에서 [Next]를 선택합니다.

API 버전 2016-01-0128

Page 33: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

1단계: CloudFormation 템플릿을 사용하여 VPC에서 RDS 인스턴스 시작

7. [Review] 페이지에서 세부 정보를 검토하고 올바를 경우 [Create Stack]을 선택합니다. 이CloudFormation 템플릿 실행에 따른 추정 비용을 확인하려면 [Cost]를 선택합니다.

8. AWS에서 Amazon RDS Oracle 및 Amazon Aurora MySQL 인스턴스를 사용하여 스택을 생성하기까지약 20분 이상이 소요될 수 있습니다.

API 버전 2016-01-0129

Page 34: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

1단계: CloudFormation 템플릿을 사용하여 VPC에서 RDS 인스턴스 시작

9. 스택 생성 후 [Stack], DMSdemo 스택, [Outputs] 진행률을 차례대로 선택합니다. JDBC 연결 문자열인 OracleJDBCConnectionString 및 AuroraJDBCConnectionString을 기록해 두면 이 연습에서 나중에Oracle 및 Aurora MySQL DB 인스턴스에 연결하는 데 사용할 수 있습니다.

API 버전 2016-01-0130

Page 35: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

2단계: 로컬 컴퓨터에 SQL 도구와AWS Schema Conversion Tool 설치

Note

Oracle 12c SE Two 라이선스 버전 12.1.0.2.v4는 모든 리전에서 사용할 수 있습니다. 그러나 일부리전에서는 Amazon Aurora MySQL을 사용할 수 없습니다. Amazon Aurora MySQL이 현재 출시된리전은 미국 동부(버지니아 북부), 미국 서부(오레곤), EU(아일랜드), 아시아 태평양(도쿄), 아시아태평양(뭄바이), 아시아 태평양(시드니), 아시아 태평양(서울)입니다. Aurora MySQL을 사용할 수 없는 리전에서 스택을 생성하려고 하면 Invalid DB Engine for AuroraCluster 오류가 표시되면서 생성에 실패합니다.

2단계: 로컬 컴퓨터에 SQL 도구와 AWS SchemaConversion Tool 설치그 다음, 로컬 컴퓨터에 SQL 클라이언트 및 AWS Schema Conversion Tool(AWS SCT)를 설치합니다.

이 연습에서는 마이그레이션 확인을 위해 SQL Workbench/J 클라이언트를 사용하여 RDS 인스턴스에 연결한다고 가정합니다. 권장되는 다른 소프트웨어 도구는 다음과 같습니다.

• JACK DB, JDBC를 통해 RDS 데이터베이스(Oracle 및 Aurora MySQL)를 사용하는 온라인 웹 인터페이스• DBVisualizer• Oracle SQL Developer

API 버전 2016-01-0131

Page 36: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

2단계: 로컬 컴퓨터에 SQL 도구와AWS Schema Conversion Tool 설치

SQL 클라이언트 소프트웨어를 설치하려면

1. SQL Workbench/J 웹사이트에서 SQL Workbench/J를 다운로드한 후 로컬 컴퓨터에 설치합니다. 이SQL 클라이언트는 무료로 제공되는 오픈 소스로서 DBMS에 종속되어 있지 않습니다.

2. Oracle 데이터베이스의 JDBC 드라이버를 다운로드합니다. 자세한 내용은 https://www.oracle.com/jdbc를 참조하십시오.

3. MySQL JDBC 드라이버(.jar 파일)를 다운로드합니다. 자세한 내용은 https://dev.mysql.com/downloads/connector/j/를 참조하십시오.

4. SQL Workbench/J를 사용하여 다음 설명과 같이 Oracle 및 Aurora MySQL용 JDBC 드라이버를 구성하여 연결을 설정합니다.

a. SQL Workbench/J에서 [File]을 선택한 후 [Manage Drivers]를 선택합니다.b. 드라이버 목록에서 [Oracle]을 선택합니다.c. 열기 아이콘을 선택한 후 전 단계에서 다운로드한 Oracle JDBC 드라이버용 .jar 파일을 선택합니

다. 확인을 선택합니다.

d. 드라이버 목록에서 MySQL을 선택합니다.e. [Open] 아이콘을 선택하고 나서 이전 단계에서 다운로드한 MySQL JDBC 드라이버를 선택합니다.

확인을 선택합니다.

API 버전 2016-01-0132

Page 37: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

2단계: 로컬 컴퓨터에 SQL 도구와AWS Schema Conversion Tool 설치

그 다음, AWS 스키마 마이그레이션 도구와 필요한 JDBC 드라이버를 설치합니다.

AWS 스키마 마이그레이션 도구와 JDBC 드라이버를 설치하려면

1. AWS Schema Conversion Tool 사용 설명서의 AWS Schema Conversion Tool 설치 및 업데이트에서 AWS Schema Conversion Tool을 다운로드합니다. 기본적으로 "C:\Program Files\AWS SchemaConversion Tool\AWS 디렉터리에 이 도구가 설치됩니다.

2. AWS Schema Conversion Tool을 시작합니다.3. AWS Schema Conversion Tool의 [Settings]에서 [Global Settings]를 선택합니다.4. [Global Settings]에서 [Driver]를 선택한 후 [Browse]를 선택하여 [Oracle Driver Path]를 찾습니다. JDBC

Oracle 드라이버를 찾고 [OK]를 선택합니다. 그런 다음, [Browse]를 선택하여 [MySql Driver Path]를 찾습니다. JDBC MySQL 드라이버를 찾고 [OK]를 선택합니다. [OK]를 선택하여 대화 상자를 닫습니다.

API 버전 2016-01-0133

Page 38: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

3단계: Oracle DB Instance와의 연결을 테스트하고 샘플 스키마 생성

3단계: Oracle DB Instance와의 연결을 테스트하고 샘플 스키마 생성CloudFormation 스택을 생성한 후 SQL Workbench/J를 사용하여 Oracle DB 인스턴스 연결을 테스트하고HR 샘플 스키마를 생성합니다.

SQL Workbench/J를 사용하여 Oracle DB 인스턴스와의 연결을 테스트하고 샘플 스키마를 생성하려면

1. SQL Workbench/J에서 [File]을 선택한 후 [Connect window]를 선택합니다. 아래와 같이 다음 정보를 사용하여 새 연결 프로필을 생성합니다.

이 파라미터의 경우... 수행할 작업

[New profile] 이름 RDSOracleConnection을 입력합니다.

드라이버 Oracle (oracle.jdbc.OracleDriver)을 선택합니다.

URL 이전 단계에서 DMSdemo 스택의 출력 세부 정보를 검사했을 때 기록한 [OracleJDBCConnectionString] 값을 사용합니다.

사용자명 oraadmin을 입력합니다.

암호 AWS CloudFormation 템플릿을 사용하여 Oracle DB 인스턴스를 생성할 때 할당한 관리 사용자의 암호를 입력합니다.

2. 연결을 테스트하려면 [Test]를 선택합니다. [OK]를 선택하여 대화 상자를 닫은 후 [OK]를 선택하여 연결프로필을 생성합니다.

API 버전 2016-01-0134

Page 39: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

3단계: Oracle DB Instance와의 연결을 테스트하고 샘플 스키마 생성

Note

연결에 실패한 경우, CloudFormation 템플릿을 생성할 때 할당한 IP 주소가 연결을 시도한 IP주소인지 확인합니다. 인스턴스에 연결할 때 가장 일반적으로 발생하는 문제입니다.

3. 사용자 지정 SQL 스크립트(Oracle-HR-Schema-Build.sql)를 사용하여 마이그레이션에 사용할 HR 스키마를 생성합니다. 이 스크립트를 다운로드하려면 다음과 같이 합니다.

1. 컴퓨터에 다음 아카이브를 다운로드합니다. http://docs.aws.amazon.com/dms/latest/sbs/samples/dms-sbs-RDSOracle2Aurora.zip

2. 아카이브에서 SQL 스크립트(Oracle-HR-Schema-Build.sql)를 추출합니다.3. Oracle-HR-Schema-Build.sql 파일을 현재 디렉터리로 복사하여 붙여 넣습니다.

4. 텍스트 편집기에서 제공된 SQL 스크립트를 엽니다. 전체 스크립트를 복사합니다.5. SQL Workbench/J에서 다음 코드를 복사하고 [Statement 1]를 보여 주는 Default.wksp 창에 SQL 스크립

트를 붙여 넣습니다.6. [SQL]을 선택한 후 [Execute All]을 선택합니다.

스크립트를 실행하면, 사용자 HR이 없음을 나타내는 오류 메시지가 반환됩니다. 이 오류를 무시하고 스크립트를 실행할 수 있습니다. 이 스크립트는 사용자를 생성하기 전에 이 사용자를 삭제하므로, 오류가발생합니다.

7. 다음 SQL 쿼리를 실행하여 HR 스키마에서 객체 유형과 개수가 생성되었는지 확인합니다.

Select OBJECT_TYPE, COUNT(*) from dba_OBJECTS where owner='HR' GROUP BY OBJECT_TYPE;

이 쿼리 결과는 다음과 비슷해야 합니다.

API 버전 2016-01-0135

Page 40: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

3단계: Oracle DB Instance와의 연결을 테스트하고 샘플 스키마 생성

OBJECT_TYPE COUNT(*) INDEX 8PROCEDURE 2 SEQUENCE 3 TABLE 7 VIEW 1

8. 다음 SQL 쿼리를 실행하여 HR 스키마에서 제약 개수를 확인합니다.

Select CONSTRAINT_TYPE,COUNT(*) from dba_constraints where owner='HR' AND (CONSTRAINT_TYPE IN ('P','R')OR SEARCH_CONDITION_VC NOT LIKE '%NOT NULL%') GROUP BY CONSTRAINT_TYPE;

이 쿼리 결과는 다음과 비슷해야 합니다.

CONSTRAINT_TYPE COUNT(*) R 10 P 7 C 1

9. 다음을 실행하여 HR 스키마를 분석합니다.

BEGIN dbms_stats.gather_schema_stats('HR');END;/

10. 다음 SQL 쿼리를 실행하여 총 테이블 수와 각 테이블별 행 수를 확인합니다.

SELECT table_name, num_rows from dba_tables where owner='HR' order by 1;

이 쿼리 결과는 다음과 비슷해야 합니다.

TABLE_NAME NUM_ROWS COUNTRIES 25 DEPARTMENTS 27 EMPLOYEES 107 JOBS 19 JOB_HISTORY 10 LOCATIONS 23 REGIONS 4

11. 테이블의 관계를 확인합니다. 다음 SQL 쿼리를 실행하여 10명이 넘는 직원이 있는 부서를 확인합니다.

Select b.department_name,count(*) from HR.Employees a,HR.departments b where a.department_id=b.department_id group by b.department_name having count(*) > 10order by 1;

API 버전 2016-01-0136

Page 41: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

4단계: Aurora MySQL DB 인스턴스와의 연결 테스트

이 쿼리 결과는 다음과 비슷해야 합니다.

DEPARTMENT_NAME COUNT(*)Sales 34Shipping 45

4단계: Aurora MySQL DB 인스턴스와의 연결 테스트그런 다음, Aurora MySQL DB 인스턴스와의 연결을 테스트합니다.

SQL Workbench/J를 사용하여 Aurora MySQL DB 인스턴스와의 연결을 테스트하려면

1. SQL Workbench/J에서 [File]을 선택한 후 [Connect window]를 선택합니다. Create a new connectionprofile(새 연결 프로필 생성) 아이콘을 선택합니다. 다음 정보 사용: 다음과 같은 정보를 사용하여 SQLWorkbench/J에서 Aurora MySQL DB 인스턴스에 연결합니다.

이 파라미터의 경우... 수행할 작업

[New profile] 이름 RDSAuroraConnection을 입력합니다.

드라이버 MySQL (com.mysql.jdbc.Driver)을 선택합니다.

URL 이전 단계에서 DMSdemo 스택의 출력 세부 정보를 검사했을 때 기록한 [AuroraJDBCConnectionString] 값을 사용합니다.

사용자명 auradmin을 입력합니다.

암호 AWS CloudFormation 템플릿을 사용하여 Aurora MySQLDB 인스턴스를 생성할 때 할당한 관리 사용자의 암호를 입력합니다.

2. 연결을 테스트하려면 [Test]를 선택합니다. [OK]를 선택하여 대화 상자를 닫은 후 [OK]를 선택하여 연결프로필을 생성합니다.

API 버전 2016-01-0137

Page 42: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

4단계: Aurora MySQL DB 인스턴스와의 연결 테스트

Note

연결에 실패한 경우, CloudFormation 템플릿을 생성할 때 할당한 IP 주소가 연결을 시도한 IP주소인지 확인합니다. 인스턴스에 연결할 때 가장 일반적으로 발생하는 문제입니다.

3. 마스터 관리 자격 증명을 사용하여 Aurora MySQL 인스턴스에 로그온합니다.4. SHOW DATABASES;와 같은 샘플 SQL 명령을 실행하여 Aurora MySQL DB 인스턴스와의 연결을 확인

합니다.

API 버전 2016-01-0138

Page 43: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

5단계: AWS SCT(AWS Schema Conversion Tool)를 사용하여 Oracle 스키마를 Aurora MySQL로 변환

5단계: AWS SCT(AWS Schema Conversion Tool)를사용하여 Oracle 스키마를 Aurora MySQL로 변환데이터를 Aurora MySQL로 변환하기 전에 아래 설명과 같이 Oracle 스키마를 Aurora MySQL 스키마로 변환합니다.

AWS SCT(AWS Schema Conversion Tool)를 사용하여 Oracle 스키마를 Aurora MySQL 스키마로변환하려면

1. AWS Schema Conversion Tool(AWS SCT)를 시작합니다. AWS SCT에서 [File]을 선택하고 나서 [NewProject]를 선택합니다. DMSDemoProject라는 새 프로젝트를 생성합니다. [New Project] 창에 다음 정보를 입력하고 [OK]를 선택합니다.

이 파라미터의 경우... 수행할 작업

[프로젝트 이름] DMSDemoProject를 입력합니다.

위치 기본 [Projects] 폴더와 기본 [Transactional Database(OLTP)] 옵션을 사용합니다.

[Source Database Engine] Oracle을 선택합니다.

[Target Database Engine] [Amazon Aurora(MySQL Compatible)]를 선택합니다.

2. [Connect to Oracle]을 선택합니다. [Connect to Oracle] 대화 상자에서 다음 정보를 입력한 후 [TestConnection]을 선택합니다.

이 파라미터의 경우... 수행할 작업

유형 [SID]를 선택합니다.

[Server name] Oracle DB 인스턴스에 연결하는 데 사용한[OracleJDBCConnectionString] 값을 사용하지만,JDBC 접두사 정보를 제거합니다. 예를 들어, SQL

API 버전 2016-01-0139

Page 44: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

5단계: AWS SCT(AWS Schema Conversion Tool)를 사용하여 Oracle 스키마를 Aurora MySQL로 변환

이 파라미터의 경우... 수행할 작업Workbench/J에서 사용하는 샘플 연결 문자열은"jdbc:oracle:thin:@do1xa4grferti8y.cqiw4tcs0mg7.us-west-2.rds.amazonaws.com:1521:ORCL"이 될수도 있습니다. AWS SCT 서버 이름의 경우,"jdbc:oracle:thin:@//"과 ":1521"을 제거하고 서버 이름: "do1xa4grferti8y.cqiw4tcs0mg7.us-west-2.rds.amazonaws.com"만 사용합니다.

[Server port] 1521을 입력합니다.

[Oracle SID] ORCL을 입력합니다.

사용자 이름 oraadmin을 입력합니다.

암호 AWS CloudFormation 템플릿을 사용하여 Oracle DB 인스턴스를 생성할 때 할당한 관리 사용자의 암호를 입력합니다.

3. [OK]를 선택하여 알림 상자를 닫은 후 [OK]를 선택하여 이 대화 상자를 닫고 Oracle DB 인스턴스와의 연결을 시작합니다. Oracle DB 인스턴스의 데이터베이스 구조가 표시됩니다. HR 스키마만을 선택합니다.

API 버전 2016-01-0140

Page 45: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

5단계: AWS SCT(AWS Schema Conversion Tool)를 사용하여 Oracle 스키마를 Aurora MySQL로 변환

4. [Connect to Amazon Aurora]를 선택합니다. [Connect to Amazon Aurora] 대화 상자에서 다음 정보를 입력한 후 [Test Connection]을 선택합니다.

이 파라미터의 경우... 수행할 작업

유형 [SID]를 선택합니다.

[Server name] Aurora MySQL DB 인스턴스에 연결하는 데 사용한AuroraJDBCConnectionString 값을 사용하지만, JDBC접두사 정보와 포트 접두사를 제거합니다. 예를 들어,SQL Workbench/J에서 사용하는 샘플 연결 문자열은"jdbc:mysql://dmsdemo-auroracluster-1u1ogdfg35v.cluster-cqiw4tcs0mg7.us-west-2.rds.amazonaws.com:3306"이될 수도 있습니다. AWS SCT 서버 이름의 경우,"jdbc:mysql://"과 ":3306"을 제거하고 서버 이름: "dmsdemo-auroracluster-1u1ogdfg35v.cluster-cqiw4tcs0mg7.us-west-2.rds.amazonaws.com"만을 사용합니다.

[Server port] 3306을 입력합니다.

API 버전 2016-01-0141

Page 46: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

5단계: AWS SCT(AWS Schema Conversion Tool)를 사용하여 Oracle 스키마를 Aurora MySQL로 변환

이 파라미터의 경우... 수행할 작업

사용자 이름 auradmin을 입력합니다.

암호 AWS CloudFormation 템플릿을 사용하여 Oracle DB 인스턴스를 생성할 때 할당한 관리 사용자의 암호를 입력합니다.

AWS SCT는 HR 스키마를 분석하고 데이터베이스 마이그레이션 평가 보고서를 생성하여 AmazonAurora MySQL로 변환합니다.

5. 확인을 선택하여 알림 상자를 닫은 후 확인을 선택하여 이 대화 상자를 닫고 Amazon Aurora MySQL DB인스턴스와의 연결을 시작합니다.

6. HR 스키마를 마우스 오른쪽 버튼으로 클릭하고 [Create Report]를 선택합니다.

API 버전 2016-01-0142

Page 47: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

5단계: AWS SCT(AWS Schema Conversion Tool)를 사용하여 Oracle 스키마를 Aurora MySQL로 변환

7. 보고서 및 보고서가 제안하는 작업 항목을 확인합니다. 이 보고서에서는 잠재적인 마이그레이션 문제 및이 문제를 해결하는 조치와 더불어 AWS SCT를 사용하여 변환할 수 있는 객체 유형에 대해 다룹니다.이 연습에서는 다음과 같은 항목이 표시됩니다.

API 버전 2016-01-0143

Page 48: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

5단계: AWS SCT(AWS Schema Conversion Tool)를 사용하여 Oracle 스키마를 Aurora MySQL로 변환

원할 경우 보고서를 .csv 또는 .pdf 형식으로 저장하여 나중에 분석할 수 있습니다.8. 작업 항목 탭을 선택하고 표시된 권장 사항을 검토합니다.9. HR 스키마를 오른쪽 버튼으로 클릭한 다음 [Convert schema]를 선택합니다.

10. 확인 메시지에서 [Yes]를 선택합니다. 그런 다음 AWS SCT는 스키마를 대상 데이터베이스 형식으로 변환합니다.

API 버전 2016-01-0144

Page 49: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

5단계: AWS SCT(AWS Schema Conversion Tool)를 사용하여 Oracle 스키마를 Aurora MySQL로 변환

11. HR 스키마를 선택한 다음 Apply to database(데이터베이스에 적용)를 선택하여 다음과 같이 스키마 스크립트를 대상 Aurora MySQL 인스턴스에 적용합니다.

12. HR 스키마를 선택하고 나서 [Refresh from Database]를 선택하여 다음과 같이 대상 데이터베이스를 새로 고칩니다.

API 버전 2016-01-0145

Page 50: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

6단계: 스키마 변환 검증

이제 데이터베이스 스키마가 변환되어 원본에서 대상으로 가져올 수 있습니다.

6단계: 스키마 변환 검증스키마 변환을 검증하려면 SQL Workbench/J를 사용하여 Oracle과 Aurora MySQL 데이터베이스에서 확인된 객체를 비교합니다.

SQL Workbench/J를 사용하여 스키마 변환을 검증하려면

1. SQL Workbench/J에서 [File]을 선택한 후 [Connect window]를 선택합니다. 이전 단계에서 생성한RDSAuroraConnection을 선택합니다. [OK]를 클릭합니다.

2. 다음 스크립트를 실행하여 대상 Aurora MySQL 데이터베이스에서 객체 형식의 수와 HR 스키마 수를 확인합니다. 이 값은 원본 Oracle 데이터베이스의 객체 수와 일치해야 합니다.

SELECT a.OBJECT_TYPE, COUNT(*)FROM(SELECT OBJECT_TYPE,OBJECT_SCHEMA,OBJECT_NAMEFROM (SELECT 'TABLE' AS OBJECT_TYPE,TABLE_NAME AS OBJECT_NAME,TABLE_SCHEMA AS OBJECT_SCHEMAFROM information_schema.TABLES

API 버전 2016-01-0146

Page 51: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

6단계: 스키마 변환 검증

where TABLE_TYPE='BASE TABLE'UNIONSELECT 'VIEW' AS OBJECT_TYPE,TABLE_NAME AS OBJECT_NAME,TABLE_SCHEMA AS OBJECT_SCHEMAFROM information_schema.VIEWSUNION

SELECT 'INDEX' AS OBJECT_TYPE,CONCAT (CONSTRAINT_TYPE,' : ',CONSTRAINT_NAME,' : ',TABLE_NAME) AS OBJECT_NAME,TABLE_SCHEMA AS OBJECT_SCHEMAFROM information_schema.TABLE_CONSTRAINTSwhere constraint_type='PRIMARY KEY'UNIONSELECT ROUTINE_TYPE AS OBJECT_TYPE,ROUTINE_NAME AS OBJECT_NAME,ROUTINE_SCHEMA AS OBJECT_SCHEMAFROM information_schema.ROUTINESUNIONSELECT 'TRIGGER' AS OBJECT_TYPE,CONCAT (TRIGGER_NAME,' : ',EVENT_OBJECT_SCHEMA,' : ',EVENT_OBJECT_TABLE) AS OBJECT_NAME,TRIGGER_SCHEMA AS OBJECT_SCHEMAFROM information_schema.triggers) RWHERE R.OBJECT_SCHEMA ='HR'order by 1) a GROUP BY a.OBJECT_TYPE;

이 쿼리는 다음과 비슷한 내용을 출력해야 합니다.

OBJECT_TYPE COUNT(*) INDEX 7 PROCEDURE 2 TABLE 7 TRIGGER 10 VIEW 1

그 다음, 다음 쿼리를 실행하여 테이블 제약 정보를 가져옵니다.

SELECT CONSTRAINT_TYPE,COUNT(*) FROM information_schema.TABLE_CONSTRAINTS where constraint_schema='HR' GROUP BY CONSTRAINT_TYPE;

이 쿼리는 다음과 비슷한 내용을 출력해야 합니다.

API 버전 2016-01-0147

Page 52: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

7단계: AWS DMS 복제 인스턴스 생성

CONSTRAINT_TYPE COUNT(*) FOREIGN KEY 10PRIMARY KEY 7UNIQUE 7

7단계: AWS DMS 복제 인스턴스 생성앞의 설명과 같이 원본과 대상 데이터베이스에서 스키마 구조를 검증한 후 이 연습의 핵심 부분인 데이터 마이그레이션으로 진행합니다. 다음 그림은 마이그레이션 프로세스의 상위 수준 보기를 보여줍니다.

DMS 복제 인스턴스는 원본과 대상 간에 실제 데이터 마이그레이션을 수행합니다. 복제 인스턴스도 마이그레이션 중에 트랜잭션 로그를 캐시합니다. 복제 인스턴스가 갖는 CPU와 메모리 용량은 마이그레이션에 필요한 전체 시간에 영향을 줍니다.

AWS DMS 복제 인스턴스를 생성하려면

1. AWS Management Console에 로그인하고 https://console.aws.amazon.com/dms/에서 AWS DMS를 선택한 다음 마이그레이션 생성을 선택합니다. AWS Identity and Access Management(IAM) 사용자로서로그인한 경우에는 AWS DMS 액세스를 위한 적절한 권한이 있어야 합니다. 필요한 권한에 대한 자세한내용은 AWS DMS를 사용하는 데 필요한 IAM 권한을 참조하십시오.

2. [Next]를 선택하여 콘솔의 [Welcome] 페이지에서 데이터베이스 마이그레이션을 시작합니다.3. [Create replication instance] 페이지에서 다음과 같이 복제 인스턴스 정보를 지정합니다.

이 파라미터의 경우... 수행할 작업

[이름] DMSdemo-repserver를 입력합니다.

설명 DMS demo replication server와 같이 간단한 설명을입력합니다.

인스턴스 클래스 [dms.t2.medium]을 선택합니다. 이 인스턴스 클래스는 작은테이블 집합을 마이그레이션하기에 충분히 큽니다.

VPC CloudFormation 스택에서 생성된 VPC인 DMSDemoVPC를선택합니다.

[Multi-AZ] No를 선택합니다.

[Publicly accessible] 이 항목을 선택한 상태로 둡니다.

4. [Advanced] 섹션에서 기본 설정은 그대로 두고, [Next: Tag Instance]를 선택합니다.

API 버전 2016-01-0148

Page 53: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

8단계: AWS DMS 원본 및 대상 엔드포인트 생성

8단계: AWS DMS 원본 및 대상 엔드포인트 생성복제 인스턴스가 생성되는 동안 AWS Management Console을 사용하여 원본과 대상 데이터베이스 엔드포인트를 지정할 수 있습니다. 그렇지만, 복제 인스턴스는 연결에 사용되기 때문에 복제 인스턴스가 생성된 후에는 연결을 테스트만할 수 있습니다.

AWS 콘솔을 사용하여 원본 또는 대상 데이터베이스 엔드포인트를 지정하려면

1. 원본 Oracle 데이터베이스 및 대상 Amazon Aurora MySQL 데이터베이스에 대한 연결 정보를 지정합니다. 다음 표는 원본 설정에 대한 설명입니다.

이 파라미터의 경우... 수행할 작업

[Endpoint Identifier] Orasource(Amazon RDS Oracle 엔드포인트)를 입력합니다.

소스 엔진 [oracle]을 선택합니다.

[Server name] Oracle DB 인스턴스 이름을 입력합니다. 이것은 "do1xa4grferti8y.cqiw4tcs0mg7.us-west-2.rds.amazonaws.com"와 같이 AWS SCT에서 사용한[Server name]입니다.

포트 1521을 입력합니다.

[SSL mode] [None]을 선택합니다.

사용자명 oraadmin을 입력합니다.

암호 Oracle DB 인스턴스에 암호를 입력합니다.

SID Oracle 데이터베이스 이름을 입력합니다.

다음 표는 대상 설정에 대한 설명입니다.

이 파라미터의 경우... 수행할 작업

[Endpoint Identifier] Aurtarget(Amazon Aurora MySQL 엔드포인트)을 입력합니다.

[Target Engine] [aurora]를 선택합니다.

[Servername ] Aurora MySQL DB 인스턴스 이름을 입력합니다. 이것은 "dmsdemo-auroracluster-1u1oyqny35jwv.cluster-cqiw4tcs0mg7.us-west-2.rds.amazonaws.com"과 같이AWS SCT에서 사용한 [Server name]입니다..

포트 3306을 입력합니다.

[SSL mode] [None]을 선택합니다.

사용자명 auradmin을 입력합니다.

암호 Aurora MySQL DB 인스턴스에 대한 암호를 입력합니다.

API 버전 2016-01-0149

Page 54: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

8단계: AWS DMS 원본 및 대상 엔드포인트 생성

완료한 페이지는 다음과 같아야 합니다.

2. 초기 데이터 로드 중에 외래 키 점검을 비활성화하려면, 다음 명령을 대상 Aurora MySQL DB인스턴스에 추가해야 합니다. 다음과 같이 고급 섹션에서 추가 연결 속성에 initstmt=SETFOREIGN_KEY_CHECKS=0;autocommit=1 명령을 입력합니다.

첫 번째 명령은 로드 중에 외래 키 점검을 비활성화하고, 두 번째 명령은 DMS가 실행하는 트랜잭션을커밋합니다.

API 버전 2016-01-0150

Page 55: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

9단계: AWS DMS 마이그레이션 작업 생성 및 실행

3. [Next]를 선택합니다.

9단계: AWS DMS 마이그레이션 작업 생성 및 실행AWS DMS 작업을 사용하면 마이그레이션할 스키마와 마이그레이션 유형을 지정할 수 있습니다. 기존 데이터를 마이그레이션하거나, 지속적 변경 사항을 복제하거나, 또는 데이터 변경 사항만 복제할 수 있습니다. 이연습에서는 기존 데이터만을 마이그레이션합니다.

마이그레이션 작업을 생성하려면

1. [Create Task] 페이지에서 작업 옵션을 지정합니다. 다음 표는 설정에 대한 설명입니다.

이 파라미터의 경우... 수행할 작업

[Task name] migratehrschema를 입력합니다.

[Task description] 작업 설명을 입력합니다.

[Source endpoint] orasource(Amazon RDS Oracle 엔드포인트)를 표시합니다.

[Target endpoint] aurtarget(Amazon Aurora MySQL 엔드포인트)을 표시합니다.

API 버전 2016-01-0151

Page 56: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

9단계: AWS DMS 마이그레이션 작업 생성 및 실행

이 파라미터의 경우... 수행할 작업

복제 인스턴스 DMSdemo-repserver(이전 단계에서 생성한 AWS DMS복제 인스턴스)를 표시합니다.

[Migration type] [Migrate existing data] 옵션을 선택합니다.

[Start task on create] 이 옵션을 선택합니다.

이 페이지는 다음과 같이 보여야 합니다.

2. [Task Settings]에서 [Target table preparation mode]에 대해 [Do nothing]을 선택합니다. 그 이유는 스키마 마이그레이션 도구를 통해 이미 테이블을 생성했기 때문입니다. 이 마이그레이션에 LOB가 포함되어있지 않기 때문에 기본값을 LOB 설정으로 두어야 합니다.

선택적으로 [Enable logging]을 선택할 수 있습니다. 로깅을 활성화할 경우, CloudWatch 로그 생성에 대해 Amazon CloudWatch 요금이 추가로 부과됩니다. 이 연습에서는 로그가 필요하지 않습니다.

API 버전 2016-01-0152

Page 57: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

9단계: AWS DMS 마이그레이션 작업 생성 및 실행

3. [Advanced] 설정을 기본값으로 둡니다.4. 테이블 매핑을 선택하고, 매핑 방법에서 기본값을 선택한 다음 마이그레이션할 스키마에서 HR을 선택합

니다.

완료한 섹션은 다음과 같이 보여야 합니다.

5. [Create task]를 선택합니다. 작업이 즉시 시작됩니다.

API 버전 2016-01-0153

Page 58: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

10단계: AWS DMS 마이그레이션이 성공적으로 완료되었는지 확인

[Tasks] 섹션에는 마이그레이션 작업 상태가 나타납니다.

작업을 설정할 때 [Enable logging]을 선택하면 작업을 모니터링할 수 있습니다. 그리고 나서 다음 작업을 수행하여 CloudWatch 측정치를 확인할 수 있습니다.

진행 중인 데이터 마이그레이션 작업을 모니터링하려면

1. 탐색 창에서 [Tasks]를 선택합니다.2. 마이그레이션 작업(migratehrschema)을 선택합니다.3. [Task monitoring] 탭을 선택하고 이 탭에서 진행 중인 작업을 모니터링합니다.

10단계: AWS DMS 마이그레이션이 성공적으로 완료되었는지 확인마이그레이션 작업이 완료되면, 작업 결과를 예상 결과와 비교할 수 있습니다.

마이그레이션 작업 결과를 예상 결과와 비교하려면

1. 탐색 창에서 [Tasks]를 선택합니다.2. 마이그레이션 작업(migratehrschema)을 선택합니다.3. 다음 그림과 같이 [Table statistics] 탭을 선택합니다.

API 버전 2016-01-0154

Page 59: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

10단계: AWS DMS 마이그레이션이 성공적으로 완료되었는지 확인

4. SQL Workbench/J를 사용하여 Amazon Aurora MySQL 인스턴스에 연결하고 다음 그림과 같이 SQL 스크립트를 실행하여 데이터베이스 테이블을 Oracle에서 Aurora MySQL로 마이그레이션했는지 여부를확인합니다.

SELECT TABLE_NAME,TABLE_ROWS FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'HR' and TABLE_TYPE='BASE TABLE' order by 1;

API 버전 2016-01-0155

Page 60: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

11단계: 연습 리소스 삭제

5. 다음 쿼리를 실행하여 테이블에서 관계를 확인합니다. 이 쿼리는 10명이 넘는 직원이 있는 부서를 확인합니다.

SELECT B.DEPARTMENT_NAME,COUNT(*) FROM HR.EMPLOYEES A,HR.DEPARTMENTS B WHERE A.DEPARTMENT_ID=B.DEPARTMENT_ID GROUP BY B.DEPARTMENT_NAME HAVING COUNT(*) > 10 ORDER BY 1;

이 쿼리는 다음과 비슷한 내용을 출력해야 합니다.

department_name count(*)Sales 34Shipping 45

이제 Amazon RDS Oracle DB 인스턴스에서 Amazon Aurora MySQL로의 데이터베이스 마이그레이션을 완료했습니다.

11단계: 연습 리소스 삭제이 연습을 완료한 뒤에는 다음 단계를 수행하여 이 연습에서 사용된 추가 AWS 리소스에 요금이 부과되지 않도록 다음 단계를 수행합니다. 일부 리소스가 다른 리소스에 대한 종속성이 있는 경우 이 리소스는 삭제할 수없기 때문에 단계를 순서대로 수행해야 합니다.

AWS DMS 리소스를 삭제하려면

1. 탐색 창에서 작업을 선택하고, 마이그레이션 작업(migratehrschema)을 선택한 다음 삭제를 선택합니다.

2. 탐색 창에서 엔드포인트를 선택하고, Oracle 소스 엔드포인트(orasource)를 선택한 다음 삭제를 선택합니다.

3. Amazon Aurora MySQL 대상 엔드포인트(aurtarget)를 선택한 다음 삭제를 선택합니다.

API 버전 2016-01-0156

Page 61: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

다음 단계

4. 탐색 창에서 복제 인스턴스를 선택하고, 복제 인스턴스(DMSdemo-repserver)를 선택한 다음 삭제를선택합니다.

그런 다음 AWS CloudFormation 스택인 DMSdemo를 삭제해야 합니다.

AWS CloudFormation 스택을 삭제하려면

1. AWS Management 콘솔에 로그인한 다음 https://console.aws.amazon.com/cloudformation에서 AWSCloudFormation 콘솔을 엽니다.

AWS Identity and Access Management(IAM) 사용자로서 로그인한 경우에는 AWS CloudFormation 액세스를 위한 적절한 권한이 있어야 합니다.

2. CloudFormation 스택인 DMSdemo를 선택합니다.3. [ Actions]에서 [Delete stack]을 선택합니다.

스택 상태가 DELETE_IN_PROGRESS로 바뀌고, AWS CloudFormation이 DMSdemo 스택과 관련된 리소스를 정리합니다. AWS CloudFormation이 리소스 정리를 마치면 목록에서 스택을 제거합니다.

다음 단계다음 기능을 포함하여 이 연습에 포함되지 않은 AWS DMS의 다른 여러 기능을 살펴볼 수 있습니다.

• 데이터의 지속적 복제를 위한 AWS DMS CDC(변경 데이터 캡처) 기능입니다.• 마이그레이션 프로세스의 일부로서 변환을 지정하고 선택한 스키마에 적용할 수 있는 변환 작업입니다.

자세한 내용은 the AWS DMS 설명서를 참조하십시오.

API 버전 2016-01-0157

Page 62: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

사전 조건

SQL Server 데이터베이스를 AmazonAurora MySQL로 마이그레이션

이 연습을 통해 AWS Schema Conversion Tool(AWS SCT) 및 AWS Database Migration Service(AWSDMS)를 사용하여 Microsoft SQL Server 데이터베이스를 MySQL과 호환되는 Amazon Aurora 데이터베이스로 마이그레이션하는 방법을 배울 수 있습니다. AWS DMS는 SQL Server 원본의 데이터를 Aurora MySQL대상으로 마이그레이션합니다.

AWS DMS는 특히 데이터 마이그레이션과 관련되지 않은 보조 인덱스, 시퀀스, 기본값, 저장 프로시저, 트리거, 동의어, 보기 및 기타 스키마 객체를 마이그레이션하지 않습니다. 이러한 객체를 Aurora MySQL 대상으로 마이그레이션하려면 AWS SCT를 사용합니다.

주제• 사전 조건 (p. 58)• 단계별 마이그레이션 (p. 59)• 문제 해결 (p. 78)

사전 조건이 연습을 완료하려면 다음 사전 요구 사항이 충족되어야 합니다.

• Amazon Relational Database Service(Amazon RDS), 해당되는 데이터베이스 기술 및 SQL을 이해합니다.• AWS 리전에서 Amazon RDS 및 AWS Database Migration Service(AWS DMS) 인스턴스를 시작하는 데

사용되는 AWS Identity and Access Management(IAM) 자격 증명으로 AWS 계정을 생성합니다. IAM 자격증명에 대한 자세한 내용은 IAM 사용자 생성을 참조하십시오.

• Amazon Virtual Private Cloud(Amazon VPC) 서비스 및 보안 그룹을 이해합니다. Amazon RDS와 함께Amazon VPC를 사용하는 방법에 대한 자세한 내용은 Amazon Virtual Private Cloud(VPC) 및 AmazonRDS 단원을 참조하십시오. Amazon RDS 보안 그룹에 대한 자세한 내용은 Amazon RDS 보안 그룹을 참조하십시오.

• AWS DMS의 지원 기능 및 제한 사항에 대해 이해합니다. AWS DMS에 대한 자세한 내용은 AWSDatabase Migration Service란 무엇입니까?를 참조하십시오.

• Microsoft SQL Server를 원본으로, Amazon Aurora MySQL을 대상으로 사용하여 작업하는 방법을 이해합니다. 원본으로 SQL Server를 사용한 작업에 대한 자세한 내용은 SQL Server 데이터베이스를 AWSDatabase Migration Service에서 원본으로 사용을 참조하십시오. Aurora MySQL은 MySQL 호환 데이터베이스입니다. 대상으로 Aurora MySQL을 사용한 작업에 대한 자세한 내용은 AWS Database MigrationService에서 MySQL 호환 데이터베이스를 대상으로 사용을 참조하십시오.

• SQL Server 및 Aurora MySQL에 대해 지원되는 데이터 형식 변환 옵션을 이해합니다. 원본으로 사용되는SQL Server의 데이터 형식에 대한 자세한 내용은 Microsoft SQL Server용 원본 데이터 형식을 참조하십시오. 대상으로 사용되는 Aurora MySQL의 데이터 형식에 대한 자세한 내용은 MySQL용 대상 데이터 형식을참조하십시오.

• 대상 Aurora MySQL 데이터베이스 호스트의 규모를 조정합니다. DBA는 현재 원본 SQL Server 데이터베이스 호스트의 로드 프로필을 알고 있어야 합니다. CPU, 메모리 및 IOPS를 고려합니다. Amazon RDS를 사용하여 마이그레이션 후에 대상 데이터베이스 호스트의 규모를 늘리거나 줄일 수 있습니다. AuroraMySQL로 처음 마이그레이션하는 경우에는 성능 문제와 튜닝 기회를 고려하여 추가 용량을 확보하는 것이 좋습니다.

API 버전 2016-01-0158

Page 63: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

단계별 마이그레이션

• 원본 SQL Server 데이터베이스를 감사합니다. 각 스키마와 스키마 아래에 있는 모든 객체에 대해 객체가더 이상 사용되지 않는지 여부를 알아봅니다. 더 이상 사용되지 않는 경우 마이그레이션할 필요가 없으므로 원본 SQL Server 데이터베이스에서 이러한 객체를 사용 중지합니다.

• 두 마이그레이션 옵션, 즉 기존 데이터만 마이그레이션하는 옵션과 기존 데이터를 마이그레이션하고 지속적인 변경 내용을 복제하는 옵션 중에서 결정합니다.• 기존 데이터만 마이그레이션하는 경우 마이그레이션은 SQL Server 원본 데이터베이스에서 Aurora

MySQL 대상 데이터베이스로 전송되는 일회성 데이터 전송입니다. 원본 데이터베이스가 마이그레이션중에 변경 가능한 상태로 유지되는 경우 마이그레이션이 완료된 후에 이러한 변경 내용이 대상 데이터베이스에 적용되어야 합니다.

Note

SQL Server 데이터베이스가 Amazon RDS 데이터베이스인 경우 복제가 지원되지 않으므로 기존 데이터만 마이그레이션하는 옵션을 사용해야 합니다.

• 기존 데이터를 마이그레이션하고 지속적인 변경 내용을 복제하는 경우 사용할 수 있는 한 가지 옵션은원본 데이터베이스 변경 내용을 복제하는 것입니다. 복제 시 마이그레이션 프로세스 중에 원본 데이터베이스와 대상 데이터베이스가 서로 동기화 상태로 유지되어 데이터베이스 중단 시간이 감소될 수 있습니다. 이 옵션을 사용하는 경우 초기 동기화 작업을 완료하고 나서 MS-REPLICATION을 구성합니다. 이옵션을 사용하려면 Standard, Enterprise 또는 Developer SQL Server 에디션이 필요합니다. 데이터베이스 원본으로 사용할 각 SQL Server 인스턴스에 대해 MS-REPLICATION을 활성화합니다.

• 기존 데이터를 마이그레이션하고 지속적인 변경 내용을 복제하려는 경우 사용할 수 있는 또 한 가지 옵션은 복제 대신에 변경 데이터를 캡처(CDC)하는 것입니다. 이 옵션을 사용하면 AWS DMS가 데이터의지속적인 마이그레이션을 수행할 수 있습니다. CDC의 경우 AWS DMS는 CDC 테이블을 사용하여 지속적인 데이터베이스 마이그레이션을 활성화합니다. 이 옵션을 사용하려면 Enterprise 또는 DeveloperSQL Server 에디션이 필요합니다.

AWS DMS에 대한 자세한 내용은 AWS DMS 사용 설명서를 참조하십시오.

단계별 마이그레이션다음 단계에서는 Microsoft SQL Server 데이터베이스를 Amazon Aurora MySQL 데이터베이스로 마이그레이션하기 위한 지침을 제공합니다. 이러한 단계에서는 사전 조건 (p. 58)에 설명된 대로 원본 데이터베이스를 이미 준비했다고 가정합니다.

주제• 1단계: 로컬 컴퓨터에 SQL 드라이버와 AWS Schema Conversion Tool 설치 (p. 59)• 2단계: Microsoft SQL Server 원본 데이터베이스 구성 (p. 60)• 3단계: Aurora MySQL 대상 데이터베이스 구성 (p. 62)• 4단계: AWS SCT를 사용하여 SQL Server 스키마를 Aurora MySQL로 변환 (p. 62)• 5단계: AWS DMS 복제 인스턴스 생성 (p. 70)• 6단계: AWS DMS 원본 및 대상 엔드포인트 생성 (p. 71)• 7단계: AWS DMS 마이그레이션 작업 생성 및 실행 (p. 75)• 8단계: Aurora MySQL로 전환 (p. 78)

1단계: 로컬 컴퓨터에 SQL 드라이버와 AWS SchemaConversion Tool 설치먼저 로컬 컴퓨터에 SQL 드라이버와 AWS Schema Conversion Tool(AWS SCT)을 설치합니다.

API 버전 2016-01-0159

Page 64: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

2단계: Microsoft SQL Server 원본 데이터베이스 구성

SQL 클라이언트 소프트웨어를 설치하려면

1. Microsoft SQL Server용 JDBC 드라이버를 다운로드합니다.2. Aurora MySQL용 JDBC 드라이버를 다운로드합니다. Amazon Aurora MySQL은 MySQL 드라이버를 사

용합니다.3. AWS SCT 및 필수 JDBC 드라이버를 설치합니다.

a. AWS Schema Conversion Tool 사용 설명서에서 AWS Schema Conversion Tool 설치 및 업데이트를 참조하고 해당 링크를 선택하여 AWS SCT를 다운로드합니다.

b. AWS SCT를 시작하고 [Settings], [Global Settings]를 선택합니다.c. [Global Settings]에서 [Drivers]를 선택한 후 [Browse]를 선택하여 [Microsoft Sql Server Driver Path]

를 찾습니다. SQL Server용 JDBC 드라이버를 찾아서 [OK]를 선택합니다.d. [Browse]를 선택하여 [MySql Driver Path]를 찾습니다. Aurora MySQL용으로 다운로드한 JDBC 드

라이버를 찾아서 [OK]를 선택합니다.

e. [OK]를 선택하여 [Global Settings] 대화 상자를 닫습니다.

2단계: Microsoft SQL Server 원본 데이터베이스 구성SQL 드라이버 및 AWS Schema Conversion Tool을 설치한 후 원하는 데이터 마이그레이션 방식에 따라 여러 옵션 중 하나를 사용하여 Microsoft SQL Server 원본 데이터베이스를 구성할 수 있습니다.

SQL Server 원본 데이터베이스를 구성하려면

• 원본 데이터베이스를 구성할 때는 기존 데이터만을 마이그레이션하거나, 기존 데이터를 마이그레이션하고 지속적인 변경 내용을 복제하거나, 기존 데이터를 마이그레이션하고 변경 데이터 캡처(CDC)를 사용하도록 선택하여 지속적인 변경 내용을 복제할 수 있습니다. 이러한 옵션에 대한 자세한 내용은 사전요구 사항을 참조하십시오.

• 기존 데이터만 마이그레이션

API 버전 2016-01-0160

Page 65: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

2단계: Microsoft SQL Server 원본 데이터베이스 구성

SQL Server 데이터베이스에는 구성 단계가 필요하지 않습니다. 3단계: Aurora MySQL 대상 데이터베이스 구성 (p. 62) 섹션으로 이동할 수 있습니다.

Note

SQL Server 데이터베이스가 Amazon RDS 데이터베이스인 경우 복제가 지원되지 않으므로기존 데이터만 마이그레이션하는 옵션을 사용해야 합니다.

• 기존 데이터 마이그레이션과 지속적인 변경 복제

Note

복제하려면 복제할 모든 테이블에 대해 기본 키가 필요합니다. 테이블에 기본 키가 정의되지않은 경우 CDC 사용을 고려해 보십시오.

MS-REPLICATION을 구성하려면 다음 단계를 완료합니다.

1. Microsoft SQL Server Management Studio에서 [Replication] 폴더의 컨텍스트(마우스 오른쪽 버튼을 클릭) 메뉴를 열고 나서 [Configure Distribution]을 선택합니다.

2. [Distributor] 단계에서 [db_name will act as its own distributor]를 선택합니다. SQL Server는 배포데이터베이스와 로그를 생성합니다.

자세한 내용은 Microsoft 설명서를 참조하십시오.

구성이 완료되면 복제에 대해 서버가 활성화됩니다. 배포 데이터베이스가 제 위치에 있거나, 원격배포 데이터베이스를 사용하도록 서버를 구성했습니다.

• 기존 데이터를 마이그레이션하고 변경 데이터 캡처(CDC)를 사용하여 지속적인 변경 내용 복제

MS-CDC를 구성하려면 다음 단계를 완료합니다.

1. SYSADMIN 역할 멤버십이 지정된 로그인을 사용하여 SLQ Server에 연결합니다.2. 마이그레이션되는 데이터를 포함하는 각 데이터베이스마다 데이터베이스 컨텍스트 내에서 다음

명령을 실행합니다.

use [DBname]EXEC sys.sp_cdc_enable_db

3. 진행 중인 마이그레이션용으로 구성할 각 테이블마다 다음 명령을 실행합니다.

EXEC sys.sp_cdc_enable_table @source_schema = N'schema_name', @source_name = N'table_name', @role_name = NULL;

자세한 내용은 Microsoft 설명서를 참조하십시오.

Note

• AlwaysOn 가용성 그룹에 포함되는 데이터베이스를 마이그레이션하려는 경우 마이그레이션용으로 복제를 사용하는 것이 좋습니다. 이 옵션을 사용하려면 게시를 활성화하고 AlwaysOn 가용성그룹의 각 노드마다 배포 데이터베이스를 구성해야 합니다. 추가로, 가용성 그룹 데이터베이스를현재 호스팅 중인 서버 이름이 아닌 데이터베이스의 가용성 그룹 리스너 이름을 대상 서버 이름으로 사용하고 있는지 확인합니다. 이러한 요구 사항은 클러스터의 각 SQL Server 인스턴스에 적용되며 가용성 그룹 리스너를 사용하여 구성하면 안 됩니다.

• 데이터베이스가 MS-REPLICATION 또는 MS-CDC에 지원되지 않는 경우(예를 들면 SQL Server의 Workgroup 버전을 실행 중인 경우), INSERT 및 DELETE 문 같은 일부 변경 내용을 여전히 캡

API 버전 2016-01-0161

Page 66: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

3단계: Aurora MySQL 대상 데이터베이스 구성

처할 수 있지만, UPDATE 및 TRUNCATE TABLE 같은 다른 DML 문은 캡처되지 않습니다. 그러므로 연속 데이터 복제를 이용한 마이그레이션은 이 구성에서는 권장되지 않으며, 대신에 고정 일회성 마이그레이션(또는 반복 일회성 전체 마이그레이션)을 고려해야 합니다.

MS-REPLICATION 및 MS-CDC 사용에 대한 자세한 내용은 Configuring a Microsoft SQL Server Databaseas a Replication Source for AWS Database Migration Service 단원을 참조하십시오.

3단계: Aurora MySQL 대상 데이터베이스 구성AWS DMS는 SQL Server 원본에서 Amazon Aurora MySQL 대상으로 데이터를 마이그레이션합니다. 이 단계에서는 Aurora MySQL 대상 데이터베이스를 구성합니다.

1. 대상 데이터베이스에 연결할 AWS DMS 사용자를 생성하고, 수퍼유저 또는 필요한 개인 권한을 부여하거나 Amazon RDS의 경우 마스터 사용자 이름을 사용합니다.

또는 권한을 기존 사용자에게 부여할 수 있습니다.

CREATE USER 'aurora_dms_user' IDENTIFIED BY 'password';

GRANT ALTER, CREATE, DROP, INDEX, INSERT, UPDATE, DELETE, SELECT ON target_database.* TO 'aurora_dms_user';

2. AWS DMS에서는 awsdms_control 데이터베이스의 대상에 제어 테이블을 사용합니다. 다음 명령을사용하여 사용자에게 awsdms_control 데이터베이스에 필요한 액세스 권한이 있는지 확인합니다.

GRANT ALL PRIVILEGES ON awsdms_control.* TO 'aurora_dms_user';FLUSH PRIVILEGES;

4단계: AWS SCT를 사용하여 SQL Server 스키마를Aurora MySQL로 변환데이터를 Amazon Aurora MySQL로 마이그레이션하기 전에 AWS Schema Conversion Tool(AWS SCT)을사용하여 Microsoft SQL Server 스키마를 Aurora MySQL 스키마로 변환하십시오.

SQL Server 스키마를 Aurora MySQL 스키마로 변환하려면

1. AWS SCT에서 [File], [New Project]를 선택합니다. 이름이 AWS Schema Conversion Tool SQLServer to Aurora MySQL인 새 프로젝트를 생성합니다.

2. [New Project] 대화 상자에서 다음 정보를 입력한 다음 [OK]를 선택합니다.

파라미터 설명

[프로젝트 이름] AWS Schema Conversion Tool SQL Server toAurora MySQL을 입력합니다.

위치 기본 [Projects] 폴더와 기본 [Transactional Database(OLTP)] 옵션을 사용합니다.

API 버전 2016-01-0162

Page 67: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

4단계: AWS SCT를 사용하여 SQLServer 스키마를 Aurora MySQL로 변환

파라미터 설명

[Source Database Engine] [Microsoft SQL Server]를 선택합니다.

[Target Database Engine] [Amazon Aurora(MySQL compatible)]를 선택합니다.

3. [Connect to Microsoft SQL Server]를 선택합니다. [Connect to Microsoft SQL Server] 대화 상자에서 다음 정보를 입력한 후 [Test Connection]을 선택합니다.

파라미터 설명

[Server name] 서버 이름을 입력합니다.

[Server port] SQL Server 포트 번호를 입력합니다. 기본값은 1433입니다.

Instance name SQL Server 데이터베이스 인스턴스 이름을 입력합니다.

사용자 이름 SQL Server 관리자의 사용자 이름을 입력합니다.

[Password] 관리 사용자 암호를 입력합니다.

API 버전 2016-01-0163

Page 68: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

4단계: AWS SCT를 사용하여 SQLServer 스키마를 Aurora MySQL로 변환

4. [OK]를 선택하여 경고 상자를 닫습니다. 그런 다음 [OK]를 선택하여 대화 상자를 닫고 SQL Server DB인스턴스와의 연결을 시작합니다. SQL Server DB 인스턴스의 데이터베이스 구조가 표시됩니다.

5. [Connect to Amazon Aurora(MySQL 호환)]를 선택합니다. [Connect to Amazon Aurora(MySQL 호환)]대화 상자에서 다음 정보를 입력한 후 [Test Connection]을 선택합니다.

파라미터 설명

[Server name] 서버 이름을 입력합니다.

[Server port] SQL Server 포트 번호를 입력합니다. 기본값은 3306입니다.

사용자 이름 Aurora MySQL 관리자의 사용자 이름을 입력합니다.

[Password] 관리 사용자 암호를 입력합니다.

API 버전 2016-01-0164

Page 69: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

4단계: AWS SCT를 사용하여 SQLServer 스키마를 Aurora MySQL로 변환

6. [OK]를 선택하여 경고 상자를 닫습니다. 그런 다음 [OK]를 선택하여 대화 상자를 닫고 Aurora MySQLDB 인스턴스와의 연결을 시작합니다.

7. 마이그레이션할 스키마에 대한 컨텍스트(마우스 오른쪽 버튼 클릭) 메뉴를 열고 나서 [Convert schema]를 선택합니다.

API 버전 2016-01-0165

Page 70: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

4단계: AWS SCT를 사용하여 SQLServer 스키마를 Aurora MySQL로 변환

8. 확인 메시지에서 [Yes]를 선택합니다. 그런 다음 AWS SCT는 스키마를 대상 데이터베이스 형식으로 변환합니다.

API 버전 2016-01-0166

Page 71: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

4단계: AWS SCT를 사용하여 SQLServer 스키마를 Aurora MySQL로 변환

AWS SCT는 스키마를 분석하고 데이터베이스 마이그레이션 평가 보고서를 생성하여 Aurora MySQL로변환합니다.

9. [View]에서 [Assessment Report View]를 선택하여 보고서를 확인합니다.

보고서는 변환이 성공적으로 수행되는 데 필요한 수동 변경의 양과 각 객체 유형별로 구분됩니다.

API 버전 2016-01-0167

Page 72: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

4단계: AWS SCT를 사용하여 SQLServer 스키마를 Aurora MySQL로 변환

일반적으로 패키지, 절차 및 기능은 매우 세부적으로 사용자 지정된 PL/SQL 코드를 포함하므로 해결할문제가 있을 가능성이 높습니다. AWS SCT도 이러한 객체를 수정하는 방법에 대한 힌트를 제공합니다.

10. [Action Items] 탭을 선택합니다.

[Action Items] 탭에는 주의를 요하는 각 객체에 대한 각 문제가 표시됩니다.

각 변환 문제마다 다음 작업 중 하나를 완료할 수 있습니다.• AWS SCT에서는 객체를 대상 Aurora MySQL 데이터베이스로 변환할 수 있도록 원본 SQL Server

데이터베이스에서 객체를 수정합니다.

1. 원본 SQL Server 데이터베이스에서 객체를 수정합니다.2. 이전 단계를 반복하여 스키마를 변환하고 평가 보고서를 확인합니다.3. 필요할 경우 변환 문제가 없을 때까지 이 프로세스를 반복합니다.

API 버전 2016-01-0168

Page 73: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

4단계: AWS SCT를 사용하여 SQLServer 스키마를 Aurora MySQL로 변환

4. [Main View]를 [View]에서 선택합니다. 대상 Aurora MySQL 스키마에 대한 컨텍스트 메뉴를 열고(마우스 오른쪽 버튼으로 클릭) [Apply to database]를 선택하여 스키마 변경 내용을 AuroraMySQL 데이터베이스에 적용합니다. 그런 다음 스키마 변경 내용을 적용할지를 확인합니다.

• 대상 Aurora MySQL 데이터베이스에서 스크립트를 적용하기 전에 원본 스키마를 수정하는 대신에AWS SCT에 의해 생성된 스크립트를 수정합니다.

1. [Main View]를 [View]에서 선택합니다. 대상 Aurora MySQL 스키마 이름에 대한 컨텍스트를 열고(마우스 오른쪽 버튼으로 클릭) [Save as SQL]을 선택합니다. 다음에는 스크립트의 이름과대상을 선택합니다.

2. 스크립트에서 객체를 수정하여 변환 문제를 해결합니다.

또한 마이그레이션 시 문제를 유발할 수 있으므로 스크립트에서 외래 키 제약 조건, 트리거 및보조 인덱스를 제외할 수도 있습니다. 마이그레이션이 완료된 후에는 Aurora MySQL 데이터베이스에서 이러한 객체를 생성할 수 있습니다.

3. 대상 Aurora MySQL 데이터베이스에서 스크립트를 실행합니다.

자세한 내용은 AWS Schema Conversion Tool 사용 설명서의 Converting Database Schema toAmazon RDS by Using the AWS Schema Conversion Tool 단원을 참조하십시오.

11. (선택 사항) AWS SCT를 사용하여 매핑 규칙을 생성합니다.

a. [Settings]에서 [Mapping Rules]를 선택합니다.

API 버전 2016-01-0169

Page 74: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

5단계: AWS DMS 복제 인스턴스 생성

b. 작업 항목에 따라 요구되는 추가 매핑 규칙을 생성합니다.c. 매핑 규칙을 저장합니다.d. [Export script for DMS]를 선택하여 AWS DMS 작업에서 사용할 모든 변환의 JSON 형식을 내보냅

니다. Save를 선택합니다.

5단계: AWS DMS 복제 인스턴스 생성원본과 대상 데이터베이스 간의 스키마 구조를 검증한 후 이 연습의 핵심 부분인 데이터 마이그레이션을 계속 진행합니다. 다음 그림은 마이그레이션 프로세스의 상위 수준 보기를 보여줍니다.

AWS DMS 복제 인스턴스는 원본과 대상 간에 실제 데이터 마이그레이션을 수행합니다. 복제 인스턴스도 마이그레이션 중에 트랜잭션 로그를 캐시합니다. 복제 인스턴스에 보유한 CPU 및 메모리 용량은 마이그레이션에 소요되는 전체 시간에 영향을 미칩니다.

AWS DMS 사용 관련 모범 사례에 대한 자세한 내용은 AWS Database Migration Service 모범 사례를 참조하십시오.

AWS DMS 복제 인스턴스를 생성하려면

1. AWS Management 콘솔에 로그인하고 https://console.aws.amazon.com/dms/에서 AWS DMS 콘솔을엽니다.

2. 이 콘솔에서 [Create migration]을 선택합니다. AWS Identity and Access Management(IAM) 사용자로로그인한 경우 AWS DMS에 액세스하기 위한 적절한 권한이 있어야 합니다. 필요한 권한에 대한 자세한내용은 AWS DMS를 사용하는 데 필요한 IAM 권한을 참조하십시오.

3. Welcome 페이지에서 [Next]를 선택하여 데이터베이스 마이그레이션을 시작합니다.4. [Create replication instance] 페이지에서 복제 인스턴스 정보를 지정합니다.

파라미터 설명

이름 복제 인스턴스의 이름을 선택합니다. 여러 복제 서버를 사용중이거나 계정을 공유하고 있는 경우 다양한 서버 간에 빨리구분할 수 있는 이름을 선택합니다.

설명 간단한 설명을 입력합니다.

인스턴스 클래스 생성할 복제 서버의 유형을 선택합니다. 인스턴스 클래스의각 크기 및 유형이 CPU, 메모리 및 I/O 용량을 증가시킵니다. 일반적으로 t2 인스턴스는 저로드 작업용이며, c4 인스턴스는 고로드 및 기타 작업용입니다.

VPC 복제 인스턴스를 시작할 가상 프라이빗 클라우드(VPC)를선택합니다. 가능한 경우 원본이나 대상 데이터베이스(또는이 모두)가 상주하는 동일한 VPC를 선택합니다.

API 버전 2016-01-0170

Page 75: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

6단계: AWS DMS 원본 및 대상 엔드포인트 생성

파라미터 설명

[Multi-AZ] [Yes]를 선택하는 경우 AWS DMS에서는 기본 복제 서버 관련 문제가 있는 경우 장애 조치용으로 사용할 두 번째 복제서버를 다른 가용 영역에 생성합니다.

[Publicly accessible] 복제 서버가 상주하는 VPC 외부에 원본이나 대상 데이터베이스가 상주하는 경우 복제 서버 정책을 공개적으로 액세스할 수 있도록 설정해야 합니다.

5. [Advanced] 섹션에서는 다음 정보를 지정합니다.

파라미터 설명

[Allocated storage (GB)] 기록 작업 로그를 포함하여 AWS DMS 작업 로그에 필요한복제 서버의 스토리지 크기입니다. AWS DMS도 디스크 스토리지를 사용하여 특정 데이터를 원본 데이터베이스에서대상 데이터베이스로 복제하는 동안 캐시합니다. 또한, 스토리지가 많을수록 일반적으로 서버에서 IOPS가 향상됩니다.

[Replication Subnet Group] 다중-AZ 구성에서 실행 중인 경우 두 개 이상의 서브넷 그룹이 필요합니다.

[Availability zone] 일반적으로 대상 데이터베이스와 동일한 가용 영역에 기본할당 서버가 있으면 성능이 향상됩니다.

VPC Security Group(s) 보안 그룹을 사용하면 VPC로 수신 및 발신을 제어할 수 있습니다. AWS DMS에서는 복제 서버가 시작되는 VPC와 하나 이상의 보안 그룹을 연결할 수 있습니다.

[KMS master key] AWS DMS를 통해 모든 데이터가 KMS 암호화 키를 사용하여 유휴 상태로 암호화됩니다. 기본적으로 AWS DMS는 사용자의 복제 서버에서 새 암호화 키를 생성합니다. 하지만기존 키를 사용하도록 선택할 수도 있습니다.

KMS 마스터 키에 대한 자세한 내용은 암호화 키 설정 및 KMS 권한 지정을 참조하십시오.6. [다음]을 클릭합니다.

6단계: AWS DMS 원본 및 대상 엔드포인트 생성복제 인스턴스를 생성 중인 동안 AWS Management 콘솔을 사용하여 원본 및 대상 데이터베이스 엔드포인트를 지정할 수 있습니다. 하지만 복제 인스턴스가 연결에 사용되므로 복제 인스턴스가 생성된 후에만 연결을 테스트할 수 있습니다.

콘솔을 사용하여 원본 또는 대상 데이터베이스 엔드포인트를 지정하려면

1. AWS DMS 콘솔에서 원본 SQL Server 데이터베이스와 대상 Aurora MySQL 데이터베이스의 연결 정보를 지정합니다. 다음 표는 원본 설정에 대한 설명입니다.

파라미터 설명

[Endpoint Identifier] SQLServerSource와 같은 이름을 입력합니다.

소스 엔진 [sqlserver]를 선택합니다.

API 버전 2016-01-0171

Page 76: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

6단계: AWS DMS 원본 및 대상 엔드포인트 생성

파라미터 설명

[Server name] SQL Server DB 인스턴스 서버 이름을 지정합니다.

포트 데이터베이스의 포트 번호를 입력합니다. SQL Server의 기본값은 1433입니다.

[SSL mode] 연결 트래픽에 대해 암호화를 활성화해야 하는 경우 SSL 모드를 선택합니다.

사용자 이름 원본 데이터베이스에 연결하는 데 사용할 사용자의 이름을입력합니다.

암호 사용자 암호를 입력합니다.

데이터베이스 이름 SQL Server 데이터베이스 이름을 지정합니다.

다음 표에서는 고급 원본 설정을 설명합니다.

파라미터 설명

[Extra connection attributes] AWS DMS의 동작을 변경하거나 기능을 추가하기 위해 엔드포인트에서 설정할 수 있는 추가 파라미터입니다. 여기에나열된 속성은 가장 관련도가 높은 일부 속성입니다. 세미콜론(;)을 사용하여 여러 항목을 구분합니다.

• safeguardpolicy - AWS DMS에서 로그를 읽는동안 트랜잭션 로그가 잘리지 않도록 트랜잭션을 열어서 SQL Server의 작동을 변경합니다. 유효한 값은 EXCLUSIVE_AUTOMATIC_TRUNCATION 또는RELY_ON_SQL_SERVER_REPLICATION_AGENT(기본값)입니다.

• useBCPFullLoad - AWS DMS에 데이터 로드 시BCP(대량 복사)를 사용하도록 지정합니다. 유효한 값은Y 또는 N입니다. 원본 테이블에 없는 자격 증명 열이 대상테이블에 들어 있는 경우 파라미터를 N으로 설정하여 테이블 로드 시 BCP 사용을 비활성화해야 합니다.

• BCPPacketSize - BCP가 데이터 로드용으로 활성화된경우 BCP에 사용되는 최대 패킷 크기를 입력합니다. 유효한 값은 1 – 100000(기본값 16384)입니다.

• controlTablesFileGroup - 데이터베이스에서 AWSDMS 프로세스가 생성하는 제어 테이블에 사용할 파일 그룹을 지정합니다.

[KMS master key] 복제 인스턴스의 스토리지를 암호화하기로 한 경우 KMS 마스터 키를 입력합니다.

다음 표는 대상 설정에 대한 설명입니다.

파라미터 설명

[Endpoint Identifier] Auroratarget와 같은 이름을 입력합니다.

[Target Engine] [aurora]를 선택합니다.

API 버전 2016-01-0172

Page 77: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

6단계: AWS DMS 원본 및 대상 엔드포인트 생성

파라미터 설명

[Server name] 기본 인스턴스에 대해 Aurora MySQL DB 서버 이름을 지정합니다.

포트 데이터베이스의 포트 번호를 입력합니다. Aurora MySQL의기본값은 3306입니다.

[SSL mode] [None]을 선택합니다.

사용자 이름 대상 데이터베이스에 연결하는 데 사용할 사용자의 이름을입력합니다.

암호 사용자 암호를 입력합니다.

다음 표에서 고급 대상 설정을 설명합니다.

파라미터 설명

[Extra connection attributes] AWS DMS의 동작을 변경하거나 기능을 추가하기 위해 엔드포인트에서 설정할 수 있는 추가 파라미터입니다. 여기에나열된 속성은 가장 관련도가 높은 일부 속성입니다. 세미콜론을 사용하여 여러 항목을 구분합니다.

• targetDbType - 기본적으로 AWS DMS는 마이그레이션되는 각 스키마마다 다른 데이터베이스를 생성합니다.여러 스키마를 단일 데이터베이스로 결합하려면 이 옵션을 targetDbType=SPECIFIC_DATABASE로 설정합니다.

• initstmt - 이 옵션을 사용하여 MySQL initstmt 연결파라미터를 호출하고 MySQL initstmt에서 허용하는것을 허용할 수 있습니다. Aurora MySQL 대상의 경우 이옵션을 initstmt=SET FOREIGN_KEY_CHECKS=0으로설정하여 외래 키 검사를 비활성화하는 것이 매우 유용합니다.

[KMS master key] 복제 인스턴스의 스토리지를 암호화하기로 한 경우 KMS 마스터 키를 입력합니다.

다음은 완료한 페이지의 예입니다.

API 버전 2016-01-0173

Page 78: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

6단계: AWS DMS 원본 및 대상 엔드포인트 생성

추가 연결 속성에 대한 자세한 내용은 Using Extra Connection Attributes with AWS Database MigrationService를 참조하십시오.

2. 엔드포인트와 복제 인스턴스가 생성된 후, 원본 및 대상 엔드포인트에 대해 [Run test]를 선택하여 엔드포인트 연결을 테스트합니다.

3. 대상 데이터베이스에서 외래 키 제약 조건 및 트리거를 삭제합니다.

전체 로드 프로세스를 수행하는 동안 AWS DMS는 특정 순서로 테이블을 로드하지 않으므로 상위 테이블 데이터 전에 하위 테이블 데이터를 로드할 수도 있습니다. 따라서 외래 키 제약 조건이 활성화되는 경우 이러한 제약 조건을 위반하게 될 수도 있습니다. 또한 트리거가 대상 데이터베이스에 있는 경우 이러한 트리거가 AWS DMS에 의해 로드되는 데이터를 예기치 않은 방식으로 변경할 수도 있습니다.

ALTER TABLE 'table_name' DROP FOREIGN KEY 'fk_name'; DROP TRIGGER 'trigger_name';

4. 대상 데이터베이스에서 외래 키 제약 조건과 트리거를 삭제한 경우 외래 키 제약 조건과 트리거를 활성화하는 스크립트를 생성합니다.

나중에 마이그레이션된 데이터베이스에 추가하려는 경우에는 이 스크립트만 실행하면 됩니다.5. (선택 사항) 대상 데이터베이스에 보조 인덱스를 삭제합니다.

API 버전 2016-01-0174

Page 79: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

7단계: AWS DMS 마이그레이션 작업 생성 및 실행

보조 인덱스(모든 인덱스와 마찬가지로)로 인해 데이터를 테이블로 전체 로드하는 속도가 느려질 수 있습니다. 로딩 프로세스를 수행하는 동안 보조 인덱스를 유지 및 업데이트해야 하기 때문입니다. 이러한인덱스를 삭제하면 전체 로드 프로세스의 성능이 향상될 수 있습니다. 인덱스를 삭제하는 경우 전체 로드가 완료된 후 나중에 인덱스를 다시 추가해야 합니다.

ALTER TABLE 'table_name' DROP INDEX 'index_name';

6. [Next]를 선택합니다.

7단계: AWS DMS 마이그레이션 작업 생성 및 실행AWS DMS 작업을 사용하면 마이그레이션할 스키마와 마이그레이션 유형을 지정할 수 있습니다. 기존 데이터를 마이그레이션하거나, 지속적 변경 사항을 복제하거나, 또는 데이터 변경 사항만 복제할 수 있습니다.

마이그레이션 작업을 생성하려면

1. AWS DMS 콘솔의 [Create task] 페이지에서 작업 옵션을 지정합니다. 다음 표는 설정에 대한 설명입니다.

파라미터 설명

[Task name] 마이그레이션 작업의 이름을 입력합니다.

[Task description] 작업 설명을 입력합니다.

[Source endpoint] SQL Server 소스 엔드포인트를 표시합니다.

계정에 두 개 이상의 엔드포인트가 있는 경우 목록에서 올바른 엔드포인트를 선택합니다.

[Target endpoint] Aurora MySQL 대상 엔드포인트를 표시합니다.

복제 인스턴스 AWS DMS 복제 인스턴스를 표시합니다.

[Migration type] 옵션을 선택합니다.

• [Migrate existing data] - AWS DMS에서 기존 데이터만마이그레이션합니다. 원본 데이터에 대한 변경 사항이 대상에 캡처 및 적용되지 않습니다. 전체 로드 기간 동안 중단을 감수할 수 있는 경우 이 옵션이 가장 간단한 마이그레이션 옵션입니다. 또한 이 옵션을 사용하여 데이터베이스의 테스트 사본을 생성할 수도 있습니다. 원본 SQLServer 데이터베이스가 Amazon RDS 데이터베이스인 경우 이 옵션을 선택해야 합니다.

• [Migrate existing data and replicate ongoing changes] -AWS DMS에서 기존 데이터를 마이그레이션하는 동안 변경 내용을 캡처합니다. AWS DMS에서는 대량 데이터를로드한 후에도 계속해서 변경 내용을 캡처하고 적용합니다. 결국 원본과 대상 데이터베이스는 동기화되어 중단 시간을 최소화할 수 있습니다.

• Replicate data changes only - 다른 방법을 사용하여 데이터를 대량 로드합니다. 이 접근 방식은 동종 마이그레이션에만 적용됩니다.

API 버전 2016-01-0175

Page 80: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

7단계: AWS DMS 마이그레이션 작업 생성 및 실행

파라미터 설명

[Start task on create] 대부분의 상황에서 이 옵션을 선택해야 합니다. 때로는 작업시작을 지연시켜야 할 수도 있습니다. 예를 들면 로깅 수준을 변경하려는 경우가 이에 해당합니다.

페이지는 다음과 비슷하게 보일 것입니다.

2. [Task settings]에서 설정을 지정합니다. 다음 표는 설정에 대한 설명입니다.

파라미터 설명

[Target table preparation mode] 옵션을 선택합니다.

• [Do nothing] - AWS DMS에서 테이블을 준비하기 위해 아무런 작업도 수행하지 않습니다. 테이블 구조는 동일하게유지되고 기존 데이터는 테이블에 남습니다. 이 메서드를사용하여 여러 시스템의 데이터를 통합할 수 있습니다.

• [Drop tables on target ] - AWS DMS에서 대상 테이블이자동으로 생성됩니다. AWS DMS에서 마이그레이션 전에 마이그레이션할 테이블을 삭제하고 다시 생성합니다.AWS DMS에서 이종 마이그레이션에 대해서만 테이블과기본 키를 생성합니다.

• [Truncate] - AWS DMS에서 대상 테이블을 로드하기 전에자릅니다. 대상 테이블이 존재하지 않으면 AWS DMS에서 대상 테이블을 생성합니다.

Important

AWS Schema Conversion Tool이 대상에 테이블을 이미 생성한 경우 [Do nothing] 또는 [Truncate]를 선택합니다.

[Include LOB columns in replication] 옵션을 선택합니다.

API 버전 2016-01-0176

Page 81: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

7단계: AWS DMS 마이그레이션 작업 생성 및 실행

파라미터 설명• Don't include LOB columns - LOB 데이터를 마이그레이

션하지 않습니다.• [Full LOB mode] - AWS DMS에서 크기와 관계 없이 원본

에서 대상으로 모든 LOB(대형 객체)를 마이그레이션합니다. 이 구성에서 AWS DMS에는 예상할 수 있는 최대 크기의 LOB에 대한 정보가 없습니다. 또한, LOB는 한 번에 하나씩, 조각별로 마이그레이션됩니다. 전체 LOB 모드는 상당히 느릴 수 있습니다.

• [Limited LOB mode] - AWS DMS에서 허용하는 최대 크기 LOB를 설정할 수 있습니다. 이 옵션을 사용하면 AWSDMS에서 메모리를 미리 할당하고 LOB 데이터를 대량으로 로드할 수 있습니다. 최대 LOB 크기를 초과하는 LOB는 잘리고 경고가 로그 파일에 발행됩니다. [ limited LOBmode]는 [full LOB mode]에 비해 상당한 성능 이점이 있습니다. 가능하다면 [limited LOB mode] 사용을 권장합니다.

[Max LOB size (kb)] [Limited LOB mode]를 선택하면 이 옵션은 AWS DMS에서 허용하는 최대 크기의 LOB를 결정합니다. 이 값보다 큰LOB는 이 값으로 잘립니다.

[Enable logging] [Enable logging]을 선택하는 것이 좋습니다. 로깅을 활성화할 경우 작업에서 발생하는 오류나 경고를 확인하고 이러한문제를 해결할 수 있습니다.

3. [Advanced] 설정을 기본값으로 둡니다.4. 4단계: AWS SCT를 사용하여 SQL Server 스키마를 Aurora MySQL로 변환 (p. 62)의 마지막 단계에

서 AWS SCT를 사용하여 매핑 규칙을 생성하고 내보낸 경우 [Table mappings]를 선택한 다음 [JSON]탭을 선택합니다. 그런 다음 [Enable JSON editing]을 선택하고 저장한 테이블 매핑을 입력합니다.

매핑 규칙을 생성하지 않은 경우 다음 단계로 이동합니다.5. [Create task]를 선택합니다. 작업이 즉시 시작됩니다.

[Tasks] 섹션에는 마이그레이션 작업 상태가 나타납니다.

설정하는 동안 [Enable logging]을 선택했으면 작업을 모니터링할 수 있습니다. 이제 Amazon CloudWatch 측정치를 볼 수 있습니다.

진행 중인 데이터 마이그레이션 작업을 모니터링하려면

1. 탐색 창에서 [Tasks]를 선택합니다.2. 마이그레이션 작업을 선택합니다.3. [Task monitoring] 탭을 선택하고 이 탭에서 진행 중인 작업을 모니터링합니다.

전체 로드가 완료되고 캐시된 변경 사항이 적용되면 작업 자체가 중지됩니다.4. 대상 Aurora MySQL 데이터베이스에서 외래 키 제약 조건과 트리거를 비활성화한 경우 이전에 저장한

스크립트를 사용하여 활성화합니다.

API 버전 2016-01-0177

Page 82: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드8단계: Aurora MySQL로 전환

5. 대상 Aurora MySQL 데이터베이스에서 이전에 보조 인덱스를 제거한 경우 다시 생성합니다.6. AWS DMS를 사용하여 변경 내용을 복제하도록 선택한 경우 AWS DMS 콘솔에서 작업에 대해 [Start/

Resume]을 선택하여 AWS DMS 작업을 시작합니다.

모니터링할 중요 복제 인스턴스 측정치는 다음과 같습니다.

• CPU• FreeableMemory• DiskQueueDepth• CDCLatencySource• CDCLatencyTarget

AWS DMS 작업은 원본 데이터베이스가 변경되면 대상 Aurora MySQL 데이터베이스도 최신 상태로 유지합니다. AWS DMS에서는 애플리케이션 마이그레이션을 구현할 시기가 도래할 때까지 작업의 모든테이블을 최신 상태로 유지합니다. 대상이 원본과 거의 비슷해지면 지연 시간이 0이거나 0에 가깝습니다.

자세한 내용은 AWS Database Migration Service 작업 모니터링을 참조하십시오.

8단계: Aurora MySQL로 전환다음 단계를 수행하여 Microsoft SQL Server 데이터베이스에서 Amazon Aurora MySQL 데이터베이스로 연결을 전환하십시오.

Aurora MySQL로 전환하려면

1. 스크립트 실행 및 클라이언트 연결 같은 모든 SQL Server 데이터베이스 종속성 및 작업을 종료합니다.SQL Server 에이전트 서비스가 중지되었는지 확인합니다.

다음 쿼리 시 연결 이와의 결과가 반환되지 않아야 합니다.

SELECT session_id, login_name from sys.dm_exec_sessions where session_id > 50;

2. 나머지 세션(소유 세션 이외)을 종료합니다.

KILL session_id;

3. SQL Server 서비스를 종료합니다.4. AWS DMS 작업으로 Amazon Aurora MySQL 데이터베이스에 SQL Server 데이터베이스의 최종 변경

내용을 적용합니다.5. AWS DMS 콘솔에서 작업에 대해 [Stop]을 선택하여 AWS DMS 작업을 중지하고, 작업을 중지할 것인지

를 확인합니다.

문제 해결Microsoft SQL Server를 원본 데이터베이스로, Amazon Aurora MySQL을 대상 데이터베이스로 사용하여 작업하는 경우 가장 일반적으로 문제가 발생하는 영역은 SQL Server 변경 데이터 캡처(CDC) 및 외래 키입니다.

API 버전 2016-01-0178

Page 83: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

문제 해결

• MS-CDC: 마이그레이션 시 SQL Server와 함께 MS-CDC를 사용하려는 경우 변경 데이터 캡처 중 오류 또는 권한 관련 오류가 일반적으로 발생합니다. 사전 요구 사항 중 하나가 충족되지 않은 경우 일반적으로 이러한 오류 유형이 발생합니다. 예를 들어, 자주 간과되는 사전 요구 사항은 전체 데이터베이스 백업입니다.

• 외래 키: 전체 로드 프로세스를 수행하는 동안 AWS DMS에서 테이블을 특정 순서대로 로드하지 않으므로상위 테이블 데이터 이전에 하위 테이블 데이터가 로드될 수도 있습니다. 따라서 외래 키 제약 조건이 활성화되는 경우 이러한 제약 조건을 위반하게 될 수도 있습니다. Aurora MySQL 대상 데이터베이스에서 외래키를 비활성화해야 합니다. 마이그레이션이 완료된 후 대상에서 외래 키를 활성화할 수 있습니다.

추가 팁을 보려면 AWS DMS 사용 설명서의 AWS DMS 문제 해결 단원을 참조하십시오.

SQL Server 관련 문제를 보려면 SQL Server 문제 해결 섹션을 참조하십시오.

• Microsoft SQL Server별 문제 해결

Aurora MySQL 문제를 해결하려면 Aurora MySQL 문제 해결 단원과 MySQL 문제 해결 단원을 참조하십시오.

• Amazon Aurora MySQL 관련 문제 해결• MySQL별 문제 해결

API 버전 2016-01-0179

Page 84: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

사전 조건

Oracle 데이터베이스를 PostgreSQL로 마이그레이션

이 연습을 통해 AWS DMS(AWS Database Migration Service) 및 AWS SCT(AWS Schema ConversionTool)를 사용하여 Oracle 데이터베이스를 PostgreSQL 데이터베이스로 마이그레이션하는 방법을 배울 수 있습니다.

AWS DMS는 데이터를 Oracle 원본에서 PostgreSQL 대상으로 마이그레이션합니다. 또한 AWS DMS는 원본 데이터베이스에 나타나는 DML(데이터 조작 언어) 및 지원되는 DDL(데이터 정의 언어) 변경 내용을 캡처하고 대상 데이터베이스에 이러한 변경 내용을 적용합니다. AWS DMS는 이러한 방식을 통해 원본 및 대상데이터베이스를 서로 동기적으로 유지합니다. 데이터 마이그레이션을 지원하기 위해 AWS SCT는 필요할 경우 대상의 테이블과 기본 키 인덱스를 비롯하여 대상 데이터베이스에서 마이그레이션된 스키마를 생성합니다.

그러나 AWS DMS는 특히 데이터 마이그레이션과 관련되지 않은 보조 인덱스, 시퀀스, 기본값, 저장된 절차,트리거, 동의어, 보기 및 기타 스키마 객체를 마이그레이션하지 않습니다. 이러한 객체를 PostgreSQL 대상으로 마이그레이션하려면 AWS SCT를 사용합니다.

주제• 사전 조건 (p. 80)• 단계별 마이그레이션 (p. 81)• 마이그레이션 롤백 (p. 102)• 문제 해결 (p. 102)

사전 조건이 연습을 완료하려면 다음 사전 요구 사항이 충족되어야 합니다.

• Amazon Relational Database Service(Amazon RDS), 해당되는 데이터베이스 기술 및 SQL을 이해합니다.• AWS 리전에서 Amazon RDS와 AWS DMS(AWS Database Migration Service) 인스턴스를 시작할 수 있도

록 해주는 AWS IAM(Identity and Access Management) 자격 증명이 있는 AWS 계정을 생성합니다. IAM자격 증명에 대한 자세한 내용은 IAM 사용자 생성을 참조하십시오.

• Amazon Virtual Private Cloud(Amazon VPC) 서비스 및 보안 그룹에 대해 이해합니다. Amazon RDS에서Amazon VPC를 사용하는 방법에 대한 정보는 Amazon Virtual Private Cloud(VPC) 및 Amazon RDS 단원을 참조하십시오. Amazon RDS 보안 그룹에 대한 자세한 내용은 Amazon RDS 보안 그룹을 참조하십시오.

• AWS DMS의 지원 기능 및 제한 사항에 대해 이해합니다. AWS DMS에 대한 자세한 내용은 AWSDatabase Migration Service란 무엇입니까?를 참조하십시오.

• Oracle 및 PostgreSQL에서 지원되는 데이터 형식 변환 옵션에 대해 이해합니다. 원본으로서 Oracle용 데이터 형식에 대한 정보는 AWS Database Migration Service에서 Oracle 데이터베이스를 원본으로 사용 을참조하십시오. 대상으로서 PostgreSQL용 데이터 형식에 대한 정보는 PostgreSQL 데이터베이스를 AWSDatabase Migration Service에서 원본으로 사용을 참조하십시오.

• 대상 PostgreSQL 데이터베이스 호스트의 규모를 조정합니다. DBA는 현재 원본 Oracle 데이터베이스 호스트의 로드 프로필을 알고 있어야 합니다. CPU, 메모리 및 IOPS를 고려합니다. RDS를 사용하여 마이그레이션 후에 대상 데이터베이스 호스트의 규모를 늘리거나 줄일 수 있습니다. PostgreSQL로 처음 마이그레이션하는 경우에는 성능 문제와 튜닝 기회를 고려하여 추가 용량을 확보하는 것이 좋습니다.

API 버전 2016-01-0180

Page 85: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

단계별 마이그레이션

• 원본 Oracle 데이터베이스를 감사합니다. 각 스키마와 스키마 아래에 있는 모든 객체에 대해 객체가 더 이상 사용되지 않는지 여부를 알아봅니다. 더 이상 사용되지 않는 경우 마이그레이션할 필요가 없으므로 원본 Oracle 데이터베이스에서 이러한 객체를 사용 중지합니다.

• 로드 용량이 허용되면 원본 데이터베이스에서 각 LOB 유형마다 최대 크기(kb)를 가져오고 나중을 위해 이정보를 보관합니다.

• 가능하면 BLOB, CLOB, NCLOB, LONG, LONG RAW 및 XMLTYPE이 있는 열을 Amazon S3, DynamoDB 또는 다른 데이터 스토어로 이동합니다. 이렇게 하면 원본 Oracle 데이터베이스가 간소화되어 보다 쉽게 마이그레이션할 수 있습니다. 또한 대상 PostgreSQL 데이터베이스에 대한 용량 요구 사항도 축소됩니다.

AWS DMS에 대한 자세한 내용은 AWS DMS 설명서를 참조하십시오.

단계별 마이그레이션다음 단계에서는 Oracle 데이터베이스를 PostgreSQL 데이터베이스로 마이그레이션하기 위한 지침을 제공합니다. 이러한 단계에서는 사전 조건 (p. 80)에 설명된 대로 원본 데이터베이스를 이미 준비했다고 가정합니다.

주제• 1단계: 로컬 컴퓨터에 SQL 드라이버와 AWS Schema Conversion Tool 설치 (p. 81)• 2단계: Oracle 원본 데이터베이스 구성 (p. 82)• 3단계: PostgreSQL 대상 데이터베이스 구성 (p. 85)• 4단계: AWS Schema Conversion Tool(AWS SCT)을 사용하여 Oracle 스키마를 PostgreSQL로 변환합

니다. (p. 85)• 5단계: AWS DMS 복제 인스턴스 생성 (p. 93)• 6단계: AWS DMS 원본 및 대상 엔드포인트 생성 (p. 94)• 7단계: AWS DMS 마이그레이션 작업 생성 및 실행 (p. 98)• 8단계: PostgreSQL로 전환 (p. 101)

1단계: 로컬 컴퓨터에 SQL 드라이버와 AWS SchemaConversion Tool 설치로컬 컴퓨터에 SQL 드라이버와 AWS Schema Conversion Tool(AWS SCT)을 설치합니다.

SQL 클라이언트 소프트웨어를 설치하려면

1. Oracle 데이터베이스의 JDBC 드라이버를 다운로드합니다. 자세한 내용은 https://www.oracle.com/jdbc를 참조하십시오.

2. PostgreSQL 드라이버(postgresql-42.1.4.jar)를 다운로드합니다.3. AWS SCT 및 필수 JDBC 드라이버를 설치합니다.

a. AWS Schema Conversion Tool 사용 설명서의 AWS Schema Conversion Tool 설치 및 업데이트에서 AWS SCT를 다운로드합니다.

b. AWS SCT를 시작합니다.c. AWS SCT의 [Settings]에서 [Global Settings]를 선택합니다.d. [Global Settings]에서 [Driver]를 선택한 후 [Browse]를 선택하여 [Oracle Driver Path]를 찾습니다.

JDBC Oracle 드라이버를 찾고 [OK]를 선택합니다.e. [PostgreSQL Driver Path]에서 [Browse]를 선택합니다. Oracle JDBC PostgreSQL 드라이버를 찾고

[OK]를 선택합니다.

API 버전 2016-01-0181

Page 86: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

2단계: Oracle 원본 데이터베이스 구성

f. [OK]를 선택하여 대화 상자를 닫습니다.

2단계: Oracle 원본 데이터베이스 구성AWS DMS(AWS Database Migration Service)에서 Oracle을 원본으로 사용하려면, 먼저 LogMiner에 정보를제공할 수 있도록 ARCHIVELOG MODE가 켜져 있는지 확인해야 합니다. AWS DMS가 변경 사항을 캡처할수 있도록 AWS DMS는 LogMiner를 사용하여 보관 로그의 정보를 읽습니다.

AWS DMS가 이 정보를 읽을 수 있도록 AWS DMS에서 보관 로그를 필요로 하는 한 이 보관 로그가 데이터베이스 서버에 보존되어 있는지 확인해야 합니다. 즉시 변경 사항 캡처를 시작하도록 작업을 구성하는 경우,가장 긴 실행 트랜잭션의 기간보다 약간 더 오랫동안 보관 로그만을 보존해야 합니다. 대개 24시간 동안 보관로그를 보존하면 충분합니다. 과거의 특정 시점에 시작하도록 작업을 구성하는 경우, 앞으로는 보관 로그를사용할 수 있어야 합니다. ARCHIVELOG MODE를 활성화하고 사용자의 Oracle 데이터베이스에서 로그 보존을 보장하는 방법에 대한 자세한 지침은 Oracle 설명서를 참조하십시오.

변경 사항을 캡처하려면 AWS DMS가 원본 데이터베이스에서 보충 로깅을 활성화해야 합니다. 최소 보충 로깅은 데이터베이스 수준에서 활성화되어야 합니다. AWS DMS에서도 식별 키 로깅이 활성화되어야 합니다.이 옵션을 선택하면 기본 키를 포함하는 행이 업데이트될 때마다 행 기본 키의 모든 열이 재실행 로그 파일에추가됩니다. 기본 키에 변경된 값이 없더라도 이 결과가 발생합니다. 데이터베이스 또는 테이블 수준에서 이옵션을 설정할 수 있습니다.

Oracle 원본 데이터베이스를 구성하려면

1. AWS DMS에서 사용할 데이터베이스 계정을 생성하거나 구성합니다. AWS DMS 연결을 위해 AWSDMS에서 필요한 최소 권한이 있는 계정을 사용하는 것이 좋습니다. AWS DMS에는 다음 권한이 필요합니다.

CREATE SESSIONSELECT ANY TRANSACTION

API 버전 2016-01-0182

Page 87: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

2단계: Oracle 원본 데이터베이스 구성

SELECT on V_$ARCHIVED_LOGSELECT on V_$LOGSELECT on V_$LOGFILESELECT on V_$DATABASESELECT on V_$THREADSELECT on V_$PARAMETERSELECT on V_$NLS_PARAMETERSSELECT on V_$TIMEZONE_NAMESSELECT on V_$TRANSACTIONSELECT on ALL_INDEXESSELECT on ALL_OBJECTSSELECT on ALL_TABLESSELECT on ALL_USERSSELECT on ALL_CATALOGSELECT on ALL_CONSTRAINTSSELECT on ALL_CONS_COLUMNSSELECT on ALL_TAB_COLSSELECT on ALL_IND_COLUMNSSELECT on ALL_LOG_GROUPSSELECT on SYS.DBA_REGISTRYSELECT on SYS.OBJ$SELECT on DBA_TABLESPACESSELECT on ALL_TAB_PARTITIONSSELECT on ALL_ENCRYPTED_COLUMNS* SELECT on all tables migrated

변경 사항(CDC)을 캡처하고 적용하려면 다음 권한도 필요합니다.

EXECUTE on DBMS_LOGMNR SELECT on V_$LOGMNR_LOGSSELECT on V_$LOGMNR_CONTENTSLOGMINING /* For Oracle 12c and higher. */* ALTER for any table being replicated (if you want AWS DMS to add supplemental logging)

Oracle 버전 11.2.0.3 이전에서는 다음 권한이 필요합니다.

SELECT on DBA_OBJECTS /* versions before 11.2.0.3 */SELECT on ALL_VIEWS (required if views are exposed)

2. Oracle 데이터베이스가 AWS RDS 데이터베이스인 경우 관리 사용자로 연결하고 다음 명령을 실행하여24시간 동안 RDS 원본에 대해 보관 로드가 유지되도록 합니다.

exec rdsadmin.rdsadmin_util.set_configuration('archivelog retention hours',24);

Oracle 원본이 AWS RDS 데이터베이스에 있는 경우, 백업을 활성화한 경우에 한해 데이터베이스가ARCHIVELOG MODE에 배치됩니다.

3. 다음 명령을 실행하여 데이터베이스 수준에서 보충 로깅을 활성화합니다. 이때 AWS DMS에서는 다음작업이 필요합니다.• Oracle SQL에서:

ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;

• RDS에서:

API 버전 2016-01-0183

Page 88: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

2단계: Oracle 원본 데이터베이스 구성

exec rdsadmin.rdsadmin_util.alter_supplemental_logging('ADD');

4. 다음 명령을 사용하여 데이터베이스 수준에서 식별 키 보충 로깅을 활성화합니다. AWS DMS에서는 데이터베이스 수준의 보충 키 로깅이 필요합니다. 단, AWS DMS에서 필요에 따라 보충 로깅을 자동으로추가하거나 테이블 수준에서 키 수준 보충 로깅을 활성화하도록 허용하는 경우는 제외됩니다.• Oracle SQL에서:

ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (PRIMARY KEY) COLUMNS;

• RDS에서:

exec rdsadmin.rdsadmin_util.alter_supplemental_logging('ADD','PRIMARY KEY');

키 수준 보충 로깅을 활성화하면 원본 데이터베이스는 약간의 오버헤드를 발생시킵니다. 따라서 테이블 하위 집합만을 마이그레이션할 경우, 테이블 수준에서 키 수준의 보충 로깅을 활성화해야 할수도 있습니다.

5. 테이블 수준에서 키 수준의 보충 로깅을 활성화하려면 다음 명령을 사용합니다.

ALTER TABLE table_name ADD SUPPLEMENTAL LOG DATA (PRIMARY KEY) COLUMNS;

테이블에 기본 키가 없는 경우 옵션 2개가 있습니다.

• 테이블에서 첫 번째 고유 인덱스에 포함된 모든 열에 보충 로깅을 추가할 수 있습니다(인덱스 이름별로 정렬).

• 테이블의 모든 열에서 보충 로깅을 추가할 수 있습니다.

테이블에서 열의 하위 집합(예: 고유 인덱스에 포함된 열)에 보충 로깅을 추가하려면, 다음 명령을 실행합니다.

ALTER TABLE table_name ADD SUPPLEMENTAL LOG GROUP example_log_group (column_list) ALWAYS;

모든 테이블 열에서 보충 로깅을 추가하려면, 다음 명령을 실행합니다.

ALTER TABLE table_name ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;

6. AWS SCT용 사용자를 생성합니다.

CREATE USER oracle_sct_user IDENTIFIED BY password; GRANT CONNECT TO oracle_sct_user;GRANT SELECT_CATALOG_ROLE TO oracle_sct_user;GRANT SELECT ANY DICTIONARY TO oracle_sct_user;

API 버전 2016-01-0184

Page 89: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

3단계: PostgreSQL 대상 데이터베이스 구성

3단계: PostgreSQL 대상 데이터베이스 구성1. 마이그레이션하려는 스키마가 PostgreSQL 데이터베이스에 없으면 해당 스키마를 생성합니다.2. 대상 데이터베이스에 연결할 AWS DMS 사용자를 생성하고, 수퍼유저 또는 필요한 개인 권한을 부여하

거나 RDS의 마스터 사용자 이름을 사용합니다.

CREATE USER postgresql_dms_user WITH PASSWORD 'password'; ALTER USER postgresql_dms_user WITH SUPERUSER;

3. AWS SCT용 사용자를 생성합니다.

CREATE USER postgresql_sct_user WITH PASSWORD 'password';

GRANT CONNECT ON DATABASE database_name TO postgresql_sct_user;GRANT USAGE ON SCHEMA schema_name TO postgresql_sct_user;GRANT SELECT ON ALL TABLES IN SCHEMA schema_name TO postgresql_sct_user;GRANT ALL ON SEQUENCES IN SCHEMA schema_name TO postgresql_sct_user;

4단계: AWS Schema Conversion Tool(AWS SCT)을사용하여 Oracle 스키마를 PostgreSQL로 변환합니다.데이터를 PostgreSQL로 마이그레이션하기 전에 먼저 Oracle 스키마를 PostgreSQL 스키마로 변환합니다.

AWS SCT를 사용하여 Oracle 스키마를 PostgreSQL 스키마로 변환하려면

1. AWS SCT를 시작합니다. AWS SCT에서 [File]을 선택하고 나서 [New Project]를 선택합니다. AWSSchema Conversion Tool Oracle to PostgreSQL라는 새 프로젝트를 생성합니다. [NewProject] 창에 다음 정보를 입력하고 [OK]를 선택합니다.

파라미터 설명

[프로젝트 이름] AWS Schema Conversion Tool Oracle toPostgreSQL을 입력합니다.

위치 기본 [Projects] 폴더와 기본 [Transactional Database(OLTP)] 옵션을 사용합니다.

[Source Database Engine] Oracle을 선택합니다.

[Target Database Engine] [Amazon RDS for PostgreSQL]을 선택합니다.

API 버전 2016-01-0185

Page 90: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

4단계: AWS Schema Conversion Tool(AWS SCT)을사용하여 Oracle 스키마를 PostgreSQL로 변환합니다.

2. [Connect to Oracle]을 선택합니다. [Connect to Oracle] 대화 상자에서 다음 정보를 입력한 후 [TestConnection]을 선택합니다.

파라미터 설명

유형 [SID]를 선택합니다.

[Server name] 서버 이름을 입력합니다.

[Server port] Oracle 포트 번호를 입력합니다. 기본값은 1521입니다.

[Oracle SID] 데이터베이스 SID를 입력합니다.

사용자 이름 Oracle 관리자 사용자 이름을 입력합니다.

암호 관리 사용자 암호를 입력합니다.

API 버전 2016-01-0186

Page 91: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

4단계: AWS Schema Conversion Tool(AWS SCT)을사용하여 Oracle 스키마를 PostgreSQL로 변환합니다.

3. [OK]를 선택하여 알림 상자를 닫은 후 [OK]를 선택하여 이 대화 상자를 닫고 Oracle DB 인스턴스와의 연결을 시작합니다. Oracle DB 인스턴스의 데이터베이스 구조가 표시됩니다.

4. [Connect to Amazon RDS for PostgreSQL]을 선택합니다. [Connect to Amazon PostgreSQL] 대화 상자에서 다음 정보를 입력한 후 [Test Connection]을 선택합니다.

파라미터 설명

[Server name] 서버 이름을 입력합니다.

[Server port] PostgreSQL 포트 번호를 입력합니다. 기본값은 5432입니다.

데이터베이스 데이터베이스 이름을 입력합니다.

사용자 이름 PostgreSQL 관리자 사용자 이름을 입력합니다.

암호 관리 사용자 암호를 입력합니다.

API 버전 2016-01-0187

Page 92: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

4단계: AWS Schema Conversion Tool(AWS SCT)을사용하여 Oracle 스키마를 PostgreSQL로 변환합니다.

5. [OK]를 선택하여 알림 상자를 닫은 후 [OK]를 선택하여 이 대화 상자를 닫고 PostgreSQL DB 인스턴스와의 연결을 시작합니다.

6. 마이그레이션할 스키마에 대한 컨텍스트(마우스 오른쪽 버튼 클릭) 메뉴를 열고 나서 [Convert schema]를 선택합니다.

API 버전 2016-01-0188

Page 93: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

4단계: AWS Schema Conversion Tool(AWS SCT)을사용하여 Oracle 스키마를 PostgreSQL로 변환합니다.

7. 확인 메시지에서 [Yes]를 선택합니다. 그런 다음 AWS SCT는 스키마를 대상 데이터베이스 형식으로 변환합니다.

API 버전 2016-01-0189

Page 94: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

4단계: AWS Schema Conversion Tool(AWS SCT)을사용하여 Oracle 스키마를 PostgreSQL로 변환합니다.

AWS SCT는 스키마를 분석하고 PostgreSQL로 변환하기 위한 데이터베이스 마이그레이션 평가 보고서를 생성합니다.

8. [View]에서 [Assessment Report View]를 선택하여 보고서를 확인합니다.

보고서는 변환이 성공적으로 수행되는 데 필요한 수동 변경의 양과 각 객체 유형별로 구분됩니다.

일반적으로 패키지, 절차 및 기능은 매우 세부적으로 사용자 지정된 PL/SQL 코드를 포함하므로 해결할문제가 있을 가능성이 높습니다. 또한 AWS SCT는 이러한 객체를 수정하는 방법에 대한 힌트를 제공합니다.

API 버전 2016-01-0190

Page 95: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

4단계: AWS Schema Conversion Tool(AWS SCT)을사용하여 Oracle 스키마를 PostgreSQL로 변환합니다.

9. [Action Items] 탭을 선택합니다.

[Action Items] 탭에는 주의를 요하는 각 객체에 대한 각 문제가 표시됩니다.

각 변환 문제마다 다음 작업 중 하나를 완료할 수 있습니다.• AWS SCT는 객체를 대상 PostgreSQL 데이터베이스로 변환할 수 있도록 원본 Oracle 데이터베이

스에서 객체를 수정합니다.

1. 원본 Oracle 데이터베이스에서 객체를 수정합니다.2. 이전 단계를 반복하여 스키마를 변환하고 평가 보고서를 확인합니다.

API 버전 2016-01-0191

Page 96: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

4단계: AWS Schema Conversion Tool(AWS SCT)을사용하여 Oracle 스키마를 PostgreSQL로 변환합니다.

3. 필요할 경우 변환 문제가 없을 때까지 이 프로세스를 반복합니다.4. [View]에서 [Main View]를 선택하고 대상 PostgreSQL 스키마에 대해 컨텍스트(마우스 오른쪽

버튼 클릭)를 연 다음, [Apply to database]를 선택하여 스키마 변경 내용을 PostgreSQL 데이터베이스에 적용합니다.

• 대상 PostgreSQL 데이터베이스에서 스크립트를 적용하기 전에 원본 스키마를 수정하는 대신에AWS SCT에 의해 생성된 스크립트를 수정합니다.

1. 대상 PostgreSQL 스키마 이름에 대한 컨텍스트(마우스 오른쪽 버튼 클릭)를 열고 [Save asSQL]을 선택합니다. 다음에는 스크립트의 이름과 대상을 선택합니다.

2. 스크립트에서 객체를 수정하여 변환 문제를 해결합니다.3. 대상 PostgreSQL 데이터베이스에서 이 스크립트를 실행합니다.

자세한 내용은 AWS Schema Conversion Tool 사용 설명서의 Converting Database Schema toAmazon RDS by Using the AWS Schema Conversion Tool 단원을 참조하십시오.

10. AWS SCT를 사용하여 매핑 규칙을 생성합니다.

a. [Settings]에서 [Mapping Rules]를 선택합니다.b. 스키마 이름 및 테이블 이름을 소문자로 변환하는 두 가지 기본 매핑 규칙 외에도, 작업 항목에 따라

요구되는 추가 매핑 규칙을 생성합니다.c. 매핑 규칙을 저장합니다.

API 버전 2016-01-0192

Page 97: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

5단계: AWS DMS 복제 인스턴스 생성

d. Export script for DMS(DMS용 스크립트 내보내기)를 클릭하여 AWS DMS 작업에서 원본의 어느 객체가 대상의 어느 객체에 해당하는지를 결정하는 데 사용할 모든 변환을 JSON 형식으로 내보냅니다. Save를 클릭합니다.

5단계: AWS DMS 복제 인스턴스 생성원본과 대상 데이터베이스 간의 스키마 구조를 검증한 후 이 연습의 핵심 부분인 데이터 마이그레이션을 계속 진행합니다. 다음 그림은 마이그레이션 프로세스의 상위 수준 보기를 보여줍니다.

AWS DMS 복제 인스턴스는 원본과 대상 간에 실제 데이터 마이그레이션을 수행합니다. 복제 인스턴스도 마이그레이션 중에 트랜잭션 로그를 캐시합니다. 복제 인스턴스가 갖는 CPU와 메모리 용량은 마이그레이션에필요한 전체 시간에 영향을 줍니다.

AWS DMS 복제 인스턴스를 생성하려면

1. AWS Management Console에 로그인하고 https://console.aws.amazon.com/dms/에서 AWS DMS를 선택합니다. 다음에는 [Create Migration]을 선택합니다. AWS IAM(Identity and Access Management) 사용자로 로그인한 경우에는 AWS DMS에 액세스하기 위한 적절한 권한이 있어야 합니다. 필요한 권한에대한 자세한 내용은 AWS DMS 사용에 필요한 IAM 권한을 참조하십시오.

2. [Next]를 선택하여 콘솔의 [Welcome] 페이지에서 데이터베이스 마이그레이션을 시작합니다.3. [Create replication instance] 페이지에서 복제 인스턴스 정보를 지정합니다.

파라미터 설명

이름 복제 인스턴스의 이름을 선택합니다. 여러 복제 서버를 사용하거나 계정을 공유하려는 경우 서로 다른 서버 간에 쉽게구별할 수 있는 이름을 선택합니다.

설명 간단한 설명을 입력합니다.

API 버전 2016-01-0193

Page 98: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

6단계: AWS DMS 원본 및 대상 엔드포인트 생성

파라미터 설명

인스턴스 클래스 생성할 복제 서버의 유형을 선택합니다. 각각의 인스턴스 클래스의 크기 및 유형은 CPU, 메모리 및 I/O 용량을 늘립니다. 일반적으로 t2 인스턴스는 저로드 작업용이며, c4 인스턴스는 고로드 및 기타 작업용입니다.

VPC 복제 인스턴스가 시작될 VPC를 선택합니다. 가능한 경우 원본이나 대상 데이터베이스(또는 이 모두)가 상주하는 동일한 VPC를 선택합니다.

[Multi-AZ] 예를 선택하면 AWS DMS는 기본 복제 서버 관련 문제가 있는 경우 다른 가용 영역에 장애 조치용으로 두 번째 복제 서버를 생성합니다.

[Publicly accessible] 복제 서버가 상주하는 VPC 외부에 원본 또는 대상 데이터베이스가 상주하는 경우 복제 서버 정책을 공개적으로 액세스할 수 있게 설정해야 합니다.

4. [Advanced] 섹션에서는 다음 정보를 지정합니다.

파라미터 설명

[Allocated storage (GB)] 기록 작업 로그를 포함하여 AWS DMS 작업 로그에 필요한복제 서버의 스토리지 양입니다. AWS DMS도 디스크 스토리지를 사용하여 특정 데이터를 원본에서 대상으로 복제하는 동안 캐시합니다. 또한, 스토리지가 많을수록 일반적으로서버에서 IOPS가 향상됩니다.

[Replication Subnet Group] 다중 AZ 구성으로 실행하는 경우 최소 두 개의 서브넷 그룹이 필요합니다.

[Availability zone] 일반적으로 대상 데이터베이스와 동일한 가용 영역에 기본할당 서버가 있으면 성능이 향상됩니다.

VPC Security Group(s) 보안 그룹을 사용하면 VPC로 수신 및 발신을 제어할 수 있습니다. AWS DMS는 복제 서버가 시작되는 VPC와 하나 이상의 보안 그룹을 연결할 수 있습니다.

[KMS master key] AWS DMS를 통해 모든 데이터가 KMS 암호화 키를 사용하여 유휴 상태로 암호화됩니다. 기본적으로 AWS DMS는 복제 서버에 대한 새 암호 키를 생성합니다. 하지만 기본 키를사용하도록 선택할 수 있습니다.

KMS 마스터 키에 대한 자세한 내용은 암호화 키 설정 및 KMS 권한 지정을 참조하십시오.5. [다음]을 클릭합니다.

6단계: AWS DMS 원본 및 대상 엔드포인트 생성복제 인스턴스가 생성되는 동안 AWS Management Console을 사용하여 원본과 대상 데이터베이스 엔드포인트를 지정할 수 있습니다. 그렇지만, 복제 인스턴스는 연결에 사용되기 때문에 복제 인스턴스가 생성된 후에는 연결을 테스트만할 수 있습니다.

API 버전 2016-01-0194

Page 99: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

6단계: AWS DMS 원본 및 대상 엔드포인트 생성

콘솔을 사용하여 원본 및 대상 데이터베이스 엔드포인트를 지정하려면

1. 원본 Oracle 데이터베이스와 대상 PostgreSQL 데이터베이스에 대한 연결 정보를 지정합니다. 다음 표는 원본 설정에 대한 설명입니다.

파라미터 설명

[Endpoint Identifier] Orasource와 같은 이름을 입력합니다.

소스 엔진 [oracle]을 선택합니다.

[Server name] Oracle DB 인스턴스 서버 이름을 입력합니다.

포트 데이터베이스 포트. Oracle의 기본값은 1521입니다.

[SSL mode] 연결 트래픽에 대해 암호화를 활성화해야 하는 경우 SSL 모드를 선택합니다.

사용자명 원본 데이터베이스에 연결하는 데 사용할 사용자.

암호 사용자 암호를 입력합니다.

SID Oracle 데이터베이스 이름을 입력합니다.

다음 표에서는 고급 원본 설정을 설명합니다.

API 버전 2016-01-0195

Page 100: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

6단계: AWS DMS 원본 및 대상 엔드포인트 생성

파라미터 설명

[Extra connection attributes] AWS DMS의 동작을 변경하거나 기능을 추가하기 위해 엔드포인트에서 설정할 수 있는 추가 파라미터입니다. Oracle원본 데이터베이스에 대해 설정할 가장 일반적이고 편리한파라미터 중 일부는 다음과 같습니다. 세미콜론(;)을 사용하여 여러 항목을 서로 구분합니다.

• addSupplementalLogging - 이 파라미터는Y로 설정될경우 보충 로깅을 자동으로 구성합니다.

• useLogminerReader - 기본적으로 AWS DMS는Oracle 데이터베이스에 Logminer를 사용하여 원본 데이터베이스에서 모든 변경 내용을 캡처합니다. 또 다른 모드로 Binary Reader가 있습니다. Logminer 대신 BinaryReader를 사용하는 경우 AWS DMS는 원본 Oracle 데이터베이스의 보관된 재실행 로그를 복제 서버로 복사하고 전체 로그를 읽어 변경 내용을 캡처합니다. BinaryReader 옵션은 AMS에서 Logminer보다 성능 상의 이점을제공하므로 ASM을 사용하는 경우에는 이 옵션을 권장합니다. 원본 데이터베이스가 12c이면 Binary Reader 옵션은 현재 LOB 객체에 대해 Oracle에서 CDC 변경 내용을캡처하는 유일한 방법입니다.

Logminer를 사용하려면 다음을 입력합니다.

useLogminerReader=Y

Binary Reader를 사용하려면 다음을 입력합니다.

useLogminerReader=N; useBfile=Y

[KMS master key] 복제 인스턴스의 스토리지를 암호화하기로 한 경우 KMS 마스터 키를 입력합니다.

추가 연결 속성에 대한 자세한 내용은 Using Extra Connection Attributes with AWS Database MigrationService를 참조하십시오.

다음 표는 대상 설정에 대한 설명입니다.

파라미터 설명

[Endpoint Identifier] Postgrestarget와 같은 이름을 입력합니다.

[Target Engine] postgres를 선택합니다.

[Servername ] PostgreSQL DB 인스턴스 서버 이름을 입력합니다.

포트 데이터베이스 포트. PostgreSQL의 기본값은 5432입니다.

[SSL mode] [None]을 선택합니다.

사용자명 대상 데이터베이스에 연결하는 데 사용할 사용자.

암호 PostgreSQL DB 인스턴스의 암호를 입력합니다.

API 버전 2016-01-0196

Page 101: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

6단계: AWS DMS 원본 및 대상 엔드포인트 생성

다음은 완료한 페이지의 예입니다.

2. 엔드포인트와 복제 인스턴스가 생성된 후 원본 및 대상 엔드포인트에 대해 [Run test]를 선택하여 각 엔드포인트 연결을 테스트합니다.

3. 대상 데이터베이스에서 외래 키 제약 조건 및 트리거를 삭제합니다.

전체 로드 프로세스를 수행하는 동안 AWS DMS는 특정 순서로 테이블을 로드하지 않으므로 상위 테이블 데이터를 로드하기 전에 하위 테이블 데이터를 로드할 수 있습니다. 따라서 외래 키 제약 조건이 활성화되는 경우 이러한 제약 조건을 위반하게 될 수도 있습니다. 또한 트리거가 대상 데이터베이스에 있는경우 예기치 않은 방식으로 AWS DMS에 의해 로드되는 데이터가 변경될 수 있습니다.

4. 없으면 외래 키 제약 조건과 트리거를 활성화하는 스크립트를 생성합니다.

나중에 마이그레이션된 데이터베이스에 추가하려는 경우에는 이 스크립트만 실행하면 됩니다.5. (선택 사항) 대상 데이터베이스에 보조 인덱스를 삭제합니다.

API 버전 2016-01-0197

Page 102: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

7단계: AWS DMS 마이그레이션 작업 생성 및 실행

보조 인덱스(모든 인덱스와 마찬가지로)는 로딩 프로세스 중에 유지 관리 및 업데이트되어야 하므로 데이터를 테이블에 전체 로드하는 속도가 느려질 수 있습니다. 이러한 인덱스를 삭제하면 전체 로드 프로세스의 성능이 향상될 수 있습니다. 인덱스를 삭제하는 경우 전체 로드를 완료하고 나서 나중에 다시 추가해야 합니다.

6. [Next]를 선택합니다.

7단계: AWS DMS 마이그레이션 작업 생성 및 실행AWS DMS 작업을 사용하면 마이그레이션할 스키마와 마이그레이션 유형을 지정할 수 있습니다. 기존 데이터를 마이그레이션하거나, 지속적 변경 사항을 복제하거나, 또는 데이터 변경 사항만 복제할 수 있습니다. 이연습에서는 기존 데이터를 마이그레이션하고 지속적인 변경 내용을 복제합니다.

마이그레이션 작업을 생성하려면

1. [Create Task] 페이지에서 작업 옵션을 지정합니다. 다음 표는 설정에 대한 설명입니다.

파라미터 설명

[Task name] 마이그레이션 작업의 이름을 입력합니다.

[Task description] 작업 설명을 입력합니다.

[Source endpoint] Oracle 소스 엔드포인트를 표시합니다.

계정에 엔드포인트가 두 개 이상이면 목록에서 올바른 엔드포인트를 선택합니다.

[Target endpoint] PostgreSQL 대상 엔드포인트를 표시합니다.

복제 인스턴스 AWS DMS 복제 인스턴스를 표시합니다.

[Migration type] [Migrate existing data and replicate ongoing changes] 옵션을 선택합니다.

[Start task on create] 이 옵션을 선택합니다.

이 페이지는 다음과 같이 보여야 합니다.

API 버전 2016-01-0198

Page 103: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

7단계: AWS DMS 마이그레이션 작업 생성 및 실행

2. AWS Schema Conversion Tool을 사용하여 테이블을 이미 생성했으므로 [Task Settings]에서 [Targettable preparation mode]에 대해 Do nothing] 또는 [Truncate]를 선택합니다.

Oracle 데이터베이스에 LOB가 있는 경우, 모든 테이블에 대한 전체 LOB를 복제하려면 [Include LOBcolumns in replication]에 대해 [Full LOB mode]를 선택합니다. LOB를 특정 크기까지만 복제하려면[Limited LOB mode]를 선택합니다. [Max LOB size (kb)]에서 마이그레이션할 LOB의 크기를 지정합니다.

[Enable logging]을 선택하는 것이 좋습니다. 로깅을 활성화할 경우 작업에서 발생하는 오류나 경고를 확인하고 이러한 문제를 해결할 수 있습니다.

3. [Advanced] 설정을 기본값으로 둡니다.

API 버전 2016-01-0199

Page 104: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

7단계: AWS DMS 마이그레이션 작업 생성 및 실행

4. [Table mappings]를 선택하고 [JSON] 탭을 선택합니다. 다음에는 [Enable JSON editing]을 선택하고 4단계: AWS Schema Conversion Tool(AWS SCT)을 사용하여 Oracle 스키마를 PostgreSQL로 변환합니다. (p. 85)의 마지막 단계에서 저장한 테이블 매핑을 입력합니다.

다음은 스키마 이름 및 테이블 이름을 소문자로 변환하는 매핑의 예입니다.

{ "rules": [ { "rule-type": "transformation", "rule-id": "100000", "rule-name": "Default Lowercase Table Rule", "rule-action": "convert-lowercase", "rule-target": "table", "object-locator": { "schema-name": "%", "table-name": "%" } }, { "rule-type": "transformation", "rule-id": "100001", "rule-name": "Default Lowercase Schema Rule", "rule-action": "convert-lowercase", "rule-target": "schema", "object-locator": { "schema-name": "%" } } ]}

5. [Create task]를 선택합니다. 작업이 즉시 시작됩니다.

[Tasks] 섹션에는 마이그레이션 작업 상태가 나타납니다.

작업을 설정할 때 [Enable logging]을 선택했으면 작업을 모니터링할 수 있습니다. 그리고 나서 다음 작업을수행하여 CloudWatch 측정치를 확인할 수 있습니다.

진행 중인 데이터 마이그레이션 작업을 모니터링하려면

1. 탐색 창에서 [Tasks]를 선택합니다.2. 마이그레이션 작업을 선택합니다.3. [Task monitoring] 탭을 선택하고 이 탭에서 진행 중인 작업을 모니터링합니다.

전체 로드가 완료되고 캐시된 변경 사항이 적용되면 작업이 자체적으로 중지됩니다.

API 버전 2016-01-01100

Page 105: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드8단계: PostgreSQL로 전환

4. 대상 PostgreSQL 데이터베이스에서 이전에 저장한 스크립트를 사용하여 외래 키 제약 조건과 트리거를활성화합니다.

5. 대상 PostgreSQL 데이터베이스에서 이전에 제거한 경우 보조 인덱스를 다시 생성합니다.6. AWS DMS 콘솔에서 작업에 대해 시작/재시작을 클릭하여 AWS DMS 작업을 시작합니다.

AWS DMS 작업은 원본 데이터베이스 변경으로 대상 PostgreSQL 데이터베이스를 최신 상태로 유지합니다. AWS DMS는 애플리케이션 마이그레이션을 구현할 시기가 도래할 때까지 작업의 모든 테이블을최신 상태로 유지합니다. 대상이 원본과 거의 비슷해지면 지연 시간이 0이거나 0에 가깝습니다.

8단계: PostgreSQL로 전환다음 단계를 수행하여 Oracle 데이터베이스에서 PostgreSQL 데이터베이스로 연결을 전환합니다.

PostgreSQL로 전환하려면

1. 스크립트 실행이나 클라이언트 연결 같은 모든 Oracle 데이터베이스 종속성 및 작업을 종료합니다.

다음 쿼리는 결과를 반환하지 않습니다.

SELECT MACHINE, COUNT FROM V$SESSION GROUP BY MACHINE;

2. 남은 세션을 나열하여 종료합니다.

SELECT SID, SERIAL#, STATUS FROM V$SESSION; ALTER SYSTEM KILL 'sid, serial_number' IMMEDIATE;

3. Oracle 데이터베이스에서 모든 리스너를 종료합니다.4. AWS DMS 작업을 통해 PostgreSQL 데이터베이스에서 Oracle 데이터베이스의 최종 변경 내용을 적용

합니다.

ALTER SYSTEM CHECKPOINT;

5. AWS DMS 콘솔에서 작업에 대해 중지를 클릭하여 AWS DMS 작업을 중지하고 작업을 중지하려 함을확인합니다.

6. (선택 사항) 롤백을 설정합니다.

표시 중지 문제가 발생하는 경우 반대 방향으로 진행하는 작업을 생성하여 선택적으로 롤백 작업을 설정할 수 있습니다. 모든 테이블이 두 데이터베이스 사이에서 동기화되어야 하므로 CDC 작업만 설정하면됩니다. 따라서 외래 키 제약 조건을 비활성화할 필요가 없습니다. 원본 및 대상 데이터베이스가 뒤바뀌었으므로, 다음 섹션의 지침을 따라야 합니다.

• AWS Database Migration Service에서 PostgreSQL 데이터베이스를 원본으로 사용• AWS Database Migration Service에서 Oracle 데이터베이스를 대상으로 사용

a. 원본 Oracle 데이터베이스에서 트리거를 비활성화합니다.

SELECT 'ALTER TRIGGER' || owner || '.' || trigger_name || 'DISABLE;' FROM DBA_TRIGGERS WHERE OWNER = 'schema_name';

API 버전 2016-01-01101

Page 106: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

마이그레이션 롤백

따라서 외래 키 제약 조건을 비활성화할 필요가 없습니다. CDC 프로세스가 수행되는 동안은 애플리케이션 사용자가 업데이트할 때와 똑같은 순서대로 외래 키 제약 조건이 업데이트됩니다.

b. 엔드포인트가 뒤바뀐 상태(원본 PostgreSQL 엔드포인트와 대상 Oracle 엔드포인트 데이터베이스)에서 새 CDC 전용 AWS DMS 작업을 생성합니다. 7단계: AWS DMS 마이그레이션 작업 생성 및 실행 (p. 98) 단원을 참조하십시오.

롤백 작업의 경우 [Migration type]을 [Replicate data changes only]로, [Target table preparationmode]를 [Do nothing]으로 설정합니다.

c. 롤백이 필요할 경우 새 PostgreSQL 데이터베이스에서 원래의 원본 Oracle 데이터베이스로 변경 내용을 되돌릴 수 있도록 AWS DMS 작업을 시작합니다.

7. PostgreSQL 데이터베이스에 연결하고 트리거를 활성화합니다.

ALTER TABLE table_name ENABLE TRIGGER ALL;

8. 롤백을 설정하는 경우 롤백 설정을 완료합니다.

a. 새 대상 PostgreSQL 데이터베이스에서 애플리케이션 서비스(스크립트, 클라이언트 소프트웨어 등포함)를 시작합니다.

b. 새 PostgreSQL 데이터베이스에서 Cloudwatch 모니터링을 추가합니다. Amazon RDS 모니터링 단원을 참조하십시오.

마이그레이션 롤백적시에 확인할 수 없는 마이그레이션 관련 주요 문제가 있는 경우 마이그레이션을 롤백할 수 있습니다. 이러한 단계에서는 8단계: PostgreSQL로 전환 (p. 101)에 설명된 대로 롤백 준비가 이미 완료되었다고 가정합니다.

마이그레이션을 롤백하려면

1. 대상 PostgreSQL 데이터베이스에서 모든 애플리케이션 서비스를 중지합니다.2. AWS DMS 작업을 통해 남은 변경 내용이 원본 Oracle 데이터베이스로 복제되도록 합니다.3. PostgreSQL에서 Oracle AWS DMS로의 작업을 중지합니다.4. 원본 Oracle 데이터베이스에서 모든 애플리케이션을 다시 시작합니다.

문제 해결원본으로서 Oracle을 사용하고 대상으로서 PostgreSQL을 사용할 때 문제가 나타나는 가장 일반적이 두 영역은 보충 로깅과 대소문자 구분입니다.

• 보충 로깅 – Oracle을 통해 변경 데이터를 복제하려면 보충 로깅을 활성화해야 합니다. 그렇지만, 데이터베이스 수준에서 보충 로깅을 활성화할 경우, 때로는 새 테이블을 생성할 때 보충 로깅을 계속 활성화해야 합니다. 이 문제에 대한 최적의 해결책은 추가 연결 속성을 사용하여 AWS DMS가 보충 로깅을 자동으로 활성화하도록 허용하는 것입니다.

addSupplementalLogging=Y

API 버전 2016-01-01102

Page 107: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

문제 해결

• 대소문자 구분: Oracle은 대소문자를 구분하지 않습니다(객체 이름을 따옴표로 묶지 않은 경우). 그렇지만,텍스트는 대문자로 표시됩니다. 따라서 AWS DMS는 기본적으로 대문자로 대상 객체를 명명합니다. 대다수의 경우에 변환을 사용하여 스키마, 테이블 또는 열 이름을 소문자로 변경해야 합니다.

추가 팁을 보려면 AWS DMS 사용 설명서의 AWS DMS 문제 해결 단원을 참조하십시오.

Oracle별로 문제를 해결하려면, Oracle 문제 해결 섹션을 참조하십시오.

Oracle별 문제 해결

PostgreSQL 문제를 해결하려면, PostgreSQL 문제 해결 섹션을 참조하십시오.

PostgreSQL별 문제 해결

API 버전 2016-01-01103

Page 108: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

사전 조건

Amazon RDS for Oracle Database를Amazon Redshift로 마이그레이션

이 연습에서는 AWS DMS(AWS Database Migration Service)와 AWS SCT(AWS Schema Conversion Tool)를 사용하여 다른 유형의 데이터베이스를 Amazon RDS for Oracle에서 Amazon Redshift로 마이그레이션하는 과정을 안내합니다. 다음은 입문용 실습이므로 모든 시나리오를 다루지 않지만 그러한 마이그레이션에서따라야 하는 단계를 이해하는 데 도움이 됩니다.

AWS DMS와 AWS SCT가 다른 별개의 도구이며 각기 다른 요구 사항에 부합한다는 점도 잘 알고 있어야 합니다. 이들 도구는 마이그레이션 프로세스에서 서로 상호작용하지 않습니다. 고급 수준에서 이 마이그레이션에 수반되는 단계는 다음과 같습니다.

1. AWS SCT를 사용하여 다음을 수행합니다.• Oracle에서 Amazon Redshift로의 변환 보고서를 실행하여 스키마 변환에 필요한 문제, 제한 사항 및 작

업을 확인합니다.• 스키마 스크립트를 생성하고 대상에서 이것을 적용한 후 AWS DMS를 사용하여 데이터 로드를 실행합

니다. AWS SCT는 절차 및 보기와 같은 객체에 대한 필수 코드 변환을 수행합니다.2. AWS SCT에서 보고한 문제에 대한 해결책을 확인하고 구현합니다.3. AWS DMS 데이터 로드에 영향을 줄 수 있는 외래 키 또는 다른 모든 제약을 비활성화합니다.4. AWS DMS는 전체 로드 접근 방식을 사용하여 원본에서 대상으로 데이터를 로드합니다. AWS DMS가 로

드의 일부로서 대상에서 객체를 생성할 수 있더라도 최소한의 접근 방식에 따라 데이터를 효율적으로 마이그레이션하므로 전체 스키마 구조가 원본에서 대상으로 복제되지 않습니다.

5. 추가 인덱스 생성과 같은 마이그레이션 후 활동을 수행하여 외래 키를 활성화하고 애플리케이션에서 필요한 변경 사항을 적용하여 새 데이터베이스를 가리킵니다.

이 연습에서는 사용자 지정 AWS CloudFormation 템플릿을 사용하여 Oracle 및 Amazon Redshift용Amazon RDS DB 인스턴스를 생성합니다. 그런 다음 SQL 명령 스크립트를 사용하여 샘플 스키마와 데이터를 RDS Oracle DB 인스턴스에 설치한 후 Amazon Redshift에 마이그레이션합니다.

이 연습을 완료하기까지 약 2시간이 소요됩니다. 지침에 따라 이 연습이 끝나면 추가 요금이 발생하지 않도록 리소스를 삭제해야 합니다.

주제• 사전 조건 (p. 104)• 마이그레이션 아키텍처 (p. 105)• 단계별 마이그레이션 (p. 106)• 다음 단계 (p. 138)

사전 조건이 연습을 완료하려면 다음 사전 요구 사항도 필요합니다.

• Amazon RDS, Amazon Redshift, 해당 데이터베이스 기술 및 SQL에 대한 지식• 마이그레이션할 테이블 생성과 마이그레이션 확인을 위한 SQL 쿼리를 포함하는 사용자 지정 스크립트는

다음과 같습니다.

API 버전 2016-01-01104

Page 109: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

마이그레이션 아키텍처

• Oracle_Redshift_For_DMSDemo.template - AWS CloudFormation 템플릿

Oraclesalesstarschema.sql - SH 스키마를 빌드하는 SQL 문

이러한 스크립트는 다름 링크에서 사용할 수 있습니다.dms-sbs-RDSOracle2Redshift.zip

이 연습의 각 단계마다 관련 파일을 다운로드할 수 있는 링크가 포함되어 있거나 해당 단계에 정확한 쿼리가 포함되어 있습니다.

• AWS 리전에서 RDS, AWS DMS(AWS Database Migration Service) 인스턴스 및 Amazon Redshift 클러스터를 시작할 수 있도록 해주는 AWS IAM(AWS Identity and Access Management) 자격 증명이 있는 AWS계정입니다. IAM 자격 증명에 대한 정보는 IAM 사용자 생성 섹션을 참조하십시오.

• Amazon Virtual Private Cloud(Amazon VPC) 서비스 및 보안 그룹에 대한 기본 지식. Amazon RDS에서Amazon VPC를 사용하는 방법에 대한 정보는 가상 사설 클라우드(VPCs) 및 Amazon RDS 섹션을 참조하십시오. Amazon RDS 보안 그룹에 대한 자세한 내용은 Amazon RDS 보안 그룹을 참조하십시오. VPC에서 Amazon Redshift 사용에 대한 자세한 내용은 Amazon Virtual Private Cloud(VPC)에서 클러스터 관리를참조하십시오.

• AWS DMS의 지원 기능 및 제한 사항에 대한 이해. AWS DMS에 대한 자세한 내용은 AWS DatabaseMigration Service이란 무엇입니까?를 참조하십시오.

• Oracle 및 Amazon Redshift에서 지원되는 데이터 형식 변환 옵션에 대한 정보. 원본으로서 Oracle용 데이터 형식에 대한 자세한 내용은 AWS Database Migration Service에서 Oracle 데이터베이스를 원본으로 사용을 참조하십시오. 대상으로서 Amazon Redshift용 데이터 형식에 대한 자세한 내용은 AWS DatabaseMigration Service에서 Amazon Redshift 데이터베이스를 대상으로 사용을 참조하십시오.

AWS DMS에 대한 자세한 내용은 AWS DMS 설명서를 참조하십시오.

마이그레이션 아키텍처이 예제에서는 AWS CloudFormation을 사용하여 데이터베이스 마이그레이션을 위한 단순 네트워크 토폴로지를 생성하며, 여기에는 원본 데이터베이스, 복제 인스턴스, 동일한 VPC의 대상 데이터베이스가 포함됩니다. AWS CloudFormation에 대한 자세한 내용은 CloudFormation 설명서를 참조하십시오.

AWS CloudFormation을 통해 본 AWS DMS 연습에 필요한 AWS 리소스를 프로비저닝합니다. 이러한 리소스에는 VPC 및 Oracle용 Amazon RDS 인스턴스 및 Amazon Redshift 클러스터가 포함됩니다.CloudFormation을 통해 프로비저닝하므로 프로세스가 간편해져 데이터 마이그레이션과 관련된 작업에 집중할 수 있습니다. CloudFormation 템플릿에서 스택을 생성하면 다음 리소스를 프로비저닝합니다.

• 리전에서 퍼블릭 서브넷 2개를 지원하는 CIDR(10.0.0.0/24)을 사용한 VPC, 가용 영역(AZ) 1에서 주소가10.0.0.0/26인 DBSubnet1, AZ 12에서 주소가 10.0.0.64/26인 DBSubnet2입니다.

• DBSubnet1과 DBSubnet2를 포함하는 DB 서브넷 그룹입니다.• Oracle RDS Standard Edition Two의 배포 옵션 2개는 다음과 같습니다.

• 라이선스 포함• Single-AZ 설정• db.m3 미디엄 또는 이에 준하는 인스턴스 클래스• 포트 1521• 기본 옵션 및 파리미터 그룹

• 이 배포 옵션을 사용한 Amazon Redshift 클러스터는 다음과 같습니다.• dc1.large• 포트 5439• 기본 파라미터 그룹

• 입력 파라미터를 기반으로 컴퓨터 또는 0.0.0.0/0(어디에서든 액세스)에서 수신 액세스가 지원되는 보안 그룹

API 버전 2016-01-01105

Page 110: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

단계별 마이그레이션

사용자의 입력이 거의 필요 없도록 CloudFormation 템플릿을 설계했습니다. 최소 권장 구성으로 필요한AWS 리소스를 프로비저닝합니다. 그렇지만, VPC CIDR 블록과 Amazon RDS 인스턴스 형식과 같은 일부구성과 파라미터를 변경해야 하는 경우에는 언제든지 템플릿을 업데이트하십시오.

AWS Management Console을 사용하여 복제 인스턴스, 엔드포인트 및 작업과 같은 AWS DMS 리소스를 프로비저닝합니다. 로컬 컴퓨터에 SQL Workbench/J 및 AWS Schema Conversion Tool(AWS SCT)과 같은 클라이언트 도구를 설치하여 Amazon RDS 인스턴스에 연결합니다.

다음은 이 연습에 해당하는 마이그레이션 아키텍처에 대한 그림입니다.

단계별 마이그레이션다음 섹션에는 Amazon RDS for Oracle Database를 Amazon Redshift로 마이그레이션하는 단계별 지침이나와 있습니다. 이 단계는 사용자가 이미 앞의 섹션에서 설명한 원본 데이터베이스를 준비했다고 가정합니다.

주제• 1단계: CloudFormation 템플릿을 사용하여 VPC에서 RDS 인스턴스 시작 (p. 107)• 2단계: 로컬 컴퓨터에 SQL 도구와 AWS Schema Conversion Tool 설치 (p. 111)

API 버전 2016-01-01106

Page 111: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

1단계: CloudFormation 템플릿을 사용하여 VPC에서 RDS 인스턴스 시작

• 3단계: Oracle DB Instance와의 연결을 테스트하고 샘플 스키마 생성 (p. 114)• 4단계: Amazon Redshift 데이터베이스와의 연결 테스트 (p. 118)• 5단계: AWS SCT를 사용하여 Oracle 스키마를 Amazon Redshift로 변환 (p. 119)• 6단계: 스키마 변환 검증 (p. 126)• 7단계: AWS DMS 복제 인스턴스 생성 (p. 127)• 8단계: AWS DMS 원본 및 대상 엔드포인트 생성 (p. 128)• 9단계: AWS DMS 마이그레이션 작업 생성 및 실행 (p. 131)• 10단계: AWS DMS 마이그레이션이 성공적으로 완료되었는지 확인 (p. 135)• 11단계: 연습 리소스 삭제 (p. 137)

1단계: CloudFormation 템플릿을 사용하여 VPC에서RDS 인스턴스 시작시작하기 전에 AWS CloudFormation 템플릿을 다운로드해야 합니다. 다음 지침들을 따릅니다.

1. 컴퓨터에 다음 아카이브를 다운로드합니다. http://docs.aws.amazon.com/dms/latest/sbs/samples/dms-sbs-RDSOracle2Redshift.zip

2. 아카이브에서 CloudFormation 템플릿(Oracle_Redshift_For_DMSDemo.template)을 추출합니다.3. Oracle_Redshift_For_DMSDemo.template 파일을 현재 디렉터리로 복사하여 붙여 넣습니다.

이제 이 연습에서 필요한 AWS 리소스를 프로비저닝해야 합니다.

다음 연습에서는 AWS CloudFormation 템플릿을 사용하여 이 연습에 적합한 Amazon RDS 리소스를 생성합니다.

1. AWS Management 콘솔에 로그인한 다음 https://console.aws.amazon.com/cloudformation에서 AWSCloudFormation 콘솔을 엽니다.

2. [Create Stack]을 선택합니다.3. 템플릿 선택 페이지에서 Amazon S3에 템플릿 업로드를 선택합니다.4. 파일 선택을 클릭한 후 dms-sbs-RDSOracle2Redshift.zip 아카이브에서 추출한

Oracle_Redshift_For_DMSDemo.template 파일을 선택합니다.5. [Next]를 선택합니다. [Specify DB Details] 페이지에서 다음과 같이 파라미터 값을 입력합니다.

이 파라미터의 경우... 수행할 작업

[Stack Name ] OracletoRedshiftDWusingDMS를 입력합니다.

[OracleDBName] 데이터베이스 고유 이름을 입력합니다. 이름은 문자로 시작해야 합니다. 기본값은 ORCL입니다.

[OracleDBUsername] Oracle 인스턴스를 관리할 관리(DBA) 사용자를 지정합니다. 기본값은 oraadmin입니다.

[OracleDBPassword] 관리 사용자 암호를 입력합니다. 기본값은 입니다.oraadmin123

RedshiftDBName 데이터베이스 고유 이름을 입력합니다. 이름은 문자로 시작해야 합니다. 기본값은 test입니다.

RedshiftDBUsername 마스터 사용자 암호를 입력합니다. 기본값은Redshift#123입니다.

API 버전 2016-01-01107

Page 112: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

1단계: CloudFormation 템플릿을 사용하여 VPC에서 RDS 인스턴스 시작

이 파라미터의 경우... 수행할 작업

[ClientIP] 로컬 컴퓨터의 IP 주소를 CIDR(x.x.x.x/32) 형식으로 지정합니다. whatsmyip.org에서 IP 주소를 가져올 수 있습니다.RDS 인스턴스의 보안 그룹은 이 IP 주소로의 수신을 허용합니다. 기본값은 어디에서든 액세스 가능한 (0.0.0.0/0)이고,권장되지 않습니다. 이 연습에서 IP 주소를 사용해야 합니다.

API 버전 2016-01-01108

Page 113: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

1단계: CloudFormation 템플릿을 사용하여 VPC에서 RDS 인스턴스 시작

6. [Next]를 선택합니다. [Options] 페이지에서 [Next]를 선택합니다.7. [Review] 페이지에서 세부 정보를 검토하고 올바를 경우 [Create]를 선택합니다.

API 버전 2016-01-01109

Page 114: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

1단계: CloudFormation 템플릿을 사용하여 VPC에서 RDS 인스턴스 시작

API 버전 2016-01-01110

Page 115: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

2단계: 로컬 컴퓨터에 SQL 도구와AWS Schema Conversion Tool 설치

8. AWS에서 Amazon RDS Oracle 인스턴스 및 Amazon Redshift 클러스터를 사용하여 스택을 생성하기까지 약 20분 이상이 소요될 수 있습니다.

9. 스택 생성 후 [OracletoRedshiftDWusingDMS] 스택을 선택하고, [Outputs] 보기를 선택합니다. JDBC 연결 문자열인 OracleJDBCConnectionString 및 RedshiftJDBCConnectionString을 기록해 두면 이 연습에서 나중에 Oracle 및 Amazon Redshift 데이터베이스에 연결하는 데 사용할 수 있습니다.

2단계: 로컬 컴퓨터에 SQL 도구와 AWS SchemaConversion Tool 설치그 다음, 로컬 컴퓨터에 SQL 클라이언트 및 AWS SCT를 설치합니다.

이 연습에서는 마이그레이션 확인을 위해 SQL Workbench/J 클라이언트를 사용하여 RDS 인스턴스에 연결한다고 가정합니다.

API 버전 2016-01-01111

Page 116: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

2단계: 로컬 컴퓨터에 SQL 도구와AWS Schema Conversion Tool 설치

SQL 클라이언트 소프트웨어를 설치하려면

1. SQL Workbench/J 웹사이트에서 SQL Workbench/J를 다운로드한 후 로컬 컴퓨터에 설치합니다. 이SQL 클라이언트는 무료로 제공되는 오픈 소스로서 DBMS에 종속되어 있지 않습니다.

2. Oracle 데이터베이스의 JDBC 드라이버를 다운로드합니다. 자세한 내용은 https://www.oracle.com/jdbc를 참조하십시오.

3. 다음 설명에 따라 Amazon Redshift 드라이버 파일 RedshiftJDBC41-1.1.17.1017.jar을 다운로드합니다.

a. Amazon Redshift 클러스터 관리 가이드의 이전 JDBC 드라이버 버전에서 파일의 Amazon S3 URL을 찾습니다.

b. 동일한 가이드의 Amazon Redshift JDBC 드라이버 다운로드에 설명된 대로 드라이버를 다운로드합니다.

4. SQL Workbench/J를 사용하여 다음 설명과 같이 Oracle 및 Amazon Redshift용 JDBC 드라이버를 구성하여 연결을 설정합니다.

a. SQL Workbench/J에서 [File]을 선택한 후 [Manage Drivers]를 선택합니다.b. 드라이버 목록에서 [Oracle]을 선택합니다.c. 열기 아이콘을 선택한 다음 이전 단계에서 다운로드한 ojdbc.jar 파일을 선택합니다. 확인을 선

택합니다.

d. 드라이버 목록에서 [Redshift]를 선택합니다.e. 열기 아이콘을 선택한 다음 이전 단계에서 다운로드한 Amazon Redshift JDBC 드라이버를 선택합

니다. 확인을 선택합니다.

API 버전 2016-01-01112

Page 117: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

2단계: 로컬 컴퓨터에 SQL 도구와AWS Schema Conversion Tool 설치

그 다음, AWS SCT 및 필수 JDBC 드라이버를 설치합니다.

AWS SCT와 필요한 JDBC 드라이버를 설치하려면

1. AWS Schema Conversion Tool 사용 설명서의 AWS Schema Conversion Tool 설치 및 업데이트에서AWS SCT를 다운로드합니다.

2. 지침에 따라 AWS SCT를 설치합니다. 기본적으로 C:\Program Files\AWS Schema ConversionTool\AWS 디렉터리에 이 도구가 설치됩니다.

3. AWS SCT를 시작합니다.4. AWS SCT의 [Settings]에서 [Global Settings]를 선택합니다.5. [Settings], [Global Settings]를 선택한 후 [Drivers]를 선택하고 나서 [Oracle Driver Path]에서 [Browse]를

선택합니다. Oracle JDBC 드라이버를 찾고 [OK]를 선택합니다.6. [Amazon Redshift Driver Path]에서 [Browse]를 선택합니다. Amazon Redshift JDBC 드라이버를 찾고

확인을 선택합니다. [OK]를 선택하여 대화 상자를 닫습니다.

API 버전 2016-01-01113

Page 118: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

3단계: Oracle DB Instance와의 연결을 테스트하고 샘플 스키마 생성

3단계: Oracle DB Instance와의 연결을 테스트하고 샘플 스키마 생성CloudFormation 스택을 생성한 후 SQL Workbench/J를 사용하여 Oracle DB 인스턴스 연결을 테스트하고HR 샘플 스키마를 생성합니다.

SQL Workbench/J를 사용하여 Oracle DB 인스턴스와의 연결을 테스트하고 샘플 스키마를 생성하려면

1. SQL Workbench/J에서 [File]을 선택한 후 [Connect window]를 선택합니다. 다음 정보를 사용하여 새 연결 프로필을 생성합니다.

이 파라미터의 경우... 수행할 작업

[New profile] 이름 RDSOracleConnection을 입력합니다.

드라이버 Oracle (oracle.jdbc.OracleDriver)을 선택합니다.

API 버전 2016-01-01114

Page 119: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

3단계: Oracle DB Instance와의 연결을 테스트하고 샘플 스키마 생성

이 파라미터의 경우... 수행할 작업

URL 이전 단계에서 DMSdemo 스택의 출력 세부 정보를 검사했을 때 기록한 [OracleJDBCConnectionString] 값을 사용합니다.

사용자명 oraadmin을 입력합니다.

[암호] oraadmin123을 입력합니다.

2. 연결을 테스트하려면 [Test]를 선택합니다. [OK]를 선택하여 대화 상자를 닫은 후 [OK]를 선택하여 연결프로필을 생성합니다.

API 버전 2016-01-01115

Page 120: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

3단계: Oracle DB Instance와의 연결을 테스트하고 샘플 스키마 생성

Note

연결에 실패한 경우, CloudFormation 템플릿을 생성할 때 할당한 IP 주소가 연결을 시도한 IP주소인지 확인합니다. 이 문제는 인스턴스에 연결할 때 가장 일반적으로 발생하는 문제입니다.

3. 사용자 지정 SQL 스크립트(Oraclesalesstarschema.sql)를 사용하여 마이그레이션에 사용할 SH 스키마를 생성합니다. 이 스크립트를 다운로드하려면 다음과 같이 합니다.

• 컴퓨터에 다음 아카이브를 다운로드합니다. http://docs.aws.amazon.com/dms/latest/sbs/samples/dms-sbs-RDSOracle2Redshift.zip

• 아카이브에서 SQL 스크립트(Oraclesalesstarschema.sql)를 추출합니다.• Oraclesalesstarschema.sql 파일을 현재 디렉터리로 복사하여 붙여 넣습니다.

a. 텍스트 편집기에서 SQL 스크립트를 엽니다. 전체 스크립트를 복사합니다.b. SQL Workbench/J에서 다음 코드를 복사하고 [Statement 1]를 보여 주는 Default.wksp 창에 SQL 스

크립트를 붙여 넣습니다.c. [SQL]을 선택한 후 [Execute All]을 선택합니다.

API 버전 2016-01-01116

Page 121: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

3단계: Oracle DB Instance와의 연결을 테스트하고 샘플 스키마 생성

4. 다음 SQL 쿼리를 실행하여 SH 스키마에서 객체 유형과 개수가 생성되었는지 확인합니다.

Select OBJECT_TYPE, COUNT(*) from dba_OBJECTS where owner='SH' GROUP BY OBJECT_TYPE;

이 쿼리 결과는 다음과 비슷해야 합니다.

API 버전 2016-01-01117

Page 122: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

4단계: Amazon Redshift 데이터베이스와의 연결 테스트

OBJECT_TYPE | COUNT(*)----------------+---------INDEX PARTITION | 40TABLE PARTITION | 8TABLE | 5INDEX | 15

5. 다음 SQL 쿼리를 실행하여 총 테이블 수와 각 테이블별 행 수를 확인합니다.

Select table_name, num_rows from dba_tables where owner='SH' order by 1;

이 쿼리 결과는 다음과 비슷해야 합니다.

TABLE_NAME | NUM_ROWS-----------+---------CHANNELS | 5CUSTOMERS | 8PRODUCTS | 66PROMOTIONS | 503SALES | 553

6. 테이블에서 무결성을 확인합니다. 다음 SQL 쿼리를 실행하여 다른 채널에서 달성한 판매량을 확인합니다.

Select b.channel_desc,count(*) from SH.SALES a,SH.CHANNELS b where a.channel_id=b.channel_id group by b.channel_desc order by 1;

이 쿼리 결과는 다음과 비슷해야 합니다.

CHANNEL_DESC | COUNT(*)-------------+---------Direct Sales | 710Internet | 52Partners | 344

Note

이전 예제는 검증 쿼리를 대표합니다. 실제 마이그레이션을 수행할 때 유사한 쿼리를 생성하여 스키마와 데이터 무결성을 검증해야 합니다.

4단계: Amazon Redshift 데이터베이스와의 연결 테스트그런 다음 Amazon Redshift 데이터베이스와의 연결을 테스트합니다.

SQL Workbench/J를 사용하여 Amazon Redshift 데이터베이스와의 연결을 테스트하려면

1. SQL Workbench/J에서 [File]을 선택한 후 [Connect window]를 선택합니다. [Create a new connectionprofile] 아이콘을 선택합니다. 아래 나오는 정보를 사용하여 SQL Workbench/J에서 Amazon Redshift 데이터베이스에 연결합니다.

API 버전 2016-01-01118

Page 123: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

5단계: AWS SCT를 사용하여 Oracle스키마를 Amazon Redshift로 변환

이 파라미터의 경우... 수행할 작업

[New profile] 이름 RedshiftConnection을 입력합니다.

드라이버 Redshift(com.amazon.redshift.jdbc42.Driver)를 선택합니다.

URL 이전 단계에서 DMSdemo 스택의 출력 세부 정보를 검사했을 때 기록한 RedshiftJDBCConnectionString 값을 사용합니다.

사용자명 redshiftadmin을 입력합니다.

[암호] Redshift#123을 입력합니다.

2. 연결을 테스트하려면 [Test]를 선택합니다. [OK]를 선택하여 대화 상자를 닫은 후 [OK]를 선택하여 연결프로필을 생성합니다.

Note

연결에 실패한 경우, CloudFormation 템플릿을 생성할 때 할당한 IP 주소가 연결을 시도한 IP주소인지 확인합니다. 이 문제는 인스턴스에 연결할 때 가장 일반적으로 발생하는 문제입니다.

3. select current_date;와 같은 샘플 SQL 명령을 실행하여 Amazon Redshift DB 인스턴스와의 연결을 확인합니다.

5단계: AWS SCT를 사용하여 Oracle 스키마를Amazon Redshift로 변환데이터를 Amazon Redshift로 변환하기 전에 아래 설명과 같이 Oracle 스키마를 Amazon Redshift 스키마로변환합니다.

API 버전 2016-01-01119

Page 124: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

5단계: AWS SCT를 사용하여 Oracle스키마를 Amazon Redshift로 변환

AWS SCT를 사용하여 Oracle 스키마를 Amazon Redshift 스키마로 변환하려면

1. AWS SCT를 시작합니다. AWS SCT에서 [File]을 선택하고 나서 [New Project]를 선택합니다.DWSchemaMigrationDemoProject라는 새 프로젝트를 생성합니다. [New Project] 창에 다음 정보를입력하고 [OK]를 선택합니다.

이 파라미터의 경우... 수행할 작업

[프로젝트 이름] DWSchemaMigrationDemoProject를 입력합니다.

위치 기본 [Projects] 폴더와 기본 [Data Warehouse (OLAP)] 옵션을 사용합니다.

[Source Database Engine] [Oracle DW]를 선택합니다.

[Target Database Engine] Amazon Redshift를 선택합니다.

2. [Connect to Oracle]을 선택합니다. [Connect to Oracle] 대화 상자에서 다음 정보를 입력한 후 [TestConnection]을 선택합니다.

이 파라미터의 경우... 수행할 작업

유형 [SID]를 선택합니다.

[Server name] Oracle DB 인스턴스에 연결하는 데 사용한OracleJDBCConnectionString 값을 사용하지만, JDBC 접두사 정보와 포트 및 데이터베이스 이름 접미사를 제거합니다. 예를 들어, SQLWorkbench/J에서 사용하는 샘플 연결 문자열은 "jdbc:oracle:thin:@abc12345678.cqi87654abc.us-west-2.rds.amazonaws.com:1521:ORCL"일수 있습니다. AWS SCT 서버 이름의 경우"jdbc:oracle:thin:@" 및 ":1521:ORCL"을 제거

API 버전 2016-01-01120

Page 125: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

5단계: AWS SCT를 사용하여 Oracle스키마를 Amazon Redshift로 변환

이 파라미터의 경우... 수행할 작업하고 서버 이름("abc12345678.cqi87654abc.us-west-2.rds.amazonaws.com")만 사용합니다.

[Server port] 1521을 입력합니다.

[Oracle SID] ORCL을 입력합니다.

사용자 이름 oraadmin을 입력합니다.

[암호] oraadmin123을 입력합니다.

3. [OK]를 선택하여 알림 상자를 닫은 후 [OK]를 선택하여 이 대화 상자를 닫고 Oracle DB 인스턴스와의 연결을 시작합니다. Oracle DB 인스턴스의 데이터베이스 구조는 다음과 같이 표시됩니다. SH 스키마만을선택합니다.

Note

SH 스키마가 목록에 표시되지 않을 경우, [Actions]를 선택하고 나서 [Refresh from Database]를 선택합니다.

4. [Connect to Amazon Redshift]를 선택합니다. [Connect to Amazon Redshift] 대화 상자에서 다음 정보를입력한 후 [Test Connection]을 선택합니다.

API 버전 2016-01-01121

Page 126: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

5단계: AWS SCT를 사용하여 Oracle스키마를 Amazon Redshift로 변환

이 파라미터의 경우... 수행할 작업

유형 [SID]를 선택합니다.

[Server name] Amazon Redshift 클러스터에 연결하는 데 사용한RedshiftJDBCConnectionString 값을 사용하지만,JDBC 접두사 정보와 포트 접미사를 제거합니다. 예를들어, SQL Workbench/J에서 사용하는 샘플 연결 문자열은 " jdbc:redshift://oracletoredshiftdwusingdms-redshiftcluster-abc123567.abc87654321.us-west-2.redshift.amazonaws.com:5439/test"가될 수도 있습니다. AWS SCT [Server name]의 경우, " jdbc:redshift://" 및 :5439/test"를 제거하고 서버 이름: "oracletoredshiftdwusingdms-redshiftcluster-abc123567.abc87654321.us-west-2.redshift.amazonaws.com"만을 사용합니다.

[Server port] 5439을 입력합니다.

사용자 이름 redshiftadmin을 입력합니다.

[암호] Redshift#123을 입력합니다.

AWS SCT는 SH 스키마를 분석하고 데이터베이스 마이그레이션 평가 보고서를 생성하여 AmazonRedshift로 변환합니다.

5. 확인을 선택하여 알림 상자를 닫은 후 확인을 선택하여 이 대화 상자를 닫고 Amazon Redshift DB 인스턴스와의 연결을 시작합니다.

6. [Oracle DW] 보기에서 [SH] 스키마의 컨텍스트 메뉴를 열고(마우스 오른쪽 버튼 클릭) [Create Report]를 선택합니다.

7. 보고서 요약을 검토하십시오. 보고서를 저장하려면 [Save to CSV] 또는 [Save to PDF]를 선택합니다.

이 보고서에서는 잠재적인 마이그레이션 문제 및 이 문제를 해결하는 조치와 더불어 AWS SCT를 사용하여 변환할 수 있는 객체 유형에 대해 다룹니다. 이 연습에서는 다음과 같은 항목이 표시됩니다.

API 버전 2016-01-01122

Page 127: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

5단계: AWS SCT를 사용하여 Oracle스키마를 Amazon Redshift로 변환

API 버전 2016-01-01123

Page 128: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

5단계: AWS SCT를 사용하여 Oracle스키마를 Amazon Redshift로 변환

8. [Action Items] 탭을 선택합니다. 이 보고서에서는 잠재적인 마이그레이션 문제 및 이 문제를 해결하는조치와 더불어 AWS SCT를 사용하여 변환할 수 있는 객체 유형에 대해 다룹니다. 이 연습에서는 다음과같은 항목이 표시됩니다.

9. [Schemas] 목록에서 [SH] 항목의 컨텍스트 메뉴를 열고(마우스 오른쪽 버튼 클릭) [Collect Statistics]를선택합니다. AWS SCT는 원본 데이터를 분석하여 대상 Amazon Redshift 데이터베이스를 위한 최적의키를 권장합니다. 자세한 내용은 AWS Schema Conversion Tool을 위해 통계 수집 또는 업로드를 참조하십시오.

10. [SH] 스키마의 컨텍스트를 열고(마우스 오른쪽 버튼 클릭) 나서 [Convert schema]를 선택합니다.11. 확인 메시지에서 [Yes]를 선택합니다. 그런 다음 AWS SCT는 스키마를 대상 데이터베이스 형식으로 변

환합니다.

API 버전 2016-01-01124

Page 129: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

5단계: AWS SCT를 사용하여 Oracle스키마를 Amazon Redshift로 변환

Note

Amazon Redshift 정렬 키와 배포 키 선택은 최적의 성능에 필수적입니다. AWS SCT에서 키관리를 사용하여 키 선택을 사용자 지정할 수 있습니다. 이 연습에서는 AWS SCT에서 권장하는 기본값을 사용합니다. 자세한 내용은 AWS Schema Conversion Tool을 사용하여 AmazonRedshift 최적화를 참조하십시오.

12. Amazon Redshift 보기에서 [SH] 스키마의 컨텍스트 메뉴를 열고(마우스 오른쪽 버튼으로 클릭) [Applyto database]를 선택하여 스키마 스크립트를 대상 Amazon Redshift 인스턴스에 적용합니다.

13. [SH] 스키마에서 컨텍스트 메뉴를 열고(마우스 오른쪽 버튼으로 클릭) [Refresh from Database]를 선택합니다.

API 버전 2016-01-01125

Page 130: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

6단계: 스키마 변환 검증

이제 데이터베이스 스키마가 변환되어 원본에서 대상으로 가져올 수 있습니다.

6단계: 스키마 변환 검증스키마 변환을 검증하려면 SQL Workbench/J를 사용하여 Oracle과 Amazon Redshift 데이터베이스에서 확인된 객체를 비교합니다.

SQL Workbench/J를 사용하여 스키마 변환을 검증하려면

1. SQL Workbench/J에서 [File]을 선택한 후 [Connect window]를 선택합니다. 이전 단계에서 생성한RedshiftConnection을 선택합니다. [OK]를 선택합니다.

2. 다음 스크립트를 실행하여 대상 Amazon Redshift 데이터베이스에서 객체 형식 개수와 SH 스키마 개수를 확인합니다. 이 값은 원본 Oracle 데이터베이스의 객체 수와 일치해야 합니다.

SELECT 'TABLE' AS OBJECT_TYPE, TABLE_NAME AS OBJECT_NAME, TABLE_SCHEMA AS OBJECT_SCHEMAFROM information_schema.TABLESWHERE TABLE_TYPE = 'BASE TABLE'AND OBJECT_SCHEMA = 'sh';

이 쿼리는 다음과 비슷한 내용을 출력해야 합니다.

object_type | object_name | object_schema------------+-------------+--------------TABLE | channels | sh TABLE | customers | sh TABLE | products | sh TABLE | promotions | sh TABLE | sales | sh

3. 다음 쿼리를 사용하여 Amazon Redshift 클러스터에 생성된 정렬 및 배포 키를 확인합니다.

set search_path to '$user', 'public', 'sh';

SELECT tablename, "column", TYPE, encoding, distkey, sortkey, "notnull"FROM pg_table_defWHERE (distkey = TRUE OR sortkey <> 0);

쿼리 결과는 AWS SCT 키 관리를 사용하여 선택한 분산 키(distkey)와 정렬 키(sortkey)를 반영합니다.

tablename | column | type | encoding | distkey | sortkey | notnull-----------+---------------------+-----------------------------+----------+---------+---------+--------channels | channel_id | numeric(38,18) | none | true | 1 | true customers | cust_id | numeric(38,18) | none | false | 4 | true customers | cust_gender | character(2) | none | false | 1 | true

API 버전 2016-01-01126

Page 131: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

7단계: AWS DMS 복제 인스턴스 생성

customers | cust_year_of_birth | smallint | none | false | 3 | true customers | cust_marital_status | character varying(40) | none | false | 2 | false products | prod_id | integer | none | true | 4 | true products | prod_subcategory | character varying(100) | none | false | 3 | true products | prod_category | character varying(100) | none | false | 2 | true products | prod_status | character varying(40) | none | false | 1 | true promotions | promo_id | integer | none | true | 1 | true sales | prod_id | numeric(38,18) | none | false | 4 | true sales | cust_id | numeric(38,18) | none | false | 3 | true sales | time_id | timestamp without time zone | none | true | 1 | true sales | channel_id | numeric(38,18) | none | false | 2 | true sales | promo_id | numeric(38,18) | none | false | 5 | true

7단계: AWS DMS 복제 인스턴스 생성앞의 설명과 같이 원본과 대상 데이터베이스에서 스키마 구조를 검증한 후 이 연습의 핵심 부분인 데이터 마이그레이션으로 진행합니다. 다음 그림은 마이그레이션 프로세스의 상위 수준 보기를 보여줍니다.

DMS 복제 인스턴스는 원본과 대상 간에 실제 데이터 마이그레이션을 수행합니다. 복제 인스턴스도 마이그레이션 중에 트랜잭션 로그를 캐시합니다. 복제 인스턴스가 갖는 CPU와 메모리 용량은 마이그레이션에 필요한 전체 시간에 영향을 줍니다.

AWS DMS 복제 인스턴스를 생성하려면

1. AWS Management Console에 로그인한 후 https://console.aws.amazon.com/dms/에서 AWS DMS 콘솔을 열고, [Create Migration]을 선택합니다. AWS Identity and Access Management(IAM) 사용자로 로그인한 경우 AWS DMS에 액세스하기 위한 적절한 권한이 있어야 합니다. 필요한 권한에 대한 자세한 내용은 AWS DMS를 사용하는 데 필요한 IAM 권한을 참조하십시오.

2. [마이그레이션 생성]을 선택하여 데이터베이스 마이그레이션을 시작합니다.3. [Welcome] 페이지에서 [Next]를 선택합니다.4. [Create replication instance] 페이지에서 다음과 같이 복제 인스턴스 정보를 지정합니다.

이 파라미터의 경우... 수행할 작업

[이름] DMSdemo-repserver를 입력합니다.

API 버전 2016-01-01127

Page 132: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

8단계: AWS DMS 원본 및 대상 엔드포인트 생성

이 파라미터의 경우... 수행할 작업

설명 DMS demo replication server와 같이 간단한 설명을입력합니다.

인스턴스 클래스 [dms.t2.medium]을 선택합니다. 이 인스턴스 클래스는 작은테이블 집합을 마이그레이션하기에 충분히 큽니다.

VPC CloudFormation 스택에서 생성된 VPC인OracletoRedshiftusingDMS를 선택합니다.

[Multi-AZ] No를 선택합니다.

[Publicly accessible] 이 항목을 선택한 상태로 둡니다.

5. [Advanced] 섹션에서 기본 설정은 그대로 두고, [Next: Tag Instance]를 선택합니다.

8단계: AWS DMS 원본 및 대상 엔드포인트 생성복제 인스턴스가 생성되는 동안 AWS Management Console을 사용하여 원본과 대상 데이터베이스 엔드포인트를 지정할 수 있습니다. 그렇지만, 복제 인스턴스는 연결에 사용되기 때문에 복제 인스턴스가 생성된 후에는 연결을 테스트만할 수 있습니다.

AWS 콘솔을 사용하여 원본 또는 대상 데이터베이스 엔드포인트를 지정하려면

1. 원본 Oracle 데이터베이스 및 대상 Amazon Redshift 데이터베이스에 대한 연결 정보를 지정합니다. 다음 표는 원본 설정에 대한 설명입니다.

이 파라미터의 경우... 수행할 작업

[Endpoint Identifier] Orasource(Amazon RDS Oracle 엔드포인트)를 입력합니다.

소스 엔진 [oracle]을 선택합니다.

[Server name] Oracle DB 인스턴스 이름을 입력합니다.이 이름은 "abc123567.abc87654321.us-west-2.rds.amazonaws.com"와 같이 AWS SCT에서 사용한[Server name] 값입니다.

포트 1521을 입력합니다.

[SSL mode] [None]을 선택합니다.

사용자명 oraadmin을 입력합니다.

[암호] oraadmin123을 입력합니다.

[SID] ORCL을 입력합니다.

다음 표는 대상 설정에 대한 설명입니다.

이 파라미터의 경우... 수행할 작업

[Endpoint Identifier] Redshifttarget (Amazon Redshift 엔드포인트)을 입력합니다.

API 버전 2016-01-01128

Page 133: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

8단계: AWS DMS 원본 및 대상 엔드포인트 생성

이 파라미터의 경우... 수행할 작업

[Target Engine] Redshift를 선택합니다.

[Servername ] Amazon Redshift DB 인스턴스 이름을 입력합니다.이 이름은 "oracletoredshiftdwusingdms-redshiftcluster-abc123567.abc87654321.us-west-2.redshift.amazonaws.com"과 같이 AWS SCT에서 사용한 [Server name] 값입니다..

포트 5439을 입력합니다.

[SSL mode] [None]을 선택합니다.

사용자명 redshiftadmin을 입력합니다.

[암호] Redshift#123을 입력합니다.

데이터베이스 이름 test를 입력합니다.

완료한 페이지는 다음과 같아야 합니다.

API 버전 2016-01-01129

Page 134: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

8단계: AWS DMS 원본 및 대상 엔드포인트 생성

2. [Replication instance created successfully.] 상태가 표시될 때가지 기다립니다.3. 원본과 대상 연결을 테스트하려면, 원본과 대상 연결에서 [Run Test]를 선택합니다.4. [Next]를 선택합니다.

API 버전 2016-01-01130

Page 135: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

9단계: AWS DMS 마이그레이션 작업 생성 및 실행

9단계: AWS DMS 마이그레이션 작업 생성 및 실행AWS DMS 작업을 사용하면 마이그레이션할 스키마와 마이그레이션 유형을 지정할 수 있습니다. 기존 데이터를 마이그레이션하거나, 지속적 변경 사항을 복제하거나, 또는 데이터 변경 사항만 복제할 수 있습니다. 이연습에서는 기존 데이터만을 마이그레이션합니다.

마이그레이션 작업을 생성하려면

1. [Create Task] 페이지에서 작업 옵션을 지정합니다. 다음 표는 설정에 대한 설명입니다.

이 파라미터의 경우... 수행할 작업

[Task name] migrateSHschema를 입력합니다.

복제 인스턴스 DMSdemo-repserver(이전 단계에서 생성한 AWS DMS복제 인스턴스)를 표시합니다.

[Source endpoint] orasource(Oracle 엔드포인트용 Amazon RDS)를 표시합니다.

[Target endpoint] redshifttarget(Amazon Redshift 엔드포인트)을 표시합니다.

[Migration type] [Migrate existing data] 옵션을 선택합니다.

[Start task on create] 이 옵션을 선택합니다.

이 페이지는 다음과 같이 보여야 합니다.

API 버전 2016-01-01131

Page 136: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

9단계: AWS DMS 마이그레이션 작업 생성 및 실행

2. [Task Settings] 섹션에서 다음 표에서와 같이 설정을 지정합니다.

이 파라미터의 경우... 수행할 작업

[Target table preparation mode] [Do nothing]을 선택합니다.

[Include LOB columns in replication] [Limited LOB mode]를 선택합니다.

최대 LOB 크기(kb) 기본값(32)을 수락합니다.

이 섹션은 다음과 같아야 합니다.

API 버전 2016-01-01132

Page 137: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

9단계: AWS DMS 마이그레이션 작업 생성 및 실행

3. [Selection rules] 섹션에서 다음 표에서와 같이 설정을 지정합니다.

이 파라미터의 경우... 수행할 작업

스키마 이름 Enter a schema를 선택합니다.

스키마 이름의 형식 SH%를 입력합니다.

테이블 이름의 형식 유형 %.

Action Include를 선택합니다.

이 섹션은 다음과 같아야 합니다.

API 버전 2016-01-01133

Page 138: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

9단계: AWS DMS 마이그레이션 작업 생성 및 실행

4. [Add selection rule]을 선택합니다.5. [Create task]를 선택합니다.

5. [Create task]를 선택합니다. 작업이 즉시 시작됩니다. [Tasks] 섹션에는 마이그레이션 작업 상태가 나타납니다.

API 버전 2016-01-01134

Page 139: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

10단계: AWS DMS 마이그레이션이 성공적으로 완료되었는지 확인

10단계: AWS DMS 마이그레이션이 성공적으로 완료되었는지 확인마이그레이션 작업이 완료되면, 작업 결과를 예상 결과와 비교할 수 있습니다.

마이그레이션 작업 결과를 예상 결과와 비교하려면

1. 탐색 창에서 [Tasks]를 선택합니다.2. 마이그레이션 작업(migrateSHschema)을 선택합니다.3. 다음 그림과 같이 [Table statistics] 탭을 선택합니다.

API 버전 2016-01-01135

Page 140: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

10단계: AWS DMS 마이그레이션이 성공적으로 완료되었는지 확인

4. SQL Workbench/J를 사용하여 Amazon Redshift 인스턴스에 연결하고 나서 데이터베이스 테이블을Oracle에서 Amazon Redshift로 마이그레이션했는지 여부를 확인하기 위해 다음 그림과 같이 SQL 스크립트를 실행합니다.

select "table", tbl_rowsfrom svv_table_infowhereSCHEMA = 'sh'

API 버전 2016-01-01136

Page 141: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

11단계: 연습 리소스 삭제

order by 1;

결과는 다음과 비슷한 모습이어야 합니다.

table | tbl_rows-----------+---------channels | 5customers | 8products | 66promotions | 503sales | 1106

5. 이전 쿼리의 테이블 출력과 행 수가 RDS Oracle에서 예상한 수치와 일치하는지 확인하기 위해, 이전 단계의 결과와 현재 결과를 비교합니다.

6. 다음 쿼리를 실행하여 테이블에서 관계를 확인합니다. 이 쿼리는 10명이 넘는 직원이 있는 부서를 확인합니다.

Select b.channel_desc,count(*) from SH.SALES a,SH.CHANNELS b where a.channel_id=b.channel_id group by b.channel_desc order by 1;

이 쿼리는 다음과 비슷한 내용을 출력해야 합니다.

channel_desc | count-------------+------Direct Sales | 355Internet | 26Partners | 172

7. 열 압축 인코딩 확인

DMS는 Amazon Redshift COPY 작업을 사용하여 데이터를 로드합니다. 기본적으로 빈 대상 테이블에로드할 때마다 COPY 명령은 자동 압축을 적용합니다. 이 연습의 샘플 데이터는 자동 압축을 적용할 수있을 만큼 충분히 크지 않습니다. 큰 데이터 집합을 마이그레이션할 때 COPY는 자동 압축을 적용합니다.

Amazon Redshift 테이블에서 자동 압축에 대한 자세한 내용은 자동 압축을 사용하여 테이블 로드를 참조하십시오.

압축 인코딩을 보려면, 다음 쿼리를 실행합니다.

SELECT *FROM pg_table_defWHERE schemaname = 'sh’;

이제 Oracle DB 인스턴스용 Amazon RDS에서 Amazon Redshift로의 데이터베이스 마이그레이션을 완료했습니다.

11단계: 연습 리소스 삭제이 연습을 완료한 뒤에는 다음 단계를 수행하여 이 연습에서 사용된 추가 AWS 리소스에 요금이 부과되지 않도록 다음 단계를 수행합니다. 일부 리소스가 다른 리소스에 대한 종속성이 있는 경우 이 리소스는 삭제할 수없기 때문에 단계를 순서대로 수행해야 합니다.

API 버전 2016-01-01137

Page 142: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

다음 단계

AWS DMS 리소스를 삭제하려면

1. 탐색 창에서 작업을 선택하고, 마이그레이션 작업(migratehrschema)을 선택한 다음 삭제를 선택합니다.

2. 탐색 창에서 엔드포인트를 선택하고, Oracle 소스 엔드포인트(orasource)를 선택한 다음 삭제를 선택합니다.

3. Amazon Redshift 대상 엔드포인트(redshifttarget)를 선택한 다음 삭제를 선택합니다.4. 탐색 창에서 복제 인스턴스를 선택하고, 복제 인스턴스(DMSdemo-repserver)를 선택한 다음 삭제를

선택합니다.

그런 다음 AWS CloudFormation 스택인 DMSdemo를 삭제해야 합니다.

AWS CloudFormation 스택을 삭제하려면

1. AWS Management 콘솔에 로그인한 다음 https://console.aws.amazon.com/cloudformation에서 AWSCloudFormation 콘솔을 엽니다.

IAM 사용자로 로그인한 경우 AWS CloudFormation에 액세스하기 위한 적절한 권한이 있어야 합니다.2. CloudFormation 스택인 OracletoRedshiftDWusingDMS를 선택합니다.3. [ Actions]에서 [Delete stack]을 선택합니다.

스택 상태가 DELETE_IN_PROGRESS로 바뀌고, AWS CloudFormation이OracletoRedshiftDWusingDMS 스택과 관련된 리소스를 정리합니다. AWS CloudFormation이 리소스 정리를 마치면 목록에서 스택을 제거합니다.

다음 단계다음 기능을 포함하여 이 연습에 포함되지 않은 AWS DMS의 다른 여러 기능을 살펴볼 수 있습니다.

• 데이터의 지속적 복제를 위한 AWS DMS CDC(변경 데이터 캡처) 기능입니다.• 마이그레이션 프로세스의 일부로서 변환을 지정하고 선택한 스키마에 적용할 수 있는 변환 작업입니다.

자세한 내용은 the AWS DMS 설명서를 참조하십시오.

API 버전 2016-01-01138

Page 143: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

MySQL 호환 데이터베이스를 AWS로마이그레이션

Amazon Web Services(AWS)에는 AWS에서 MySQL 호환 데이터베이스를 실행할 수 있는 다양한 서비스가마련되어 있습니다. Amazon Relational Database Service(Amazon RDS)는 MySQL, MariaDB 및 AmazonAurora MySQL을 비롯하여 MySQL 호환 데이터베이스를 지원합니다. AWS Elastic Cloud ComputingService(EC2)는 MySQL 호환 데이터베이스를 실행하는 플랫폼입니다.

마이그레이션 원본 솔루션

RDS MySQL DB 인스턴스 Amazon RDS MySQL DB 스냅샷의 데이터를 Amazon Aurora MySQLDB 클러스터로 직접 마이그레이션할 수 있습니다. 자세한 내용은Amazon RDS MySQL DB 인스턴스에서 Amazon Aurora MySQL DB 클러스터로 데이터 마이그레이션 (p. 150) 단원을 참조하십시오.

Amazon RDS 외부의 MySQL데이터베이스

InnoDB 또는 MyISAM 테이블스페이스를 지원하는 데이터베이스인 경우다음과 같은 옵션으로 데이터를 Amazon Aurora MySQL DB 클러스터로마이그레이션할 수 있습니다.

• mysqldump 유틸리티로 데이터 덤프를 생성하고 해당 데이터를 기존Amazon Aurora MySQL DB 클러스터로 가져올 수 있습니다.

• 데이터베이스에서 Amazon Simple Storage Service(Amazon S3) 버킷으로 원본 파일을 복사한 후 해당 파일에서 Amazon Aurora MySQLDB 클러스터를 복원할 수 있습니다. mysqldump를 사용하여 데이터를 마이그레이션하는 것보다 이 방법이 훨씬 더 빠를 것입니다.

자세한 내용은 mysqldump를 사용하여 Amazon Aurora MySQL로MySQL 마이그레이션 (p. 150) 단원을 참조하십시오.

MySQL과 호환되지 않는 데이터베이스

AWS Database Migration Service(AWS DMS)를 사용하여 MySQL 데이터베이스의 데이터도 마이그레이션할 수 있습니다. 그러나 데이터베이스 크기가 매우 크면 Amazon S3을 사용하여 외부 MySQL 데이터베이스의 데이터를 Amazon Aurora MySQL로 마이그레이션 (p. 140)에서 설명한 대로 데이터베이스의 원본 파일을 복사한 후 해당 파일을 AmazonAurora MySQL DB 인스턴스로 복원하면 데이터 마이그레이션에 걸리는시간을 대폭 줄일 수 있습니다.

AWS DMS에 대한 자세한 내용은 AWS Database Migration Service란무엇입니까?를 참조하십시오.

API 버전 2016-01-01139

Page 144: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

Amazon S3을 사용하여 외부 MySQL 데이터베이스의 데이터를 Amazon Aurora MySQL로 마이그레이션

Amazon Aurora MySQL로 MySQL 호환 데이터베이스 마이그레이션

InnoDB 또는 MyISAM 테이블스페이스를 지원하는 데이터베이스인 경우 다음과 같은 옵션으로 데이터를Amazon Aurora MySQL DB 클러스터로 마이그레이션할 수 있습니다.

• mysqldump 유틸리티로 데이터 덤프를 생성하고 해당 데이터를 기존 Amazon Aurora MySQL DB 클러스터로 가져올 수 있습니다. 자세한 내용은 mysqldump를 사용하여 Amazon Aurora MySQL로 MySQL 마이그레이션 (p. 150) 단원을 참조하십시오.

• 데이터베이스에서 Amazon S3 버킷으로 원본 파일을 복사한 후 해당 파일에서 Amazon Aurora MySQLDB 클러스터를 복원할 수 있습니다. mysqldump를 사용하여 데이터를 마이그레이션하는 것보다 이 방법이 훨씬 더 빠를 것입니다. 자세한 내용은 Amazon S3을 사용하여 외부 MySQL 데이터베이스의 데이터를Amazon Aurora MySQL로 마이그레이션 (p. 140) 단원을 참조하십시오.

Amazon S3을 사용하여 외부 MySQL 데이터베이스의 데이터를 Amazon Aurora MySQL로 마이그레이션

원본 MySQL 버전 5.5, 5.6 또는 5.7 데이터베이스에서 Amazon S3 버킷으로 원본 파일을 복사한 후 해당 파일에서 Amazon Aurora MySQL DB 클러스터를 복원할 수 있습니다.

mysqldump를 사용하여 데이터를 마이그레이션하는 것보다 이 방법이 훨씬 더 빠를 수 있습니다.mysqldump를 사용하면 명령을 모두 다시 실행하여 원본 데이터베이스의 데이터와 스키마를 새 AmazonAurora MySQL DB 클러스터에 다시 생성하기 때문입니다. Amazon Aurora MySQL에서는 원본 MySQL 데이터 파일을 복사하는 즉시 해당 파일을 DB 클러스터의 데이터로 사용할 수 있습니다.

Note

아시아 태평양(뭄바이) 리전에서는 Amazon S3 버킷의 백업 파일에서 Amazon Aurora MySQL DB클러스터를 복원하는 것은 지원되지 않습니다.

Amazon Aurora MySQL이 데이터베이스에서 모든 것을 복원하는 것은 아닙니다. 원본 MySQL 또는MariaDB 데이터베이스에서 다음 항목의 데이터베이스 스키마와 값을 저장한 후 복원한 Amazon AuroraMySQL DB 클러스터가 생성되면 여기에 추가해야 합니다.

• 사용자 계정• 함수• 저장 프로시저• 시간대 정보. 시간대 정보는 Amazon Aurora MySQL DB 클러스터의 로컬 운영 체제에서 로드됩니다.

사전 조건데이터를 Amazon S3 버킷으로 복사하고 해당 파일로 DB 클러스터를 복원하려면 먼저 다음과 같이 해야 합니다.

• 로컬 서버에 Percona XtraBackup을 설치합니다.• Amazon Aurora MySQL이 Amazon S3 버킷에 대신 액세스하도록 허용합니다.

API 버전 2016-01-01140

Page 145: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

사전 조건

Percona XtraBackup 설치Amazon Aurora MySQL는 Percona XtraBackup을 사용하여 만든 파일에서 DB 클러스터를 복원할 수 있습니다. Percona 웹 사이트(https://www.percona.com/doc/percona-xtrabackup/2.4/installation)에서 PerconaXtraBackup을 설치하십시오.

필요한 권한MySQL 데이터를 Amazon Aurora MySQL DB 클러스터로 마이그레이션하려면 몇 가지 권한이 필요합니다.

• Amazon RDS에서 Amazon S3 버킷으로 새 클러스터를 생성하도록 요청하는 사용자는 AWS 계정의 버킷을 나열할 권한이 있어야 합니다. AWS Identity and Access Management(IAM) 정책을 사용하여 사용자에게 이 권한을 부여합니다.

• Amazon RDS는 Amazon Aurora MySQL DB 클러스터를 생성하기 위해 사용된 파일을 저장하는 AmazonS3 버킷에 대신 액세스할 수 있는 권한을 요구합니다. IAM 서비스 역할을 사용하여 Amazon RDS에 필요한 권한을 부여합니다.

• 요청한 사용자에게는 AWS 계정의 IAM 역할을 나열할 권한도 있어야 합니다.• 요청한 사용자가 IAM 서비스 역할을 생성하거나 Amazon RDS에서 IAM 서비스 역할을 생성하도록 요청

할 경우(콘솔 사용) AWS 계정의 IAM 역할을 만들 수 있는 권한이 사용자에게 있어야 합니다.

예를 들어, 다음 IAM 정책은 콘솔을 사용하여 IAM 역할을 나열하고, IAM 역할을 만들고, 해당 계정의 S3 버킷을 나열하는 데 필요한 최소한의 권한을 사용자에게 부여합니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iam:ListRoles", "iam:CreateRole", "iam:CreatePolicy", "iam:AttachRolePolicy", "s3:ListBucket", "s3:ListObjects" ], "Resource": "*" } ]}

또한 사용자가 IAM 역할을 S3 버킷과 연결하려는 경우, IAM 사용자에게 해당 IAM 역할에 대한iam:PassRole 권한이 있어야 합니다. 관리자는 이 권한으로 사용자가 S3 버킷에 연결할 수 있는 IAM 역할을 제한하게 됩니다.

예를 들어 다음 IAM 정책은사용자가 S3Access라는 역할을 S3 버킷과 연결할 수 있도록 허용합니다.

{ "Version":"2012-10-17", "Statement":[ { "Sid":"AllowS3AccessRole", "Effect":"Allow", "Action":"iam:PassRole", "Resource":"arn:aws:iam::123456789012:role/S3Access" } ]}

API 버전 2016-01-01141

Page 146: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

사전 조건

IAM 서비스 역할 생성새 역할 생성 옵션을 선택하면 Amazon RDS Management Console에서 역할을 생성할 수 있습니다(이 항목뒷부분에서 설명). 이 옵션을 선택하고 새 역할의 이름을 지정하면 Amazon RDS는 제공된 이름을 사용하여Amazon RDS에서 S3 버킷에 액세스하는 데 필요한 IAM 서비스 역할을 생성합니다.

또는 다음 절차에 따라 수동으로 역할을 만들 수도 있습니다.

Amazon RDS에서 Amazon S3에 액세스할 수 있도록 IAM 역할을 생성하려면

1. AWS Management 콘솔에 로그인한 다음 https://console.aws.amazon.com/iam/에서 IAM 콘솔을 엽니다.

2. 왼쪽 탐색 창에서 [Roles(역할)]를 선택합니다.3. [Create New Role]을 선택하고 새 역할에 대해 [Role Name] 값을 지정한 다음 [Next Step]을 선택합니

다.4. [AWS Service Roles]에서 [Amazon RDS]를 찾아 [Select]를 선택합니다.5. [Attach Policy] 단계에서 연결할 정책을 선택하지 않습니다. 그 대신 [Next Step]을 선택합니다.6. 역할 정보를 검토한 후 [Create Role]을 선택합니다.7. 역할 목록에서 새로 만든 역할의 이름을 선택합니다. [Permissions] 탭을 선택합니다.8. [Inline Policies]를 선택합니다. 새 역할에는 정책이 연결되어 있지 않기 때문에 정책을 만들라는 메시지

가 나타납니다. 링크를 클릭하여 새 정책을 만듭니다.9. [Set Permissions] 페이지에서 [Custom Policy]와 [Select]를 차례로 선택합니다.10. [Policy Name]을 S3-bucket-policy와 같이 입력합니다. Policy Document(정책 문서)에 대해 다음 코

드를 추가합니다. 이때 <bucket name>을 액세스를 허용할 S3 버킷 이름으로 바꿉니다.

파일 이름 접두사를 정책 문서의 일부분으로 포함시킬 수도 있습니다. 접두사를 지정하면 AmazonAurora MySQL이 S3 버킷에서 지정한 접두사로 시작되는 파일을 사용하여 DB 클러스터를 만듭니다. 접두사를 지정하지 않으면 Amazon Aurora MySQL이 S3 버킷의 모든 파일을 사용하여 DB 클러스터를 만듭니다.

접두사를 지정하려면 다음의 <prefix>를 파일 이름 접두사로 바꿉니다. 접두사 뒤에 별표(*)를 붙이십시오. 접두사를 지정하지 않으려면 별표만 지정하면 됩니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:GetBucketLocation" ], "Resource": [ "arn:aws:s3:::<bucket name>" ] }, { "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::<bucket name>/<prefix>*" ] } ]}

API 버전 2016-01-01142

Page 147: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

1단계: DB 클러스터로 복원할 파일 백업

11. [Apply Policy]를 선택합니다.

1단계: DB 클러스터로 복원할 파일 백업S3에서 복원하여 Amazon Aurora MySQL DB 클러스터를 만들 수 있는 MySQL 데이터베이스 파일의 백업을만들려면 Percona Xtrabackup 유틸리티(innobackupex)를 사용하여 데이터베이스를 백업합니다.

예를 들어, 다음 명령을 실행하면 MySQL 데이터베이스 백업을 만들고 /s3-restore/backup 폴더에 백업파일을 저장합니다.

innobackupex --user=myuser --password=<password> --no-timestamp /s3-restore/backup

백업을 파일 하나로 압축하려면(필요하면 분할 가능) --stream 옵션을 사용하여 다음 형식 중 하나로 백업을 저장하면 됩니다.

• Gzip(.gz)• tar(.tar)• Percona xbstream(.xbstream)

예를 들어 다음 명령을 실행하면 Gzip 파일 여러 개로 된 MySQL 데이터베이스 백업이 만들어집니다. 표시되는 파라미터 값은 작은 테스트 데이터베이스용이므로, 자신의 해당 시나리오에 필요한 파라미터 값을 결정합니다.

innobackupex --user=myuser --password=<password> --stream=tar \ /mydata/s3-restore/backup | split -d --bytes=512000 \ - /mydata/s3-restore/backup3/backup.tar.gz

예를 들어 다음 명령을 실행하면 tar 파일 여러 개로 된 MySQL 데이터베이스 백업이 만들어집니다.

innobackupex --user=myuser --password=<password> --stream=tar \ /mydata/s3-restore/backup | split -d --bytes=512000 \ - /mydata/s3-restore/backup3/backup.tar

예를 들어 다음 명령을 실행하면 xbstream 파일 여러 개로 된 MySQL 데이터베이스 백업이 만들어집니다.

innobackupex --stream=xbstream \ /mydata/s3-restore/backup | split -d --bytes=512000 \ - /mydata/s3-restore/backup/backup.xbstream

Amazon S3은 버킷에 업로드되는 파일 크기를 5TB(테라바이트)로 제한합니다. 데이터베이스의 백업 데이터가 5TB를 초과하는 경우, split 명령을 사용하여 백업 파일을 각각 5TB 미만의 파일 여러 개로 나누어야 합니다.

Amazon Aurora MySQL에서는 Percona Xtrabackup을 사용하여 생성되는 부분 백업을 지원하지 않습니다.데이터베이스의 소스 파일을 백업할 때 --include, --tables-file 또는 --databases 옵션을 사용하여 부분 백업을 만들 수 없습니다.

자세한 내용은 innobackupex 스크립트를 참조하십시오.

Amazon Aurora MySQL은 파일 이름을 기준으로 백업 파일을 사용합니다. 파일 형식에 따라 백업 파일에적절한 파일 확장명을 지정해야 합니다. 예를 들어, Percona xbstream 형식을 사용하여 저장한 파일에는.xbstream을 지정합니다.

Amazon Aurora MySQL은 자연수 순서뿐 아니라 알파벳 순서로도 백업 파일을 사용합니다. innobackupex명령을 실행할 때는 항상 split 옵션을 사용하여 적절한 순서로 백업 파일을 작성하고 이름을 붙여야 합니다.

API 버전 2016-01-01143

Page 148: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

2단계: Amazon S3 버킷에 파일 복사

2단계: Amazon S3 버킷에 파일 복사Percona Xtrabackup 유틸리티를 사용하여 MySQL 데이터베이스를 백업한 후에는 백업 파일을 Amazon S3버킷으로 복사할 수 있습니다.

파일을 만들고 Amazon S3 버킷에 업로드하는 방법에 대한 자세한 내용은 Amazon S3 시작 안내서의Amazon Simple Storage Service 시작하기를 참조하십시오.

3단계: Amazon S3 버킷에서 Aurora MySQL DB 클러스터 복원Amazon RDS 콘솔에서 Amazon S3 버킷의 백업 파일을 복원하여 새 Amazon Aurora MySQL DB 클러스터를 만들 수 있습니다.

S3 버킷의 파일에서 Amazon Aurora MySQL DB 클러스터를 복원하려면

1. AWS Management 콘솔에 로그인한 후 https://console.aws.amazon.com/rds/에서 Amazon RDS 콘솔을엽니다.

2. RDS 대시보드에서 Restore Aurora MySQL DB Cluster from S3(S3에서 Aurora MySQL DB 클러스터 복원)를 선택합니다.

3. [Specify Source Backup Details]에서 다음을 지정합니다.

옵션 수행할 작업

소스 엔진 Amazon Aurora MySQL은 현재 mysql 데이터베이스 엔진의 백업 파일에서만 복원하도록 지원합니다.

[Source Engine Version] 백업 파일을 만들었던 MySQL 데이터베이스의 버전을 지정합니다(예: 5.6.22). MySQL 버전 5.5, 5.6 및 5.7이 지원됩니다.

[Select S3 Bucket] 백업 파일이 저장되어 있는 Amazon S3 버킷을 선택합니다.

[S3 Bucket Prefix (Optional)] Amazon S3 버킷에 저장된 파일의 파일 경로 접두사를 지정합니다. [S3 Bucket Prefix]는 선택 사항입니다. 접두사를 지정하지 않으면 Amazon Aurora MySQL이 S3 버킷의 루트 폴더에 있는 모든 파일을 사용하여 DB 클러스터를 만듭니다.접두사를 지정하면 Amazon Aurora MySQL은 지정된 접두사로 파일의 전체 경로가 시작되는 S3 버킷의 파일을 사용하여 DB 클러스터를 만듭니다.

Amazon Aurora MySQL은 백업 파일을 찾기 위해 S3 버킷의하위 폴더를 탐색하지 않습니다. [S3 버킷 접두사]로 확인된폴더의 파일만 사용합니다. S3 버킷의 하위 폴더에 백업 파일을 저장하는 경우, 파일이 저장되어 있는 폴더의 전체 경로를 나타내는 접두사를 지정해야 합니다.

예를 들어 S3 버킷의 backups 하위 폴더에 백업 파일을 저장했고 여러 세트의 백업 파일이 각각 자체 디렉터리(gzip_backup1, gzip_backup2 등)에 들어 있는 경우, gzip_backup1 폴더의 파일로 복원하려면 접두사backups/gzip_backup1을 지정해야 할 것입니다.

[IAM Role] Amazon Aurora MySQL이 Amazon S3에 대신 액세스하도록 승인하기 위해 만든 IAM 역할을 선택합니다. IAM 역할을

API 버전 2016-01-01144

Page 149: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드3단계: Amazon S3 버킷에서

Aurora MySQL DB 클러스터 복원옵션 수행할 작업

아직 만들지 않았다면 [Create a New Role]을 선택하여 만들수 있습니다.

4. [Next Step]을 선택합니다.5. [Specify DB Details] 페이지에서 DB 클러스터 정보를 지정합니다. 다음 표는 DB 인스턴스 설정을 나타

냅니다.

옵션 수행할 작업

DB 인스턴스 클래스 DB 클러스터에 있는 각 인스턴스의 처리 및 메모리 요구 사항을 정의하는 DB 인스턴스 클래스를 선택합니다.Aurora MySQL에서는 db.r3.large, db.r3.xlarge,db.r3.2xlarge, db.r3.4xlarge 및 db.r3.8xlargeDB 인스턴스 클래스를 지원합니다. 모든 DB 인스턴스 클래스 옵션에 대한 자세한 내용은 Amazon RDS 설명서를 참조하십시오.

다중 AZ 배포 장애 조치 지원을 위해 다른 가용 영역에서 Aurora MySQL복제본을 생성하지를 결정합니다. 여러 가용 영역에 대한 자세한 내용은 Amazon RDS 설명서를 참조하십시오.

DB Instance Identifier DB 클러스터의 기본 인스턴스 이름을 입력합니다. 이 식별자는 DB 클러스터의 기본 인스턴스의 엔드포인트 주소로 사용됩니다.

DB 인스턴스 식별자는 다음과 같은 제약 조건이 있습니다.

• 1~63자의 영숫자 문자 또는 하이픈으로 구성되어야 합니다.

• 첫 번째 문자는 글자이어야 합니다.• 하이픈으로 끝나거나 하이픈이 2개 연속으로 이어져서는

안 됩니다.• 각 리전별로 AWS 계정 1개의 모든 DB 인스턴스는 고유해

야 합니다.

Master Username 영숫자 문자를 사용해 DB 클러스터에 로그인하기 위해 마스터 사용자 이름으로 사용할 이름을 입력합니다.마스터 사용자 이름 계정에 기본적으로 부여되는 권한은 다음과 같습니다. create, drop, references,event, alter, delete, index, insert, select,update, create temporary tables, locktables, trigger, create view, show view,alter routine, create routine, execute,create user, process, show databases, grantoption.

Master Password 마스터 사용자 암호로 인쇄 가능한 ASCII 문자(/, " 및 @ 제외) 8-41자를 포함하는 암호를 입력합니다.

[Specify DB Details] 페이지의 일반적인 모습은 다음과 같습니다.

API 버전 2016-01-01145

Page 150: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드3단계: Amazon S3 버킷에서

Aurora MySQL DB 클러스터 복원

6. 마스터 암호를 확인한 후 [Next]를 선택합니다.7. [Configure Advanced Settings] 페이지에서 Aurora MySQL DB 클러스터 설정을 추가로 사용자 지정할

수 있습니다. 다음 표는 DB 클러스터의 고급 설정을 나타냅니다.

옵션 수행할 작업

VPC DB 클러스터를 호스팅할 VPC를 선택합니다. Amazon RDS에서 VPC를 생성하도록 하려면 [Create a New VPC]를 선택합니다. 자세한 내용은 이번 주제에서 전반부 을(를) 참조하십시오.

[Subnet Group] DB 클러스터에 사용할 DB 서브넷 그룹을 선택합니다.Amazon RDS에서 DB 서브넷 그룹을 생성하게 하려면[Create a New DB Subnet Group]을 선택합니다. 자세한 내용은 이번 주제에서 전반부 을(를) 참조하십시오.

Publicly Accessible DB 클러스터에 퍼블릭 IP 주소를 할당하려면 [Yes]를 선택하고, 그렇지 않으면 [No]를 선택합니다. DB 클러스터의 인스턴스는 퍼블릭과 프라이빗 DB 인스턴스를 모두 혼합하여사용할 수 있습니다. 퍼블릭 액세스가 불가능하도록 DB 인스턴스를 숨기는 방법에 대한 자세한 내용은 Amazon RDS설명서를 참조하십시오.

가용 영역 특정 가용 영역의 지정 여부를 결정합니다. 가용 영역에 대한 자세한 내용은 Amazon RDS 설명서를 참조하십시오.

API 버전 2016-01-01146

Page 151: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드3단계: Amazon S3 버킷에서

Aurora MySQL DB 클러스터 복원옵션 수행할 작업

VPC Security Group(s) VPC 보안 그룹을 한 개 이상 선택하여 DB 클러스터에 대한 네트워크 액세스를 보안합니다. Amazon RDS에서 VPC보안 그룹을 생성하게 하려면 [Create a New VPC SecurityGroup]을 선택합니다. 자세한 내용은 이번 주제에서 전반부을(를) 참조하십시오.

DB Cluster Identifier 선택한 리전에 속한 계정 고유의 DB 클러스터 이름을 입력합니다. 이 식별자는 DB 클러스터에 대한 클러스터 엔드포인트 주소로 사용됩니다. 클러스터 엔드포인트에 대한 자세한 내용은 Amazon RDS 설명서를 참조하십시오.

DB 클러스터 식별자는 다음과 같은 제약 조건이 있습니다.

• 1~63자의 영숫자 문자 또는 하이픈으로 구성되어야 합니다.

• 첫 번째 문자는 글자이어야 합니다.• 하이픈으로 끝나거나 하이픈이 2개 연속으로 이어져서는

안 됩니다.• 리전별로 모든 DB 클러스터에 대해 AWS 계정당 고유해

야 합니다.

Database Name 데이터베이스의 이름을 최대 8자의 영숫자 문자로 입력합니다. 이름을 입력하지 않으면 Amazon RDS가 DB 클러스터에서 생성하려고 하는 데이터베이스를 생성하지 않습니다.

Database Port 애플리케이션과 유틸리티가 데이터베이스에 액세스할 때사용할 포트를 지정합니다. Aurora MySQL DB 클러스터는MySQL 포트, 3306이 기본 포트로 지정됩니다. 일부 기업에서는 방화벽이 기본 MySQL 포트 연결을 차단하는 경우도있습니다. 이처럼 기업 방화벽이 기본 포트를 차단할 경우새로운 DB 클러스터에 다른 포트를 선택해야 합니다.

Parameter Group 파라미터 그룹을 선택합니다. Aurora MySQL에 사용할 수있는 기본 파라미터 그룹이 있거나 직접 파라미터 그룹을생성할 수 있습니다. 파라미터 그룹에 대한 자세한 내용은Amazon RDS 설명서를 참조하십시오.

Option Group 옵션 그룹을 선택합니다. Aurora MySQL에 사용할 수 있는기본 옵션 그룹이 있거나 직접 옵션 그룹을 생성할 수 있습니다. 옵션 그룹에 대한 자세한 내용은 Amazon RDS 설명서를 참조하십시오.

[Enable Encryption] 이 DB 클러스터에 대해 비활성화되어 있는 암호화를 활성화하려면[Yes]를 선택합니다. 자세한 내용은 Amazon RDS 설명서를 참조하십시오.

Priority 인스턴스의 장애 조치 우선 순위를 선택합니다. 값을 선택하지 않을 경우 기본값은 tier-1입니다. 기본 인스턴스 장애를복구할 때 이 우선 순위에 따라 Aurora MySQL 복제본이 승격되는 순서가 결정됩니다. 자세한 내용은 Amazon RDS 설명서를 참조하십시오.

[Backup Retention Period] Aurora MySQL가 데이터베이스 백업 사본을 보존하는 기간을 1~35일로 선택합니다. 백업 사본은 데이터베이스를 특정시점으로 정확히 복원(PITR)하는 데 사용됩니다.

API 버전 2016-01-01147

Page 152: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드3단계: Amazon S3 버킷에서

Aurora MySQL DB 클러스터 복원옵션 수행할 작업

Enable Enhanced Monitoring DB 클러스터가 실행되는 운영 체제에 대한 실시간 수집 측정치를 활성화하려면 [Yes]를 선택합니다. 자세한 내용은Amazon RDS 설명서를 참조하십시오.

Granularity 이 옵션은 [Enable Enhanced Monitoring]을 [Yes]로 설정한경우에만 사용할 수 있습니다. DB 클러스터에 대해 지표를수집하는 간격(초)을 설정합니다.

Auto Minor Version Upgrade MySQL DB 엔진의 부 버전 업그레이드가 있을 때 AuroraMySQL DB 클러스터가 자동으로 업그레이드를 수신하도록하려면 예를 선택합니다.

Auto Minor Version Upgrade 옵션은 Amazon AuroraMySQL DB 클러스터에 대해 MySQL 엔진 마이너 버전으로의 업그레이드에만 적용됩니다. 시스템 안정성 유지를 위한정기 패치에는 적용되지 않습니다.

유지 관리 기간 시스템 유지 관리를 실행하는 기간을 주 단위로 선택합니다.

[Configure Advanced Settings] 페이지의 일반적인 모습은 다음과 같습니다.

API 버전 2016-01-01148

Page 153: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드3단계: Amazon S3 버킷에서

Aurora MySQL DB 클러스터 복원

API 버전 2016-01-01149

Page 154: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

mysqldump를 사용하여 AmazonAurora MySQL로 MySQL 마이그레이션

8. DB 인스턴스 시작을 선택하여 Aurora MySQL DB 인스턴스를 시작한 다음 닫기를 선택하여 마법사를닫습니다.

Amazon RDS 콘솔의 DB 인스턴스 목록에 새로운 DB 인스턴스가 나타납니다. DB 인스턴스를 만들고사용할 준비가 될 때까지 DB 인스턴스의 상태는 [creating]입니다. 상태가 [available]로 변경되면 DB 클러스터의 기본 인스턴스에 연결할 수 있습니다. DB 인스턴스 클래스와 할당된 저장소에 따라 새 인스턴스를 사용할 수 있을 때까지 몇 분 정도 걸릴 수 있습니다.

새로 생성된 클러스터를 보려면 Amazon RDS 콘솔에서 클러스터를 선택합니다. 자세한 내용은Amazon RDS 설명서를 참조하십시오.

클러스터의 포트와 엔드포인트를 기록합니다. 쓰기 또는 읽기 작업을 수행하는 애플리케이션은 모두JDBC 및 ODBC 연결 문자열에 이 클러스터의 엔드포인트와 포트를 사용합니다.

mysqldump를 사용하여 Amazon Aurora MySQL로MySQL 마이그레이션

mysqldump 유틸리티로 데이터 덤프를 생성하고 해당 데이터를 기존 Amazon Aurora MySQL DB 클러스터로 가져올 수 있습니다.

Amazon Aurora MySQL은 MySQL 호환 데이터베이스이므로 mysqldump 유틸리티를 사용하여 MySQL 또는 MariaDB 데이터베이스에서 기존의 Amazon Aurora MySQL DB 클러스터로 데이터를 복사할 수 있습니다.

Amazon RDS MySQL DB 인스턴스에서 AmazonAurora MySQL DB 클러스터로 데이터 마이그레이션

다음에 설명한 대로 Amazon RDS 스냅샷에서 Amazon Aurora MySQL DB 클러스터로 데이터를 마이그레이션(복사)할 수 있습니다.

Note

Amazon Aurora MySQL는 MySQL과 호환되기 때문에 MySQL 데이터베이스와 Amazon AuroraMySQL DB 클러스터 사이에 복제를 설정하면 MySQL 데이터베이스에서 데이터를 마이그레이션할수 있습니다. 이때 MySQL 데이터베이스에서 실행되는 MySQL 버전은 5.5 이후를 사용하는 것이 좋습니다.

API 버전 2016-01-01150

Page 155: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

RDS MySQL 스냅샷을 Aurora MySQL로 마이그레이션

RDS MySQL 스냅샷을 Aurora MySQL로 마이그레이션Amazon RDS MySQL DB 인스턴스의 DB 스냅샷을 마이그레이션하면 Aurora MySQL DB 클러스터를 생성할 수 있습니다. 새로운 DB 클러스터에 원본 Amazon RDS MySQL DB 인스턴스의 데이터가 채워집니다. 이때 DB 스냅샷은 MySQL 5.6 기반 Amazon RDS DB 인스턴스를 통해 생성한 스냅샷이어야 합니다.

DB 스냅샷을 마이그레이션하는 방법은 수동과 자동이 있습니다. DB 클러스터를 생성한 후에는 옵션으로Aurora MySQL 복제본을 생성할 수도 있습니다.

일반적으로 다음 단계를 반드시 따라야 합니다.

1. Amazon Aurora MySQL DB 클러스터에 프로비저닝할 공간 크기를 결정합니다. 자세한 내용은 AmazonRDS 설명서를 참조하십시오.

2. 콘솔을 사용하여 Amazon RDS MySQL 5.6 인스턴스가 있는 리전에 스냅샷을 생성합니다.3. DB 스냅샷이 DB 클러스터와 동일한 리전에 속하지 않을 때는 Amazon RDS 콘솔을 사용하여 DB 스냅샷

을 해당 리전으로 복사합니다. DB 스냅샷 복사에 대한 자세한 내용은 Amazon RDS 설명서를 참조하십시오.

4. 콘솔을 사용하여 DB 스냅샷을 마이그레이션한 후 MySQL 5.6의 원본 DB 인스턴스와 동일한 데이터베이스로 Amazon Aurora MySQL DB 클러스터를 생성합니다.

Warning

Amazon RDS는 AWS 계정마다 스냅샷 사본을 한 번에 각 리전의 스냅샷 사본 하나로 제한합니다.

필요한 공간 크기MySQL DB 인스턴스의 스냅샷을 Aurora MySQL DB 클러스터로 마이그레이션할 때는 Aurora MySQL에서마이그레이션 전에 Amazon EBS(Amazon Elastic Block Store) 볼륨을 사용하여 스냅샷의 데이터 형식을 결정합니다. 마이그레이션을 위해 데이터 형식을 결정할 때 공간이 추가로 필요한 경우가 간혹 있습니다. 데이터를 DB 클러스터로 마이그레이션할 경우 다음과 같은 지침과 제한 사항을 준수해야 합니다.

• Amazon Aurora MySQL에서 최대 64TB 크기의 스토리지를 지원하기는 하지만 스냅샷을 Aurora MySQLDB 클러스터로 마이그레이션하는 프로세스는 스냅샷의 EBS 볼륨 크기로 제한됩니다. 따라서 마이그레이션할 수 있는 스냅샷의 최대 크기는 6TB입니다.

• MyISAM 테이블이 아니거나 압축되지 않은 테이블은 최대 크기가 6TB로 제한됩니다. MyISAM 테이블이있는 경우 Aurora MySQL은 Aurora MySQL과 호환되도록 테이블을 변환하기 위해 볼륨에 추가 공간이 필요합니다. 압축된 테이블이 있으면 Aurora MySQL은 이 테이블을 Aurora MySQL 클러스터 볼륨에 저장하기 전에 확장할 추가 공간이 필요합니다. 이 추가 공간 요구 사항 때문에 MySQL DB 인스턴스에서 마이그레이션하는 MyISAM 테이블과 압축된 테이블이 크기가 3TB를 넘지 않는지 확인해야 합니다.

데이터를 Amazon Aurora MySQL로 마이그레이션하는 데 필요한공간 크기 줄이기데이터를 Amazon Aurora MySQL로 마이그레이션하기 전에 데이터베이스 스키마 설정을 변경할 수 있습니다. 이렇게 수정하는 이유는 다음과 같은 경우에 도움이 되기 때문입니다.

• 마이그레이션 프로세스를 가속화하고 싶은 경우• 프로비저닝에 필요한 공간을 정확히 모르는 경우• 데이터 마이그레이션을 시도했지만 프로비저닝 공간 부족으로 마이그레이션이 실패한 경우

데이터베이스를 Amazon Aurora MySQL로 마이그레이션하는 프로세스를 개선하려면 다음과 같은 설정 변경이 가능합니다.

API 버전 2016-01-01151

Page 156: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

RDS MySQL 스냅샷을 Aurora MySQL로 마이그레이션

Important

이 업데이트는 반드시 프로덕션 인스턴스가 아닌 프로덕션 데이터베이스의 스냅샷에서 새롭게복구된 DB 인스턴스에 실행해야 합니다. 그런 다음, 새로운 DB 인스턴스의 스냅샷에서 AmazonAurora MySQL DB 클러스터로 데이터를 마이그레이션하면 프로덕션 데이터베이스의 서비스 중단을 방지할 수 있습니다.

테이블 유형 제한 또는 지침

MyISAM 테이블 Amazon Aurora MySQL는 InnoDB 테이블만 지원합니다. 데이터베이스에 MyISAM 테이블이 있으면 Amazon Aurora MySQL로 마이그레이션하기 전에 이 테이블을 변환해야 합니다. 이 때, 마이그레이션 절차 중MyISAM에서 InnoDB로 변환하려면 추가 공간이 필요합니다.

공간이 부족할 가능성을 줄이거나 마이그레이션 프로세스 속도를 높이려면 MyISAM 테이블을 마이그레이션하기 전에 모두 InnoDB 테이블로 변환해야 합니다. 이렇게 변환되는 InnoDB 테이블의 크기는Amazon Aurora MySQL에서 해당 테이블에 요구하는 크기와 동일합니다. MyISAM 테이블을 InnoDB로 변환하는 명령은 다음과 같습니다.

alter table <schema>.<table_name> engine=innodb,algorithm=copy;

압축된 테이블 Amazon Aurora MySQL에서는 압축된 테이블(ROW_FORMAT=COMPRESSED로 만든 테이블)이 지원되지 않습니다.

공간이 부족할 가능성을 줄이거나 마이그레이션 프로세스 속도를 높이려면 ROW_FORMAT을 DEFAULT, COMPACT, DYNAMIC 또는REDUNDANT로 설정하여 압축된 테이블을 확장합니다. 자세한 내용은https://dev.mysql.com/doc/refman/5.6/en/innodb-row-format.html을 참조하십시오.

기존 MySQL DB 인스턴스에서 다음 SQL 스크립트를 사용하면 데이터베이스에 있는 MyISAM 테이블 또는압축된 테이블의 목록을 표시할 수 있습니다.

-- This script examines a MySQL database for conditions that will block-- migrating the database into an Amazon Aurora MySQL DB.-- It needs to be run from an account that has read permission for the-- INFORMATION_SCHEMA database.

-- Verify that this is a supported version of MySQL.

select msg as `==> Checking current version of MySQL.`from ( select 'This script should be run on MySQL version 5.6. ' + 'Earlier versions are not supported.' as msg, cast(substring_index(version(), '.', 1) as unsigned) * 100 + cast(substring_index(substring_index(version(), '.', 2), '.', -1) as unsigned) as major_minor ) as Twhere major_minor <> 506;

-- List MyISAM and compressed tables. Include the table size.

select concat(TABLE_SCHEMA, '.', TABLE_NAME) as `==> MyISAM or Compressed Tables`,

API 버전 2016-01-01152

Page 157: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

RDS MySQL 스냅샷을 Aurora MySQL로 마이그레이션

round(((data_length + index_length) / 1024 / 1024), 2) "Approx size (MB)"from INFORMATION_SCHEMA.TABLESwhere ENGINE <> 'InnoDB' and ( -- User tables TABLE_SCHEMA not in ('mysql', 'performance_schema', 'information_schema') or -- Non-standard system tables ( TABLE_SCHEMA = 'mysql' and TABLE_NAME not in ( 'columns_priv', 'db', 'event', 'func', 'general_log', 'help_category', 'help_keyword', 'help_relation', 'help_topic', 'host', 'ndb_binlog_index', 'plugin', 'proc', 'procs_priv', 'proxies_priv', 'servers', 'slow_log', 'tables_priv', 'time_zone', 'time_zone_leap_second', 'time_zone_name', 'time_zone_transition', 'time_zone_transition_type', 'user' ) ) ) or ( -- Compressed tables ROW_FORMAT = 'Compressed' );

스크립트를 실행하면 다음 예제와 비슷한 결과를 출력합니다. 이 예제는 MyISAM에서 InnoDB로 변환해야하는 두 개의 테이블을 보여 줍니다. 그 밖에도 출력 화면에는 각 테이블의 크기도 메가바이트(MB) 단위로 나옵니다.

+---------------------------------+------------------+| ==> MyISAM or Compressed Tables | Approx size (MB) |+---------------------------------+------------------+| test.name_table | 2102.25 || test.my_table | 65.25 |+---------------------------------+------------------+2 rows in set (0.01 sec)

콘솔을 사용한 DB 스냅샷 마이그레이션하기Amazon RDS MySQL DB 인스턴스의 DB 스냅샷을 마이그레이션하면 Aurora MySQL DB 클러스터를 생성할 수 있습니다. 새로운 DB 클러스터는 원본 Amazon RDS MySQL DB 인스턴스의 데이터로 채워집니다. 이때 DB 스냅샷은 MySQL 5.6 기반 Amazon RDS DB 인스턴스를 통해 생성한 스냅샷이며 암호화되지 않아야합니다. DB 스냅샷 생성에 대한 자세한 내용은 Amazon RDS 설명서를 참조하십시오.

DB 스냅샷이 데이터를 배치할 AWS 리전에 속하지 않을 경우 Amazon RDS 콘솔을 사용하여 DB 스냅샷을해당 리전으로 복사합니다. DB 스냅샷 복사에 대한 자세한 내용은 Amazon RDS 설명서를 참조하십시오.

콘솔을 사용하여 DB 스냅샷을 마이그레이션할 경우, 콘솔에서 DB 클러스터와 기본 인스턴스 모두를 생성하는 데 필요한 작업이 따릅니다.

AWS Key Management Service(AWS KMS) 암호화 키를 사용하여 새 Aurora MySQL DB 클러스터가 "유휴상태에서" 암호화되도록 선택할 수도 있습니다. 이 옵션은 암호화되지 않은 DB 스냅샷에만 가능합니다.

콘솔을 사용하여 MySQL 5.6 DB 스냅샷을 마이그레이션하려면

1. AWS Management 콘솔에 로그인한 후 https://console.aws.amazon.com/rds/에서 Amazon RDS 콘솔을엽니다.

API 버전 2016-01-01153

Page 158: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

RDS MySQL 스냅샷을 Aurora MySQL로 마이그레이션

2. [Snapshots]를 선택합니다.3. [Snapshots] 페이지에서 Aurora MySQL DB 클러스터로 마이그레이션하려는 스냅샷을 선택합니다.4. [Migrate Database]를 선택합니다.

5. [Migrate Database] 페이지에서 다음과 같이 값을 설정합니다.

• DB 인스턴스 클래스: 데이터베이스에 필요한 스토리지 및 용량이 있는 DB 인스턴스 클래스를 선택합니다(예: db.r3.large). Aurora MySQL 클러스터 볼륨은 데이터베이스의 데이터 양이 증가함에 따라 최대 64TB(테라바이트) 크기까지 자동으로 증가합니다. 따라서 현재 스토리지 요구 사항에 맞는DB 인스턴스 클래스를 선택해야 합니다.

• [DB Instance Identifier]: 선택한 리전의 계정에 대해 고유한 DB 클러스터 이름을 입력합니다. 이 식별자는 DB 클러스터에 속한 인스턴스의 엔드포인트 주소로 사용됩니다. 선택한 리전 및 DB 엔진을 포함(예: aurora-cluster1)하는 등 이름에 지능적 요소를 추가할 수도 있습니다.

DB 인스턴스 식별자는 다음과 같은 제약 조건이 있습니다.• 1~63자의 영숫자 문자 또는 하이픈으로 구성되어야 합니다.• 첫 번째 문자는 글자이어야 합니다.• 하이픈으로 끝나거나 하이픈이 2개 연속으로 이어져서는 안 됩니다.• AWS 리전별로 AWS 계정 하나당 모든 DB 인스턴스는 고유해야 합니다.

• VPC: 기존의 VPC가 있으면 VPC 식별자를 선택하여 Amazon Aurora MySQL DB 클러스터에 이 VPC를 사용할 수 있습니다(예: vpc-a464d1c1). 기존 VPC 사용에 대한 자세한 내용은 Amazon RDS 설명서를 참조하십시오.

기존 VPC가 없다면 [Create a new VPC]를 선택하여 Amazon RDS에서 VPC를 새로 생성하도록 할수 있습니다.

• 서브넷 그룹: 기존 서브넷 그룹이 있으면 서브넷 그룹 식별자를 선택하여 Amazon Aurora MySQL DB클러스터에 이 서브넷 그룹을 사용할 수 있습니다(예: gs-subnet-group1).

API 버전 2016-01-01154

Page 159: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

RDS MySQL 스냅샷을 Aurora MySQL로 마이그레이션

기존 서브넷 그룹이 없다면 [Create a new subnet group]을 선택하여 Amazon RDS에서 서브넷 그룹을 새로 생성하도록 할 수 있습니다.

• [Publicly Accessible]: VPC에 있는 리소스만 DB 클러스터의 인스턴스에 액세스할 수 있도록 하려면[No]를 선택합니다. 퍼블릭 네트워크에 있는 리소스가 DB 클러스터의 인스턴스에 액세스할 수 있도록하려면 [Yes]를 선택합니다. 기본값은 [Yes]입니다.

Note

퍼블릭 서브넷에서는 프로덕션 DB 클러스터가 필요 없을 수도 있습니다. 애플리케이션 서버만 DB 클러스터에 액세스하기 때문입니다. DB 클러스터가 퍼블릭 서브넷에 필요 없는 경우에는 [Publicly Accessible]을 [No]로 설정합니다.

• 가용 영역: Aurora MySQL DB 클러스터의 기본 인스턴스를 호스팅할 가용 영역을 선택합니다.Amazon RDS에서 가용 영역을 선택하게 하려면 기본 설정 없음을 선택합니다.

• [Database Port]: DB 클러스터의 인스턴스에 연결할 때 사용할 기본 포트를 입력합니다. 기본값은3306입니다.

Note

기업 방화벽 뒤에 있어서 MySQL 기본 포트인 3306 같은 기본 포트에 액세스하지 못할 수도 있습니다. 이런 경우에는 기업 방화벽이 허용하는 포트 값을 입력합니다. 나중에 AuroraMySQL DB 클러스터에 연결할 때도 필요하므로 이 포트 값을 기억해야 합니다.

• 암호화 활성: 새 Aurora MySQL DB 클러스터가 "유휴 상태에서" 암호화하게 하려면 예를 선택합니다.예를 선택하면 AWS KMS 암호화 키를 마스터 키 값으로 선택해야 합니다.

• 마이너 버전 자동 업그레이드: MySQL DB 엔진의 마이너 버전 업그레이드가 있을 때 Aurora MySQLDB 클러스터가 자동으로 업그레이드를 수신하게 하려면 예를 선택합니다.

Auto Minor Version Upgrade 옵션은 Amazon Aurora MySQL DB 클러스터에 대해 MySQL 엔진 마이너 버전으로의 업그레이드에만 적용됩니다. 시스템 안정성 유지를 위한 정기 패치에는 적용되지 않습니다.

API 버전 2016-01-01155

Page 160: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

RDS MySQL 스냅샷을 Aurora MySQL로 마이그레이션

API 버전 2016-01-01156

Page 161: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

RDS MySQL 스냅샷을 Aurora MySQL로 마이그레이션

6. [Migrate]를 선택하여 DB 스냅샷을 마이그레이션합니다.7. [Instances]를 선택한 다음 화살표 아이콘을 선택하여 DB 클러스터 세부 정보를 표시하고 마이그레이션

진행 상황을 모니터링합니다. 세부 정보 페이지를 보면 DB 클러스터의 기본 인스턴스에 연결하는 데 사용할 클러스터 엔드포인트가 표시됩니다. Amazon Aurora MySQL DB 클러스터 연결에 대한 자세한 내용은 Amazon RDS 설명서를 참조하십시오.

API 버전 2016-01-01157

Page 162: AWS Database Migration Service · 2020-06-03 · AWS Database Migration Service 단계별 마이그레이션 가이드 AWS Database Migration Service 단 계별 연습 AWS Database

AWS Database Migration Service단계별 마이그레이션 가이드

문서 이력다음 표에는 AWS Database Migration Service 단계별 마이그레이션 가이드의 마지막 릴리스 이후에 설명서에 적용된 중요 변경 사항이 나와 있습니다.

• API 버전: 20160101• 마지막 문서 업데이트: 2017년 8월 30일

변경 사항 설명 날짜

Microsoft SQL Server를 Aurora로마이그레이션하는 가이드 추가

Microsoft SQL Server를 AmazonAurora(MySQL 호환성 데이터베이스)로 마이그레이션하는 가이드에 추가했습니다.

2017년 8월 30일

온프레미스 PostgreSQL을Amazon Aurora로 마이그레이션하는 가이드 추가

Oracle을 온프레미스 PostgreSQL데이터베이스로 마이그레이션하는 가이드에 추가했습니다.

2017년 8월 18일

온프레미스 Oracle을 AmazonAurora로 마이그레이션하는 가이드 추가

온프레미스 Oracle을 AmazonAurora 데이터베이스로 마이그레이션하는 가이드를 추가했습니다.

2016년 11월 17일

API 버전 2016-01-01158