

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 に 1 つ以上の Task Runner アプリケーションのインストールと管理を許可します。パイプラインがアクティブ化されると、アクティビティ runsOn フィールドによって参照されるデフォルト`Ec2Instance`または`EmrCluster`オブジェクトが自動的に作成されます。 AWS Data Pipeline はEC2 インスタンスまたは EMR クラスターのマスターノードに Task Runner をインストールします。このパターンでは、 AWS Data Pipeline はほとんどのインスタンスまたはクラスター管理を実行できます。
+ パイプラインの全体または一部を、お客様が管理するリソースで実行する。使用可能なリソースには、長時間実行されているAmazon EC2インスタンス、Amazon EMRクラスター、物理サーバーなどがあります。ウェブ AWS Data Pipeline サービスと通信できる場合は、タスクランナー (Task Runner または独自のデバイスのカスタムタスクエージェントのいずれか) をほぼどこでもインストールできます。このパターンでは、どのリソースが使用されどのように管理されるかをお客様がほぼ完全に制御できますが、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/ja_jp/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`オブジェクトに設定されている、アクティビティのタスクを処理します。次のパイプライン定義の抜粋は、2つのオブジェクト間のこの関係を示します。

```
{
  "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をダウンロードし、このセクションの手順に従って、お客様のコンピューティングリソースにインストールします。

**注記**  
 Task RunnerはLinux、UNIX、またはmacOSにのみインストールできます。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/ja_jp/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が開いていることを確認します。

# （オプション）Task Runnerに対するAmazon RDSへのアクセス権限の付与
<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. [**Security and Network**]（セキュリティとネットワーク）で、セキュリティグループを選択します。このDBセキュリティグループが選択された状態で[**Security Groups**]（セキュリティグループ）ページが開きます。DBセキュリティグループの詳細アイコンを選択します。

1. [**Security Group Details**]で、適切な[**Connection Type**]と[**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. [Add]（追加）をクリックします。

**EC2-VPCで実行されるTask Runnerにアクセス権限を付与するには**

1. Amazon RDSコンソールを開きます。

1. ナビゲーションペインで、[**インスタンス**]を選択します。

1. DBインスタンスの詳細アイコンを選択します。**[Security and Network]**（セキュリティとネットワーク）で、セキュリティグループへのリンクを開き、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. **[Save]**（保存）をクリックします。

## 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
```

Task Runnerはログインシェルから切り離されて実行される必要があります。ターミナルアプリケーションを使用してコンピューターに接続している場合は、nohupやscreenのようなユーティリティを使用して、ログアウト時にTask Runnerアプリケーションが終了しないようにする必要があります。コマンドラインオプションの詳細については、「[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では、タスク、アクティビティ、前提条件ごとに1つのスレッドプールが使用されます。のデフォルト設定`--tasks`は 2 です。つまり、タスクプールから 2 つのスレッドが割り当てられ、各スレッドは新しいタスクのために AWS Data Pipeline サービスをポーリングします。つまり、`--tasks`はパフォーマンスチューニング用の属性であり、パイプラインのスループット最適化のために使用できます。

 前提条件のパイプライン再試行ロジックはTask Runnerで実行されます。前提条件オブジェクト AWS Data Pipeline のポーリングには、2 つの前提条件スレッドが割り当てられます。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ファイルを使用する代わりになります。`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` | 進捗状況をレポートするときに使用するTask Runnerの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が1時間おきにログファイルをバックアップする先のAmazon S3の場所へのパス。Task Runnerが終了すると、ローカルディレクトリ内のアクティブなログがAmazon S3にあるバックアップ先フォルダにプッシュされます。 | 
| --proxyHost | Task RunnerクライアントがAWSのサービスに接続するために使用するプロキシのホスト。 | 
| --proxyPort | Task RunnerクライアントがAWSのサービスに接続するために使用するプロキシホストのポート。 | 
| --proxyUsername | プロキシ用のユーザー名。 | 
| --proxyPassword | プロキシ用のパスワード。 | 
| --proxyDomain | NTLMプロキシ用のWindowsドメイン名。 | 
| --proxyWorkstation | NTLMプロキシ用のWindowsワークステーション名。 | 

# プロキシ経由によるTask Runnerの使用
<a name="dp-taskrunner-proxy"></a>

プロキシホストを使用する場合は、Task Runnerを起動するときに[設定](https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-taskrunner-config-options.html)を指定することも、環境変数HTTPS\$1PROXYを設定することもできます。Task Runnerで使用する環境変数には、[AWSコマンドラインインターフェイス](https://docs.aws.amazon.com/cli/latest/userguide/cli-http-proxy.html)で使用するものと同じ設定を指定できます。

# Task RunnerとカスタムAMI
<a name="dp-custom-ami"></a>

パイプラインの`Ec2Resource`オブジェクトを指定すると、 AWS Data Pipeline は Task Runner をインストールして設定する AMI を使用して EC2 インスタンスを作成します。この場合、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
  + 解凍
  + Java 1.6または1.8
  + cloud-init
+ `ec2-user`という名前のユーザーを作成して設定します。