

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

# 를 사용하여 Apache Oozie 워크플로에 연결 AWS Schema Conversion Tool
<a name="CHAP_Source.Oozie"></a>

 AWS SCT 명령줄 인터페이스(CLI)를 사용하여 Apache Oozie 워크플로를 로 변환할 수 있습니다 AWS Step Functions. Apache Hadoop 워크로드를 Amazon EMR로 마이그레이션한 후의 네이티브 서비스를 사용하여 작업을 오케스트레이션 AWS 클라우드 할 수 있습니다. 자세한 내용은 [Apache Hadoop에 연결](CHAP_Source.Hadoop.md) 단원을 참조하십시오.

AWS SCT 는 Oozie 워크플로를 로 변환 AWS Step Functions 하고를 사용하여가 지원하지 AWS Step Functions 않는 기능을 AWS Lambda 에뮬레이션합니다. 또한 Oozie 작업 속성을 로 AWS SCT 변환합니다 AWS Systems Manager.

Apache Oozie 워크플로를 변환하려면 AWS SCT 버전 1.0.671 이상을 사용해야 합니다. 또한 AWS SCT의 명령줄 인터페이스를 숙지해야 합니다. 자세한 내용은 [에 대한 CLI 참조 AWS Schema Conversion Tool](CHAP_Reference.md) 단원을 참조하십시오.

## Apache Oozie를 소스로 사용하기 위한 사전 조건
<a name="CHAP_Source.Oozie.Prerequisites"></a>

 AWS SCT CLI를 사용하여 Apache Oozie에 연결하려면 다음과 같은 사전 조건이 필요합니다.
+ 상태 시스템 정의를 저장할 Amazon S3 버킷을 생성합니다. 이러한 정의를 사용하여 상태 시스템을 구성할 수 있습니다. 자세한 내용은 *Amazon S3 사용 설명서*의 [버킷 생성](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html)을 참조하세요.
+ `AmazonS3FullAccess` 정책을 사용하여 AWS Identity and Access Management (IAM) 역할을 생성합니다. AWS SCT 는이 IAM 역할을 사용하여 Amazon S3 버킷에 액세스합니다.
+  AWS 보안 키와 AWS 보안 액세스 키를 기록해 둡니다. AWS 액세스 키에 대한 자세한 내용은 *IAM 사용 설명서*의 [액세스 키 관리를](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html) 참조하세요.
+ 자격 AWS 증명과 Amazon S3 버킷에 대한 정보를 글로벌 애플리케이션 설정의 AWS 서비스 프로필에 저장합니다. 그런 다음이 AWS 서비스 프로파일을 AWS SCT 사용하여 AWS 리소스로 작업합니다. 자세한 내용은 [에서 프로필 관리 AWS Schema Conversion Tool](CHAP_UserInterface.Profiles.md) 단원을 참조하십시오.

소스 Apache Oozie 워크플로를 사용하려면에 소스 파일의 특정 구조가 AWS SCT 필요합니다. 각 애플리케이션 폴더에는 `job.properties` 파일이 포함되어야 합니다. 이 파일에는 작업 속성의 키-값 페어가 포함되어 있습니다. 또한 각 애플리케이션 폴더에는 `workflow.xml` 파일이 포함되어야 합니다. 이 파일은 워크플로의 작업 노드와 제어 흐름 노드를 설명합니다.

## Apache Oozie에 소스로 연결
<a name="CHAP_Source.Oozie.Connecting"></a>

다음 절차에 따라 Apache Oozie 소스 파일에 연결합니다.

**AWS SCT CLI에서 Apache Oozie에 연결하려면**

