4.3. Job Scheduler for Cloud(AWS)の使い方

4.3.1. Job Scheduler for Cloud(AWS/S3)の使い方

4.3.1.1. Job Scheduler for Cloud(AWS/S3)の機能

Job Scheduler for Cloud(AWS/S3)とは、Senju/DCのジョブスケジュール機能と連携し、AWS/S3上のファイルの取得、登録および削除を行なう機能です。

4.3.1.2. ポリシーの作成

AWS/S3連携機能を使用するため、 「表 4.1 AWS/S3連携機能に必要なアクセス権限」 に示すポリシーを作成して、ユーザーにアクセス権限を付与します。

表 4.1 AWS/S3連携機能に必要なアクセス権限

ジョブ

必要なアクセス権

AWS/S3連携ジョブ

s3:listBucket
s3:putObject
s3:getObject
s3:deleteObject

4.3.1.3. sj_aws.iniの設定

sj_aws.iniファイルは、AWSに関する情報の設定ファイルで、 Job Scheduler for Cloud(AWS/S3)ジョブはこのファイルを参照します。

設定方法については、 sj_setup_aws - AWS情報設定ファイル更新 - を参照して下さい。

sj_aws.iniに、 「表 4.2 sj_aws.iniの記述内容」 に示す内容を設定して下さい。

表 4.2 sj_aws.iniの記述内容

項目

省略

デフォルト

暗号化対象

説明

accessKey

AWS接続用のアクセスキーID

secretKey

AWS接続用のシークレットアクセスキー

bucket

×

AWS/S3のバケット

checkInterval

60

×

チェックインターバル(秒)[10-600]


  • 省略可能な項目を省略した場合は、Job Scheduler for Cloud(AWS/S3)ジョブのオプションで指定する必要があります。デフォルトが存在するものに関しては、省略してもデフォルト値で動作します。

  • 同じ項目を、sj_aws.iniとJob Scheduler for Cloud(AWS/S3)ジョブのオプションの両方で指定した場合は、Job Scheduler for Cloud(AWS/S3)ジョブのオプションで指定した値が有効になります。

  • 指定可能なAWSリージョン および EC2インスタンスタイプは、「4.8.5.1 Job Scheduler for Cloudの制限事項」を参照して下さい。

警告

Senju/DCジョブの起動コマンドには、文字数に制限があります。なるべく各項目は省略せずに、sj_aws.iniファイルに設定して下さい。

4.3.1.4. AWS/S3ファイル取得ジョブの利用方法

AWS/S3ファイル取得ジョブは、AWS/Elastic MapReduceジョブフロー実行ジョブやAWS Management Consoleなどによって登録、作成したファイルをAWS/S3上から取得します。

AWS/S3ファイル取得ジョブが起動されると、引数に指定された内容でファイルを取得し、結果を標準出力に出力します。

AWS/S3ファイル取得ジョブを起動する際に指定する引数には、以下に示す内容を指定して下さい。

sjPEX_CloudFunctions -m S3
        -get S3オブジェクトキー,ローカルパス
        [-ak アクセスキーID] [-sk シークレットアクセスキー] [ -bk S3バケット名]
        [-i チェックインターバル]

オプション

省略

デフォルト

長さ

説明

-get

不可

510

S3オブジェクトキーと対象データのローカルパスを’,’ で区切って指定

S3オブジェクトキー:AWS/S3上のURIのうち、s3://バケット名/を除外したファイル名までの値

-ak

256

AWS接続用のアクセスキーID

-sk

256

AWS接続用のシークレットアクセスキー

-bk

255

AWS/S3上のバケット

-i

60

4

チェックインターバル(秒) [10-600]


  • Senju/DCジョブの起動コマンドの最大文字数は2048文字です。起動コマンドが最大文字数を超える場合は、sj_aws.iniに設定して下さい。

  • 省略可能なオプションを省略した場合は、sj_aws.iniで指定した値が有効になります。

4.3.1.4.1. AWS/S3ファイル取得ジョブテンプレートの使い方

ジョブテンプレートとは、ジョブの起動コマンドシーケンスのみを持ち、パラメータ値が未決定であるエンティティです。ジョブテンプレートを用いることにより、ジョブの登録のたびにコマンドシーケンスを入力しなくても、必要なパラメータ値を入力するだけでジョブの作成が行えます。 Job Scheduler for CloudをSenju/DCのジョブスケジュール機能と連携するために、Job Scheduler for Cloudジョブを、Senju/DCのジョブの起動コマンドとして設定します。

AWS/S3ファイル取得ジョブテンプレートを使用し、ジョブの起動コマンドとして利用するには、千手ブラウザのツリービューで、<ドメイン>→“ジョブスケジュール”→“ジョブ”を選択し、ジョブの新規作成を行います。

ジョブの新規作成プロパティウィンドで[ジョブテンプレートを使用]チェックボックスをチェックし、[ジョブテンプレート入力]ボタンを押して下さい。

ジョブテンプレート入力ウィンドでAWS/S3ファイル取得ジョブテンプレートを選択し、各パラメータ値を設定して下さい。

../_images/003.png

図 4.8 AWS/S3ファイル取得ジョブテンプレートの使用

../_images/004.png

図 4.9 AWS/S3ファイル取得ジョブテンプレートの入力


表 4.3 AWS/S3ファイル取得ジョブテンプレートの入力

パラメータ

説明

S3URI

S3オブジェクトキーと対象データのローカルパスを’,’ で区切って指定

S3オブジェクトキー:AWS/S3上のURIのうち、s3://バケット名/を除外したファイル名までの値

AWS_AccessKey

AWS接続用のアクセスキーID

AWS_SecretKey

AWS接続用のシークレットアクセスキー

S3_Bucket

AWS/S3上のバケット

Interval[sec]

チェックインターバル(秒) [10-600]

4.3.1.4.2. AWS/S3ファイル取得ジョブの処理の流れ(通常時)

AWS/S3ファイル取得ジョブがSenju/DCのジョブスケジュールで1つのジョブとして起動されると、 「図 4.10 AWS/S3ファイル取得ジョブの処理の流れ」 および 「表 4.4 AWS/S3ファイル取得ジョブの処理の流れ」 に示す流れで動きます。

../_images/005.png

図 4.10 AWS/S3ファイル取得ジョブの処理の流れ


表 4.4 AWS/S3ファイル取得ジョブの処理の流れ

Senju/DC

ジョブの状態

AWS/S3ファイル取得

ジョブの処理内容

メッセージモニタの出力

起動待ち

起動前の状態

稼働中

起動

稼働中

引数に従い、AWS/S3上のファイル取得

正常終了

AWS/S3上のファイル取得に成功

!PEXC03

AWS/S3からのデータ取得に成功しました。

異常終了

AWS/S3上のファイル取得に失敗

!PEXC04

AWS/S3からのデータ取得に失敗しました。


  1. AWS/S3ファイル取得ジョブが起動されると、引数に指定された内容でファイルを取得処理を実行します。

  2. AWS/S3上のファイルを取得します。

  3. 取得が正しく行なわれると、データ取得に成功した旨のメッセージを出力し、Senju/DCジョブは正常終了します。

  4. 取得が何らかの理由で正しく行なわれないと、データ取得に失敗した旨のメッセージを出力し、Senju/DCジョブは異常終了します。

警告

データが正しく取得されたかは、引数に指定したローカルパス配下を確認して下さい。

4.3.1.5. AWS/S3ファイル登録ジョブの利用方法

AWS/S3ファイル登録ジョブは、ジョブの実行環境である該当ノード上に登録、作成したファイルをAWS/S3上へ登録します。

AWS/S3ファイル登録ジョブが起動されると、引数に指定された内容でファイルを登録し、結果を標準出力に出力します。

AWS/S3ファイル登録ジョブを起動する際に指定する引数には、以下に示す内容を指定して下さい。

sjPEX_CloudFunctions -m S3
        -put S3オブジェクトキー,ローカルパス
        [-ak アクセスキーID] [-sk シークレットアクセスキー] [ -bk S3バケット名]
        [-i チェックインターバル]

オプション

省略

デフォルト

長さ

説明

-put

不可

510

S3オブジェクトキーと登録するファイルのローカルパスを’,’ で区切って指定

S3オブジェクトキー:AWS/S3上のURIのうち、s3://バケット名/ を除外したファイル名までの値

-ak

256

AWS接続用のアクセスキーID

-sk

256

AWS接続用のシークレットアクセスキー

-bk

255

AWS/S3上のバケット

-i

60

4

チェックインターバル(秒) [10-600]


  • Senju/DCジョブの起動コマンドの最大文字数は2048文字です。起動コマンドが最大文字数を超える場合は、sj_aws.iniに設定して下さい。

  • 省略可能なオプションを省略した場合は、sj_aws.iniで指定した値が有効になります。

4.3.1.5.1. AWS/S3ファイル登録ジョブテンプレートの使い方

ジョブテンプレートとは、ジョブの起動コマンドシーケンスのみを持ち、パラメータ値が未決定であるエンティティです。ジョブテンプレートを用いることにより、ジョブの登録のたびにコマンドシーケンスを入力しなくても、必要なパラメータ値を入力するだけでジョブの作成が行えます。 Job Scheduler for CloudをSenju/DCのジョブスケジュール機能と連携するために、Job Scheduler for Cloudジョブを、Senju/DCのジョブの起動コマンドとして設定します。

AWS/S3ファイル登録ジョブテンプレートを使用し、ジョブの起動コマンドとして利用するには、千手ブラウザのツリービューで、<ドメイン>→“ジョブスケジュール”→“ジョブ”を選択し、ジョブの新規作成から行います。

ジョブの新規作成プロパティウィンドで[ジョブテンプレートを使用]チェックボックスをチェックし、[ジョブテンプレート入力]ボタンを押して下さい。

ジョブテンプレート入力ウィンドでAWS/S3ファイル登録ジョブテンプレートを選択し、各パラメータ値を設定して下さい。

../_images/006.png

図 4.11 AWS/S3ファイル登録ジョブテンプレートの使用


../_images/007.png

図 4.12 AWS/S3ファイル登録ジョブテンプレートの入力


表 4.5 AWS/S3ファイル登録ジョブテンプレートの入力

パラメータ

説明

S3URI

S3オブジェクトキーと登録するファイルのローカルパスを’,’ で区切って指定

S3オブジェクトキー:AWS/S3上のURIのうち、s3://バケット名/ を除外したファイル名までの値

AWS_AccessKey

AWS接続用のアクセスキーID

AWS_SecretKey

AWS接続用のシークレットアクセスキー

S3_Bucket

AWS/S3上のバケット

Interval[sec]

チェックインターバル(秒) [10-600]


4.3.1.5.2. AWS/S3ファイル登録ジョブの処理の流れ(通常時)

AWS/S3ファイル登録ジョブがSenju/DCのジョブスケジュールで1つのジョブとして起動されると、 「図 4.13 AWS/S3ファイル登録ジョブの処理の流れ」 および 「表 4.6 AWS/S3ファイル登録ジョブの処理の流れ」 に示す流れで動きます。

../_images/008.png

図 4.13 AWS/S3ファイル登録ジョブの処理の流れ


表 4.6 AWS/S3ファイル登録ジョブの処理の流れ

Senju/DC

ジョブの状態

AWS/S3ファイル登録

ジョブの処理内容

メッセージモニタの出力

起動待ち

起動前の状態

稼働中

起動

稼働中

引数に従い、AWS/S3上のファイル登録

稼働中

AWS/S3上のファイル登録状態を取得

正常終了

AWS/S3上のファイル登録に成功

!PEXC05

AWS/S3へのデータ登録に成功しました。

異常終了

AWS/S3上のファイル登録に失敗

!PEXC06

AWS/S3へのデータ登録に失敗しました。


  1. AWS/S3ファイル登録ジョブが起動されると、引数に指定された内容でファイル登録処理を実行します。

  2. AWS/S3上へファイルを登録します。

  3. 指定されたファイルがAWS/S3上へ登録されたか状態を取得します。

  4. 登録が正しく行なわれると、成功した旨のメッセージを出力し、Senju/DCジョブは正常終了します。

  5. 登録が何らかの理由で正しく行なわれないと、失敗した旨のメッセージを出力し、Senju/DCジョブは異常終了します。

4.3.1.6. AWS/S3ファイル削除ジョブの利用方法

AWS/S3ファイル削除ジョブは、AWS/Elastic MapReduceジョブフロー実行ジョブやAWS Management Consoleなどによって登録、作成したファイルをAWS/S3上から削除します。削除されたファイルの情報は一切残りませんので、本ジョブを実行する場合は細心の注意を払い行って下さい。

