

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

# 에서 확장 팩 사용 AWS Schema Conversion Tool
<a name="CHAP_ExtensionPack"></a>

AWS SCT 확장 팩은 객체를 대상 데이터베이스로 변환할 때 필요한 소스 데이터베이스에 있는 함수를 에뮬레이션하는 추가 기능 모듈입니다.** AWS SCT 확장 팩을 설치하기 전에 데이터베이스 스키마를 변환합니다.

각 AWS SCT 확장 팩에는 다음 구성 요소가 포함되어 있습니다.
+ DB 스키마 - 특정 온라인 트랜잭션 처리(OLTP) 및 온라인 분석 처리(OLAP) 데이터베이스 객체(예: 시퀀스)를 에뮬레이션하기 위한 SQL 함수, 프로시저 및 테이블을 포함합니다. 또한 소스 데이터베이스에서 지원되지 않는 내장 함수도 에뮬레이션합니다. 이 스키마 이름의 형식은 `aws_database_engine_name_ext`와 같습니다.
+ AWS Lambda 함수(특정 OLTP 데이터베이스의 경우) - 작업 예약 및 이메일 전송과 같은 복잡한 데이터베이스 기능을 에뮬레이션하는 AWS Lambda 함수를 포함합니다.
+ OLAP 데이터베이스용 사용자 지정 라이브러리 - Microsoft SQL Server Integration Services(SSIS) 추출, 변환 및 로드(ETL) 스크립트를 AWS Glue 또는 로 마이그레이션하는 데 사용할 수 있는 Java 및 Python 라이브러리 세트를 포함합니다 AWS Glue Studio.

  Java 라이브러리에는 다음과 같은 모듈이 포함됩니다.
  + `spark-excel_2.11-0.13.1.jar` - Excel 소스 및 대상 구성 요소의 기능을 에뮬레이션합니다.
  + `spark-xml_2.11-0.9.0.jar`, `poi-ooxml-schemas-4.1.2.jar` 및 `xmlbeans-3.1.0.jar` - XML 소스 구성 요소의 기능을 에뮬레이션합니다.

  Python 라이브러리에는 다음과 같은 모듈이 포함됩니다.
  + `sct_utils.py` - 소스 데이터 유형을 에뮬레이션하고 Spark SQL 쿼리를 위한 파라미터를 준비합니다.
  + `ssis_datetime.py` - 날짜 및 시간 내장 함수를 에뮬레이션합니다.
  + `ssis_null.py` - `ISNULL` 및 `REPLACENULL` 내장 함수를 에뮬레이션합니다.
  + `ssis_string.py` - 문자열 내장 함수를 에뮬레이션합니다.

  이러한 라이브러리에 대한 자세한 내용은 [AWS SCT 확장 팩에 사용자 지정 라이브러리 사용](#CHAP_ExtensionPack.DW) 섹션을 참조하세요.

 AWS SCT 확장 팩은 두 가지 방법으로 적용할 수 있습니다.
+ AWS SCT 는 컨텍스트 메뉴에서 데이터베이스에 **적용을** 선택하여 대상 데이터베이스 스크립트를 적용할 때 확장 팩을 자동으로 적용할 수 있습니다. AWS SCT 는 다른 모든 스키마 객체를 적용하기 전에 확장 팩을 적용합니다.
+ 확장 팩을 수동으로 적용하려면 대상 데이터베이스를 선택한 다음 컨텍스트(마우스 오른쪽 버튼 클릭) 메뉴에서 **Apply extension pack for**를 선택합니다. 대부분의 경우 자동 적용 방법으로 충분합니다. 하지만 팩을 실수로 삭제한 경우에는 수동으로 팩을 적용해야 할 수 있습니다.

 AWS SCT 확장 팩을 대상 데이터 스토어에 적용할 때마다 구성 요소를 덮어쓰고 이에 대한 알림을 AWS SCT 표시합니다. 이러한 알림을 끄려면 **설정**, **전역 설정**, **알림** 및 **Hide the extension pack replacement alert**를 차례로 선택합니다.

Microsoft SQL Server에서 PostgreSQL로 변환하려면 AWS SCT에서 SQL Server를 PostgreSQL로 변환하는 확장 팩을 사용할 수 있습니다. 이 확장 팩은 SQL Server 에이전트와 SQL Server Database Mail을 에뮬레이션합니다. 자세한 내용은 [확장 팩을 사용하여 PostgreSQL에서 SQL Server 에이전트 에뮬레이션](CHAP_Source.SQLServer.ToPostgreSQL.ExtensionPack.Agent.md) 및 [확장 팩을 사용하여 PostgreSQL에서 SQL Server Database Mail 에뮬레이션](CHAP_Source.SQLServer.ToPostgreSQL.ExtensionPack.Mail.md) 섹션을 참조하세요.

아래에서 AWS SCT 확장 팩 작업에 대한 자세한 내용을 확인할 수 있습니다.

**Topics**
+ [AWS SCT 확장 팩 사용 권한](#CHAP_ExtensionPack.Permissions)
+ [확장 팩 스키마 사용](#CHAP_ExtensionPack.Schema)
+ [AWS SCT 확장 팩에 사용자 지정 라이브러리 사용](#CHAP_ExtensionPack.DW)
+ [AWS SCT 확장 팩의 AWS Lambda 함수 사용](#CHAP_ExtensionPack.OLTP)
+ [AWS SCT 확장 팩에 대한 함수 구성](#CHAP_ExtensionPack.ConfigureFunctions)

## AWS SCT 확장 팩 사용 권한
<a name="CHAP_ExtensionPack.Permissions"></a>

Amazon Aurora용 AWS SCT 확장 팩은 AWS Lambda 함수를 사용하여 메일 전송, 작업 예약, 대기열 및 기타 작업을 에뮬레이션합니다. 대상 Aurora 데이터베이스에 확장 팩을 AWS SCT 적용하면가 새 AWS Identity and Access Management (IAM) 역할과 인라인 IAM 정책을 AWS SCT 생성합니다. 다음으로, 새 Lambda 함수 AWS SCT 를 생성하고 아웃바운드 연결을 위해 Aurora DB 클러스터를 구성합니다 AWS Lambda. 이러한 작업을 실행하려면 다음과 같은 필수 권한을 IAM 사용자에게 부여해야 합니다.
+ `iam:CreateRole` - AWS 계정에 대한 새 IAM 역할을 생성합니다.
+ `iam:CreatePolicy` - AWS 계정에 대한 새 IAM 정책을 생성합니다.
+ `iam:AttachRolePolicy` - 지정된 정책을 IAM 역할에 연결합니다.
+ `iam:PutRolePolicy` - IAM 역할에 포함된 인라인 정책 문서를 업데이트합니다.
+ `iam:PassRole` - 지정된 IAM 역할을 규칙 엔진에 전달합니다.
+ `iam:TagRole` - IAM 역할에 태그를 추가합니다.
+ `iam:TagPolicy` - IAM 정책에 태그를 추가합니다.
+ `lambda:ListFunctions` - Lambda 함수 목록을 볼 수 있습니다.
+ `lambda:ListTags` - Lambda 함수의 태그 목록을 볼 수 있습니다.
+ `lambda:CreateFunction` – 새 Lambda 함수를 생성합니다.
+ `rds:AddRoleToDBCluster` – IAM 역할을 Aurora DB 클러스터와 연결합니다.

Amazon Redshift용 AWS SCT 확장 팩은 변환된 객체를 Amazon Redshift에 적용할 때 필요한 소스 데이터 웨어하우스 기본 함수를 에뮬레이션합니다. 변환된 코드를 Amazon Redshift에 적용하기 전에 Amazon Redshift용 확장 팩을 적용해야 합니다. 이렇게 하려면 IAM 정책에 해당 `iam:SimulatePrincipalPolicy` 작업을 포함시킵니다.

AWS SCT 는 IAM 정책 시뮬레이터를 사용하여 Amazon Redshift 확장 팩 설치에 필요한 권한을 확인합니다. IAM 사용자를 올바르게 구성했더라도 IAM 정책 시뮬레이터에 오류 메시지가 표시될 수 있습니다. 이는 IAM 정책 시뮬레이터의 알려진 문제입니다. 또한 IAM 정책 시뮬레이터는 IAM 정책에 해당 `iam:SimulatePrincipalPolicy` 작업이 없는 경우 오류 메시지를 표시합니다. 이러한 경우에는 오류 메시지를 무시하고 확장 팩 마법사를 사용하여 확장 팩을 적용할 수 있습니다. 자세한 내용은 [확장 팩 적용](#CHAP_ExtensionPack.DW.Installing) 단원을 참조하십시오.

## 확장 팩 스키마 사용
<a name="CHAP_ExtensionPack.Schema"></a>

데이터베이스 또는 데이터 웨어하우스 스키마를 변환할 때 AWS SCT 가 대상 데이터베이스에 추가 스키마를 추가합니다. 이 스키마는 대상 데이터베이스에 변환된 코드를 쓸 데 필요한 소스 데이터베이스의 SQL 시스템 함수를 구현합니다. 이 추가 스키마를 확장 팩 스키마라고 합니다.

OLTP 데이터베이스의 확장 팩 스키마는 소스 데이터베이스에 따라 다음과 같이 이름이 지정됩니다.
+ Microsoft SQL Server: `AWS_SQLSERVER_EXT`
+ MySQL: `AWS_MYSQL_EXT`
+ Oracle: `AWS_ORACLE_EXT`
+ PostgreSQL: `AWS_POSTGRESQL_EXT`

OLAP 데이터 웨어하우스 애플리케이션의 확장 팩 스키마는 다음과 같이 소스 데이터 스토어에 따라 이름이 지정됩니다.
+ Greenplum: `AWS_GREENPLUM_EXT`
+ Microsoft SQL Server: `AWS_SQLSERVER_EXT`
+ Netezza: `AWS_NETEZZA_EXT`
+ Oracle: `AWS_ORACLE_EXT`
+ Teradata: `AWS_TERADATA_EXT`
+ Vertica: `AWS_VERTICA_EXT`

## AWS SCT 확장 팩에 사용자 지정 라이브러리 사용
<a name="CHAP_ExtensionPack.DW"></a>

경우에 따라 AWS SCT 는 소스 데이터베이스 기능을 대상 데이터베이스의 동등한 기능으로 변환할 수 없습니다. 관련 AWS SCT 확장 팩에는 대상 데이터베이스의에서 일부 소스 데이터베이스 기능을 에뮬레이션하는 사용자 지정 라이브러리가 포함되어 있습니다.

트랜잭션 데이터베이스를 변환하는 경우 [AWS SCT 확장 팩의 AWS Lambda 함수 사용](#CHAP_ExtensionPack.OLTP) 섹션을 참조합니다.

### 확장 팩 적용
<a name="CHAP_ExtensionPack.DW.Installing"></a>

 AWS SCT 확장 팩 마법사를 사용하거나 변환된 코드를 대상 데이터베이스에 적용할 때 확장 팩을 적용할 수 있습니다.

**확장 팩 마법사를 사용하여 확장 팩을 적용하려면**

1. 의 대상 데이터베이스 트리 AWS Schema Conversion Tool에서 컨텍스트(마우스 오른쪽 버튼 클릭) 메뉴를 열고 **확장 팩 적용을** 선택한 다음 소스 데이터베이스 플랫폼을 선택합니다.  
![\[확장 팩 적용 컨텍스트 메뉴\]](http://docs.aws.amazon.com/ko_kr/SchemaConversionTool/latest/userguide/images/extension-pack-context.png)

   확장 팩 마법사가 표시됩니다.

1. **시작** 페이지를 읽은 후 **다음**을 선택합니다.

1. **AWS profile settings** 페이지에서 다음 작업을 수행합니다.
   + 확장 팩 스키마만 다시 설치하는 경우에는 **Skip this step for now**를 선택하고 **다음**을 선택합니다. **Skip this step for now** 옵션은 온라인 트랜잭션 처리(OLTP) 데이터베이스에만 사용할 수 있습니다.
   + 새 라이브러리를 업로드하는 경우 AWS 계정에 연결하는 데 필요한 보안 인증 정보를 제공합니다. 이 단계는 OLAP 데이터베이스 또는 ETL 스크립트를 변환할 때만 사용합니다. 가 설치된 경우 AWS Command Line Interface (AWS CLI) 자격 증명을 사용할 수 있습니다 AWS CLI . 또한 이전에 전역 애플리케이션 설정의 프로필에 저장한 후 프로젝트와 연결한 보안 인증 정보를 사용할 수도 있습니다. 필요한 경우 **글로벌 설정으로 이동**을 선택하여 다른 프로필을 AWS SCT 프로젝트와 연결하도록 구성합니다. 자세한 내용은 [에서 프로필 관리 AWS Schema Conversion Tool](CHAP_UserInterface.Profiles.md) 단원을 참조하십시오.

1. 새 라이브러리를 업로드하는 경우 **Library upload** 페이지에서 **I need to upload a library**를 선택합니다. 이 단계는 OLAP 데이터베이스 또는 ETL 스크립트를 변환할 때만 사용합니다. 다음으로 Amazon S3 경로를 입력한 다음 **Upload library to S3**을 선택합니다.

   라이브러리를 이미 업로드한 경우 **Library upload** 페이지에서 **I already have libraries uploaded, use my existing S3 bucket**을 선택합니다. 다음으로, Amazon S3 경로를 입력합니다.

   완료되면 **다음**을 선택합니다.

1. **Function emulation** 페이지에서 **Create extension pack**을 선택합니다. 확장 팩 작업 상태가 포함된 메시지가 표시됩니다.

   모두 마쳤으면 **완료**를 선택합니다.

**변환된 코드를 적용할 때 확장 팩을 적용하려면**

1.  AWS 서비스 프로파일에서 Amazon S3 버킷을 지정합니다. 이 단계는 OLAP 데이터베이스 또는 ETL 스크립트를 변환할 때만 사용합니다. 자세한 내용은 [에서 프로필 관리 AWS Schema Conversion Tool](CHAP_UserInterface.Profiles.md) 단원을 참조하십시오.

   Amazon S3 버킷 정책에는 다음 권한이 포함되어야 합니다.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
         {
           "Effect": "Allow",
           "Action": ["s3:ListBucket"],
           "Resource": ["*"]
         },
         {
           "Effect": "Allow",
           "Action": ["s3:PutObject"],
           "Resource": ["*"]
         },
         {
           "Effect": "Allow",
           "Action": ["iam:SimulatePrincipalPolicy"],
           "Resource": ["*"]
         },
         {
           "Effect": "Allow",
           "Action": ["iam:GetUser"],
           "Resource": ["arn:aws:iam::111122223333:user/DataExtractionAgentName"]
         }
       ]
   }
   ```

------

   이전 예제에서 *111122223333:user/DataExtractionAgentName*을 IAM 사용자의 이름으로 바꿉니다.

1. 소스 데이터 웨어하우스 스키마를 변환합니다. 자세한 내용은 [데이터 웨어하우스 스키마 변환](CHAP_Converting.DW.md) 단원을 참조하십시오.

1. 오른쪽 창에서 변환된 스키마를 선택합니다.

1. 스키마 요소의 컨텍스트(마우스 오른쪽 버튼 클릭) 메뉴를 열고 **Apply to database**를 선택합니다.

1. AWS SCT 는 필수 구성 요소가 포함된 확장 팩을 생성하고 대상 트리에 `aws_database_engine_name_ext` 스키마를 추가합니다. 다음으로 변환된 코드와 확장 팩 스키마를 대상 데이터 웨어하우스에 AWS SCT 적용합니다.

   Amazon Redshift와를 대상 데이터베이스 플랫폼 AWS Glue 으로 조합하여 사용하는 경우 AWS SCT 는 확장 팩에 스키마를 추가합니다.

## AWS SCT 확장 팩의 AWS Lambda 함수 사용
<a name="CHAP_ExtensionPack.OLTP"></a>

AWS SCT 는 이메일, 작업 예약 및 Amazon EC2에서 호스팅되는 데이터베이스의 기타 기능을 위한 Lambda 함수가 포함된 확장 팩을 제공합니다.

### AWS Lambda 함수를 사용하여 데이터베이스 기능 에뮬레이션
<a name="CHAP_ExtensionPack.OLTP.Services"></a>

데이터베이스 기능을 동등한 Amazon RDS 기능으로 변환할 수 없는 경우도 있습니다. 예를 들어 Oracle은 `UTL_SMTP`를 사용하는 이메일 호출을 보내고 Microsoft SQL Server는 작업 스케줄러를 사용할 수 있습니다. Amazon EC2에서 데이터베이스를 호스팅하고 자체 관리하는 경우 AWS 서비스를 대체하여 이러한 기능을 에뮬레이션할 수 있습니다.

 AWS SCT 확장 팩 마법사를 사용하면 Lambda 함수를 설치, 생성 및 구성하여 이메일, 작업 일정 및 기타 기능을 에뮬레이션할 수 있습니다.

### 확장 팩을 적용하여 Lambda 함수 지원
<a name="CHAP_ExtensionPack.OLTP.Installing"></a>

확장 팩 마법사를 사용하거나 변환된 코드를 대상 데이터베이스에 적용할 때 확장 팩을 적용하여 Lambda 함수를 지원할 수 있습니다.

**중요**  
 AWS 서비스 에뮬레이션 기능은 Amazon EC2에 설치되고 자체 관리되는 데이터베이스에서만 지원됩니다. 대상 데이터베이스가 Amazon RDS DB 인스턴스에 있는 경우에는 서비스 에뮬레이션 기능을 설치하지 않도록 합니다.

**확장 팩 마법사를 사용하여 확장 팩을 적용하려면**

1. 의 대상 데이터베이스 트리 AWS Schema Conversion Tool에서 컨텍스트(마우스 오른쪽 버튼 클릭) 메뉴를 열고 **확장 팩 적용을** 선택한 다음 소스 데이터베이스 플랫폼을 선택합니다.  
![\[확장 팩 적용 컨텍스트 메뉴\]](http://docs.aws.amazon.com/ko_kr/SchemaConversionTool/latest/userguide/images/extension-pack-context.png)

   확장 팩 마법사가 표시됩니다.

1. **시작** 페이지를 읽은 후 **다음**을 선택합니다.

1. **AWS profile settings** 페이지에서 다음 작업을 수행합니다.
   + 확장 팩 스키마만 다시 설치하는 경우에는 **Skip this step for now**를 선택하고 **다음**을 선택합니다.
   +  AWS 서비스를 설치하는 경우에 연결할 자격 증명을 제공합니다 AWS 계정. 가 AWS CLI 설치된 경우 자격 AWS CLI 증명을 사용할 수 있습니다. 또한 이전에 전역 애플리케이션 설정의 프로필에 저장한 후 프로젝트와 연결한 보안 인증 정보를 사용할 수도 있습니다. 필요한 경우 **Navigate to Project Settings**를 선택하여 다른 프로필과 프로젝트를 연결합니다. 필요한 경우 **전역 설정**을 선택하여 새 프로필을 생성합니다. 자세한 내용은 [에서 프로필 관리 AWS Schema Conversion Tool](CHAP_UserInterface.Profiles.md) 단원을 참조하십시오.

1. **Email Sending Service** 페이지에서 다음을 수행합니다.
   + 확장 팩 스키마만 다시 설치하는 경우에는 **Skip this step for now**를 선택하고 **다음**을 선택합니다.
   +  AWS 서비스를 설치하고 기존 Lambda 함수가 있는 경우 제공할 수 있습니다. 그렇지 않으면 마법사에서 자동으로 생성합니다. 완료되면 **다음**을 선택합니다.

1. **Job Emulation Service** 페이지에서 다음을 수행합니다.
   + 확장 팩 스키마만 다시 설치하는 경우에는 **Skip this step for now**를 선택하고 **다음**을 선택합니다.
   +  AWS 서비스를 설치하고 기존 Lambda 함수가 있는 경우 제공할 수 있습니다. 그렇지 않으면 마법사에서 자동으로 생성합니다. 완료되면 **다음**을 선택합니다.

1. **Function emulation** 페이지에서 **Create extension pack**을 선택합니다. 확장 팩 작업 상태가 포함된 메시지가 표시됩니다.

   모두 마쳤으면 **완료**를 선택합니다.

**참고**  
확장 팩을 업데이트하고 이전 확장 팩 구성 요소를 덮어쓰려면의 최신 버전을 사용해야 합니다 AWS SCT. 자세한 내용은 [설치 및 구성 AWS Schema Conversion Tool](CHAP_Installing.md) 단원을 참조하십시오.

## AWS SCT 확장 팩에 대한 함수 구성
<a name="CHAP_ExtensionPack.ConfigureFunctions"></a>

확장 팩에는 사용 전에 구성해야 하는 함수가 포함되어 있습니다. 상수 `CONVERSION_LANG`은 서비스 팩에서 사용하는 언어를 정의합니다. 함수는 영어와 독일어로 사용할 수 있습니다.

언어를 영어 또는 독일어로 설정하려면 함수 코드를 다음과 같이 변경합니다. 다음 상수 선언을 찾습니다.

```
CONVERSION_LANG CONSTANT VARCHAR := '';
```

`CONVERSION_LANG`을 영어로 설정하려면 행을 다음과 같이 변경합니다.

```
CONVERSION_LANG CONSTANT VARCHAR := 'English';
```

`CONVERSION_LANG`을 영어로 설정하려면 행을 다음과 같이 변경합니다.

```
CONVERSION_LANG CONSTANT VARCHAR := 'Deutsch';
```

다음 함수에 대해 이 설정을 설정합니다.
+ `aws_sqlserver_ext.conv_datetime_to_string`
+ `aws_sqlserver_ext.conv_date_to_string`
+ `aws_sqlserver_ext.conv_string_to_date`
+ `aws_sqlserver_ext.conv_string_to_datetime`
+ `aws_sqlserver_ext.conv_string_to_datetime`
+ `aws_sqlserver_ext.parse_to_date`
+ `aws_sqlserver_ext.parse_to_datetime`
+ `aws_sqlserver_ext.parse_to_time`