

AWS Data Pipeline 는 더 이상 신규 고객이 사용할 수 없습니다. 의 기존 고객은 평소와 같이 서비스를 계속 사용할 AWS Data Pipeline 수 있습니다. [자세히 알아보기](https://aws.amazon.com/blogs/big-data/migrate-workloads-from-aws-data-pipeline/)

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

# Task Runner로 작업하기
<a name="dp-using-task-runner"></a>

 Task Runner는 예약된 작업을 AWS Data Pipeline 폴링하고 Amazon EC2 인스턴스, Amazon EMR 클러스터 또는 기타 컴퓨팅 리소스에서 실행하여 상태를 보고하는 작업 에이전트 애플리케이션입니다. 애플리케이션에 따라 다음을 선택할 수 있습니다.
+  AWS Data Pipeline 가 하나 이상의 Task Runner 애플리케이션을 설치 및 관리할 수 있도록 허용합니다. 파이프라인이 활성화되면 활동 runsOn 필드에서 참조하는 기본 `Ec2Instance` 또는 `EmrCluster` 객체가 자동으로 생성됩니다.는 EC2 인스턴스 또는 EMR 클러스터의 마스터 노드에 Task Runner를 AWS Data Pipeline 설치합니다. 이 패턴에서는 대부분의 인스턴스 또는 클러스터 관리를 자동으로 수행할 AWS Data Pipeline 수 있습니다.
+ 사용자가 관리하는 리소스에서 파이프라인 전부 또는 일부를 실행합니다. 잠재적 리소스에는 장시간 실행되는 Amazon EC2 인스턴스, Amazon EMR 클러스터 또는 물리적 서버가 포함됩니다. AWS Data Pipeline 웹 서비스와 통신할 수 있는 경우 거의 모든 곳에 작업 실행기(작업 실행기 또는 자체 디바이스의 사용자 지정 작업 에이전트일 수 있음)를 설치할 수 있습니다. 이 패턴에서, 사용되는 리소스와 그 관리 방식을 거의 완벽하게 제어한다고 가정할 때, Task Runner를 수동으로 설치하여 구성해야 합니다. 그럴려면 [Task Runner를 사용하여 기존 리소스에서 작업 실행](dp-how-task-runner-user-managed.md)의 설명대로 이 단원에 나오는 절차를 사용하세요.

# Task Runner AWS Data Pipeline관리형 리소스
<a name="dp-how-task-runner-dp-managed"></a>

 에서 리소스를 시작하고 관리하면 AWS Data Pipeline웹 서비스는 파이프라인에서 작업을 처리하기 위해 해당 리소스에 Task Runner를 자동으로 설치합니다. 활동 객체의 `runsOn`필드용 전산 리소스(Amazon EC2 인스턴스 또는 Amazon EMR 클러스터)를 지정합니다. AWS Data Pipeline 가 이 리소스를 시작할 때 해당 리소스에 Task Runner를 설치하고 `runsOn` 필드가 이 리소스로 설정된 모든 활동 객체를 처리하도록 구성합니다. 가 리소스를 AWS Data Pipeline 종료하면 Task Runner 로그가 종료되기 전에 Amazon S3 위치에 게시됩니다.

![\[AWS Data Pipeline관리형 리소스의 작업 실행기 수명 주기\]](http://docs.aws.amazon.com/ko_kr/datapipeline/latest/DeveloperGuide/images/dp-task-runner-managed-emr-jobflow.png)


 예를 들어, 파이프라인에서 `EmrActivity`를 사용할 경우 `runsOn` 필드에서 `EmrCluster` 리소스를 지정합니다. 는 해당 활동을 AWS Data Pipeline 처리할 때 Amazon EMR 클러스터를 시작하고 마스터 노드에 Task Runner를 설치합니다. 그러면 이 Task Runner는 `runsOn` 필드가 `EmrCluster` 객체로 설정된 활동의 작업을 처리합니다. 다음 파이프라인 정의 발췌 부분은 두 객체 사이의 이 관계를 설명합니다.

```
{
  "id" : "MyEmrActivity",
  "name" : "Work to perform on my data",
  "type" : "EmrActivity",
  "runsOn" : {"ref" : "MyEmrCluster"},
  "preStepCommand" : "scp remoteFiles localFiles",
  "step" : "s3://amzn-s3-demo-bucket/myPath/myStep.jar,firstArg,secondArg",
  "step" : "s3://amzn-s3-demo-bucket/myPath/myOtherStep.jar,anotherArg",
  "postStepCommand" : "scp localFiles remoteFiles",
  "input" : {"ref" : "MyS3Input"},
  "output" : {"ref" : "MyS3Output"}
},
{
  "id" : "MyEmrCluster",
  "name" : "EMR cluster to perform the work",
  "type" : "EmrCluster",
  "hadoopVersion" : "0.20",
  "keypair" : "myKeyPair",
  "masterInstanceType" : "m1.xlarge",
  "coreInstanceType" : "m1.small",
  "coreInstanceCount" : "10",
  "taskInstanceType" : "m1.small",
  "taskInstanceCount": "10",
  "bootstrapAction" : "s3://elasticmapreduce/libs/ba/configure-hadoop,arg1,arg2,arg3",
  "bootstrapAction" : "s3://elasticmapreduce/libs/ba/configure-other-stuff,arg1,arg2"
}
```

이 활동 실행에 대한 정보와 예제는 [EmrActivity](dp-object-emractivity.md) 단원을 참조하세요.

 파이프라인에 여러 AWS Data Pipeline관리형 리소스가 있는 경우 Task Runner가 각 리소스에 설치되고 모두 처리할 작업에 AWS Data Pipeline 대해 폴링됩니다.

# Task Runner를 사용하여 기존 리소스에서 작업 실행
<a name="dp-how-task-runner-user-managed"></a>

Amazon EC2 인스턴스, 물리적 서버 또는 워크스테이션과 같이 관리하는 컴퓨팅 리소스에 Task Runner를 설치할 수 있습니다. Task Runner는 AWS Data Pipeline 웹 서비스와 통신할 수 있는 경우 호환되는 모든 하드웨어 또는 운영 체제에 어디에나 설치할 수 있습니다.

이 접근 방식은 예를 들어를 사용하여 조직의 방화벽 내에 저장된 데이터를 처리하려는 경우에 유용 AWS Data Pipeline 할 수 있습니다. 로컬 네트워크의 서버에 Task Runner를 설치하면 로컬 데이터베이스에 안전하게 액세스한 다음 실행할 다음 작업을 AWS Data Pipeline 폴링할 수 있습니다. 가 파이프라인 처리를 AWS Data Pipeline 종료하거나 삭제하면 수동으로 종료할 때까지 Task Runner 인스턴스가 컴퓨팅 리소스에서 계속 실행됩니다. 파이프라인 실행이 완료된 후에도 Task Runner 로그는 유지됩니다.

사용자가 관리하는 리소스에서 Task Runner를 사용하려면 먼저 Task Runner를 다운로드한 후에 이 단원의 절차에 따라 그것을 전산 리소스에 설치해야 합니다.

**참고**  
 Linux, UNIX 또는 macOS에서만 Task Runner를 설치할 수 있습니다. Task Runner는 Windows 운영 체제에서 지원됩니다.  
Task Runner 2.0을 사용하는 데 필요한 최소 Java 버전은 1.7입니다.

처리해야 하는 파이프라인 활동에 설치한 Task Runner를 연결하려면 `workerGroup`필드를 객체에 추가하고, 해당 작업자 그룹 값에 폴링하도록 Task Runner를 구성합니다. Task Runner JAR 파일을 실행할 때 작업자 그룹 문자열을 파라미터(예: `--workerGroup=wg-12345`)로 전달하여 구성합니다.

![\[AWS Data Pipeline diagram showing monthly task flow for archiving processed invoices using Task Runner.\]](http://docs.aws.amazon.com/ko_kr/datapipeline/latest/DeveloperGuide/images/dp-task-runner-user-emr-jobflow.png)


```
{
  "id" : "CreateDirectory",
  "type" : "ShellCommandActivity",
  "workerGroup" : "wg-12345",
  "command" : "mkdir new-directory"
}
```

## Task Runner 설치
<a name="dp-installing-taskrunner"></a>

이 섹션에서는 Task Runner와 그 필수 구성 요소를 설치하고 구성하는 방법을 설명합니다. 간단한 수동 과정으로 설치할 수 있습니다.

**Task Runner를 설치하려면**

1. Task Runner는 Java 버전 1.6 또는 1.8이 필요합니다. Java가 설치되었는지 그리고 실행 버전을 확인하려면 다음 명령을 사용합니다.

   ```
   java -version
   ```

    컴퓨터에 Java 1.6 또는 1.8이 설치되지 않은 경우, 이 버전 중 하나를 [http://www.oracle.com/technetwork/java/index.html](http://www.oracle.com/technetwork/java/index.html)에서 다운로드하세요. Java를 다운로드하여 설치한 후 다음 단계를 진행합니다.

1. `TaskRunner-1.0.jar`을 [https://s3.amazonaws.com/datapipeline-us-east-1/us-east-1/software/latest/TaskRunner/TaskRunner-1.0.jar](https://s3.amazonaws.com/datapipeline-us-east-1/us-east-1/software/latest/TaskRunner/TaskRunner-1.0.jar)에서 다운로드한 다음 대상 컴퓨팅 리소스의 폴더에 복사합니다. `EmrActivity` 작업을 실행하는 Amazon EMR 클러스터의 경우는 클러스터의 프라이머리 노드에 Task Runner를 설치합니다.

1. Task Runner를 사용하여 AWS Data Pipeline 웹 서비스에 연결하여 명령을 처리할 때 사용자는 데이터 파이프라인을 생성하거나 관리할 권한이 있는 역할에 프로그래밍 방식으로 액세스해야 합니다. 자세한 내용은 [프로그래밍 방식 액세스 권한 부여](dp-get-setup.md#dp-grant-programmatic-access) 단원을 참조하십시오.

1. Task Runner는 HTTPS를 사용하여 AWS Data Pipeline 웹 서비스에 연결합니다. AWS 리소스를 사용하는 경우 적절한 라우팅 테이블 및 서브넷 ACL에서 HTTPS가 활성화되어 있는지 확인합니다. 방화벽 프록시를 사용하는 경우에는 포트 443이 열려 있어야 합니다.

# (선택 사항) Amazon RDS에 대한 Task Runner 액세스 권한 부여
<a name="dp-taskrunner-rdssecurity"></a>

Amazon RDS를 통해 데이터베이스 보안 그룹(DB 보안 그룹)을 사용하여 DB 인스턴스에 대한 액세스를 제어할 수 있습니다. DB 보안 그룹은 DB 인스턴스에 대한 네트워크 액세스를 제어하는 방화벽처럼 작동합니다. 기본적으로 DB 인스턴스에 대한 네트워크 액세스는 해제되어 있습니다. Task Runner가 Amazon RDS 인스턴스에 액세스할 수 있도록 DB 보안 그룹을 수정해야 합니다. Task Runner는 실행 중인 인스턴스로부터 Amazon RDS 액세스 권한을 얻으므로 Amazon RDS 인스턴스에 추가하는 계정 및 보안 그룹은 Task Runner를 설치한 위치에 따라 달라집니다.

**EC2-Classic에서 Task Runner에 대한 액세스를 부여하려면**

1. Amazon RDS 콘솔을 엽니다.

1. 탐색 창에서 ** Instances**를 선택한 다음 DB 인스턴스를 선택합니다.

1. **보안 및 네트워크**에서 보안 그룹을 선택하면 이 DB 보안 그룹이 선택된 **보안 그룹** 페이지가 열립니다. DB 보안 그룹의 세부 정보 아이콘을 선택합니다.

1. [**Security Group Details**]에서 해당하는 **연결 유형** 및 **세부 정보**로 규칙을 생성합니다. 이러한 필드는 아래의 설명처럼 Task Runner가 실행 중인 위치에 따라 다릅니다.
   + `Ec2Resource`
     + **연결 유형**: `EC2 Security Group`

       **세부 정보**: *my-security-group-name* (EC2 인스턴스에 생성한 보안 그룹 이름)
   + `EmrResource`
     + **연결 유형**: `EC2 Security Group`

       **세부 정보**: `ElasticMapReduce-master`
     + **연결 유형**: `EC2 Security Group`

       **세부 정보**: `ElasticMapReduce-slave`
   + 로컬 환경(온프레미스)
     + **연결 유형**: `CIDR/IP`:

       **세부 정보**: *my-ip-address* (컴퓨터의 IP 주소 또는 컴퓨터에서 방화벽이 사용되는 경우는 네트워크의 IP 주소 범위)

1. 추가를 클릭합니다.

**EC2-VPC에서 Task Runner에 대한 액세스를 부여하려면**

1. Amazon RDS 콘솔을 엽니다.

1. 탐색 창에서 **인스턴스**를 선택합니다.

1. DB 인스턴스의 세부 정보 아이콘을 선택합니다. **보안 및 네트워크**에서 보안 그룹 링크를 열면 Amazon EC2 콘솔로 이동합니다. 보안 그룹에 기존 콘솔 디자인을 사용할 경우에는 콘솔 페이지 상단에 표시된 아이콘을 선택하여 새 콘솔 디자인으로 전환합니다.

1. [**Inbound**] 탭에서 [**Edit**]와 [**Add Rule**]을 선택합니다. DB 인스턴스를 시작할 때 사용한 데이터베이스 포트를 지정합니다. 소스는 아래의 설명처럼 Task Runner가 실행 중인 위치에 따라 다릅니다.
   + `Ec2Resource`
     + *my-security-group-id* (EC2 인스턴스에 생성한 보안 그룹 ID)
   + `EmrResource`
     + *master-security-group-id* (`ElasticMapReduce-master` 보안 그룹의 ID)
     + *slave-security-group-id* (`ElasticMapReduce-slave` 보안 그룹의 ID)
   + 로컬 환경(온프레미스)
     + *ip-address* (컴퓨터의 IP 주소 또는 컴퓨터에서 방화벽이 사용되는 경우는 네트워크의 IP 주소 범위)

1. **저장**을 클릭합니다.

## Task Runner 시작하기
<a name="dp-activate-task-runner"></a>

Task Runner를 설치한 디렉터리로 설정된 새 명령 프롬프트 창에서 다음 명령으로 Task Runner를 시작합니다.

```
java -jar TaskRunner-1.0.jar --config ~/credentials.json --workerGroup=myWorkerGroup --region=MyRegion --logUri=s3://amzn-s3-demo-bucket/foldername
```

`--config` 옵션은 사용자의 자격 증명 파일을 가리킵니다.

`--workerGroup` 옵션은 작업자 그룹 이름을 지정합니다. 이 이름은 처리할 작업의 파이프라인에 지정된 값과 같아야 합니다.

`--region` 옵션은 실행할 작업을 가져올 서비스 리전을 지정합니다.

`--logUri` 옵션은 Amazon S3 내 위치로 압축 로그를 보낼 때 사용됩니다.

Task Runner가 활성화되면 로그 파일이 터미널 창에 기록된 경로를 인쇄합니다. 다음은 예입니다.

```
Logging to /Computer_Name/.../output/logs
```

작업 실행기는 로그인 셸과 분리된 상태로 실행되어야 합니다. 터미널 애플리케이션을 사용하여 컴퓨터에 연결할 경우 nohup 또는 screen 같은 유틸리티를 사용하여 로그아웃 시 작업 실행기 애플리케이션이 남지 않도록 해야 합니다. 명령줄 옵션에 대한 자세한 내용은 [Task Runner 구성 옵션](dp-taskrunner-config-options.md)을 참조하세요.

## Task Runner 로깅 확인
<a name="dp-verify-task-runner"></a>

Task Runner가 작동하는지 확인하는 가장 쉬운 방법은 로그 파일을 쓰고 있는지 확인하는 것입니다. Task Runner는 Task Runner가 설치된 디렉터리 `output/logs` 아래의 디렉터리에 시간별 로그 파일을 기록합니다. 파일 이름은 `Task Runner.log.YYYY-MM-DD-HH`이며, 여기서 HH는 00시부터 23시까지(UDT 기준) 실행됩니다. 스토리지 공간을 절약하기 위해 8시간 이상된 로그 파일은 GZip으로 압축됩니다.

# Task Runner 스레드 및 사전 요구 사항
<a name="dp-taskrunner-threading"></a>

 Task Runner는 각 작업, 활동 및 사전 조건에 스레드 풀을 사용합니다. 의 기본 설정은 2`--tasks`입니다. 즉, 작업 풀에서 두 개의 스레드가 할당되고 각 스레드가 새 작업에 대해 AWS Data Pipeline 서비스를 폴링합니다. 따라서 `--tasks`는 파이프라인 처리량 최적화에 도움을 주기 위해 사용할 수 있는 성능 튜닝 속성입니다.

 사전 조건에 대한 파이프라인 재시도 논리는 Task Runner에서 발생합니다. 사전 조건 객체를 폴링하기 AWS Data Pipeline 위해 두 개의 사전 조건 스레드가 할당됩니다. Task Runner는 사전 요구 사항에 정의한 사전 조건 객체 **retryDelay** 및 **preconditionTimeout** 필드를 준수합니다.

사전 조건 폴링 타임아웃과 재시도 횟수가 감소하면 애플리케이션 성능 향상에 도움이 되는 경우가 많습니다. 그리고 장시간 실행 사전 조건이 있는 애플리케이션은 타임아웃 및 재시도 값은 증가해야 합니다. 사전 조건 객체에 관한 자세한 내용은 [사전 조건](dp-concepts-preconditions.md) 단원을 참조하세요.

# Task Runner 구성 옵션
<a name="dp-taskrunner-config-options"></a>

이것은 Task Runner를 시작할 때 명령줄에서 사용 가능한 구성 옵션입니다.


****  

| 명령줄 파라미터 | 설명 | 
| --- | --- | 
| `--help` | 명령줄 도움말입니다. 예시: `Java -jar TaskRunner-1.0.jar --help` | 
| `--config` | `credentials.json` 파일의 경로와 파일 이름입니다. | 
| `--accessId` | 요청 시 사용할 Task Runner의 AWS 액세스 키 ID입니다. `--accessID` 및 `--secretKey`옵션은 파일 사용의 대안을 제공합니다. `credentials.json` 파일도 있는 경우에는 `--accessID` 및 `--secretKey` 옵션이 우선합니다. | 
| `--secretKey` | 요청 시 Task Runner가 사용할 AWS 보안 키입니다. 자세한 내용은 `--accessID` 단원을 참조하십시오. | 
| `--endpoint` | 엔드포인트는 웹 서비스의 진입점인 URL입니다. 요청을 하는 리전의 AWS Data Pipeline 서비스 엔드포인트입니다. 선택 사항. 일반적으로 리전을 지정하는 것으로 충분하므로 엔드포인트를 설정할 필요가 없습니다. AWS Data Pipeline 리전 및 엔드포인트 목록은의 [AWS Data Pipeline 리전 및 엔드포인트](https://docs.aws.amazon.com/general/latest/gr/rande.html#datapipeline_region)를 참조하세요*AWS 일반 참조*. | 
| `--workerGroup` | Task Runner가 작업을 검색할 작업자 그룹의 이름입니다. 필수 사항입니다.Task Runner가 웹 서비스를 폴링할 때 사용자가 제공한 자격 증명과 `workerGroup`값을 사용하여 검색할 작업(있는 경우)을 선택합니다. 사용자에게 의미가 있는 어떤 이름이든 사용할 수 있지만, 요구 사항은 문자열이 Task Runner와 이에 해당하는 파이프라인 활동 사이에 일치해야 합니다. 작업자 그룹 이름은 리전으로 제한됩니다. 다른 리전에 동일한 작업자 그룹 이름이 있어도 Task Runner는 항상 `--region`에 지정된 리전에서 작업을 가져옵니다. | 
| `--taskrunnerId` | 진행 상황을 보고할 때 사용할 작업 실행기 ID입니다. 선택 사항. | 
| `--output` | 로그 출력 파일의 Task Runner 디렉터리입니다. 선택 사항. 로그 파일은 Amazon S3로 밀려나갈 때까지 로컬 디렉터리에 저장됩니다. 이 옵션은 기본 디렉터리를 재정의합니다. | 
| `--region` | 사용할 리전입니다. 선택사항이지만 항상 리전을 설정하는 것이 좋습니다. 리전을 지정하지 않으면 Task Runner가 기본 서비스 리전 `us-east-1`에서 작업을 검색합니다.그 밖에 지원되는 리전은 `eu-west-1`, `ap-northeast-1`, `ap-southeast-2`, `us-west-2`입니다. | 
| `--logUri` | Task Runner가 매시간 로그 파일을 백업할 Amazon S3 대상 경로입니다. Task Runner가 종료하면 로컬 디렉터리의 활성 로그가 Amazon S3 대상 폴더로 밀려나갑니다. | 
| --proxyHost | Task Runner 클라이언트에 의해 사용되어 AWS 서비스에 연결하는 프록시의 호스트입니다. | 
| --proxyPort | Task Runner 클라이언트에 의해 사용되어 AWS 서비스에 연결하는 프록시 호스트의 포트입니다. | 
| --proxyUsername | 프록시의 사용자 이름입니다. | 
| --proxyPassword | 프록시의 암호입니다. | 
| --proxyDomain | NTLM 프록시의 Windows 도메인 이름입니다. | 
| --proxyWorkstation | NTLM 프록시의 Windows 워크스테이션 이름입니다. | 

# 프록시와 함께 작업 실행기 사용
<a name="dp-taskrunner-proxy"></a>

프록시 호스트를 사용할 경우에는 작업 실행기를 호출할 때 해당 [configuration](https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-taskrunner-config-options.html)을 지정하거나 환경 변수 HTTPS\$1PROXY를 설정할 수 있습니다. 작업 실행기와 함께 사용되는 환경 변수는 [AWS 명령줄 인터페이스](https://docs.aws.amazon.com/cli/latest/userguide/cli-http-proxy.html)에 사용되는 것과 동일한 구성을 수용합니다.

# Task Runner 및 사용자 지정 AMI
<a name="dp-custom-ami"></a>

파이프라인에 `Ec2Resource` 객체를 지정하면는 Task Runner를 설치하고 구성하는 AMI를 사용하여 EC2 인스턴스를 AWS Data Pipeline 생성합니다. 이 경우 PV 호환 인스턴스 유형이 필요합니다. 또는 Task Runner와 함께 사용자 지정 AMI를 생성한 후 `Ec2Resource`객체의 `imageId`필드를 사용하여 이 AMI의 ID를 지정할 수 있습니다. 자세한 내용은 [Ec2Resource](dp-object-ec2resource.md) 단원을 참조하십시오.

사용자 지정 AMI가 Task Runner에 성공적으로 사용하려면 다음 요구 사항을 충족해야 합니다 AWS Data Pipeline .
+ 인스턴스가 실행될 리전에 AMI를 생성합니다. 자세한 내용을 알아보려면 *Amazon EC2 사용 설명서*의 [고유 AMI 생성](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/creating-an-ami.html)을 참조하세요.
+ 사용할 인스턴스 유형에서 AMI 가상화 유형이 지원되어야 합니다. 예를 들어, I2 및 G2 인스턴스 유형은 HVM AMI가 필요하며, T1, C1, M1 및 M2 인스턴스는 PV AMI가 필요합니다. 자세한 내용은 *Amazon EC2 사용 설명서*의 [Linux AMI 가상화 유형](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/virtualization_types.html)을 참조하세요.
+ 다음 소프트웨어를 설치합니다.
  + Linux
  + Bash
  + wget
  + unzip
  + Java 1.6 또는 1.8
  + cloud-init
+ 이름이 `ec2-user`인 사용자 계정을 만들고 구성합니다.