AWS/S3ファイル削除ジョブが起動されると、引数に指定された内容でファイルを削除し、結果を標準出力に出力します。

AWS/S3ファイル削除ジョブを起動する際に指定する引数には、以下に示す内容を指定して下さい。

sjPEX_CloudFunctions -m S3
        -del S3オブジェクトキー
        [-ak アクセスキーID] [-sk シークレットアクセスキー] [ -bk S3バケット名]
        [-i チェックインターバル]

オプション

省略

デフォルト

長さ

説明

-del

不可

510

S3オブジェクトキーを指定

S3オブジェクトキー:AWS/S3上のURIのうち、s3://バケット名/ を除外したファイル名までの値

-ak

256

AWS接続用のアクセスキーID

-sk

256

AWS接続用のシークレットアクセスキー

-bk

255

AWS/S3上のバケット

-i

60

4

チェックインターバル(秒) [10-600]


  • Senju/DCジョブの起動コマンドの最大文字数は2048文字です。起動コマンドが最大文字数を超える場合は、sj_aws.iniに設定して下さい。

  • 省略可能なオプションを省略した場合は、sj_aws.iniで指定した値が有効になります。

4.3.1.6.1. AWS/S3ファイル削除ジョブテンプレートの使い方

ジョブテンプレートとは、ジョブの起動コマンドシーケンスのみを持ち、パラメータ値が未決定であるエンティティです。ジョブテンプレートを用いることにより、ジョブの登録のたびにコマンドシーケンスを入力しなくても、必要なパラメータ値を入力するだけでジョブの作成が行えます。 Job Scheduler for CloudをSenju/DCのジョブスケジュール機能と連携するために、Job Scheduler for Cloudジョブを、Senju/DCのジョブの起動コマンドとして設定します。

AWS/S3ファイル削除ジョブテンプレートを使用し、ジョブの起動コマンドとして利用するには、千手ブラウザのツリービューで、<ドメイン>→“ジョブスケジュール”→“ジョブ”を選択し、ジョブの新規作成から行います。

ジョブの新規作成プロパティウィンドで[ジョブテンプレートを使用]チェックボックスをチェックし、[ジョブテンプレート入力]ボタンを押して下さい。

ジョブテンプレート入力ウィンドでAWS/S3ファイル削除ジョブテンプレートを選択し、各パラメータ値を設定して下さい。

../_images/009.png

図 4.14 AWS/S3ファイル削除ジョブテンプレートの使用


../_images/010.png

図 4.15 AWS/S3ファイル削除ジョブテンプレートの入力


表 4.7 AWS/S3ファイル削除ジョブテンプレートの入力

パラメータ

説明

S3URI

S3オブジェクトキーを指定

S3オブジェクトキー:AWS/S3上のURIのうち、s3://バケット名/ を除外したファイル名までの値

AWS_AccessKey

AWS接続用のアクセスキーID

AWS_SecretKey

AWS接続用のシークレットアクセスキー

S3_Bucket

AWS/S3上のバケット

Interval[sec]

チェックインターバル(秒) [10-600]

4.3.1.6.2. AWS/S3ファイル削除ジョブの処理の流れ(通常時)

AWS/S3ファイル削除ジョブがSenju/DCのジョブスケジュールで1つのジョブとして起動されると、 「図 4.16 AWS/S3ファイル削除ジョブの処理の流れ」 および 「表 4.8 AWS/S3ファイル削除ジョブの処理の流れ」 に示す流れで動きます。

../_images/011.png

図 4.16 AWS/S3ファイル削除ジョブの処理の流れ


表 4.8 AWS/S3ファイル削除ジョブの処理の流れ

Senju/DC

ジョブの状態

AWS/S3ファイル削除

ジョブの処理内容

メッセージモニタの出力

起動待ち

起動前の状態

稼働中

起動

稼働中

引数に従い、AWS/S3上のファイル削除

稼働中

AWS/S3上のファイル削除

状態を取得

正常終了

AWS/S3上のファイル削除に成功

!PEXC07

AWS/S3からのデータ削除に成功しました。

異常終了

AWS/S3上のファイル削除に失敗

!PEXC08

AWS/S3からのデータ削除に失敗しました。


  1. AWS/S3ファイル削除ジョブが起動されると、引数に指定された内容でファイル削除処理を実行します。

  2. AWS/S3上のファイルを削除します。

  3. 指定されたファイルがAWS/S3上から削除されたか状態を取得します。

  4. 削除が正しく行なわれると、成功した旨のメッセージを出力し、Senju/DCジョブは正常終了します。

  5. 削除が何らかの理由で正しく行なわれないと、失敗した旨のメッセージを出力し、Senju/DCジョブは異常終了します。

4.3.2. Job Scheduler for Cloud(AWS S3オブジェクト待ちジョブ)の使い方

4.3.2.1. Job Scheduler for Cloud(AWS S3オブジェクト待ちジョブ)の機能

Job Scheduler for Cloud(AWS S3オブジェクト待ちジョブ)とは、Senju/DCのジョブスケジュール機能と連携し、AWS S3オブジェクトの存在確認を実行する機能です。

4.3.2.2. ポリシーの作成

AWS S3オブジェクト待ちジョブ機能を使用するため、 「表 4.9 AWS S3オブジェクト待ちジョブ機能に必要なアクセス権限」 に示すポリシーを作成して、ユーザーにアクセス権限を付与します。

表 4.9 AWS S3オブジェクト待ちジョブ機能に必要なアクセス権限

ジョブ

必要なアクセス権

AWS S3オブジェクト待ちジョブ

s3:ListBucket
s3:ListAllMyBuckets
s3express:ListAllMyDirectoryBuckets
s3express:CreateSession

4.3.2.3. sj_aws.iniの設定

sj_aws.iniファイルは、AWSに関する情報の設定ファイルで、 Job Scheduler for Cloud(AWS S3オブジェクト待ち)ジョブはこのファイルを参照します。

設定方法については、 sj_setup_aws - AWS情報設定ファイル更新 - を参照して下さい。

sj_aws.iniに、 「表 4.10 sj_aws.iniの記述内容」 に示す内容を設定して下さい。

表 4.10 sj_aws.iniの記述内容

項目

省略

デフォルト

暗号化対象

説明

accessKey

AWS接続用のアクセスキーID

secretKey

AWS接続用のシークレットアクセスキー

interval

30

×

取得間隔(秒)

maxWaitTime

無制限

×

最大待ち時間(秒)


  • 省略可能な項目を省略した場合は、Job Scheduler for Cloud(AWS S3オブジェクト待ち)ジョブのオプションで指定する必要があります。デフォルトが存在するものに関しては、省略してもデフォルト値で動作します。

  • 同じ項目を、sj_aws.iniとJob Scheduler for Cloud(AWS S3オブジェクト待ち)ジョブのオプションの両方で指定した場合は、Job Scheduler for Cloud(AWS S3オブジェクト待ち)ジョブのオプションで指定した値が有効になります。

警告

Senju/DCジョブの起動コマンドには、文字数に制限があります。なるべく各項目は省略せずに、sj_aws.iniファイルに設定して下さい。

4.3.2.4. AWS S3オブジェクト待ちジョブの利用方法

AWS S3オブジェクト待ちジョブは、指定された取得間隔でAWS S3オブジェクトの存在確認が実行され、最大待ち時間まで実行を繰り返します。

AWS S3オブジェクト待ちジョブが起動されると、引数に指定された内容で実行し、実行結果を標準出力に出力します。

AWS S3オブジェクト待ちジョブを起動する際に指定する引数には、以下に示す内容を指定して下さい。

sjPEX_CloudFunctions -m AWF
        -awfr リージョン -bt バケット種類 -on オブジェクト名
        [-ak AWSアクセスキー] [-sk AWSシークレットキー]
        [-p プロファイル] [-ar ロールARN] [-ei 外部ID]
        [-gpbn 汎用バケット名] [-dbn ディレクトリバケット名]

オプション

省略

デフォルト

長さ

説明

-awfr

不可

32

AWSリージョン

-bt

不可

256

バケット種類

-on

不可

256

オブジェクト名

-ak

256

AWSアクセスキー

-sk

256

AAWSシークレットキー

-p

255

プロファイル名

-ar

1024

ロールARN

-ei

128

AWS外部ID

-gpbn

256

汎用バケット名

-dbn

256

ディレクトリバケット名


  • Senju/DCジョブの起動コマンドの最大文字数は2048文字です。起動コマンドが最大文字数を超える場合は、sj_aws.iniに設定して下さい。

  • アクセスキーID、シークレットアクセスキーを省略した場合は、sj_aws.iniで指定した値が有効になります。

  • AWS S3オブジェクト待ちジョブ実行が同時に20個を超える場合は、プローブノードの負荷が上昇する可能性がありますのでご注意下さい。

4.3.2.4.1. AWS S3オブジェクト待ちジョブテンプレートの使い方

ジョブテンプレートとは、ジョブの起動コマンドシーケンスのみを持ち、パラメータ値が未決定であるエンティティです。ジョブテンプレートを用いることにより、ジョブの登録のたびにコマンドシーケンスを入力しなくても、必要なパラメータ値を入力するだけでジョブの作成が行えます。 Job Scheduler for CloudをSenju/DCのジョブスケジュール機能と連携するために、Job Scheduler for Cloudジョブを、Senju/DCのジョブの起動コマンドとして設定します。

AWS S3オブジェクト待ちジョブテンプレートを使用し、ジョブの起動コマンドとして利用するには、千手ブラウザのツリービューで、<ドメイン>→“ジョブスケジュール”→“ジョブ”を選択し、ジョブの新規作成を行います。

ジョブの新規作成プロパティウィンドで[ジョブテンプレートを使用]チェックボックスをチェックし、[ジョブテンプレート入力]ボタンを押して下さい。

ジョブテンプレート入力ウィンドでAWS S3オブジェクト待ちジョブテンプレートを選択し、各パラメータ値を設定して下さい。

../_images/053.png

図 4.17 AWS S3オブジェクト待ちジョブテンプレートの使用

../_images/054.png

図 4.18 AAWS S3オブジェクト待ちジョブテンプレートの入力


表 4.11 AWS S3オブジェクト待ちジョブテンプレートの入力

パラメータ

説明

AWSアクセスキー

AWS接続用のアクセスキーIDを指定します。 sj_aws.iniで指定している場合は、省略可能です。

AWSシークレットキー

AWS接続用のシークレットアクセスキーを指定します。 sj_aws.iniで指定している場合は、省略可能です。

プロファイル名

ロール認証に使用されるプロファイルを指定します。省略可能です。

ロールARN

ロール認証に使用されるロールARNを指定します。省略可能です。

AWS外部ID

ロール認証に使用される外部IDを指定します。省略可能です。

AWSリージョン

接続先AWSのリージョンを指定します。省略不可です。

バケット種類

バケットの種類(汎用バケットはgpb、ディレクトリバケットはdb)を指定します。省略不可です。

汎用バケット名

汎用バケット名を指定します。バケット種類がgpbの場合は省略不可、バケット種類がdbの場合は指定しても、無視されます。

ディレクトリバケット名

ディレクトリバケット名を指定します。バケットモードはdbの場合は省略不可、バケット種類がgpbの場合は指定しても、無視されます。

オブジェクト名

オブジェクト名を指定します。省略不可です。

4.3.2.4.2. AWS S3オブジェクト待ちジョブの処理の流れ(通常時)

AWS S3オブジェクト待ちジョブがSenju/DCのジョブスケジュールで1つのジョブとして起動されると、 「図 4.19 AWS S3オブジェクト待ちジョブの処理の流れ」 および 「表 4.12 AWS S3オブジェクト待ちジョブの処理の流れ」 に示す流れで動きます。

../_images/055.png

図 4.19 AWS S3オブジェクト待ちジョブの処理の流れ


表 4.12 AWS S3オブジェクト待ちジョブの処理の流れ

Senju/DC

ジョブの状態

AWS S3オブジェクト待ちジョブ実行

ジョブの処理内容

メッセージモニタの出力

起動待ち

起動前の状態

稼働中

起動

稼働中

引数に従い、AWS S3オブジェクト待ちジョブを実行

正常終了

AWS S3オブジェクト待ちジョブの実行に成功

!PEXC27

AWS S3オブジェクト待ちのジョブ実行に成功しました。

異常終了

AWS S3オブジェクト待ちジョブの実行に失敗

!PEXC28

