티스토리 뷰
AWS Schema Conversion Tool을 사용하여 데이터베이스 스키마 변환
AWS Schema Conversion Tool(AWS SCT)을 사용하여 기존 데이터베이스 스키마를 한 데이터베이스 엔진에서 다른 데이터베이스 엔진으로 변환할 수 있습니다. AWS SCT 사용자 인터페이스를 사용하여 데이터베이스를 변환하는 것은 꽤 간단하지만, 변환하기 전에 고려해야 할 사항이 몇 가지 있습니다.
예를 들어 AWS SCT를 사용하여 다음 작업을 수행할 수 있습니다.
-
또한 AWS SCT를 사용하여 기존의 온프레미스 데이터베이스 스키마를 동일한 엔진을 실행하는 Amazon RDS DB 인스턴스로 복사할 수 있습니다. 이 기능을 사용하면 클라우드로 이전 및 라이선스 유형 변경의 비용 절감 가능성을 분석할 수 있습니다.
-
일부의 경우, 데이터베이스 기능을 동등한 Amazon RDS 기능으로 변환할 수 없습니다. Amazon Elastic Compute Cloud(Amazon EC2) 플랫폼에서 데이터베이스를 호스트 및 자체 관리하는 경우 AWS 서비스로 대체하여 이러한 기능을 에뮬레이트할 수 있습니다.
-
AWS SCT는 온라인 트랜잭션 처리(OLTP) 데이터베이스 스키마를 Amazon Relational Database Service(Amazon RDS) MySQL DB 인스턴스, Amazon Aurora DB 클러스터 또는 PostgreSQL DB 인스턴스로 변환하는 프로세스의 상당 부분을 자동화합니다. 원본 및 대상 데이터베이스 엔진은 매우 다양한 기능을 포함하며, AWS SCT는 가능한 한 Amazon RDS DB 인스턴스에 동등한 스키마를 생성하려고 노력합니다. 직접 변환이 불가능할 경우, AWS SCT는 사용자가 선택할 수 있도록 가능한 작업의 목록을 제공합니다.
이 단원에는 다음 주제가 포함되어 있습니다.
항목
AWS SCT는 다음 OLTP 변환을 지원합니다.
소스 데이터베이스 | Amazon RDS의 대상 데이터베이스 |
---|---|
Microsoft SQL Server(버전 2008 이상) | Amazon Aurora(MySQL 또는 PostgreSQL), Microsoft SQL Server, MySQL, PostgreSQL |
MySQL(버전 5.5 이상) | Amazon Aurora(PostgreSQL), MySQL, PostgreSQL AWS SCT를 사용하지 않고 스키마 및 데이터를 MySQL에서 Amazon Aurora(MySQL) DB 클러스터로 마이그레이션할 수 있습니다. 자세한 내용은 Amazon Aurora DB 클러스터로 데이터 마이그레이션을 참조하십시오. |
Oracle(버전 10.2 이상) | Amazon Aurora(MySQL 또는 PostgreSQL), MySQL, Oracle, PostgreSQL |
PostgreSQL(버전 9.1 이상) | Amazon Aurora(MySQL), MySQL, PostgreSQL |
DB2 LUW(버전 9.5, 9.7, 10.5 및 11.1) | Amazon Aurora(MySQL 또는 PostgreSQL), MySQL, PostgreSQL |
데이터 웨어하우스 스키마를 변환하려면 Amazon Redshift을 사용하여 데이터 웨어하우스 스키마를 AWS Schema Conversion Tool로 변환 단원을 참조하십시오.
데이터베이스 스키마를 Amazon RDS로 변환하려면 다음의 상위 수준 단계를 수행합니다. 각 단계는 자세한 내용이 있는 섹션의 링크입니다.
-
AWS Schema Conversion Tool에서 매핑 규칙 생성 – AWS SCT를 사용하여 스키마를 변환하기 전에 열의 데이터 형식을 변경하고 객체를 한 스키마에서 다른 스키마로 이동하며 객체 이름을 변경하는 규칙을 설정할 수 있습니다.
-
AWS Schema Conversion Tool을 사용하여 스키마 변환 – AWS SCT는 사용자가 검토할 변환된 스키마의 로컬 버전을 생성하지만 준비가 될 때까지는 대상 DB 인스턴스에 적용하지 않습니다.
-
AWS Schema Conversion Tool 평가 보고서 – AWS SCT는 자동으로 변환할 수 없는 스키마 요소를 자세히 설명하는 데이터베이스 마이그레이션 평가 보고서를 작성합니다. 이 보고서를 사용하여 Amazon RDS DB 인스턴스에서 어디에 소스 데이터베이스와 호환되는 스키마를 생성해야 하는지 확인할 수 있습니다.
-
AWS Schema Conversion Tool에서 수동 변환 처리 – 자동으로 변환할 수 없는 스키마 요소가 있을 경우 원본 스키마를 업데이트한 후 다시 변환하는 방법과 대상 Amazon RDS DB 인스턴스에서 해당 스키마 요소를 생성하는 방법 중에서 선택할 수 있습니다.
-
AWS Schema Conversion Tool에서 변환된 스키마 업데이트 및 새로 고침 – 원본 데이터베이스의 최신 스키마를 사용하여 AWS SCT 프로젝트를 업데이트할 수 있습니다.
-
AWS Schema Conversion Tool에서 변환된 스키마 저장 및 적용 – 준비가 되면 AWS SCT가 로컬 프로젝트의 변환된 스키마를 대상 Amazon RDS DB 인스턴스에 적용합니다.
AWS Schema Conversion Tool(AWS SCT)에서 매핑 규칙 생성
AWS SCT를 사용하여 스키마를 변환하기 전에 열의 데이터 형식을 변경하고 객체를 한 스키마에서 다른 스키마로 이동하며 객체 이름을 변경하는 규칙을 설정할 수 있습니다. 예를 들어 소스 스키마에 test_TABLE_NAME
이라는 테이블 집합이 있을 경우 대상 스키마에서 접두사 test_
를 접두사 demo_
로 변경하는 규칙을 설정할 수 있습니다.
참고
소스 데이터베이스 엔진과 대상 데이터베이스 엔진이 다른 경우에만 매핑 규칙을 생성할 수 있습니다.
다음 작업을 수행하는 매핑 규칙을 생성할 수 있습니다.
-
데이터 형식 변경
-
객체 이동
-
객체 이름 바꾸기
-
접두사 - 접두사 추가, 접두사 제거, 접두사 바꾸기
-
접미사 - 접미사 추가, 접미사 제거, 접미사 바꾸기
다음 객체에 대한 매핑 규칙을 생성할 수 있습니다.
-
데이터베이스
-
스키마
-
표
-
열
매핑 규칙 생성
매핑 규칙을 생성하고 규칙을 프로젝트의 일부로 저장할 수 있습니다. 프로젝트가 열린 상태에서, 다음 절차를 사용하여 매핑 규칙을 생성합니다.
매핑 규칙을 생성하려면
-
[Settings] 메뉴에서 [Mapping Rules]를 선택합니다. [Mapping Rules] 대화 상자가 나타납니다.
-
[Add new rule]을 선택합니다. 규칙 목록에 새 행이 하나 추가됩니다.
-
편집 아이콘을 선택하여 규칙을 구성합니다.
-
[Name]에 규칙의 이름을 입력합니다.
-
[For]에서 규칙을 적용할 객체의 형식을 선택합니다.
-
[where]에 매핑 규칙을 적용하기 전에 객체에 적용할 필터를 입력합니다. Where 절은 Like 절을 사용해 평가됩니다. 정확한 이름을 입력하여 한 객체를 선택할 수도 있고, 패턴을 입력하여 여러 객체를 선택할 수도 있습니다.
[where] 절에서 사용할 수 있는 필드는 객체의 형식에 따라 다릅니다. 예를 들어 객체 형식이 스키마일 경우 스키마 이름에 사용 가능한 필드는 하나뿐입니다.
-
[Actions]에서 생성하려는 매핑 규칙의 유형을 선택합니다.
-
규칙 유형에 따라 추가 값을 1개 또는 2개 입력합니다. 예를 들어 객체의 이름을 바꾸려면 객체의 새 이름을 입력합니다. 접두사를 바꾸려면 기존 접두사와 새 접두사를 입력합니다.
-
-
매핑 규칙을 구성한 후 [Save]를 선택하여 규칙을 저장합니다. [Cancel]을 선택하여 변경 사항을 취소할 수도 있습니다.
-
규칙 추가, 편집 및 삭제를 마쳤으면 [Save All]을 선택하여 모든 변경 사항을 저장합니다.
-
[Close]를 선택하여 [Mapping Rules] 대화 상자를 닫습니다.
토글 아이콘을 사용하여 매핑 규칙을 삭제하지 않고 끌 수 있습니다. 복사 아이콘을 사용하여 기존 매핑 규칙을 복제할 수 있습니다. 삭제 아이콘을 사용하여 기존 매핑 규칙을 삭제할 수 있습니다. 매핑 규칙에 대한 변경 사항을 모두 저장하려면 [Save All]을 선택합니다.
객체에 대한 매핑 규칙 보기
매핑 규칙을 설정한 후, 스키마를 변환하기 전에 스키마의 특정 객체에 대한 규칙의 영향을 볼 수 있습니다. 소스 스키마 트리에서 원하는 객체를 선택합니다. 주 보기에서 [Mapping] 탭을 선택합니다. [Mapping] 탭이 열리고 객체에 적용되는 모든 매핑 규칙의 목록이 표시됩니다. 소스 스키마에서 객체의 이름과 대상 스키마에서 객체의 새 이름을 볼 수 있습니다. 데이터 형식 규칙을 설정한 경우에는 소스 스키마에서 열의 데이터 형식과 대상 스키마에서 열의 새 데이터 형식을 볼 수 있습니다.
매핑 규칙 내보내기
AWS Database Migration Service(AWS DMS)를 사용하여 데이터를 소스 데이터베이스에서 대상 데이터베이스로 마이그레이션하는 경우 매핑 규칙에 대한 정보를 AWS DMS에 제공할 수 있습니다. 작업에 대한 자세한 내용은 AWS Database Migration Service 복제 작업 사용 단원을 참조하십시오.
매핑 규칙을 내보내려면
-
AWS Schema Conversion Tool의 소스 데이터베이스 트리에서 컨텍스트(마우스 오른쪽 클릭) 메뉴를 열어 [Export script for DMS]를 선택합니다. 저장 대화 상자가 열립니다.
-
스크립트를 저장할 위치를 찾아 [Save]를 선택합니다. 매핑 규칙이 JSON 스크립트로 저장되어 AWS DMS가 사용할 수 있습니다.
AWS Schema Conversion Tool을 사용하여 스키마 변환
프로젝트를 소스 데이터베이스와 대상 Amazon RDS DB 인스턴스 모두에 연결하면 AWS Schema Conversion Tool 프로젝트가 왼쪽 창에 소스 데이터베이스의 스키마를 표시합니다. 스키마는 트리 보기 형식으로 표시되고, 트리의 각 노드는 지연 로딩(lazy loaded)됩니다. 트리 보기에서 노드를 선택하면 AWS SCT가 소스 데이터베이스에게 당시의 스키마 정보를 요청합니다.
소스 데이터베이스에서 스키마 항목을 선택하여 대상 DB 인스턴스의 DB 엔진에서 동등한 스키마로 변환할 수 있습니다. 변환할 소스 데이터베이스에서 임의의 스키마 항목을 선택할 수 있습니다. 선택한 스키마 항목이 상위 항목에 의존하는 경우 AWS SCT가 상위 항목에 대한 스키마도 생성합니다. 예를 들어 변환할 테이블에서 열을 선택할 경우 AWS SCT가 열, 열이 포함되어 있는 테이블, 테이블이 포함되어 있는 데이터베이스에 대한 스키마를 생성합니다.
스키마 변환
소스 데이터베이스의 스키마를 변환하려면 프로젝트의 왼쪽 패널에서 변환할 스키마 객체를 선택합니다. 다음 그림과 같이 객체의 컨텍스트(마우스 오른쪽 버튼 클릭) 메뉴를 열고 [Convert schema]를 선택합니다.
소스 데이터베이스로부터 스키마를 변환한 후, 프로젝트의 왼쪽 창에서 스키마 항목을 선택하고 프로젝트의 가운데 창에서 변환된 스키마를 확인할 수 있습니다. 다음 그림과 같이 하단 가운데 창에는 변환된 스키마의 속성과 변환된 스키마를 생성하는 SQL 명령이 표시됩니다.
스키마를 변환한 후 프로젝트를 저장할 수 있습니다. 소스 데이터베이스의 스키마 정보는 프로젝트와 함께 저장됩니다. 이 기능은 소스 데이터베이스와 연결하지 않고 오프라인 상태에서도 작업이 가능하다는 것을 의미합니다. 소스 데이터베이스에 대해 [Refresh from Database]를 선택하면 AWS SCT가 소스 데이터베이스에 연결하여 프로젝트에서 스키마를 업데이트합니다. 자세한 내용은 AWS Schema Conversion Tool에서 변환된 스키마 업데이트 및 새로 고침 단원을 참조하십시오.
자동으로 변환할 수 없는 항목의 데이터베이스 마이그레이션 평가 보고서를 생성할 수 있습니다. 평가 보고서는 자동으로 변환할 수 없는 스키마 항목을 식별하고 해결하는 데 유용합니다. 자세한 정보는 AWS Schema Conversion Tool 평가 보고서 단원을 참조하십시오.
AWS SCT는 변환된 스키마를 생성한 후 즉시 대상 DB 인스턴스에 적용하지 않습니다. 대신, 변환된 스키마는 사용자가 대상 DB 인스턴스에 적용할 준비가 될 때까지 로컬로 저장됩니다. 자세한 내용은 변환된 스키마 적용 단원을 참조하십시오.
변환된 스키마 편집
변환된 스키마를 편집하고 변경 사항을 프로젝트의 일부로 저장할 수 있습니다.
변환된 스키마를 편집하려면
-
소스 데이터베이스의 스키마가 표시되는 왼쪽 창에서 변환된 스키마를 편집하려는 스키마 항목을 선택합니다.
-
선택된 항목의 변환된 스키마가 표시되는 하단 가운데 창에서 [SQL] 탭을 선택합니다.
-
[SQL] 탭에 표시되는 텍스트에서 필요에 따라 스키마를 변경합니다. 사용자가 업데이트하면 스키마가 프로젝트와 함께 자동으로 저장됩니다.
사용자가 업데이트하면 변환된 스키마에 대한 변경 사항이 프로젝트와 함께 저장됩니다. 소스 데이터베이스에서 새로 스키마 항목을 변환할 경우 해당 항목에 대해 이전에 변환된 스키마에 업데이트가 있었다면 기존의 업데이트가 소스 데이터베이스를 기반으로 새로 변환된 스키마 항목으로 바뀝니다.
변환된 스키마 삭제
사용자가 스키마를 DB 인스턴스에 적용할 때까지 AWS SCT는 변환된 스키마를 프로젝트에서 로컬로 저장만 하고 있습니다. 대상 DB 인스턴스의 트리 보기 노드를 선택하고 [Refresh from Database]를 선택하여 프로젝트에서 계획된 스키마를 삭제할 수 있습니다. 대상 DB 인스턴스에 기록된 스키마가 없으므로 데이터베이스를 새로 고치면 AWS SCT 프로젝트는 계획된 스키마 요소를 제거하여 대상 DB 인스턴스의 내용과 일치시킵니다.
AWS Schema Conversion Tool에서 수동 변환 처리
평가 보고서는 대상 Amazon RDS DB 인스턴스로 자동 변환할 수 없는 항목의 목록을 포함합니다. 변환할 수 없는 각 항목에 대해 [Action Items] 탭에 작업 항목이 있습니다.
다음과 같이 평가 보고서에 있는 작업 항목에 응답할 수 있습니다.
-
소스 데이터베이스 스키마를 수정
-
대상 데이터베이스 스키마를 수정
소스 스키마 수정
일부 항목의 경우, 소스 데이터베이스의 데이터베이스 스키마를 자동 변환할 수 있는 스키마로 수정하는 것이 더 쉬울 수 있습니다. 먼저, 새로운 변경 사항이 애플리케이션 아키텍처와 호환하는지 확인한 후 소스 데이터베이스에서 스키마를 업데이트합니다. 끝으로, 업데이트된 스키마 정보를 사용하여 프로젝트를 새로 고칩니다. 그런 다음 업데이트된 스키마를 변환하고 새 데이터베이스 마이그레이션 평가 보고서를 생성할 수 있습니다. 소스 스키마에서 변경된 항목에는 작업 항목이 더 이상 표시되지 않습니다.
이 프로세스의 장점은 소스 데이터베이스를 새로 고치면 업데이트된 스키마를 항상 사용 가능하다는 것입니다.
대상 스키마 수정
일부 항목의 경우, 변환된 스키마를 대상 데이터베이스에 적용하고 자동으로 변환할 수 없는 항목에 대해서는 대상 데이터베이스에 동등한 스키마 항목을 수동으로 추가하는 것이 더 쉬울 수 있습니다. 스키마를 적용하여 자동 변환할 수 있는 모든 스키마를 대상 DB 인스턴스에 쓸 수 있습니다. 자세한 내용은 AWS Schema Conversion Tool에서 변환된 스키마 저장 및 적용 단원을 참조하십시오.
대상 DB 인스턴스에 기록되는 스키마는 자동 변환할 수 없는 항목을 포함하지 않습니다. 대상 DB 인스턴스에 스키마를 적용했으면 소스 데이터베이스의 스키마와 동등한 스키마를 대상 DB 인스턴스에서 수동으로 생성할 수 있습니다. 데이터베이스 마이그레이션 평가 보고서의 작업 항목은 동등한 스키마를 생성하는 권장 방법을 제안합니다.
주의
대상 DB 인스턴스에서 수동으로 스키마를 생성하는 경우 수행하는 수동 작업의 사본을 저장하십시오. 변환된 스키마를 프로젝트에서 대상 DB 인스턴스로 다시 적용할 경우 이미 수행한 수동 작업을 덮어씁니다.
일부 경우에는 대상 DB 인스턴스에 동등한 스키마를 생성할 수 없습니다. 해당 DB 엔진에서 제공되는 기능을 대상 DB 인스턴스에서 사용할 수 있도록 애플리케이션 및 데이터베이스의 일부를 재설계해야 할 수 있습니다. 또 다른 경우에는 간단히 자동으로 변환할 수 없는 스키마를 무시할 수 있습니다.
AWS Schema Conversion Tool에서 변환된 스키마 업데이트 및 새로 고침
AWS Schema Conversion Tool 프로젝트에서 소스 스키마와 대상 스키마 모두 업데이트할 수 있습니다.
-
소스 – 소스 데이터베이스의 스키마를 업데이트할 경우 AWS SCT가 프로젝트 내 스키마를 소스 데이터베이스의 스키마로 바꿉니다. 이 기능을 사용하면 소스 데이터베이스의 스키마가 변경된 경우 프로젝트를 업데이트할 수 있습니다.
-
대상 – 대상 Amazon RDS DB 인스턴스의 스키마를 업데이트할 경우 AWS SCT가 프로젝트 내 스키마를 대상 DB 인스턴스의 최신 스키마로 바꿉니다. 사용자가 대상 DB 인스턴스에 아무 스키마도 적용하지 않았다면 AWS SCT는 변환된 스키마를 프로젝트에서 삭제합니다. 그러면 클린 대상 DB 인스턴스를 위해 소스 데이터베이스로부터 스키마를 변환할 수 있습니다.
다음 그림과 같이 Refresh from Database(데이터베이스에서 새로 고침)를 선택하여 AWS SCT 프로젝트에서 스키마를 업데이트합니다.
AWS Schema Conversion Tool에서 변환된 스키마 저장 및 적용
AWS Schema Conversion Tool은 변환된 스키마를 생성한 후(AWS Schema Conversion Tool을 사용하여 스키마 변환 참조) 대상 DB 인스턴스에 즉시 적용하지 않습니다. 대신, 변환된 스키마는 사용자가 대상 DB 인스턴스에 적용할 준비가 될 때까지 프로젝트에서 로컬로 저장됩니다. 이 기능을 사용하면 대상 DB 엔진으로 자동 변환할 수 없는 스키마 항목에 대해 작업을 수행할 수 있습니다. 자동으로 변환할 수 없는 항목에 대한 자세한 내용은 AWS Schema Conversion Tool 평가 보고서 단원을 참조하십시오.
선택적으로 스키마를 대상 DB 인스턴스에 적용하기 전에 변환된 스키마를 SQL 스크립트로 파일에 저장하는 도구를 사용할 수 있습니다. 이 도구를 통해 변환된 스키마를 대상 DB 인스턴스에 직접 적용할 수도 있습니다.
변환된 스키마를 파일로 저장
변환된 스키마를 SQL 스크립트로 텍스트 파일에 저장할 수 있습니다. 그러면 AWS SCT에서 생성된 SQL 스크립트를 수정하여 도구가 자동 변환할 수 없는 항목을 처리할 수 있습니다. 그러면 대상 DB 인스턴스에서 업데이트된 스크립트를 실행하여 변환된 스키마를 대상 데이터베이스에 적용할 수 있습니다.
변환된 스키마를 SQL 스크립트로 저장하려면, 다음 그림과 같이 스키마 요소의 컨텍스트(마우스 오른쪽 클릭) 메뉴를 열고 [Save as SQL]을 선택합니다.
변환된 스키마 적용
변환된 스키마를 대상 Amazon RDS DB 인스턴스에 적용할 준비가 되었으면 프로젝트의 오른쪽 패널에서 스키마 요소를 선택합니다. 다음 그림과 같이 스키마 요소의 컨텍스트(마우스 오른쪽 버튼 클릭) 메뉴를 열고 [Apply to database]를 선택합니다.
확장 팩 스키마
변환된 스키마를 대상 DB 인스턴스에 처음 적용할 때, AWS SCT는 대상 DB 인스턴스에 추가 스키마를 추가합니다. 이 스키마는 변환된 스키마를 대상 DB 인스턴스에 쓸 때 필요한 소스 데이터베이스의 시스템 기능을 구현합니다. 이 스키마를 확장 팩 스키마라고 합니다.
확장 팩 스키마를 수정하지 마십시오. 수정하면 대상 DB 인스턴스에 쓴 변환된 스키마에서 예기치 않은 결과가 발생할 수 있습니다. 스키마가 대상 DB 인스턴스로 완전히 마이그레이션되어 더 이상 AWS SCT가 필요하지 않다면 확장 팩 스키마를 삭제할 수 있습니다.
확장 팩 스키마는 다음과 같이 소스 데이터베이스를 따라 명명됩니다.
-
Microsoft SQL Server:
AWS_SQLSERVER_EXT
-
MySQL:
AWS_MYSQL_EXT
-
Oracle:
AWS_ORACLE_EXT
-
PostgreSQL:
AWS_POSTGRESQL_EXT
자세한 정보는 AWS Lambda 확장 팩의 AWS SCT 함수 사용 단원을 참조하십시오.
'11. AWS' 카테고리의 다른 글
Amazon Redshift을 사용하여 데이터 웨어하우스 스키마를 AWS Schema Conversion Tool로 변환 (0) | 2018.12.21 |
---|---|
데이터베이스 스키마 비교 (0) | 2018.12.21 |
AWS Schema Conversion Tool 설치 (0) | 2018.12.21 |
AWS (SCT:Schema conversion Tool)이란 (0) | 2018.12.21 |
AWS Schema Conversion Tool 사용 (0) | 2018.12.17 |
- Total
- Today
- Yesterday
- 스토리지 클레스
- 커널
- 5.4.0.1072
- [오라클 튜닝] instance 튜닝2
- MSA
- startup 에러
- [오라클 튜닝] sql 튜닝
- 우분투
- Oracle
- pod 상태
- 오라클 홈디렉토리 copy 후 startup 에러
- 설치하기(HP-UX)
- CVE 취약점 점검
- 여러서버 컨트롤
- 오라클 트러블 슈팅(성능 고도화 원리와 해법!)
- 트리이스
- directory copy 후 startup 에러
- K8s
- (InstantClient) 설치하기(HP-UX)
- 버쳐박스
- 쿠버네티스
- 오라클
- 튜닝
- 키알리
- 코로나19
- ORACLE 트러블 슈팅(성능 고도화 원리와 해법!)
- ubuntu
- 앤시블
- 테라폼
- 오라클 인스턴트클라이언트(InstantClient) 설치하기(HP-UX)
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |