AWS Glue ジョブの連続ログ記録の有効化 - AWS Glue

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

AWS Glue ジョブの連続ログ記録の有効化

AWS Glue コンソールを使用するか、AWS Command Line Interface (AWS CLI) を通じて、連続ログ記録を有効にできます。

新しいジョブを作成するか、既存のジョブを編集または AWS CLI を介して有効にするときに、連続ログ記録を有効にできます。

また、Amazon CloudWatch ロググループ名、AWS Glue ジョブ実行 ID ドライバー/エグゼキュター ID の前の CloudWatch ログストリームプレフィックス、ログメッセージのログ変換パターンなどのカスタム設定オプションを指定することもできます。これらの設定は、異なる有効期限ポリシーを持つカスタム CloudWatch ロググループに集約ログを設定し、カスタムログストリームプレフィックスと変換パターンを使用してさらに分析するのに役立ちます。

AWS Management Console の使用

次のステップに従ってコンソールを使用して、AWS Glue ジョブを作成または編集するときに連続ログ記録を有効にします。

連続ログ記録を有効にして新しい AWS Glue ジョブを作成するには
  1. AWS Management Consoleにサインインし、AWS Glue コンソール (https://console.aws.amazon.com/glue/) を開きます。

  2. ナビゲーションペインで [ETL ジョブ] を選択します。

  3. [ビジュアル ETL] を選択します。

  4. [Job 詳細] タブで、[詳細プロパティ] セクションを展開します。

  5. [継続的なログ記録][CloudWatch でログの有効化] を選択します。

既存の AWS Glue ジョブに対して連続ログ記録を有効にするには
  1. https://console.aws.amazon.com/glue/ で AWS Glue コンソール を開きます。

  2. ナビゲーションペインで [Jobs] (ジョブ) を選択します。

  3. [Jobs (ジョブ)] リストから既存のジョブを選択します。

  4. [Action (アクション)]、[Edit job (ジョブの編集)] の順に選択します。

  5. [Job 詳細] タブで、[詳細プロパティ] セクションを展開します。

  6. [継続的なログ記録][CloudWatch でログの有効化] を選択します。

AWS CLI の使用

連続ログ記録を有効にするには、 AWS Glue ジョブにジョブパラメータを渡します。他の AWS Glue ジョブパラメータに類似した次の特殊なジョブパラメータを渡します。詳細については、「AWS Glue ジョブでジョブパラメータを使用する」を参照してください。

'--enable-continuous-cloudwatch-log': 'true'

カスタム Amazon CloudWatch ロググループ名を指定できます。指定しない場合、デフォルトのロググループ名は、/aws-glue/jobs/logs-v2/ になります。

'--continuous-log-logGroup': 'custom_log_group_name'

カスタム Amazon CloudWatch ログストリームプレフィックスを指定できます。指定しない場合、デフォルトのログストリームプレフィックスはジョブ実行 ID になります。

'--continuous-log-logStreamPrefix': 'custom_log_stream_prefix'

カスタムの連続ロギング変換パターンを指定できます。指定しない場合、デフォルトの変換パターンは %d{yy/MM/dd HH:mm:ss} %p %c{1}: %m%n になります。変換パターンは、ドライバーログとエグゼキューターログにのみ適用されます。AWS Glue の進行状況バーには影響しません。

'--continuous-log-conversionPattern': 'custom_log_conversion_pattern'

カスタムスクリプトロガーを使用したアプリケーション固有のメッセージのログ記録

AWS Glue ロガーを使用すると、ドライバーログストリームにリアルタイムで送信される、スクリプトのアプリケーション固有のメッセージを記録できます。

Python スクリプトの例を以下に示します。

from awsglue.context import GlueContext from pyspark.context import SparkContext sc = SparkContext() glueContext = GlueContext(sc) logger = glueContext.get_logger() logger.info("info message") logger.warn("warn message") logger.error("error message")

Scala スクリプトの例を以下に示します。

import com.amazonaws.services.glue.log.GlueLogger object GlueApp { def main(sysArgs: Array[String]) { val logger = new GlueLogger logger.info("info message") logger.warn("warn message") logger.error("error message") } }

進行状況バーでのジョブ進行状況の表示

AWS Glue は、JOB_RUN_ID-progress-bar ログストリームでリアルタイムの進行状況バーを提供して AWS Glue ジョブ実行のステータスを確認します。現時点では、glueContext を初期化するジョブのみがサポートされています。glueContext を初期化せずに純粋な Spark ジョブを実行すると、AWS Glue 進行状況バーは表示されません。

進行状況バーでは、以下の進行状況が 5 秒ごとに更新されます。

Stage Number (Stage Name): > (numCompletedTasks + numActiveTasks) / totalNumOfTasksInThisStage]

連続ログ記録によるセキュリティ設定。

CloudWatch ログのセキュリティ設定が有効になっている場合、AWS Glue では、連続ログに対して次のような名前のロググループが作成されます。

<Log-Group-Name>-<Security-Configuration-Name>

デフォルトのロググループおよびカスタムロググループは次のようになります。

  • デフォルトの連続ロググループは /aws-glue/jobs/logs-v2-<Security-Configuration-Name> となります。

  • カスタム連続ロググループは <custom-log-group-name>-<Security-Configuration-Name> となります。

CloudWatch Logs でセキュリティ設定を有効にする場合、logs:AssociateKmsKey を IAM ロールのアクセス許可に追加する必要があります。そのアクセス許可が含まれていない場合、連続ログ記録は無効になります。また、CloudWatch Logs 暗号化を設定するには、Amazon CloudWatch Logs ユーザーガイドの「AWS Key Management Service を使用して CloudWatch Logs のログデータを暗号化する」を参照してください。

セキュリティ設定作成の詳細については、「AWS Glue コンソールでのセキュリティ設定の管理」を参照してください。