AWS S3オブジェクト待ちジョブの実行に失敗しました。


  1. AWS S3オブジェクト待ちジョブが起動されると、引数に指定された内容でブジェクトの存在確認を実行します。

  2. AWS S3オブジェクト待ちジョブが正常終了すると、実行に成功した旨のメッセージを出力し、Senju/DCジョブは正常終了します。

  3. AWS S3オブジェクト待ちジョブが何らかの理由で異常終了すると、実行に失敗した旨のメッセージを出力し、Senju/DCジョブは異常終了します。

4.3.2.4.3. AWS S3オブジェクト待ちジョブの処理の流れ(強制停止時)

AWS S3オブジェクト待ちジョブは、他のSenju/DCのジョブと同じく強制停止させることができます。

Senju/DCのジョブスケジュールより、AWS S3オブジェクト待ちジョブを強制停止し、オブジェクトの存在確認も停止となります。

Senju/DCのジョブスケジュールでは、強制停止されたジョブの状態は異常終了となります。

4.3.3. Job Scheduler for Cloud(AWS/Elastic MapReduce)の使い方

4.3.3.1. Job Scheduler for Cloud(AWS/Elastic MapReduce)の機能

Job Scheduler for Cloud(AWS/Elastic MapReduce)とは、Senju/DCのジョブスケジュール機能と連携し、AWS/Elastic MapReduceのジョブフローの実行と、開始から終了まで監視を行なう機能です。

4.3.3.2. AWS/Elastic MapReduceジョブフロー実行の流れ

Job Scheduler for CloudでAWS/Elastic MapReduceのジョブフローを実行する際の流れを次に示します。

AWSに関する情報の設定を行い、Job Scheduler for CloudジョブをSenju/DCのジョブに登録して、Elastic MapReduceジョブフローの入力ファイルの登録、ジョブフローの実行、出力ファイルの取得を行います。

../_images/002.png

図 4.20 AWS/Elastic MapReduceジョブフロー実行の流れ

4.3.3.2.1. 運用計画・準備段階

  • AWS/S3バケットの作成 [必須作業]

    Job Scheduler for Cloudジョブを実行するために、AWS/S3バケットを1つ以上作成します。 作成はAWS Management Consoleなどから行なって下さい。

  • Elastic MapReduce用jarファイルの登録 [必須作業]
    Job Scheduler for Cloud(Elastic MapReduce)で作成したクラスター内で実行するカスタムjarファイルを登録します。

    jarファイルは、AWS/S3ファイル登録ジョブやAWS Management ConsoleなどでAWS/S3上に登録して下さい。

参考

AWS/Elastic MapReduceで使用可能な jarファイルはAWS/Elastic MapReduceの仕様に依存します。詳細については、Amazon Web Servicesサイトよりご確認下さい。

  • sj_aws.iniの設定 [必須作業]
    Job Scheduler for Cloudジョブを実行するために、AWSに関する情報を設定します。

    (「4.3.1.3 sj_aws.iniの設定 (AWS/S3)」 「4.3.3.4 sj_aws.iniの設定 (AWS/Elastic MapReduce)」 参照)

  • 動作環境の作成 [必須作業]
    Senju/DCのジョブスケジュールでJob Scheduler for Cloudジョブを実行するために、動作環境を作成します。
    動作環境には、環境変数を設定することができます。

    (「4.3.3.5.5 動作環境の環境変数の利用法」参照)

  • ジョブスケジュールの設定 [必須作業]

    Senju/DCのジョブスケジュールでJob Scheduler for Cloudジョブを実行するために、以下の設定を行います。

  • ジョブおよびネットの作成

  • システムの作成とネットの登録

参考

ジョブスケジュール設定の詳細は 「ユーザーズガイド」 を参照して下さい。

4.3.3.2.2. 運用

  • ジョブスケジュールのスケジューリング

    Senju/DCのジョブスケジュールを実行するために、以下の設定を行います。

    • フレーム登録によるスケジューリング

    • フレームの投入および日付変更

参考

スケジューリング設定の詳細は 「ユーザーズガイド」 を参照して下さい。

4.3.3.3. ポリシーの作成

AWS/Elastic MapReduce連携機能を使用するため、 「表 4.13 AWS/Elastic MapReduce連携機能に必要なアクセス権限」 に示すポリシーを作成して、ユーザーにアクセス権限を付与します。

表 4.13 AWS/Elastic MapReduce連携機能に必要なアクセス権限

ジョブ

必要なアクセス権

AWS/Elastic MapReduce連携ジョブ

iam:PassRole
elasticmapreduce:ListSteps
elasticmapreduce:DescribeCluster
elasticmapreduce:AddJobFlowSteps
elasticmapreduce:RunJobFlow
elasticmapreduce:TerminateJobFlows

4.3.3.4. sj_aws.iniの設定

sj_aws.iniファイルは、AWSに関する情報の設定ファイルで、Job Scheduler for Cloud(AWS/Elastic MapReduce)ジョブはこのファイルを参照します。

設定方法については、 sj_setup_aws - AWS情報設定ファイル更新 - を参照して下さい。

sj_aws.iniに、 「表 4.14 sj_aws.iniの記述内容」 に示す内容を設定して下さい。

表 4.14 sj_aws.iniの記述内容

項目

省略

デフォルト

暗号化対象

説明

accessKey

AWS接続用のアクセスキーID

secretKey

AWS接続用のシークレットアクセスキー

region

×

AWSの接続先リージョン

instanceCount

5

×

AWS/EC2インスタンス数

masterInstanceType

m1.small

×

AWS/EC2インスタンスタイプ(マスター)

slaveInstanceType

m1.small

×

AWS/EC2インスタンスタイプ(スレーブ)

mapreduceLogUri

×

AWS/Elastic MapReduceジョブフローのログ出力先URI

checkInterval

60

×

チェックインターバル(秒) [10-600]

hadoopVersion

1.0.3

×

hadoopバージョン


  • 省略可能な項目を省略した場合は、Job Scheduler for Cloud(AWS/Elastic MapReduce)ジョブのオプションで指定する必要があります。デフォルトが存在するものに関しては、省略してもデフォルト値で動作します。

  • 同じ項目を、sj_aws.iniとJob Scheduler for Cloud(AWS/Elastic MapReduce)ジョブのオプションの両方で指定した場合は、Job Scheduler for Cloud(AWS/Elastic MapReduce)ジョブのオプションで指定した値が有効になります。

  • 指定可能なAWSリージョン および EC2インスタンスタイプは、「4.8.5.1 Job Scheduler for Cloudの制限事項」を参照して下さい。

  • Amazon EMR の AMI バージョン 2.x および 3.x を対象にしているため、指定可能なhadoopバージョンは「2.4.0」、「2.2.0」、および「1.0.3」です。

警告

Senju/DCジョブの起動コマンドには、文字数に制限があります。なるべく各項目は省略せずに、sj_aws.iniファイルに設定して下さい。

4.3.3.5. AWS/Elastic MapReduce ジョブフロー実行ジョブの利用方法

AWS/Elastic MapReduceジョブフロー実行ジョブは、AWS/Elastic MapReduceのジョブフローを実行し、開始から終了までの監視を行います。

AWS/Elastic MapReduceジョブフロー実行ジョブが起動されると、引数に指定された内容でジョブフローを実行し、結果を標準出力に出力します。

AWS/Elastic MapReduceジョブフロー実行ジョブを起動する際に指定する引数には、以下に示す内容を指定して下さい。

sjPEX_CloudFunctions -m MR
        -juri S3URI
        [-ak アクセスキーID] [-sk シークレットアクセスキー] [ -reg AWSのリージョン]
        [-inc EC2インスタンス数] [-mit EC2マスタインスタンスタイプ]
        [-sit EC2スレーブインスタンスタイプ] [-luri S3URI]
        [-iuri S3URI] [-ouri S3URI] [-mc /Elastic MapReduceメインクラス]
        [-args /Elastic MapReduceパラメータ]
        [-i チェックインターバル]

オプション

省略

デフォルト

長さ

説明

-juri

不可

1024

JarファイルのURI(AWS/S3上のURI)

-ak

256

AWS接続用のアクセスキーID

-sk

256

AWS接続用のシークレットアクセスキー

-reg

32

AWSの接続先リージョン

-inc

5

3

AWS/EC2インスタンス数

-mit

m1.small

256

AWS/EC2インスタンスタイプ(マスター)

-sit

m1.small

256

AWS/EC2インスタンスタイプ(スレーブ)

-luri

1024

AWS/Elastic MapReduceジョブフローのログ出力先URI

-iuri

1024

AWS/Elastic MapReduceのインプットURI(AWS/S3上のURI)

-ouri

1024

AWS/Elastic MapReduceのアウトプットURI(AWS/S3上のURI)

-mc

128

AWS/Elastic MapReduceのメインクラス

-args

126

AWS/Elastic MapReduceのパラメータ

-i

60

4

チェックインターバル(秒) [10-600]


  • Senju/DCジョブの起動コマンドの最大文字数は2048文字です。起動コマンドが最大文字数を超える場合は、sj_aws.iniまたは動作環境に設定して下さい。(動作環境については、「4.3.3.5.5 動作環境の環境変数の利用法」を参照して下さい。)

  • 省略可能なオプションを省略した場合は、sj_aws.iniで指定した値が有効になります。

  • 指定可能なAWSリージョン および EC2インスタンスタイプは、「4.8.5.1 Job Scheduler for Cloudの制限事項」を参照して下さい。

注釈

AWS/Elastic MapReduceのインプットURI、アウトプットURI、メインクラス、パラメータは、指定するjarファイルの仕様に依存します。

4.3.3.5.1. ジョブテンプレートの追加手順

AWS/Elastic MapReduce連携機能を利用する場合、Senju/DCシステムが提供する運用コマンドsjPEX_editTmpl(ジョブテンプレートの変更/追加/削除)を実行し、最初にジョブテンプレートの追加を行って下さい。 なお、既に登録されている場合、新たに追加する必要はありません。

以下のコマンドを実行すると、ジョブテンプレートにAWS/Elastic MapReduceジョブフロー実行ジョブが追加されます。

コマンド実行は、千手稼働アカウントにてログインして行って下さい。

実行コマンド

% sjPEX_editTmpl -iAWS/EMR -nAWS/EMR_JobFlow -x"sjPEX_CloudFunctions -m MR" -p"-juri @EMRJarURI@ -ak @@AWS_AccessKey@@ -sk @@AWS_SecretKey@@ -reg @@AWS_Region@@ -inc @@EC2_Instance@@ -mit @@EC2_MasterInstance@@ -sit @@EC2_SlaveInstance@@ -luri @@EMR_LogURI@@ -iuri @@EMR_InputURI@@ -ouri @@EMR_OutputURI@@ -mc @@EMR_MainClass@@ -args @@EMR_Parameter@@ -i @@Interval[sec]@@" -c"AWS/EMR_JobFlow JOB"

表 4.15 sjPEX_editTmplコマンドオプションの設定内容

オプション

テンプレートID

AWS/EMR

テンプレート名称

AWS/EMR_JobFlow

コマンド

sjPEX_CloudFunctions -m MR

パラメータ

-juri @EMRJarURI@ -ak @@AWS_AccessKey@@ -sk @@AWS_SecretKey@@ -reg @@AWS_Region@@ -inc @@EC2_Instance@@ -mit @@EC2_MasterInstance@@ -sit @@EC2_SlaveInstance@@ -luri @@EMR_LogURI@@ -iuri @@EMR_InputURI@@ -ouri @@EMR_OutputURI@@ -mc @@EMR_MainClass@@ -args @@EMR_Parameter@@ -i @@Interval[sec]@@

説明

AWS/EMR_JobFlow JOB

警告

実行後は、千手ブラウザのツリービューで、<ドメイン>→“ジョブスケジュール”→“ジョブテンプレート”を選択し、AWS/Elastic MapReduce ジョブフロー実行ジョブテンプレートが追加されていることを確認して下さい。

参考

sjPEX_editTmplコマンドの詳細は 「開発者ガイド」 を参照して下さい。


4.3.3.5.2. AWS/Elastic MapReduceジョブフロー実行ジョブテンプレートの使い方

ジョブテンプレートとは、ジョブの起動コマンドシーケンスのみを持ち、パラメータ値が未決定であるエンティティです。ジョブテンプレートを用いることにより、ジョブの登録のたびにコマンドシーケンスを入力しなくても、必要なパラメータ値を入力するだけでジョブの作成が行えます。 Job Scheduler for CloudをSenju/DCのジョブスケジュール機能と連携するために、Job Scheduler for Cloudジョブを、Senju/DCのジョブの起動コマンドとして設定します。

