Ec2Resource - AWS Data Pipeline

Ec2Resource

パイプラインアクティビティによって定義された作業を実行する Amazon EC2 インスタンス。

AWS Data Pipeline は、Amazon EC2 インスタンスで IMDSv2 をサポートするようになりました。これにより、セッション指向の方法を使用して、インスタンスからメタデータ情報を取得する際の認証をより適切に処理できるようになりました。セッションは、Amazon EC2 インスタンスで実行されているソフトウェアが、ローカルに保存されている Amazon EC2 インスタンスのメタデータと認証情報にアクセスするために使用する一連のリクエストを開始および終了します。ソフトウェアは IMDSv2 への単純な HTTP PUT リクエストでセッションを開始します。IMDSv2 は、Amazon EC2 インスタンスで実行されているソフトウェアにシークレットトークンを返します。このトークンをパスワードとして使用して、IMDSv2 にメタデータと認証情報をリクエストします。

注記

Amazon EC2 インスタンスに IMDSv2 を使用するには、デフォルトの AMI は IMDSv2 と互換性がないため、設定を変更する必要があります。次の SSM パラメータ経由で取得できる新しい AMI バージョンを指定できます。/aws/service/ami-amazon-linux-latest/amzn-ami-hvm-x86_64-ebs

インスタンスを指定しない場合に AWS Data Pipeline で作成されるデフォルトの Amazon EC2 インスタンスの詳細については、 AWSリージョン別のデフォルトのAmazon EC2インスタンス を参照してください。

EC2-Classic

重要

2013 年 12 月 4 日より前に作成された AWS アカウントのみが EC2-Classic プラットフォームをサポートしています。これらのアカウントのいずれかがある場合、VPC ではなく EC2-Classic ネットワークでパイプラインの EC2Resource オブジェクトを作成するオプションがあることがあります。VPC ですべてのパイプラインのリソースを作成することを強くお勧めします。さらに、EC2-Classic に既存のリソースがある場合は、それらを VPC に移行することをお勧めします。

次のオブジェクト例では、オプションフィールドをいくつか設定し、EC2-Classic で EC2 インスタンスを起動します。

{ "id" : "MyEC2Resource", "type" : "Ec2Resource", "actionOnTaskFailure" : "terminate", "actionOnResourceFailure" : "retryAll", "maximumRetries" : "1", "instanceType" : "m5.large", "securityGroups" : [ "test-group", "default" ], "keyPair" : "my-key-pair" }

EC2-VPC

次のオブジェクト例では、オプションフィールドをいくつか設定し、デフォルト以外の VPC で EC2 インスタンスを起動します。

{ "id" : "MyEC2Resource", "type" : "Ec2Resource", "actionOnTaskFailure" : "terminate", "actionOnResourceFailure" : "retryAll", "maximumRetries" : "1", "instanceType" : "m5.large", "securityGroupIds" : [ "sg-12345678", "sg-12345678" ], "subnetId": "subnet-12345678", "associatePublicIpAddress": "true", "keyPair" : "my-key-pair" }

Syntax

必須フィールド 説明 スロットタイプ
resourceRole Amazon EC2 インスタンスがアクセスできるリソースを制御する IAM ロール。 文字列
ロール AWS Data Pipeline が EC2 インスタンスを作成するために使用する IAM ロール。 文字列

オブジェクト呼び出しフィールド 説明 スロットタイプ
schedule

このオブジェクトは、スケジュール期間の実行中に呼び出されます。

このオブジェクトの依存関係の実行順序を設定するには、別のオブジェクトへのスケジュール参照を指定します。これには以下の 2 つの方法があります。

  • パイプライン内のすべてのオブジェクトで確実にスケジュールが継承されるようにするには、オブジェクトでスケジュールを明示的に設定します: "schedule": {"ref": "DefaultSchedule"}。ほとんどの場合、すべてのオブジェクトがそのスケジュールを継承するように、スケジュール参照をデフォルトのパイプラインオブジェクトに配置すると便利です。

  • マスタースケジュール内にネストされたスケジュールがパイプラインにある場合、スケジュール参照がある親オブジェクトを作成することができます。オプションのスケジュール設定の例については、「https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-object-schedule.html」を参照してください。

参照オブジェクト ("schedule":{"ref":"myScheduleId"} など)

