翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
awslogs ログドライバーを使用する
デフォルトでは、AWS Batch は awslogs
ログドライバが CloudWatch Logs にログ情報を送信することを可能にします。この機能により、コンテナからの異なるログを 1 か所で便利に表示できます。また、コンテナログがコンテナインスタンスのディスク容量を占めることも防止できます。このトピックでは、ジョブ定義で awslogs
ログドライバーを設定する方法について説明します。
注記
AWS Batch コンソールでは、ジョブ定義を作成するときに ロギング設定 セクションで awslogs
ログドライバーを設定できます。
注記
ジョブのコンテナによってログ記録される情報のタイプは、ENTRYPOINT
コマンドによって大きく異なります。デフォルトでは、キャプチャされるログは、コンテナをローカルに実行した場合にインタラクティブターミナルに表示されるコマンド出力 (STDOUT
および STDERR
I/O ストリーム) を示します。awslogs
ログドライバーは、これらのログを Docker から CloudWatch Logs に渡します。Docker ログの処理方法 (ファイルデータやストリームをキャプチャする別の方法) の詳細については、Docker ドキュメントのコンテナまたはサービスのログを表示する
コンテナインスタンスから CloudWatch Logs にシステムログを送信するには、AWS Batch での CloudWatch Logs の使用を参照してください。CloudWatch Logs の詳細については、Amazon CloudWatch Logs ユーザーガイドのログファイルのモニタリングおよびCloudWatch Logs クォータを参照してください。
AWS Batch JobDefiniton データ型の awslogs ログドライバーのオプション
awslogs
ログドライバーは、AWS Batch ジョブ定義で以下のオプションをサポートします。詳細については、Docker ドキュメントのCloudWatch Logs ロギングドライバーの設定
awslogs-region
-
必須:いいえ
awslogs
ログドライバーが Docker ログを送信するリージョンを指定します。デフォルトでは、使用されるリージョンはジョブのリージョンと同じです。CloudWatch Logs では、異なるリージョンのジョブからすべてのログを 1 つのリージョンに送信するように選択できます。これにより、それらを 1 つの場所からすべて表示できます。または、より詳細なアプローチのために、リージョンごとにそれらを分離することもできます。ただし、このオプションを選択する場合は、指定したロググループが、指定したリージョンに存在することを確認してください。 awslogs-group
-
必須:オプション
この
awslogs-group
オプションを選択すると、awslogs
ログドライバーがログストリームを送信するロググループを指定できます。これを指定しない場合、aws/batch/job
が使用されます。 awslogs-stream-prefix
-
必須:オプション
awslogs-stream-prefix
オプションを使用して、指定したプレフィックス、コンテナ名、コンテナの所属先における AWS Batch ジョブの Amazon ECS タスクの ID に、ログストリーミングを関連付けることができます。このオプションでプレフィックスを指定した場合、ログストリームの形式は以下のようになります。prefix-name
/default/ecs-task-id
awslogs-datetime-format
-
必須:いいえ
このオプションは、Python
strftime
形式で複数行起動パターンを定義します。ログメッセージは、パターンに一致する 1 行と、それに続くパターンに一致しない行で構成されます。したがって、一致した行はログメッセージ間の区切り文字です。この形式を使用する場合のユースケースの例としては、スタックダンプなどの解析された出力があり、これを使用しなければ、複数のエントリに記録されることになります。適切なパターンにより、単一のエントリにキャプチャさせます。
詳細については、awslogs-datetime-format
を参照してください。 awslogs-datetime-format
とawslogs-multiline-pattern
の両方が設定されている場合、このオプションは常に優先されます。注記
複数行のログ記録は、すべてのログメッセージの正規表現の解析とマッチングを実行します。これによりログ記録のパフォーマンスに悪影響が及ぶ可能性があります。
awslogs-multiline-pattern
-
必須:いいえ
このオプションでは、正規表現を使用して複数行起動パターンを定義します。ログメッセージは、パターンに一致する 1 行と、それに続くパターンに一致しない行で構成されます。したがって、一致した行はログメッセージ間の区切り文字です。
詳細については、Docker ドキュメントのawslogs-multiline-pattern
を参照してください。 awslogs-datetime-format
も設定されている場合は、このオプションは無視されます。注記
複数行のログ記録は、すべてのログメッセージの正規表現の解析とマッチングを実行します。これによりログ記録のパフォーマンスに悪影響が及ぶ可能性があります。
awslogs-create-group
-
必須:いいえ
自動的に作成されたロググループが必要かどうかを指定します。このオプションを指定しない場合、デフォルトは
false
です。警告
このオプションは推奨されません。各ジョブがロググループの作成を試みるため、ジョブが失敗する可能性が高くなるため、CloudWatch Logs CreateLogGroup API アクションを使用して、事前にロググループを作成することをお勧めします。
注記
logs:CreateLogGroup
を使用しようとする前に、実行ロールの IAM ポリシーにはawslogs-create-group
アクセス権限が含まれている必要があります。
ジョブ定義でログ設定を指定する
デフォルトでは、AWS Batch が awslogs
ログドライバーを有効にします。ここでは、ジョブの awslogs
ログ設定をカスタマイズする方法について説明します。詳細については、シングルノードのジョブ定義を作成する を参照してください。
次のログ設定 JSON スニペットは、ジョブごとに logConfiguration
オブジェクトが指定されています。1 つは awslogs-wordpress
というロググループにログを送る WordPress のジョブで、もう 1 つは awslogs-mysql
というロググループにログを送る MySQL コンテナのものです。どちらのコンテナも awslogs-example
ログストリームプレフィックスを使用します。
"logConfiguration": { "logDriver": "awslogs", "options": { "awslogs-group": "
awslogs-wordpress
", "awslogs-stream-prefix": "awslogs-example
" } }
"logConfiguration": { "logDriver": "awslogs", "options": { "awslogs-group": "
awslogs-mysql
", "awslogs-stream-prefix": "awslogs-example
" } }
AWS Batch コンソールで、wordpress
ジョブ定義のログ設定は次の図のように指定されています。
awslogs
ログドライバーを使用するタスク定義をジョブ定義ログ設定に登録すると、ジョブ定義を使用してジョブを送信し、CloudWatch Logsへのログの送信をスタートできます。詳細については、チュートリアル: ジョブを送信するを参照してください。