AWS/Elastic MapReduceジョブフロー実行ジョブテンプレートを使用し、ジョブの起動コマンドとして利用するには、千手ブラウザのツリービューで、<ドメイン>→“ジョブスケジュール”→“ジョブ”を選択し、ジョブの新規作成を行います。

ジョブの新規作成プロパティウィンドで[ジョブテンプレートを使用]チェックボックスをチェックし、[ジョブテンプレート入力]ボタンを押して下さい。

ジョブテンプレート入力ウィンドでAWS/Elastic MapReduceジョブフロー実行ジョブテンプレートを選択し、各パラメータ値を設定して下さい。

../_images/012.png

図 4.21 AWS/Elastic MapReduceジョブフロー実行ジョブテンプレートの使用


../_images/013.png

図 4.22 AWS/Elastic MapReduceジョブフロー実行ジョブテンプレートの入力


表 4.16 AWS/S3ファイル削除ジョブテンプレートの入力

パラメータ

説明

EMRJarURI

JarファイルのURI(AWS/S3上のURI)

AWS_AccessKey

AWS接続用のアクセスキーID

AWS_SecretKey

AWS接続用のシークレットアクセスキー

AWS_Region

AWSの接続先リージョン

EC2_Instance

AWS/EC2インスタンス数

EC2_MasterInstance

AWS/EC2インスタンスタイプ(マスター)

EC2_SlaveInstance

AWS/EC2インスタンスタイプ(スレーブ)

EMR_LogURI

AWS/Elastic MapReduceジョブフローのログ出力先URI

EMR_InputURI

AWS/Elastic MapReduceのインプットURI(AWS/S3上のURI)

EMR_OutputURI

AWS/Elastic MapReduceのアウトプットURI(AWS/S3上のURI)

EMR_MainClass

AWS/Elastic MapReduceのメインクラス

EMR_Parameter

AWS/Elastic MapReduceのパラメータ

Interval[sec]

チェックインターバル(秒) [10-600]

4.3.3.5.3. AWS/Elastic MapReduce ジョブフロー実行ジョブの流れ(通常時)

AWS/Elastic MapReduce ジョブフロー実行ジョブがSenju/DCのジョブスケジュールで1つのジョブとして起動されると、 「図 4.23 AWS/Elastic MapReduce ジョブフロー実行ジョブの処理の流れ」 および 「表 4.17 AWS/Elastic MapReduce ジョブフロー実行ジョブの処理の流れ」 に示す流れで動きます。

../_images/014.png

図 4.23 AWS/Elastic MapReduce ジョブフロー実行ジョブの処理の流れ


表 4.17 AWS/Elastic MapReduce ジョブフロー実行ジョブの処理の流れ

Senju/DC

ジョブの状態

AWS/Elastic MapReduce

ジョブフロー実行ジョブの処理内容

メッセージモニタの出力

起動待ち

起動前の状態

稼働中

起動

稼働中

引数に従い、AWS/Elastic MapReduceジョブフローを登録

稼働中

登録したAWS/Elastic MapReduceジョブフローの状態を取得

正常終了

登録したAWS/Elastic MapReduceジョブフローの実行に成功

!PEXC09

AWS/MRジョブフローの実行に成功しました。

異常終了

登録したAWS/Elastic MapReduceジョブフローの実行に失敗

!PEXC10

AWS/MRジョブフローの実行に失敗しました。


  1. AWS/Elastic MapReduce ジョブフロー実行ジョブが起動されると、引数に指定された内容でAWS/Elastic MapReduce ジョブフローを登録します。

  2. 登録したAWS/Elastic MapReduceジョブフローを起動します。

  3. 起動したAWS/Elastic MapReduceジョブフローの状態を取得します。

  4. AWS/Elastic MapReduceジョブフローが正常終了すると、実行に成功した旨のメッセージを出力し、Senju/DCジョブは正常終了します。

  5. AWS/Elastic MapReduceジョブフローが何らかの理由で異常終了すると、実行に失敗した旨のメッセージを出力し、Senju/DCジョブは異常終了します。

    (異常終了時の復旧手順については「4.3.3.6 AWS/Elastic MapReduceジョブフロー異常終了時の復旧手順」を参照して下さい。)

4.3.3.5.4. AWS/Elastic MapReduce ジョブフロー実行ジョブの流れ(強制停止時)

AWS/Elastic MapReduce ジョブフロー実行ジョブは、他のSenju/DCのジョブと同じく強制停止させることができます。AWS/Elastic MapReduce ジョブフロー実行ジョブに対し、Senju/DCのジョブスケジュールより強制停止が行なわれると、 「図 4.24 AWS/Elastic MapReduce ジョブフロー実行ジョブの強制停止の流れ」 に示す流れで動きます。

../_images/015.png

図 4.24 AWS/Elastic MapReduce ジョブフロー実行ジョブの強制停止の流れ


  1. Senju/DC より、AWS/Elastic MapReduce ジョブフロー実行ジョブに強制停止をすると、AWS/Elastic MapReduceに対し、ジョブフローを中止するように依頼します。

    この段階では、AWS/Elastic MapReduce ジョブフローはまだ終了していませんが、Senju/DCのジョブスケジュールでは、ジョブの状態は異常終了となります。

4.3.3.5.5. 動作環境の環境変数の利用法

AWS/Elastic MapReduceジョブフロー実行ジョブを実行する際、該当ノードの動作環境には、以下に示す環境変数を使用できます。

環境変数に設定した値は、SJ_AWS_ARG01からSJ_AWS_ARG10までを順につなげた形で、AWS/Elastic MapRedue上で稼働するジョブフローの引数として渡されます。

環境変数

長さ

説明

SJ_AWS_ARG01

126

AWS/Elastic MapReduceのパラメータ

SJ_AWS_ARG02

126

AWS/Elastic MapReduceのパラメータ

SJ_AWS_ARG03

126

AWS/Elastic MapReduceのパラメータ

SJ_AWS_ARG04

126

AWS/Elastic MapReduceのパラメータ

SJ_AWS_ARG05

126

AWS/Elastic MapReduceのパラメータ

SJ_AWS_ARG06

126

AWS/Elastic MapReduceのパラメータ

SJ_AWS_ARG07

126

AWS/Elastic MapReduceのパラメータ

SJ_AWS_ARG08

126

AWS/Elastic MapReduceのパラメータ

SJ_AWS_ARG09

126

AWS/Elastic MapReduceのパラメータ

SJ_AWS_ARG10

126

AWS/Elastic MapReduceのパラメータ


1.上記の環境変数にはAWS/Elastic MapReduceのパラメータを一つずつ設定して下さい。

2.上記の環境変数の値には、以下の環境変数が使用できます。

・ SENJUHOME     :       千手ホームディレクトリ
・ SJ_PEX_DATE   :       Senju/DCジョブの運用日付
・ SJ_PEX_FRAME  :       Senju/DCジョブの所属するフレーム名
・ SJ_PEX_NET    :       Senju/DCジョブの上位ネット名
・ SJ_PEX_JOB    :       Senju/DCジョブのジョブ名

注釈

環境変数に設定するパラメータは、それぞれ126文字以内で設定して下さい。

4.3.3.6. AWS/Elastic MapReduceジョブフロー異常終了時の復旧手順

AWS/Elastic MapReduceジョブが異常終了した場合(「PEXC10」メッセージが出力された場合)のSenju/DCのジョブスケジュールの復旧手順を説明します。

  • 手順1:ジョブフローIDの確認

    AWS/Elastic MapReduceジョブのジョブログファイルを参照し、ジョブフローIDを確認します。ジョブフローID は、ジョブログのレコードの5カラム目に出力されます。

  • 手順2:AWS (Elastic MapReduce)のジョブフローを停止

    WEBブラウザからAWS Management Consoleを開き「手順1」で取得したジョブフローIDに該当するジョブフローを停止します。

    AWS/Elastic MapReduceジョブが異常終了となった状況によっては、ジョブフローIDが出力されない場合があります。

  • 手順3:該当ジョブをスキップ指定

    千手ブラウザのジョブモニタから該当ジョブに対しスキップ指定を行います。

  • 手順4:再ラン

    千手ブラウザのジョブモニタから該当ジョブに対し再ランを行います。上記手順を実行することにより、該当のジョブがスキップ終了となり後続のジョブが稼働します。

参考

! AWS/Elastic MapReduceジョブのジョブログの詳細は「4.8.3.3 Job Scheduler for Cloud(AWS/Elastic MapReduce)のジョブログファイル」を参照して下さい。

警告

AWS Management Consoleの使用方法は、Amazon Web Servicesサイトよりご確認下さい。

4.3.4. Job Scheduler for Cloud(AWS/Lambda Function)の使い方

4.3.4.1. Job Scheduler for Cloud(AWS/Lambda Function)の機能

Job Scheduler for Cloud(AWS/Lambda Function)とは、Senju/DCのジョブスケジュール機能と連携し、AWS/Lambda Functionを実行する機能です。

アクセスキーを利用した実行方法と、AssumeRoleを利用した実行方法が選択可能です。

4.3.4.1.1. アクセスキーを利用した実行

4.3.4.1.1.1. ポリシーの作成

AWS/Lambda Function連携機能を使用するため、 「表 4.18 AWS/Lambda Function連携機能に必要なアクセス権限」 に示すポリシーを作成して、ユーザーにアクセス権限を付与します。

表 4.18 AWS/Lambda Function連携機能に必要なアクセス権限

ジョブ

必要なアクセス権

AWS/Lambda Function連携ジョブ

lambda:InvokeFunction

4.3.4.1.1.2. sj_aws.iniの設定

sj_aws.iniファイルは、AWSに関する情報の設定ファイルで、 Job Scheduler for Cloud(AWS/Lambda Function)ジョブはこのファイルを参照します。

設定方法については、 sj_setup_aws - AWS情報設定ファイル更新 - を参照して下さい。

sj_aws.iniに、 「表 4.19 sj_aws.iniの記述内容」 に示す内容を設定して下さい。

表 4.19 sj_aws.iniの記述内容

項目

省略

デフォルト

暗号化対象

説明

accessKey

AWS接続用のアクセスキーID

secretKey

AWS接続用のシークレットアクセスキー


  • 省略可能な項目を省略した場合は、Job Scheduler for Cloud(AWS/Lambda Function)ジョブのオプションで指定する必要があります。デフォルトが存在するものに関しては、省略してもデフォルト値で動作します。

  • 同じ項目を、sj_aws.iniとJob Scheduler for Cloud(AWS/Lambda Function)ジョブのオプションの両方で指定した場合は、Job Scheduler for Cloud(AWS/Lambda Function)ジョブのオプションで指定した値が有効になります。

警告

Senju/DCジョブの起動コマンドには、文字数に制限があります。なるべく各項目は省略せずに、sj_aws.iniファイルに設定して下さい。

4.3.4.1.2. AssumeRoleを利用した実行

4.3.4.1.2.1. プロファイルの設定

IAMロールを設定したEC2インスタンス上の千手エージェント(プローブ)でAWS/Lambda Functionを実行する場合、プロファイルを指定することで、AssumeRoleを利用したAWS/Lambda Functionの実行ができます。この設定を行うと、複数のアカウントに対してAWS/Lambda Functionを実行する際の設定を簡素化する事ができます。

../_images/assumerole.png
プロファイルを設定するには以下の手順が必要です。
4.3.4.1.2.2. AWS/Lambda FunctionアカウントでのIAMロールの作成
AWS/Lambda Functionアカウントで、AWSマネジメントコンソールより次のようなIAMロールの作成を行って下さい。
4.3.4.1.2.3. インスタンスに設定されたIAMロールへの権限付与

AWS/Lambda FunctionのIAMロール( AWS/Lambda FunctionアカウントでのIAMロールの作成 で作成したもの) へAssumeRoleができるように、AWS/Lambda Functionを実行するEC2インスタンスに設定されたIAMロールに、AWSマネジメントコンソールより以下に示すアクセス権限を付与して下さい。

表 4.20 IAMロールに必要なアクセス権限

項目

必要なアクセス権

IAMロール

sts:AssumeRole

4.3.4.1.2.4. プロファイル作成コマンドの登録

プロファイルの作成・編集を行うためのプロファイル作成コマンドを、千手ブラウザからユーザーコマンドに登録します。作業については、Cloud Monitoringプロファイル作成コマンドの登録 を参照して下さい。

4.3.4.1.2.5. プロファイルの作成

プロファイル作成コマンドの登録 」で登録したプロファイル作成コマンドを使って、プロファイルを作成します。作業については、Cloud Monitoringプロファイルの作成 を参照して下さい。

4.3.4.1.2.6. sjAwsSetProfile -プロファイル作成コマンド-