オプションのフィールド 説明 スロットタイプ
actionOnResourceFailure このリソースに対するリソースの失敗後に実行されるアクション。有効な値は、"retryall" および "retrynone" です。 文字列
actionOnTaskFailure このリソースに対するタスクの失敗後に実行されるアクション。有効な値は "continue" または "terminate" です。 文字列
associatePublicIpAddress インスタンスにパブリック IP アドレスを割り当てるかどうかを示します インスタンスが Amazon EC2 または Amazon VPC にある場合、デフォルト値は true です。それ以外の場合、デフォルト値は false です。 ブール値
attemptStatus リモートアクティビティから最も最近報告されたステータス。 文字列
attemptTimeout リモートの作業完了のタイムアウト。設定された場合、指定された開始時間内に完了しなかったリモートアクティビティを再試行することができます。 [Period] (期間)
availabilityZone Amazon EC2 インスタンスの起動場所となるアベイラビリティーゾーン。 文字列
disableIMDSv1 デフォルト値は false で、IMDSv1 と IMDSv2 の両方を有効にします。true に設定すると、IMDSv1 を無効にし、IMDSv2 のみを提供します。 ブール値
failureAndRerunMode 依存関係が失敗または再実行されたときのコンシューマーノードの動作を示します。 一覧表
httpProxy クライアントが AWS のサービスに接続するために使用するプロキシホスト。 参照オブジェクト ( "httpProxy":{"ref":"myHttpProxyId"} など)
imageId

インスタンスに使用する AMI の ID。デフォルトでは、AWS Data Pipeline は HVM AMI 仮想化タイプを使用します。使用される AMI ID はリージョン別になります。選択した HVM AMI を指定して、デフォルトの AMI を上書きすることができます。AMI タイプの詳細については、Linux インスタンス用 Amazon EC2 ユーザーガイドLinux AMI 仮想化タイプおよび Linux AMI の検索を参照してください。

文字列
initTimeout リソースが起動するまでの待機時間。 [Period] (期間)
instanceCount 廃止済み。 整数
instanceType 起動する Amazon EC2 インスタンスのタイプ。 文字列
keyPair キーペアの名前。キーペアを指定せずに Amazon EC2 インスタンスを起動すると、ログオンできません。 文字列
lateAfterTimeout オブジェクトが完了しなければならない、パイプライン開始からの経過時間。スケジュールタイプが ondemand に設定されていない場合にのみトリガーされます。 [Period] (期間)
maxActiveInstances コンポーネントで同時にアクティブになるインスタンスの最大数。再実行はアクティブなインスタンスの数にはカウントされません。 整数
maximumRetries 失敗時の最大再試行回数。 整数
minInstanceCount 廃止済み。 整数
onFail 現在のオブジェクトが失敗したときに実行するアクション。 参照オブジェクト ( "onFail":{"ref":"myActionId"} など)
onLateAction オブジェクトが予定されていないか、まだ実行中の場合にトリガーされるアクション。 参照オブジェクト ("onLateAction":{"ref":"myActionId"} など)
onSuccess 現在のオブジェクトが成功したときに実行するアクション。 参照オブジェクト ( "onSuccess":{"ref":"myActionId"} など)
parent スロットの継承元となる現在のオブジェクトの親。 参照オブジェクト ( "parent":{"ref":"myBaseObjectId"} など)
pipelineLogUri パイプラインのログをアップロードするための Amazon S3 URI ('s3://BucketName/Key/' など)。 文字列
region Amazon EC2 インスタンスを実行する必要のあるリージョンのコード。デフォルトでは、インスタンスはパイプラインと同じリージョンで実行されます。依存するデータセットと同じリージョンでインスタンスを実行することもできます。 一覧表
reportProgressTimeout reportProgress へのリモート作業の連続した呼び出しのタイムアウト。設定された場合、指定された期間の進捗状況を報告しないリモートアクティビティは停止されたと見なし、再試行できます。 [Period] (期間)
retryDelay 2 回の再試行の間のタイムアウト期間。 [Period] (期間)
runAsUser TaskRunner を実行するユーザー。 文字列
runsOn このフィールドはこのオブジェクトでは使用できません。 参照オブジェクト ("runsOn":{"ref":"myResourceId"} など)
scheduleType

スケジュールタイプでは、パイプライン定義のオブジェクトを間隔の最初にスケジュールするか、間隔の最後に、またはオンデマンドでスケジュールするかを指定できます。