1. 새 AWS SCT CLI 스크립트를 생성하거나 기존 시나리오 템플릿을 편집합니다. 예를 들어 `OozieConversionTemplate.scts` 템플릿을 다운로드하여 편집할 수 있습니다. 자세한 내용은 [CLI 시나리오 가져오기](CHAP_Reference.md#CHAP_Reference.Scenario) 단원을 참조하십시오.

1.  AWS SCT 애플리케이션 설정을 구성합니다.

   다음 코드 예제에서는 애플리케이션 설정을 저장하고 프로젝트에 암호를 저장할 수 있도록 합니다. 이렇게 저장된 설정은 다른 프로젝트에서 사용할 수 있습니다.

   ```
   SetGlobalSettings
       -save: 'true'
       -settings: '{
           "store_password": "true"
       }'
   /
   ```

1. 새 AWS SCT 프로젝트를 생성합니다.

   다음 코드 예제는 `c:\sct` 폴더에 `oozie` 프로젝트를 만듭니다.

   ```
   CreateProject
       -name: 'oozie'
       -directory: 'c:\sct'
   /
   ```

1. `AddSource` 명령을 사용하여 소스 Apache Oozie 파일이 있는 폴더를 프로젝트에 추가합니다. `vendor` 파라미터에 대해 `APACHE_OOZIE` 값을 사용해야 합니다. 또한 필수 파라미터 `name` 및 `mappingsFolder`의 값을 제공해야 합니다.

   다음 코드 예제에서는 AWS SCT 프로젝트의 소스로 Apache Oozie를 추가합니다. 이 예제에서는 이름이 `OOZIE`인 소스 객체를 만듭니다. 이 객체 이름을 사용하여 매핑 규칙을 추가합니다. 이 코드 예제를 실행한 후는 `c:\oozie` 폴더를 AWS SCT 사용하여 프로젝트에 소스 파일을 로드합니다.

   ```
   AddSource
       -name: 'OOZIE'
       -vendor: 'APACHE_OOZIE'
       -mappingsFolder: 'c:\oozie'
   /
   ```

   Windows에서 이 예제와 다음 예제를 사용할 수 있습니다.

1. `ConnectSource` 명령을 사용하여 소스 Apache Oozie 파일에 연결합니다. 이전 단계에서 정의한 소스 객체의 이름을 사용합니다.

   ```
   ConnectSource
       -name: 'OOZIE'
       -mappingsFolder: 'c:\oozie'
   /
   ```

1. CLI 스크립트를 저장합니다. 그런 다음 AWS Step Functions 서비스에 대한 연결 정보를 추가합니다.

## 확장 팩에서 AWS Lambda 함수를 사용하기 위한 권한
<a name="CHAP_Source.Oozie.TargetPrerequisites"></a>

가 지원하지 AWS Step Functions 않는 소스 함수의 경우는 확장 팩을 AWS SCT 생성합니다. 이 확장 팩에는 소스 AWS Lambda 함수를 에뮬레이션하는 함수가 포함되어 있습니다.

이 확장 팩을 사용하려면 다음 권한이 있는 AWS Identity and Access Management (IAM) 역할을 생성합니다.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "lambda",
            "Effect": "Allow",
            "Action": [
                "lambda:InvokeFunction"
            ],
            "Resource": [
                "arn:aws:lambda:*:498160209112:function:LoadParameterInitialState:*",
                "arn:aws:lambda:*:498160209112:function:EvaluateJSPELExpressions:*"
            ]
        },
        {
            "Sid": "emr",
            "Effect": "Allow",
            "Action": [
                "elasticmapreduce:DescribeStep",
                "elasticmapreduce:AddJobFlowSteps"
            ],
            "Resource": [
                "arn:aws:elasticmapreduce:*:498160209112:cluster/*"
            ]
        },
        {
            "Sid": "s3",
            "Effect": "Allow",
            "Action": [
                "s3:GetObject"
            ],
            "Resource": [
                "arn:aws:s3:::*/*"
            ]
        }
    ]
}
```

------

확장 팩을 적용하려면 다음 권한이 있는 IAM 역할이 AWS SCT 필요합니다.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "iam:GetRole",
                "iam:ListRolePolicies",
                "iam:CreateRole",
                "iam:TagRole",
                "iam:PutRolePolicy",
                "iam:DeleteRolePolicy",
                "iam:DeleteRole",
                "iam:PassRole"
            ],
            "Resource": [
                "arn:aws:iam::{{111122223333}}:role/sct/*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "iam:GetRole",
                "iam:ListRolePolicies"
            ],
            "Resource": [
                "arn:aws:iam::{{111122223333}}:role/lambda_LoadParameterInitialStateRole",
                "arn:aws:iam::{{111122223333}}:role/lambda_EvaluateJSPELExpressionsRole",
                "arn:aws:iam::{{111122223333}}:role/stepFunctions_MigratedOozieWorkflowRole"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "lambda:GetFunction",
                "lambda:CreateFunction",
                "lambda:UpdateFunctionCode",
                "lambda:DeleteFunction"
            ],
            "Resource": [
                "arn:aws:lambda:*:{{111122223333}}:function:LoadParameterInitialState",
                "arn:aws:lambda:*:{{111122223333}}:function:EvaluateJSPELExpressions"
            ]
        }
    ]
}
```

------

## 에 AWS Step Functions 대상으로 연결
<a name="CHAP_Source.Oozie.Target"></a>

다음 절차에 AWS Step Functions 따라를 대상으로 연결합니다.

**AWS SCT CLI AWS Step Functions 에서에 연결하려면**

1. Apache Oozie 소스 파일의 연결 정보가 포함된 CLI 스크립트를 엽니다.

1. `AddTarget` 명령을 사용하여 AWS SCT 프로젝트의 마이그레이션 대상에 대한 정보를 추가합니다. `vendor` 파라미터에 대해 `STEP_FUNCTIONS` 값을 사용해야 합니다. 또한 필수 파라미터 `name` 및 `profile`의 값을 제공해야 합니다.

   다음 코드 예제에서는를 AWS SCT 프로젝트에 소스 AWS Step Functions 로 추가합니다. 이 예제에서는 이름이 `AWS_STEP_FUNCTIONS`인 대상 객체를 만듭니다. 매핑 규칙을 생성할 때 이 객체 이름을 사용합니다. 또한이 예제에서는 사전 조건 단계에서 생성한 AWS SCT 서비스 프로파일을 사용합니다. {{profile\_name}}을 프로필 이름으로 바꿔야 합니다.

   ```
   AddTarget
       -name: 'AWS_STEP_FUNCTIONS'
       -vendor: 'STEP_FUNCTIONS'
       -profile: '{{profile_name}}'
   /
   ```

    AWS 서비스 프로파일을 사용하지 않는 경우 , `accessKey`, 및 필수 파라미터에 대한 값을 제공해야 합니다`secretKey``awsRegion``s3Path`. 이러한 파라미터를 사용하여 AWS 보안 액세스 키, AWS 보안 키 AWS 리전, 및 Amazon S3 버킷의 경로를 지정합니다.

1. `ConnectTarget` 명령을 AWS Step Functions 사용하여에 연결합니다. 이전 단계에서 정의한 대상 객체의 이름을 사용합니다.

   다음 코드 예제는 AWS 서비스 프로필을 사용하여 `AWS_STEP_FUNCTIONS` 대상 객체에 연결합니다. {{profile\_name}}을 프로필 이름으로 바꿔야 합니다.

   ```
   ConnectTarget
       -name: 'AWS_STEP_FUNCTIONS'
       -profile: '{{profile_name}}'
   /
   ```

1. CLI 스크립트를 저장합니다. 그 다음으로, 매핑 규칙과 마이그레이션 명령을 추가합니다. 자세한 내용은 [Oozie 워크플로 변환](big-data-oozie.md) 단원을 참조하십시오.