プロファイル作成コマンドの利用方法については、Cloud MonitoringsjAwsSetProfile -AWS監視プロファイル作成コマンド- を参照して下さい。

4.3.4.2. AWS/Lambda Function連携ジョブの利用方法

AWS/Lambda Function連携ジョブは、AWS Management Consoleなどによって作成したAWS/Lambda Functionを実行します。

AWS/Lambda Function連携ジョブが起動されると、引数に指定された内容でAWS/Lambda Functionを実行し、実行結果を標準出力に出力します。

AWS/Lambda Function連携ジョブを起動する際に指定する引数には、以下に示す内容を指定して下さい。

sjPEX_CloudFunctions -m LS
        -fnm Lambdaファンクション名
        -lreg AWSリージョン
        [-ak アクセスキーID] [-sk シークレットアクセスキー]
        [-cctf ファンクションパラメータ(JSONファイル名)]
        [-p プロファイル名] [-ar ロールARN] [-ei AWS外部ID] [-if AWS認証ファイル]
        [-cct ファンクションパラメータ(JSON文字列)]

表 4.21 AWS/Lambda Function連携ジョブを起動する際に指定する引数

オプション

省略

デフォルト

長さ

説明

-fnm

不可

255

Lambdaファンクション名

-lreg

不可

32

AWSリージョン

-ak

256

AWS接続用のアクセスキーID

-sk

256

AWS接続用のシークレットアクセスキー

-cctf

255

ファンクションパラメータ(JSONファイル名)

-p

255

プロファイル名

-ar

1024

ロールARN

-ei

128

AWS外部ID

-if

$SENJUHOME/dat/opt/sj_aws.ini

255

AWS認証ファイル

-cct

可変

ファンクションパラメータ(JSON文字列)


  • Senju/DCジョブの起動コマンドの最大文字数は2048文字です。起動コマンドが最大文字数を超える場合は、sj_aws.iniに設定して下さい。

  • 省略可能なオプションを省略した場合は、sj_aws.iniで指定した値が有効になります。

  • ファンクションパラメータ(JSONファイル名)で、JSON形式のデータが記載されたファイルを指定する場合、ファイルサイズは最大で2600バイトとして下さい。

  • ファンクションパラメータ(JSON文字列)では以下の注意事項があります。

    • キーおよびバリューの値に「¥」マークを扱いたい場合は「¥¥」と表現する必要があります。

    • キーおよびバリューの値に「”」を扱いたい場合は、Windows:「¥¥¥”」、Linux:「¥”」と表現する必要があります。

    • キーおよびバリューの値に英数字、全角文字、「!#$%&'()-=^~|@`[{]}:*;+,<.>/?_」が指定可能です。

    • キーおよびバリューの値に半角スペースを含む場合、Windowsの場合は「"{¥"key01¥":¥"val 01¥"}"」、Linuxの場合は千手コマンドラインにスペースを含めた文字列を指定することができないため、「-cctf」で指定して下さい。

    • 最大バイト数は、「2048バイト(ジョブ実行する際の最大長) - ファンクションパラメータ(JSON文字列)以外の長さ」となります。

4.3.4.2.1. AWS/Lambda Function連携ジョブテンプレートの使い方

ジョブテンプレートとは、ジョブの起動コマンドシーケンスのみを持ち、パラメータ値が未決定であるエンティティです。ジョブテンプレートを用いることにより、ジョブの登録のたびにコマンドシーケンスを入力しなくても、必要なパラメータ値を入力するだけでジョブの作成が行えます。 Job Scheduler for CloudをSenju/DCのジョブスケジュール機能と連携するために、Job Scheduler for Cloudジョブを、Senju/DCのジョブの起動コマンドとして設定します。

AWS/Lambda Function連携ジョブテンプレートを使用し、ジョブの起動コマンドとして利用するには、千手ブラウザのツリービューで、<ドメイン>→“ジョブスケジュール”→“ジョブ”を選択し、ジョブの新規作成を行います。

ジョブの新規作成プロパティウィンドで[ジョブテンプレートを使用]チェックボックスをチェックし、[ジョブテンプレート入力]ボタンを押して下さい。

ジョブテンプレート入力ウィンドでAWS/Lambda Function連携ジョブテンプレートを選択し、各パラメータ値を設定して下さい。

../_images/017.png

図 4.25 AWS/Lambda Function連携ジョブテンプレートの使用

../_images/018.png

図 4.26 AWS/Lambda Function連携ジョブテンプレートの入力


表 4.22 AWS/Lambda Function連携ジョブテンプレートの入力

パラメータ

説明

Lambdaファンクション名

Lambda Function名を指定します。省略不可です。

AWSリージョン

AWS/Lambda Function所属のリージョンを指定します。省略不可です。

アクセスキーID

AWS接続用のアクセスキーIDを指定します。 sj_aws.iniで指定している場合は、省略可能です。

シークレットアクセスキー

AWS接続用のシークレットアクセスキーを指定します。 sj_aws.iniで指定している場合は、省略可能です。

ファンクションパラメータ(JSONファイル名)

Lambda Functionへ渡すイベントデータを記載したJSONファイル名を指定します。省略可能です。

プロファイル名

ロール認証に使用されるプロファイルを指定します。省略可能です。

ロールARN

ロール認証に使用されるロールARNを指定します。省略可能です。

AWS外部ID

ロール認証に使用される外部IDを指定します。省略可能です。

AWS認証ファイル

AWS接続用の認証ファイルを指定します。省略可能です。デフォルトは$SENJUHOME/dat/opt/sj_aws.iniとなります。

ファンクションパラメータ(JSON文字列)

Lambda Functionへ渡すJSON文字列を指定します。省略可能です。

4.3.4.2.2. AWS/Lambda Function連携ジョブの処理の流れ(通常時)

AWS/Lambda Function連携ジョブがSenju/DCのジョブスケジュールで1つのジョブとして起動されると、 「図 4.27 AWS/Lambda Function連携ジョブの処理の流れ」 および 「表 4.23 AWS/Lambda Function連携ジョブの処理の流れ」 に示す流れで動きます。

../_images/019.png

図 4.27 AWS/Lambda Function連携ジョブの処理の流れ


表 4.23 AWS/Lambda Function連携ジョブの処理の流れ

Senju/DC

ジョブの状態

AWS/Lambda Function実行

ジョブの処理内容

メッセージモニタの出力

起動待ち

起動前の状態

稼働中

起動

稼働中

引数に従い、AWS/Lambda上の関数実行

正常終了

AWS/Lambda上の関数実行に成功

!PEXC13

AWS/Lambda上の関数実行に成功しました。

異常終了

AWS/Lambda上の関数実行に失敗

!PEXC14

AWS/Lambda上の関数実行に失敗しました。


  1. AWS/Lambda Function連携ジョブが起動されると、引数に指定された内容でAWS/Lambda Functionを実行します。

  2. AWS/Lambda上の関数を実行します。

  3. AWS/Lambda Functionが正しく実行されると、関数実行に成功した旨のメッセージを出力し、Senju/DCジョブは正常終了します。

  4. AWS/Lambda Functionが何らかの理由で正しく実行されないと、失敗した旨のメッセージを出力し、Senju/DCジョブは異常終了します。

4.3.4.2.3. AWS/Lambda Function連携ジョブの処理の流れ(強制停止時)

AWS/Lambda Function連携ジョブは、他のSenju/DCのジョブと同じく強制停止させることができます。

Senju/DCのジョブスケジュールより、AWS/Lambda Function連携ジョブを強制停止しても、関数実行中のAWS/Lambda Functionは実行されたままとなります。

Senju/DCのジョブスケジュールでは、強制停止されたジョブの状態は異常終了となります。

4.3.5. Job Scheduler for Cloud(AWS/Step Functions)の使い方

4.3.5.1. Job Scheduler for Cloud(AWS/Step Functions)の機能

Job Scheduler for Cloud(AWS/Step Functions)とは、Senju/DCのジョブスケジュール機能と連携し、AWS/Step Functionsを実行する機能です。

4.3.5.2. ポリシーの作成

AWS/Step Functions連携機能を使用するため、 「表 4.24 AWS/Step Functions連携機能に必要なアクセス権限」 に示すポリシーを作成して、ユーザーにアクセス権限を付与します。

表 4.24 AWS/Step Functions連携機能に必要なアクセス権限

ジョブ

必要なアクセス権

AWS/Step Functions連携ジョブ

states:DescribeExecution
states:StartExecution
states:StopExecution
states:StartSyncExecution
states:RedriveExecution

4.3.5.3. sj_aws.iniの設定

sj_aws.iniファイルは、AWSに関する情報の設定ファイルで、 Job Scheduler for Cloud(AWS/Step Functions)ジョブはこのファイルを参照します。

設定方法については、 sj_setup_aws - AWS情報設定ファイル更新 - を参照して下さい。

sj_aws.iniに、 「表 4.25 sj_aws.iniの記述内容」 に示す内容を設定して下さい。

表 4.25 sj_aws.iniの記述内容

項目

省略

デフォルト

暗号化対象

説明

accessKey

AWS接続用のアクセスキーID

secretKey

AWS接続用のシークレットアクセスキー

region

AWS接続用のリージョン


  • 省略可能な項目を省略した場合は、Job Scheduler for Cloud(AWS/Step Functions)ジョブのオプションで指定する必要があります。デフォルトが存在するものに関しては、省略してもデフォルト値で動作します。

  • 同じ項目を、sj_aws.iniとJob Scheduler for Cloud(AWS/Step Functions)ジョブのオプションの両方で指定した場合は、Job Scheduler for Cloud(AWS/Step Functions)ジョブのオプションで指定した値が有効になります。

  • 指定可能なAWSリージョンは、「4.8.5.1 Job Scheduler for Cloudの制限事項」を参照して下さい。

警告

Senju/DCジョブの起動コマンドには、文字数に制限があります。なるべく各項目は省略せずに、sj_aws.iniファイルに設定して下さい。

4.3.5.4. AWS/Step Functions連携ジョブの利用方法

AWS/Step Functions連携ジョブは、AWS Management Consoleなどによって作成したAWS/Step Functionsを実行します。

AWS/Step Functions連携ジョブが起動されると、引数に指定された内容でAWS/Step Functionsを実行し、実行結果を標準出力に出力します。

AWS/Step Functions連携ジョブを起動する際に指定する引数には、以下に示す内容を指定して下さい。

sjPEX_CloudFunctions -m SF
        -smn ステートマシンARN
        [-ak アクセスキーID] [-sk シークレットアクセスキー]
        [-exn 実行名] [-sync] [-redrive]
        [-cctf ファンクションパラメータ(JSONファイル名)]
        [-i チェックインターバル]
        [-p プロファイル名] [-ar ロールARN] [-ei AWS外部ID]
        [-cct ファンクションパラメータ(JSON文字列)]
        [-sfr AWSリージョン]

表 4.26 AWS/Step Functions連携ジョブを起動する際に指定する引数

オプション

省略

デフォルト

長さ

説明

-smn

不可

255

ステートマシンARN

-ak

256

AWS接続用のアクセスキーID

-sk

256

AWS接続用のシークレットアクセスキー

-exn

255

実行名

-sync

同期開始指定オプション

-redrive

リドライブ指定オプション

-cctf

255

ファンクションパラメータ(JSONファイル名)

-i

60

4

チェックインターバル(秒) [10-600]

-p

255

プロファイル名

-ar

1024

ロールARN

-ei

128

AWS外部ID

-cct

可変

ファンクションパラメータ(JSON文字列)

-sfr

32

AWSリージョン


  • Senju/DCジョブの起動コマンドの最大文字数は2048文字です。起動コマンドが最大文字数を超える場合は、sj_aws.iniに設定して下さい。

  • アクセスキーID、シークレットアクセスキーを省略した場合は、sj_aws.iniで指定した値が有効になります。

  • ファンクションパラメータ(JSONファイル名)で、JSON形式のデータが記載されたファイルを指定する場合、ファイルサイズは最大で260000バイトとして下さい。

  • ファンクションパラメータ(JSON文字列)では以下の注意事項があります。

    • キーおよびバリューの値に「¥」マークを扱いたい場合は「¥¥」と表現する必要があります。

    • キーおよびバリューの値に「”」を扱いたい場合は、Windows:「¥¥¥”」、Linux:「¥”」と表現する必要があります。

    • キーおよびバリューの値に英数字、全角文字、「!#$%&'()-=^~|@`[{]}:*;+,<.>/?_」が指定可能です。

    • キーおよびバリューの値に半角スペースを含む場合、Windowsの場合は「"{¥"key01¥":¥"val 01¥"}"」、Linuxの場合は千手コマンドラインにスペースを含めた文字列を指定することができないため、「-cctf」で指定して下さい。

    • 最大バイト数は、「2048バイト(ジョブ実行する際の最大長) - ファンクションパラメータ(JSON文字列)以外の長さ」となります。