値は次のとおりです。

  • timeseries。インスタンスは各間隔の最後にスケジュールされます。

  • cron。インスタンスは各間隔の最初にスケジュールされます。

  • ondemand。アクティベーションごとに 1 回パイプラインを実行することができます。パイプラインを再実行するために、クローンしたり再作成したりする必要はありません。オンデマンドスケジュールを使用する場合は、デフォルトオブジェクトで指定し、パイプラインのオブジェクトに対して指定される唯一の scheduleType である必要があります。オンデマンドパイプラインを使用するには、それ以降の実行ごとに、ActivatePipeline オペレーションを呼び出します。

一覧表
securityGroupIds リソースプールのインスタンスに使用する 1 つ以上の Amazon EC2 セキュリティグループの ID。 文字列
securityGroups リソースプールのインスタンスに使用する 1 つ以上の Amazon EC2 セキュリティグループ。 文字列
spotBidPrice スポットインスタンスの 1 時間あたりの最大金額 (ドル) であり、0 より大きく 20.00 より小さい 10 進値です。 文字列
subnetId インスタンスを起動する Amazon EC2 サブネットの ID。 文字列
terminateAfter リソースを終了するまでの時間数。 [Period] (期間)
useOnDemandOnLastAttempt スポットインスタンスをリクエストする最後の試行では、スポットインスタンスではなくオンデマンドインスタンスのリクエストを作成します。これにより、以前の試行がすべて失敗した場合に、最後の試行は中断されません。 ブール値
workerGroup このフィールドはこのオブジェクトでは使用できません。 文字列

実行時フィールド 説明 スロットタイプ
@activeInstances 現在スケジュールされているアクティブなインスタンスオブジェクトのリスト。 参照オブジェクト ("activeInstances":{"ref":"myRunnableObjectId"} など)
@actualEndTime このオブジェクトの実行が終了した時刻。 DateTime
@actualStartTime このオブジェクトの実行が開始された時刻。 DateTime
cancellationReason このオブジェクトがキャンセルされた場合の cancellationReason 文字列
@cascadeFailedOn オブジェクトが失敗した依存関係のチェーンの説明。 参照オブジェクト ("cascadeFailedOn":{"ref":"myRunnableObjectId"} など)
emrStepLog Amazon EMR アクティビティの試行でのみ使用可能なステップログ。 文字列
errorId このオブジェクトが失敗した場合はエラー ID。 文字列
errorMessage このオブジェクトが失敗した場合はエラーメッセージ。 文字列
errorStackTrace このオブジェクトが失敗した場合は、エラースタックトレース。 文字列
@failureReason リソースの失敗の理由。 文字列
@finishedTime このオブジェクトが実行を終了した時刻。 DateTime
hadoopJobLog Amazon EMR アクティビティで試みることができる Hadoop ジョブのログ。 文字列
@healthStatus 終了状態に達した最後のオブジェクトインスタンスの成功または失敗を反映する、オブジェクトのヘルスステータス。 文字列
@healthStatusFromInstanceId 終了状態に達した最後のインスタンスオブジェクトの ID。 文字列
@healthStatusUpdatedTime ヘルス状態が最後に更新された時間。 DateTime
hostname タスクの試行を取得したクライアントのホスト名。 文字列
@lastDeactivatedTime このオブジェクトが最後に非アクティブ化された時刻。 DateTime
@latestCompletedRunTime 実行が完了した最後の実行の時刻。 DateTime
@latestRunTime 実行がスケジュールされた最後の実行の時刻。 DateTime
@nextRunTime 次回にスケジュールされた実行の時刻。 DateTime
reportProgressTime リモートアクティビティで進捗状況が報告された最新の時刻。 DateTime
@scheduledEndTime オブジェクトの予定された終了時刻。 DateTime
@scheduledStartTime オブジェクトの予定された開始時刻。 DateTime
@status このオブジェクトのステータス。 文字列
@version オブジェクトが作成されたパイプラインのバージョン。 文字列
@waitingOn このオブジェクトが待機している依存関係のリストの説明。 参照オブジェクト ( "waitingOn":{"ref":"myRunnableObjectId"} など)

システムフィールド 説明 スロットタイプ
@error 形式が正しくないオブジェクトを説明するエラー。 文字列
@pipelineId このオブジェクトが属するパイプラインの ID。 文字列
@sphere ライフサイクル内のオブジェクトの場所です。コンポーネントオブジェクトにより、試行オブジェクトを実行するインスタンスオブジェクトが発生します。 文字列