

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

# Amazon CloudWatch Logs によるデータ転送のモニタリング
<a name="configure-logging"></a>

CloudWatch Logs を使用して AWS DataSync 転送をモニタリングできます。少なくとも基本情報 (転送エラーなど) をログに記録するようにタスクを設定することをお勧めします。

## DataSync が CloudWatch ロググループにログをアップロードすることを許可する
<a name="cloudwatchlogs"></a>

DataSync タスクの[ログ記録を設定する](#configure-logging-for-task)には、DataSync がログを送信するアクセス許可を持つ CloudWatch ロググループが必要です。このアクセスは、 AWS Identity and Access Management (IAM) ロールを使用してセットアップします。これが具体的にどのように機能するかは、[タスクモード](choosing-task-mode.md)によって異なります。

------
#### [ Enhanced mode ]

拡張モードでは、DataSync はタスクログを `/aws/datasync` という名前のロググループに自動的に送信します。そのロググループが に存在しない場合 AWS リージョン、DataSync はタスクの作成時に IAM [サービスにリンクされたロール](https://docs.aws.amazon.com/datasync/latest/userguide/using-service-linked-roles-service-action-2.html)を使用して、ユーザーに代わってロググループを作成します。

------
#### [ Basic mode ]

基本モードを使用して DataSync タスクの CloudWatch ロググループを設定するには、いくつかの方法があります。コンソールでは、ほとんどの場合に DataSync がログをアップロードするために必要なアクセス許可が含まれる IAM ロールを自動的に作成できます。この自動生成されたロールは、最小特権の観点からはニーズに合わない可能性あることに注意してください。

既存の CloudWatch ロググループを使用する場合や、タスクをプログラムで作成する場合は、IAM ロールを自分で作成する必要があります。

これらのアクセス許可を付与する IAM ポリシーの例を次に示します。

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "DataSyncLogsToCloudWatchLogs",
            "Effect": "Allow",
            "Action": [
                "logs:PutLogEvents",
                "logs:CreateLogStream"
            ],
            "Principal": {
                "Service": "datasync.amazonaws.com"
            },
            "Condition": {
                "ArnLike": {
                    "aws:SourceArn": [
                    "arn:aws:datasync:us-east-1:444455556666:task/*"
                    ]
                },
                "StringEquals": {
                "aws:SourceAccount": "444455556666"
                }
            },
            "Resource": "arn:aws:logs:us-east-1:444455556666:log-group:*:*"
        }
    ]
}
```

ポリシーでは、`Condition` ステートメントを使用して、指定したアカウントの DataSync タスクのみが、指定した CloudWatch ロググループにアクセスできるようにします。混乱した代理問題を防ぐために、これらの `Condition` ステートメントで [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn) および [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount) グローバル条件コンテキストキーを使用することをお勧めします。詳細については、「[サービス間の混乱した代理の防止](cross-service-confused-deputy-prevention.md)」を参照してください。

DataSync タスクを指定するには、 をタスク AWS リージョン がある のリージョンコード ( など`us-west-2`) *`region`*に置き換え、 をタスクを含むアカウントの AWS アカウント ID *`account-id`*に置き換えます。CloudWatch ロググループを指定するには、同じ値を置き換えます。`Resource` ステートメントを修正して、特定のロググループをターゲットにすることもできます。`SourceArn` および `SourceAccount` の使用の詳細については、「*IAM ユーザーガイド*」の「[Global condition keys](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount)」を参照してください。

ポリシーを適用するには、このポリシーステートメントをローカルコンピュータ上のファイルに保存します。次に、次の AWS CLI コマンドを実行してリソースポリシーを適用します。このサンプルコマンドを使用するには、`full-path-to-policy-file` を、ポリシーステートメントを含むファイルへのパスに置き換えます。

```
aws logs put-resource-policy --policy-name trust-datasync --policy-document file://full-path-to-policy-file
```

**注記**  
DataSync エージェントをアクティブ化したのと同じ AWS アカウント と AWS リージョン を使用して、このコマンドを実行します。

詳細については、「[https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/Working-with-log-groups-and-streams.html](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/Working-with-log-groups-and-streams.html)」を参照してください。

------

## DataSync タスクのログ記録の設定
<a name="configure-logging-for-task"></a>

DataSync タスクには、少なくともある程度のレベルのログ記録を設定することをお勧めします。

**[開始する前に]**  
DataSync には、CloudWatch ロググループにログをアップロードするためのアクセス権限が必要です。詳細については、「[DataSync が CloudWatch ロググループにログをアップロードすることを許可する](#cloudwatchlogs)」を参照してください。

### DataSync コンソールの使用
<a name="configure-logging-steps-console"></a>

次の手順は、タスクを作成する際に CloudWatch ロギングを設定する方法を示しています。タスクを編集するときにログ記録を設定することもできます。

1. [https://console.aws.amazon.com/datasync/](https://console.aws.amazon.com/datasync/) で AWS DataSync コンソールを開きます。

1. 左側のナビゲーションペインで **[データ転送]** を展開し、**[タスク]**、**[タスクの作成]** の順に選択します。

1. タスクのソースと送信先の場所を設定します。

   詳細については、[でデータを転送できる場所 AWS DataSync](working-with-locations.md)を参照してください。

1. **[設定の構成]** ページで、[[タスクモード]](choosing-task-mode.md) とその他のオプションを選択します。

   オプションは以下のとおりです。
   + [マニフェスト](transferring-with-manifest.md)または[フィルター](filtering.md)を使用して、転送するデータを指定します。
   + [ファイルメタデータを処理し](configure-metadata.md)、[データ整合性を検証する](configure-data-verification-options.md)方法を設定します。

1. [**ログレベル**] で、次のオプションのいずれかを選択します。
   + **[転送エラーなどの基本情報をログに記録する]** – 基本情報 (転送エラーなど) のみを公開します。
   + **[転送されたすべてのオブジェクトとファイルをログに記録する]** – DataSync が転送し、データ整合性チェックを実行するすべてのファイルまたはオブジェクトのログを公開します。
   + **[ログを生成しない]**

1. CloudWatch ロググループを作成または指定するために使用しているタスクモードに応じて、次のいずれかを実行します。

------
#### [ Enhanced mode ]

   **[タスクの作成]** を選択すると、DataSync は `/aws/datasync` という名前のロググループを自動的に使用 (または作成) します。

------
#### [ Basic mode ]

   **CloudWatch ロググループ** には、次のいずれかを実行して DataSync がログをアップロードする権限を持つロググループを指定します。
   + DataSync がログをアップロードできるようにするロググループを自動的に作成するには、[**自動生成**] を選択します。
   + 現在の AWS リージョンの既存のロググループを選択します。

     既存のロググループを選択する場合は、そのロググループにログをアップロードする[アクセス許可が DataSync にある](#cloudwatchlogs)ことを確認してください。

------

1. **[Create task]** (タスクの作成) を選択します。

[タスクを開始する](run-task.md)準備ができました。

### の使用 AWS CLI
<a name="configure-logging-steps-cli"></a>

1. 次の `create-task` コマンドをコピーします。

   ```
   aws datasync create-task \
     --source-location-arn "arn:aws:datasync:us-east-1:account-id:location/location-id" \
     --destination-location-arn "arn:aws:datasync:us-east-1:account-id:location/location-id" \
     --task-mode "ENHANCED-or-BASIC" \
     --name "task-name" \
     --options '{"LogLevel": "log-level"}' \
     --cloudwatch-log-group-arn "arn:aws:logs:us-east-1:account-id:log-group:log-group-name:*"
   ```

1. `--source-location-arn` パラメータには、ソースの場所の Amazon リソースネーム (ARN) を指定します。

1. `--destination-location-arn` には、転送先の場所の ARN を指定します。

    AWS リージョン または アカウント間で転送する場合は、ARN に他のリージョンまたはアカウント ID が含まれていることを確認してください。

1. `--task-mode` には `ENHANCED` または `BASIC` を指定します。

1. (推奨) `--name` では、簡単に覚えられる名前をタスクに指定してください。

1. `LogLevel` では以下のいずれかのオプションを指定します。
   + `BASIC` - 基本情報 (転送エラーなど) のみを含むログを公開します。
   + `TRANSFER` - DataSync タスクが転送し、データの整合性チェックを行うすべてのファイルまたはオブジェクトのログを公開します。
   + `NONE` – ログを生成しません。

1. -`-cloudwatch-log-group-arn` では、CloudWatch ロググループの ARN を指定します。
**重要**  
`--task-mode` が `ENHANCED` の場合、このオプションを指定する必要はありません。詳細については、「[DataSync が CloudWatch ロググループにログをアップロードすることを許可する](#cloudwatchlogs)」を参照してください。

1. `create-task` コマンドを実行します。

   コマンドが成功すると、作成した場所の ARN を示す応答が返されます。例えば、次のようになります。

   ```
   { 
       "TaskArn": "arn:aws:datasync:us-east-1:111222333444:task/task-08de6e6697796f026" 
   }
   ```

[タスクを開始する](run-task.md)準備ができました。

### DataSync API の使用
<a name="configure-logging-steps-api"></a>

以下のいずれかのオペレーションで `CloudWatchLogGroupArn` パラメータを使用して、タスクの CloudWatch ロギングを設定できます。
+ [https://docs.aws.amazon.com/datasync/latest/userguide/API_CreateTask.html](https://docs.aws.amazon.com/datasync/latest/userguide/API_CreateTask.html)
+ [https://docs.aws.amazon.com/datasync/latest/userguide/API_UpdateTask.html](https://docs.aws.amazon.com/datasync/latest/userguide/API_UpdateTask.html)

## DataSync タスクログの表示
<a name="monitoring-verification-errors-cloudwatch"></a>

[タスクを開始する](run-task.md)ときは、CloudWatch コンソールまたは AWS CLI (他のオプションの中でも) を使用して、タスク実行のログを表示できます。詳細については、「[https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/Working-with-log-groups-and-streams.html](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/Working-with-log-groups-and-streams.html)」を参照してください。

DataSync は、拡張モードタスク用の JSON 構造化ログを提供しています。基本モードタスクには非構造化ログがあります。次の例は、基本モードログと比較して、拡張モードログで検証エラーがどのように表示されるかを示しています。

------
#### [ Enhanced mode log example ]

```
{
    "Action": "VERIFY",
    "Source": {
        "LocationId": "loc-abcdef01234567890",
        "RelativePath": "directory1/directory2/file1.txt"
    },
    "Destination": {
        "LocationId": "loc-05ab2fdc272204a5f",
        "RelativePath": "directory1/directory2/file1.txt",
        "Metadata": {
            "Type": "Object",
            "ContentSize": 66060288,
            "LastModified": "2024-10-03T20:46:58Z",
            "S3": {
                "SystemMetadata": {
                    "ContentType": "binary/octet-stream",
                    "ETag": "\"1234abcd5678efgh9012ijkl3456mnop\"",
                    "ServerSideEncryption": "AES256"
                },
                "UserMetadata": {
                    "file-mtime": "1602647222/222919600"
                },
                "Tags": {}
            }
        }
    },
    "ErrorCode": "FileNotAtSource",
    "ErrorDetail": "Verification failed due to file being present at the destination but not at the source"
}
```

------
#### [ Basic mode log example ]

```
[NOTICE] Verification failed > /directory1/directory2/file1.txt
[NOTICE] /directory1/directory2/file1.txt   dstMeta: type=R mode=0755 uid=65534 gid=65534 size=8972938 atime=1728657659/0 mtime=1728657659/0 extAttrsHash=0
[NOTICE]   dstHash: f9c2cca900301d38b0930367d8d587153154af467da0fdcf1bebc0848ec72c0d
```

------