4.3.5.4.1. AWS/Step Functions連携ジョブテンプレートの使い方

ジョブテンプレートとは、ジョブの起動コマンドシーケンスのみを持ち、パラメータ値が未決定であるエンティティです。ジョブテンプレートを用いることにより、ジョブの登録のたびにコマンドシーケンスを入力しなくても、必要なパラメータ値を入力するだけでジョブの作成が行えます。 Job Scheduler for CloudをSenju/DCのジョブスケジュール機能と連携するために、Job Scheduler for Cloudジョブを、Senju/DCのジョブの起動コマンドとして設定します。

AWS/Step Functions連携ジョブテンプレートを使用し、ジョブの起動コマンドとして利用するには、千手ブラウザのツリービューで、<ドメイン>→“ジョブスケジュール”→“ジョブ”を選択し、ジョブの新規作成を行います。

ジョブの新規作成プロパティウィンドで[ジョブテンプレートを使用]チェックボックスをチェックし、[ジョブテンプレート入力]ボタンを押して下さい。

ジョブテンプレート入力ウィンドでAWS/Step Functions連携ジョブテンプレートを選択し、各パラメータ値を設定して下さい。

../_images/035.png

図 4.28 AWS/Step Functions連携ジョブテンプレートの使用

../_images/036.png

図 4.29 AWS/Step Functions連携ジョブテンプレートの入力


表 4.27 AWS/Step Functions連携ジョブテンプレートの入力

パラメータ

説明

アクセスキーID

AWS接続用のアクセスキーIDを指定します。 sj_aws.iniで指定している場合は、省略可能です。

シークレットアクセスキー

AWS接続用のシークレットアクセスキーを指定します。 sj_aws.iniで指定している場合は、省略可能です。

ステートマシンARN

ステートマシンのARNを指定します。省略不可です。

実行名

ステートマシンの実行名を指定します。省略可能です。

ファンクションパラメータ(JSONファイル名)

ステートマシンへ渡すパラメータを記載したJSONファイル名を指定します。マルチバイトを含む場合、エンコードはUTF-8にして下さい。省略可能です。

同期開始指定(-sync)

Expressワークフローの結果ステータスを取得したい場合に指定します。指定する値は -sync です。省略可能です。

リドライブ指定(-redrive)

ジョブの再ラン時にリドライブしたい場合に指定します。指定する値は -redrive です。省略可能です。

interval[sec]

ワークフローの実行状態取得のチェック間隔[sec]を指定します。省略可能です。

プロファイル名

ロール認証に使用されるプロファイルを指定します。省略可能です。

ロールARN

ロール認証に使用されるロールARNを指定します。省略可能です。

AWS外部ID

ロール認証に使用される外部IDを指定します。省略可能です。

ファンクションパラメータ(JSON文字列)

ステートマシンへ渡すJSON文字列を指定します。省略可能です。

AWSリージョン

AWS/Step Functions所属のリージョンを指定します。省略可能です。

4.3.5.4.2. AWS/Step Functions連携ジョブ再ラン時のリドライブ条件

パラメータ「リドライブ指定(-redrive)」を指定してジョブを作成した場合、当該ジョブの再ラン時に以下の条件を全て満たしていればAWS/Step Functionsステートマシンをリドライブします。

  1. パラメータ「同期開始指定(-sync)」が指定されていない

  2. AWS/Step Functions連携ジョブの初回実行ではない(ジョブログが存在する)

  3. ジョブログの最終状態が以下のいずれかを満たす
    • アクションが「CHK」 かつ ステータス要因が「SUCCEEDED」以外

    • アクションが「TRM」

    • アクションが「RDR」

上記の条件を満たさない場合は、パラメータ「リドライブ指定」を指定している場合でもAWS/Step Functionsステートマシンを新規実行します。

注釈

ジョブログについては Job Scheduler for Cloud(AWS/Step Functions)のジョブログファイル を参照して下さい。

4.3.5.4.3. AWS/Step Functions連携ジョブの処理の流れ(通常時)

AWS/Step Functions連携ジョブがSenju/DCのジョブスケジュールで1つのジョブとして起動されると、 「図 4.30 AWS/Step Functions連携ジョブの処理の流れ(図)」 および 「表 4.28 AWS/Step Functions連携ジョブの処理の流れ(表)」 に示す流れで動きます。

../_images/037.svg

図 4.30 AWS/Step Functions連携ジョブの処理の流れ(図)


表 4.28 AWS/Step Functions連携ジョブの処理の流れ(表)

Senju/DC

ジョブの状態

AWS/Step Functions実行

ジョブの処理内容

メッセージモニタの出力

起動待ち

起動前の状態

稼働中

起動

稼働中

引数に従い、AWS/Step Functionsステートマシンを実行

正常終了

AWS/Step Functionsステートマシンの実行に成功

!PEXC23

AWS/Step Functionsの実行に成功しました。

異常終了

AWS/Step Functionsステートマシンの実行に失敗

!PEXC24

AWS/Step Functionsの実行に失敗しました。


  1. AWS/Step Functions連携ジョブが起動されると、引数に指定された内容でAWS/Step Functionsを実行します。

  2. AWS/Step Functionsステートマシンを実行します。

  3. AWS/Step Functionsステートマシンが正常終了すると、実行に成功した旨のメッセージを出力し、Senju/DCジョブは正常終了します。

  4. AWS/Step Functionsステートマシンが何らかの理由で異常終了すると、実行に失敗した旨のメッセージを出力し、Senju/DCジョブは異常終了します。

4.3.5.4.4. AWS/Step Functions連携ジョブの処理の流れ(強制停止時)

AWS/Step Functions連携ジョブは、他のSenju/DCのジョブと同じく強制停止させることができます。

Senju/DCのジョブスケジュールより、AWS/Step Functions連携ジョブを強制停止した場合、実行中のAWS/Step Functionsステートマシンも中断します。

なお、パラメータ「inteval[sec]」に指定した時間内でAWS/Step Functionsステートマシンが終了していた場合は中断しません。

Senju/DCのジョブスケジュールでは、強制停止されたジョブの状態は異常終了となります。

4.3.6. Job Scheduler for Cloud(AWS/Batch)の使い方

4.3.6.1. Job Scheduler for Cloud(AWS/Batch)の機能

Job Scheduler for Cloud(AWS/Batch)とは、Senju/DCのジョブスケジュール機能と連携し、AWS/Batchのジョブを実行する機能です。

4.3.6.2. ポリシーの作成

AWS/Batch連携機能を使用するため、 「表 4.29 AWS/Batch連携機能に必要なアクセス権限」 に示すポリシーを作成して、ユーザーにアクセス権限を付与します。

表 4.29 AWS/Batch連携機能に必要なアクセス権限

ジョブ

必要なアクセス権

AWS/Batch連携ジョブ

batch:SubmitJob
batch:DescribeJobs

4.3.6.3. sj_aws.iniの設定

sj_aws.iniファイルは、AWSに関する情報の設定ファイルで、 Job Scheduler for Cloud(AWS/Batch)ジョブはこのファイルを参照します。

設定方法については、 sj_setup_aws - AWS情報設定ファイル更新 - を参照して下さい。

sj_aws.iniに、 「表 4.30 sj_aws.iniの記述内容」 に示す内容を設定して下さい。

表 4.30 sj_aws.iniの記述内容

項目

省略

デフォルト

暗号化対象

説明

accessKey

AWS接続用のアクセスキーID

secretKey

AWS接続用のシークレットアクセスキー


  • 省略可能な項目を省略した場合は、Job Scheduler for Cloud(AWS/Batch)ジョブのオプションで指定する必要があります。デフォルトが存在するものに関しては、省略してもデフォルト値で動作します。

  • 同じ項目を、sj_aws.iniとJob Scheduler for Cloud(AWS/Batch)ジョブのオプションの両方で指定した場合は、Job Scheduler for Cloud(AWS/Batch)ジョブのオプションで指定した値が有効になります。

警告

Senju/DCジョブの起動コマンドには、文字数に制限があります。なるべく各項目は省略せずに、sj_aws.iniファイルに設定して下さい。

4.3.6.4. AWS/Batch連携ジョブの利用方法

AWS/Batch連携ジョブは、AWS Management Consoleなどによって作成したAWS/Batchを実行します。

AWS/Batch連携ジョブが起動されると、引数に指定された内容でAWS/Batchを実行し、実行結果を標準出力に出力します。

AWS/Batch連携ジョブを起動する際に指定する引数には、以下に示す内容を指定して下さい。

  • AWS/Batch連携ジョブ(FARGATE)

sjPEX_CloudFunctions -m ABF
        -br AWSリージョン
        -jq ジョブキュー名
        -jd ジョブ定義名
        -jn ジョブ名
        [-ak アクセスキーID] [-sk シークレットアクセスキー]
        [-p プロファイル名] [-ar ロールARN] [-ei AWS外部ID]
        [-si 共有識別子][-sp スケジュール優先度] [-rs ジョブの試行]
        [-pt タグ伝播] [-to 実行タイムアウト] [-wt ウェイトタイム]
        [-vc vCPU数] [-mem メモリ] [-jp ジョブパラメータ(ファイル)]

表 4.31 AWS/Batch連携ジョブを起動する際に指定する引数(FARGATE)

オプション

省略

デフォルト

長さ

説明

-br

不可

32

AWSリージョン

-jq

不可

128

ジョブキュー名

-jd

不可

128

ジョブ定義名

-jn

不可

128

ジョブ名

-ak

256

AWS接続用のアクセスキーID

-sk

256

AWS接続用のシークレットアクセスキー

-p

255

プロファイル名

-ar

1024

ロールARN

-ei

128

AWS外部ID

-si

255

共有識別子

-sp

4

スケジュール優先度

-rs

2

ジョブの試行

-pt

false

5

タグ伝播

-to

8

実行タイムアウト

-wt

5

4

ウェイトタイム

-vc

4

vCPU数

-mem

8

メモリ

-jp

256

ジョブパラメータ(ファイル)

  • AWS/Batch連携ジョブ(EC2)

sjPEX_CloudFunctions -m ABEC2
        -br AWSリージョン
        -jq ジョブキュー名
        -jd ジョブ定義名
        -jn ジョブ名
        [-ak アクセスキーID] [-sk シークレットアクセスキー]
        [-p プロファイル名] [-ar ロールARN] [-ei AWS外部ID]
        [-si 共有識別子][-sp スケジュール優先度] [-rs ジョブの試行]
        [-pt タグ伝播] [-to 実行タイムアウト] [-wt ウェイトタイム]
        [-vc vCPU数] [-mem メモリ] [-g GPU数] [-jp ジョブパラメータ(ファイル)]

表 4.32 AWS/Batch連携ジョブを起動する際に指定する引数(EC2)

オプション

省略

デフォルト

長さ

説明

-br

不可

32

AWSリージョン

-jq

不可

128

ジョブキュー名

-jd

不可

128

ジョブ定義名

-jn

不可

128

ジョブ名

-ak

256

AWS接続用のアクセスキーID

-sk

256

AWS接続用のシークレットアクセスキー

-p

255

プロファイル名

-ar

1024

ロールARN

-ei

128

AWS外部ID

-si

255

共有識別子

-sp

4

スケジュール優先度

-rs

2

ジョブの試行

-pt

false

5

タグ伝播

-to

8

実行タイムアウト

-wt

5

4

ウェイトタイム

-vc

4

vCPU数

-mem

8

メモリ

-g

4

GPU数

-jp

256

ジョブパラメータ(ファイル)

  • AWS/Batch連携ジョブ(EKS)

sjPEX_CloudFunctions -m ABEKS
        -br AWSリージョン
        -jq ジョブキュー名
        -jd ジョブ定義名
        -jn ジョブ名
        [-ak アクセスキーID] [-sk シークレットアクセスキー]
        [-p プロファイル名] [-ar ロールARN] [-ei AWS外部ID]
        [-si 共有識別子][-sp スケジュール優先度] [-rs ジョブの試行]
        [-to 実行タイムアウト] [-wt ウェイトタイム] [-vc vCPU数]
        [-mem メモリ] [-g GPU数] [-jp ジョブパラメータ(ファイル)]

表 4.33 AWS/Batch連携ジョブを起動する際に指定する引数(EKS)

オプション

省略

デフォルト

長さ

説明

-br

