

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

# awslogs ログドライバーを使用する
<a name="using_awslogs"></a>

デフォルトでは、 は`awslogs`ログドライバーが CloudWatch Logs にログ情報を送信 AWS Batch できるようにします。この機能により、コンテナからの異なるログを 1 か所で便利に表示できます。また、コンテナログがコンテナインスタンスのディスク容量を占めることも防止できます。このトピックでは、ジョブ定義で `awslogs` ログドライバーを設定する方法について説明します。

**注記**  
 AWS Batch コンソールでは、ジョブ定義を作成するときに、**ログ記録設定**セクションで`awslogs`ログドライバーを設定できます。

**注記**  
ジョブのコンテナによってログ記録される情報のタイプは、`ENTRYPOINT` コマンドによって大きく異なります。デフォルトでは、キャプチャされるログは、コンテナをローカルに実行した場合にインタラクティブターミナルに表示されるコマンド出力 (`STDOUT` および `STDERR` I/O ストリーム) を示します。`awslogs` ログドライバーは、これらのログを Docker から CloudWatch Logs に渡します。Docker ログの処理方法 (ファイルデータやストリームをキャプチャする別の方法) の詳細については、Docker ドキュメントの[コンテナまたはサービスのログを表示する](https://docs.docker.com/config/containers/logging/)を参照してください。

コンテナインスタンスから CloudWatch Logs にシステムログを送信するには、[での CloudWatch Logs の使用 AWS Batch](using_cloudwatch_logs.md)を参照してください。CloudWatch Logs の詳細については、*Amazon CloudWatch Logs ユーザーガイド*の[ログファイルのモニタリング](https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/WhatIsCloudWatchLogs.html)および [CloudWatch Logs クォータ](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/cloudwatch_limits_cwl.html)を参照してください。

## AWS Batch JobDefiniton データ型の awslogs ログドライバーオプション
<a name="create_awslogs_logdriver_options"></a>

`awslogs` ログドライバーは、 AWS Batch ジョブ定義で次のオプションをサポートしています。詳細については、Docker ドキュメントの[CloudWatch Logs ロギングドライバーの設定](https://docs.docker.com/config/containers/logging/awslogs/)を参照してください。

`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](https://docs.docker.com/config/containers/logging/awslogs/#awslogs-datetime-format)を参照してください。  
`awslogs-datetime-format` と `awslogs-multiline-pattern` の両方が設定されている場合、このオプションは常に優先されます。  
複数行のログ記録は、すべてのログメッセージの正規表現の解析とマッチングを実行します。これによりログ記録のパフォーマンスに悪影響が及ぶ可能性があります。

`awslogs-multiline-pattern`  
必須: いいえ  
このオプションでは、正規表現を使用して複数行起動パターンを定義します。ログメッセージは、パターンに一致する 1 行と、それに続くパターンに一致しない行で構成されます。したがって、一致した行はログメッセージ間の区切り文字です。  
詳細については、Docker ドキュメントの[awslogs-multiline-pattern](https://docs.docker.com/config/containers/logging/awslogs/#awslogs-multiline-pattern)を参照してください。  
`awslogs-datetime-format` も設定されている場合は、このオプションは無視されます。  
複数行のログ記録は、すべてのログメッセージの正規表現の解析とマッチングを実行します。これによりログ記録のパフォーマンスに悪影響が及ぶ可能性があります。

`awslogs-create-group`  
必須: いいえ  
自動的に作成されたロググループが必要かどうかを指定します。このオプションを指定しない場合、デフォルトは `false` です。  
このオプションは推奨されません。各ジョブがロググループの作成を試みるため、ジョブが失敗する可能性が高くなるため、CloudWatch Logs [CreateLogGroup API](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_CreateLogGroup.html) アクションを使用して、事前にロググループを作成することをお勧めします。
`logs:CreateLogGroup` を使用しようとする前に、実行ロールの IAM ポリシーには `awslogs-create-group` アクセス権限が含まれている必要があります。

## ジョブ定義でログ設定を指定する
<a name="specify-log-config"></a>

デフォルトでは、 は`awslogs`ログドライバー AWS Batch を有効にします。ここでは、ジョブの `awslogs` ログ設定をカスタマイズする方法について説明します。詳細については、[シングルノードのジョブ定義を作成する](create-job-definition.md)を参照してください。

次のログ設定 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`ジョブ定義のログ設定が指定されます。

![\[Log configuration interface showing awslogs driver with group and stream prefix options.\]](http://docs.aws.amazon.com/ja_jp/batch/latest/userguide/images/awslogs-console-config.png)


`awslogs` ログドライバーを使用するタスク定義をジョブ定義ログ設定に登録すると、ジョブ定義を使用してジョブを送信し、CloudWatch Logs へのログの送信をスタートできます。詳細については、[チュートリアル: ジョブを送信する](submit_job.md)を参照してください。