不可

32

AWSリージョン

-jq

不可

128

ジョブキュー名

-jd

不可

128

ジョブ定義名

-jn

不可

128

ジョブ名

-ak

256

AWS接続用のアクセスキーID

-sk

256

AWS接続用のシークレットアクセスキー

-p

255

プロファイル名

-ar

1024

ロールARN

-ei

128

AWS外部ID

-si

255

共有識別子

-sp

4

スケジュール優先度

-rs

2

ジョブの試行

-to

8

実行タイムアウト

-wt

5

4

ウェイトタイム

-vc

4

vCPU数

-mem

8

メモリ

-g

4

GPU数

-jp

256

ジョブパラメータ(ファイル)


  • Senju/DCジョブの起動コマンドの最大文字数は2048文字です。起動コマンドが最大文字数を超える場合は、sj_aws.iniに設定して下さい。

  • 省略可能なオプションを省略した場合は、sj_aws.iniで指定した値が有効になります。

4.3.6.4.1. AWS/Batch連携ジョブテンプレートの使い方

ジョブテンプレートとは、ジョブの起動コマンドシーケンスのみを持ち、パラメータ値が未決定であるエンティティです。ジョブテンプレートを用いることにより、ジョブの登録のたびにコマンドシーケンスを入力しなくても、必要なパラメータ値を入力するだけでジョブの作成が行えます。 Job Scheduler for CloudをSenju/DCのジョブスケジュール機能と連携するために、Job Scheduler for Cloudジョブを、Senju/DCのジョブの起動コマンドとして設定します。

AWS/Batch連携ジョブテンプレートを使用し、ジョブの起動コマンドとして利用するには、千手ブラウザのツリービューで、<ドメイン>→“ジョブスケジュール”→“ジョブ”を選択し、ジョブの新規作成を行います。

ジョブの新規作成プロパティウィンドで[ジョブテンプレートを使用]チェックボックスをチェックし、[ジョブテンプレート入力]ボタンを押して下さい。

ジョブテンプレート入力ウィンドでAWS/Batch連携ジョブテンプレートを選択し、各パラメータ値を設定して下さい。

  • AWS/Batch連携ジョブ(FARGATE)

../_images/060.png

図 4.31 AWS/Batch連携ジョブ(FARGATE)テンプレートの使用

../_images/061.png

図 4.32 AWS/Batch連携ジョブ(FARGATE)テンプレートの入力


表 4.34 AWS/Batch連携ジョブ(FARGATE)テンプレートの入力

パラメータ

説明

AWSリージョン

AWS/Batch所属のリージョンを指定します。省略不可です。

ジョブキュー名

ジョブキュー名を指定します。省略不可です。

ジョブ定義名

ジョブ定義名を指定します。省略不可です。

ジョブ名

ジョブ名を指定します。省略不可です。

アクセスキーID

AWS接続用のアクセスキーIDを指定します。 sj_aws.iniで指定している場合は、省略可能です。

シークレットアクセスキー

AWS接続用のシークレットアクセスキーを指定します。 sj_aws.iniで指定している場合は、省略可能です。

プロファイル名

ロール認証に使用されるプロファイルを指定します。省略可能です。

ロールARN

ロール認証に使用されるロールARNを指定します。省略可能です。

AWS外部ID

ロール認証に使用される外部IDを指定します。省略可能です。

共有識別子

Batchジョブの共有識別子を指定します。省略可能です。ジョブ キューにスケジュールポリシーがある場合は、指定します。

スケジュール優先度

Batchジョブのスケジュール優先度を指定します。ジョブ定義の同等項目を上書きします。省略可能です。ジョブ キューにスケジュールポリシーがある場合は、指定します。「0~9999」の範囲で指定できます。

ジョブの試行

Batchジョブの試行回数を指定します。ジョブ定義の同等項目を上書きします。省略可能です。

タグ伝播

Batchジョブのタグ伝播を指定します。ジョブ定義の同等項目をtrueもしくはfalseに切り替えます。省略可能です。デフォルト値はfalseとなります。

実行タイムアウト

AWS Batch が未完了のジョブを終了するまでの時間(秒)を指定します。ジョブ定義の同等項目を上書きします。省略可能です。

ウェイトタイム

千手ジョブがBatchジョブの終了を待つ時間(分)を指定します。指定時間経過後もBatchジョブが実行中の場合、千手ジョブは異常終了します。省略可能です。デフォルト値は5となります。

vCPU数

BatchジョブのvCPU数を指定します。ジョブ定義の同等項目を上書きします。省略可能です。(※5)

メモリ

Batchジョブのメモリを指定します。ジョブ定義の同等項目を上書きします。省略可能です。(※5)

ジョブパラメータ(ファイル)

Batchジョブへ渡すパラメータを記載したファイルを指定します。省略可能です。(※1)(※2)(※3)(※4)


  • AWS/Batch連携ジョブ(EC2)

../_images/062.png

図 4.33 AWS/Batch連携ジョブ(EC2)テンプレートの使用

../_images/056.png

図 4.34 AWS/Batch連携ジョブ(EC2)テンプレートの入力


表 4.35 AWS/Batch連携ジョブ(EC2)テンプレートの入力

パラメータ

説明

AWSリージョン

AWS/Batch所属のリージョンを指定します。省略不可です。

ジョブキュー名

ジョブキュー名を指定します。省略不可です。

ジョブ定義名

ジョブ定義名を指定します。省略不可です。

ジョブ名

ジョブ名を指定します。省略不可です。

アクセスキーID

AWS接続用のアクセスキーIDを指定します。 sj_aws.iniで指定している場合は、省略可能です。

シークレットアクセスキー

AWS接続用のシークレットアクセスキーを指定します。 sj_aws.iniで指定している場合は、省略可能です。

プロファイル名

ロール認証に使用されるプロファイルを指定します。省略可能です。

ロールARN

ロール認証に使用されるロールARNを指定します。省略可能です。

AWS外部ID

ロール認証に使用される外部IDを指定します。省略可能です。

共有識別子

Batchジョブの共有識別子を指定します。省略可能です。ジョブ キューにスケジュールポリシーがある場合は、指定します。

スケジュール優先度

Batchジョブのスケジュール優先度を指定します。ジョブ定義の同等項目を上書きします。省略可能です。ジョブ キューにスケジュールポリシーがある場合は、指定します。「0~9999」の範囲で指定できます。

ジョブの試行

Batchジョブの試行回数を指定します。ジョブ定義の同等項目を上書きします。省略可能です。

タグ伝播

Batchジョブのタグ伝播を指定します。ジョブ定義の同等項目をtrueもしくはfalseに切り替えます。省略可能です。デフォルト値はfalseとなります。

実行タイムアウト

AWS Batch が未完了のジョブを終了するまでの時間(秒)を指定します。ジョブ定義の同等項目を上書きします。省略可能です。

ウェイトタイム

千手ジョブがBatchジョブの終了を待つ時間(分)を指定します。指定時間経過後もBatchジョブが実行中の場合、千手ジョブは異常終了します。省略可能です。デフォルト値は5となります。

vCPU数

BatchジョブのvCPU数を指定します。ジョブ定義の同等項目を上書きします。省略可能です。(※5)

メモリ

Batchジョブのメモリを指定します。ジョブ定義の同等項目を上書きします。省略可能です。(※5)

GPU数

BatchジョブのGPU数を指定します。ジョブ定義の同等項目を上書きします。省略可能です。

ジョブパラメータ(ファイル)

Batchジョブへ渡すパラメータを記載したファイルを指定します。省略可能です。(※1)(※2)(※3)(※4)


  • AWS/Batch連携ジョブ(EKS)

../_images/057.png

図 4.35 AWS/Batch連携ジョブ(EKS)テンプレートの使用

../_images/058.png

図 4.36 AWS/Batch連携ジョブ(EKS)テンプレートの入力


表 4.36 AWS/Batch連携ジョブ(EKS)テンプレートの入力

パラメータ

説明

AWSリージョン

AWS/Batch所属のリージョンを指定します。省略不可です。

ジョブキュー名

ジョブキュー名を指定します。省略不可です。

ジョブ定義名

ジョブ定義名を指定します。省略不可です。

ジョブ名

ジョブ名を指定します。省略不可です。

アクセスキーID

AWS接続用のアクセスキーIDを指定します。 sj_aws.iniで指定している場合は、省略可能です。

シークレットアクセスキー

AWS接続用のシークレットアクセスキーを指定します。 sj_aws.iniで指定している場合は、省略可能です。

プロファイル名

ロール認証に使用されるプロファイルを指定します。省略可能です。

ロールARN

ロール認証に使用されるロールARNを指定します。省略可能です。

AWS外部ID

ロール認証に使用される外部IDを指定します。省略可能です。

共有識別子

Batchジョブの共有識別子を指定します。省略可能です。ジョブ キューにスケジュールポリシーがある場合は、指定します。

スケジュール優先度

Batchジョブのスケジュール優先度を指定します。ジョブ定義の同等項目を上書きします。省略可能です。ジョブ キューにスケジュールポリシーがある場合は、指定します。「0~9999」の範囲で指定できます。

ジョブの試行

Batchジョブの試行回数を指定します。ジョブ定義の同等項目を上書きします。省略可能です。

実行タイムアウト

AWS Batch が未完了のジョブを終了するまでの時間(秒)を指定します。ジョブ定義の同等項目を上書きします。省略可能です。

ウェイトタイム

千手ジョブがBatchジョブの終了を待つ時間(分)を指定します。指定時間経過後もBatchジョブが実行中の場合、千手ジョブは異常終了します。省略可能です。デフォルト値は5となります。

vCPU数

BatchジョブのvCPU数を指定します。ジョブ定義の同等項目を上書きします。省略可能です。(※5)

メモリ

Batchジョブのメモリを指定します。ジョブ定義の同等項目を上書きします。省略可能です。(※5)

GPU数

BatchジョブのGPU数を指定します。ジョブ定義の同等項目を上書きします。省略可能です。

ジョブパラメータ(ファイル)

Batchジョブへ渡すパラメータを記載したファイルを指定します。省略可能です。(※1)(※2)(※3)(※4)


  • ※1、ジョブパラメータ(ファイル)には、配列サイズ、ジョブ依存関係リスト、ジョブパラメータ、環境変数、タグ、コマンド、EKSラベル、EKSイメージ、EKSコマンド、EKSパラメータを指定できます。

  • ※2、配列サイズは「2 ~ 10000」の範囲で指定できます。

  • ※3、配列サイズが指定される場合は、ジョブ依存関係リストは{"id1":"type1","id2":"type2","id3":"type3"}の形式で指定してください。ジョブタイプはSEQUENTIAL、N_TO_N、空のいずれかで指定し、SEQUENTIALが指定される場合、ジョブIDは空で指定必要となります。

    配列サイズが指定されない場合は、ジョブ依存関係リストは{"id1":"","id2":"","id3":""}の形式で指定します。ジョブタイプが入力されても無視されます。

  • ※4、ジョブ依存関係リストは最大20個のジョブまで依存できます。

    ジョブパラメータ(ファイル)の例:

    [arraySize]
    2
    [dependenciesList]
    {"id1":"N_TO_N","id2":"","":"SEQUENTIAL"}
    [tags]
    {"tagKey1":"tagVal1","tagKey2":"tagVal2"}
    [environment]
    {"env1":"envVal1","env2":"envVal2"}
    [jobParam]
    {"paramKey1":"paramVal1"}
    [command]
    echo AWS Batch Test
    [eksLabel]
    {"label01":"labelVal01"}
    [eksImg]
    public.ecr.aws/amazonlinux/amazonlinux:latest
    [eksCommand]
    echo AWS Batch Test
    [eksParam]
    eparam1,eparam2,eparam3
    
  • ※5、VCPU値はサポートされている値の1つと一致し、MEMORY値はそのVCPU値でサポートされている値の1つである必要があります。VCPUのサポートされている値は 0.25、0.5、1、2、4、8、および 16 です。

    VCPU = 0.25
        MEMORY = 512, 1024, or 2048
    
    VCPU = 0.5
        MEMORY = 1024, 2048, 3072, or 4096
    
    VCPU = 1
        MEMORY = 2048, 3072, 4096, 5120, 6144, 7168, or 8192
    
    VCPU = 2
        MEMORY = 4096, 5120, 6144, 7168, 8192, 9216, 10240, 11264, 12288, 13312, 14336, 15360, or 16384
    
    VCPU = 4
        MEMORY = 8192, 9216, 10240, 11264, 12288, 13312, 14336, 15360, 16384, 17408, 18432, 19456, 20480, 21504, 22528, 23552, 24576, 25600, 26624, 27648, 28672, 29696, or 30720
    
    VCPU = 8
        MEMORY = 16384, 20480, 24576, 28672, 32768, 36864, 40960, 45056, 49152, 53248, 57344, or 61440
    
    VCPU = 16
        MEMORY = 32768, 40960, 49152, 57344, 65536, 73728, 81920, 90112, 98304, 106496, 114688, or 122880
    

4.3.6.4.2. AWS/Batch連携ジョブの処理の流れ(通常時)

AWS/Batch連携ジョブがSenju/DCのジョブスケジュールで1つのジョブとして起動されると、 「図 4.37 AWS/Batch連携ジョブの処理の流れ」 および 「表 4.37 AWS/Batch連携ジョブの処理の流れ」 に示す流れで動きます。

../_images/059.png

図 4.37 AWS/Batch連携ジョブの処理の流れ


表 4.37 AWS/Batch連携ジョブの処理の流れ

Senju/DC

ジョブの状態

AWS/Batch実行

ジョブの処理内容

メッセージモニタの出力

起動待ち

起動前の状態

稼働中

起動

稼働中

引数に従い、AWS/Batchのジョブ実行

正常終了

AWS/Batchのジョブ実行に成功

!PEXC25

AWS/Batchのジョブ実行に成功しました。

異常終了

AWS/Batchのジョブ実行に失敗

!PEXC26

AWS/Batchのジョブ実行に失敗しました。


  1. AWS/Batch連携ジョブが起動されると、引数に指定された内容でAWS/Batchのジョブを実行します。

  2. AWS/Batchのジョブを実行します。

  3. AWS/Batchのジョブが正しく実行されると、ジョブ実行に成功した旨のメッセージを出力し、Senju/DCジョブは正常終了します。

  4. AWS/Batchのジョブが何らかの理由で正しく実行されないと、失敗した旨のメッセージを出力し、Senju/DCジョブは異常終了します。

4.3.6.4.3. AWS/Batch連携ジョブの処理の流れ(強制停止時)

AWS/Batch連携ジョブは、他のSenju/DCのジョブと同じく強制停止させることができます。

Senju/DCのジョブスケジュールより、AWS/Batch連携ジョブを強制停止しても、実行中のAWS/Batchのジョブは実行されたままとなります。

Senju/DCのジョブスケジュールでは、強制停止されたジョブの状態は異常終了となります。

4.3.7. Job Scheduler for Cloud(AWS/Elastic Container Service)の使い方

4.3.7.1. Job Scheduler for Cloud(AWS/Elastic Container Service)の機能

Job Scheduler for Cloud(AWS/Elastic Container Service)とは、Senju/DCのジョブスケジュール機能と連携し、AWS/Elastic Container Service のコンテナ内でコマンドを実行する機能です。

4.3.7.1.1. AWS/Elastic Container Service連携ジョブの制限事項

  • 本機能は以下の構成をサポートします。

    • 動作環境サーバー: Linuxノード

    • Elastic Container Service内コンテナ: Linuxコンテナ

  • 指定されたコマンドは、コンテナ内でrootユーザーによって実行されます。

  • コンテナ内で実行するコマンドのアイドルタイムが20分を超えた場合、実行コマンドはタイムアウトし、千手ジョブは異常終了します。

    • タイムアウト時間を変更する場合は、AWS Management Consoleからセッションマネージャの Idle session timeout を変更して下さい。(1~60分)

    • タイムアウトが発生した場合には、実行コマンドに対してハングアップシグナル(SIGHUP)が送信されます。

  • ジョブのパラメータにスペースを指定することは出来ません。

4.3.7.2. ポリシーの作成

AWS/Elastic Container Service連携機能を使用するため、 「表 4.38 AWS/Elastic Container Service連携機能に必要なアクセス権限」 に示すポリシーを作成して、ユーザーにアクセス権限を付与します。

表 4.38 AWS/Elastic Container Service連携機能に必要なアクセス権限

ジョブ

必要なアクセス権

AWS/Elastic Container Service連携ジョブ

ecs:ExecuteCommand
ecs:DescribeTasks

4.3.7.3. sj_aws.iniの設定

sj_aws.iniファイルは、AWSに関する情報の設定ファイルで、 Job Scheduler for Cloud(AWS/Elastic Container Service)ジョブはこのファイルを参照します。

設定方法については、 sj_setup_aws - AWS情報設定ファイル更新 - を参照して下さい。

sj_aws.iniに、 「表 4.39 sj_aws.iniの記述内容(AWS/Elastic Container Service)」 に示す内容を設定して下さい。

表 4.39 sj_aws.iniの記述内容(AWS/Elastic Container Service)

項目

省略

デフォルト

暗号化対象

説明

accessKey

AWS接続用のアクセスキーID

secretKey

AWS接続用のシークレットアクセスキー

region

AWS接続用のリージョン


  • 省略可能な項目を省略した場合は、Job Scheduler for Cloud(AWS/Elastic Container Service)ジョブのオプションで指定する必要があります。デフォルトが存在するものに関しては、省略してもデフォルト値で動作します。

  • 同じ項目を、sj_aws.iniとJob Scheduler for Cloud(AWS/Elastic Container Service)ジョブのオプションの両方で指定した場合は、Job Scheduler for Cloud(AWS/Elastic Container Service)ジョブのオプションで指定した値が有効になります。

警告

Senju/DCジョブの起動コマンドには、文字数に制限があります。なるべく各項目は省略せずに、sj_aws.iniファイルに設定して下さい。

4.3.7.4. タスクまたはサービスに対するコマンド実行機能の有効化

本機能を利用するためには、対象として指定するコンテナ内でのコマンド実行が許可されている必要があります。

AWSの公式ドキュメントを参照し、パラメータで指定するタスク、またはそのタスクを管理するサービスに対してコマンド実行機能を事前に有効化して下さい。

例として、既に存在するサービスに対してコマンド実行機能を有効化する場合は、以下のようなAWS CLIを実行します。

aws ecs update-service --cluster クラスター名 --service サービス名 --enable-execute-command

4.3.7.5. AWS/Elastic Container Service連携ジョブの利用方法

AWS/Elastic Container Service連携ジョブは、AWS Management Consoleなどによって作成したAWS/Elastic Container Service内コンテナにてコマンドを実行します。

AWS/Elastic Container Service連携ジョブが起動されると、引数に指定された内容でAWS/Elastic Container Service内コンテナにてコマンドを実行し、実行結果を標準出力に出力します。

AWS/Elastic Container Service連携ジョブを起動する際に指定する引数には、以下に示す内容を指定して下さい。

sjPEX_CloudFunctions -m ECS
        -cmd コマンド
        -tsk タスク
        -cl クラスター
        [-ctn コンテナ名]
        [-p プロファイル名] [-ar ロールARN] [-ei AWS外部ID]
        [-ereg AWSリージョン]

オプション

省略

デフォルト

長さ

説明

-cmd

不可

255

コンテナ内で実行するコマンド

-tsk

不可

255

タスク名 または タスクARN

-cl

不可

255

クラスター名 または クラスターARN

-ctn

255

コンテナ名

-p

255

プロファイル名

-ar

1024

ロールARN

-ei

128

AWS外部ID

-ereg

32

AWSリージョン


  • Senju/DCジョブの起動コマンドの最大文字数は2048文字です。起動コマンドが最大文字数を超える場合は、sj_aws.iniに設定して下さい。

  • アクセスキーID、シークレットアクセスキーを省略した場合は、sj_aws.iniで指定した値が有効になります。

警告

各オプションの値にスペースを含む文字列を指定することは出来ません。

例えば、オプション「コマンド」にてスペースを指定する必要がある場合は、事前にコンテナ内にスクリプトを配置し、そのスクリプトを指定するなどで、オプションにスペースを指定しない形となるようにして下さい。

4.3.7.5.1. AWS/Elastic Container Service連携ジョブテンプレートの使い方

ジョブテンプレートとは、ジョブの起動コマンドシーケンスのみを持ち、パラメータ値が未決定であるエンティティです。ジョブテンプレートを用いることにより、ジョブの登録のたびにコマンドシーケンスを入力しなくても、必要なパラメータ値を入力するだけでジョブの作成が行えます。 Job Scheduler for CloudをSenju/DCのジョブスケジュール機能と連携するために、Job Scheduler for Cloudジョブを、Senju/DCのジョブの起動コマンドとして設定します。

AWS/Elastic Container Service連携ジョブテンプレートを使用し、ジョブの起動コマンドとして利用するには、千手ブラウザのツリービューで、<ドメイン>→“ジョブスケジュール”→“ジョブ”を選択し、ジョブの新規作成を行います。

ジョブの新規作成プロパティウィンドで[ジョブテンプレートを使用]チェックボックスをチェックし、[ジョブテンプレート入力]ボタンを押して下さい。

ジョブテンプレート入力ウィンドでAWS/Elastic Container Service連携ジョブテンプレートを選択し、各パラメータ値を設定して下さい。

../_images/066.png

図 4.38 AWS/Elastic Container Service連携ジョブテンプレートの使用

../_images/067.png

図 4.39 AWS/Elastic Container Service連携ジョブテンプレートの入力


表 4.40 AWS/Elastic Container Service連携ジョブテンプレートの入力

パラメータ

説明

プロファイル名

ロール認証に使用されるプロファイルを指定します。省略可能です。

ロールARN

ロール認証に使用されるロールARNを指定します。省略可能です。

AWS外部ID

ロール認証に使用される外部IDを指定します。省略可能です。

AWSリージョン

AWS/Elastic Container Service所属のリージョンを指定します。省略可能です。

コマンド

コンテナ内で実行するコマンドを指定します。省略不可です。

タスク

タスク名 または タスクARNを指定します。省略不可です。

クラスター

クラスター名 または クラスターARNを指定します。省略不可です。

コンテナ名

コンテナ名を指定します。省略可能です。

警告

各パラメータ値にスペースを含む文字列を指定することは出来ません。

例えば、パラメータ「コマンド」にてスペースを指定する必要がある場合は、事前にコンテナ内にスクリプトを配置し、そのスクリプトを指定するなどで、パラメータにスペースを指定しない形となるようにして下さい。

4.3.7.5.2. AWS/Elastic Container Service連携ジョブの処理の流れ(通常時)

AWS/Elastic Container Service連携ジョブがSenju/DCのジョブスケジュールで1つのジョブとして起動されると、 AWS/Elastic Container Service連携ジョブの処理の流れ(図) および AWS/Elastic Container Service連携ジョブの処理の流れ(表) に示す流れで動きます。

../_images/068.svg

図 4.40 AWS/Elastic Container Service連携ジョブの処理の流れ(図)


表 4.41 AWS/Elastic Container Service連携ジョブの処理の流れ(表)

Senju/DC

ジョブの状態

AWS/Elastic Container Service実行

ジョブの処理内容

メッセージモニタの出力

起動待ち

起動前の状態

稼働中

起動

稼働中

引数に従い、AWS/Elastic Container Serviceでコマンドを実行

正常終了

AWS/Elastic Container Serviceでのコマンド実行に成功

!PEXC31

AWS/Elastic Container Serviceのジョブ実行に成功しました。

異常終了

AWS/Elastic Container Serviceでのコマンド実行に失敗

!PEXC32

AWS/Elastic Container Serviceのジョブ実行に失敗しました。


  1. AWS/Elastic Container Service連携ジョブが起動されると、引数に指定された内容でAWS/Elastic Container Serviceを実行します。

  2. AWS/Elastic Container Service内コンテナでコマンドを実行します。

  3. AWS/Elastic Container Service内コンテナでのコマンド実行が終了し終了コードが 0 になると、実行に成功した旨のメッセージを出力し、Senju/DCジョブは正常終了します。

  4. AWS/Elastic Container Service内コンテナでのコマンド実行が何らかの理由で異常終了すると、実行に失敗した旨のメッセージを出力し、Senju/DCジョブは異常終了します。

注釈

AWS/Elastic Container Service内コンテナで実行したコマンドの終了コードが 0 以外の場合、Senju/DCジョブは異常終了します。

4.3.7.5.3. AWS/Elastic Container Service連携ジョブの処理の流れ(強制停止時)

AWS/Elastic Container Service連携ジョブは、他のSenju/DCのジョブと同じく強制停止させることができます。

Senju/DCのジョブスケジュールより、AWS/Elastic Container Service連携ジョブを強制停止しても、AWS/Elastic Container Service内コンテナで実行中のコマンドは実行されたままとなります。

Senju/DCのジョブスケジュールでは、強制停止されたジョブの状態は異常終了となります。