

# モニタリング
<a name="microvms-monitoring"></a>

このページでは、AWS Lambda MicroVMs の CloudWatch ログ記録 (ビルドとランタイム) と CloudTrail 監査について説明します。

## ログ記録 (CloudWatch Logs)
<a name="microvms-monitoring-logging"></a>

AWS Lambda MicroVMs は 2 つのフェーズで CloudWatch にログをストリーミングします。

ビルドログ  
Lambda は、イメージの作成中にビルドログ (`Dockerfile` 実行からの出力、アプリケーションの起動、フック呼び出しなど) を生成します。これらのログは、ビルドロールを使用してストリーミングされ、デフォルトのロググループ `/aws/lambda/microvms/<image-name>` に書き込まれます。

ランタイムログ  
Lambda は、実行中の MicroVM から CloudWatch にアプリケーションの stdout と stderr をストリーミングします。ランタイムログは実行ロールを使用してストリーミングされ、同じデフォルトロググループに書き込まれます。ログストリームはデフォルトで MicroVM ID に設定されます。

**重要**  
実行ロールがない場合、アプリケーションの stdout と stderr は実行時に CloudWatch に転送されません。ランタイムログを受信するには、`logs:CreateLogGroup`、`logs:CreateLogStream`、`logs:PutLogEvents` のアクセス許可を持つ実行ロールを指定します。

### カスタムログの送信先
<a name="microvms-monitoring-logging-custom"></a>

カスタムロググループとストリームは、`run-microvm` または `create-microvm-image` の `--logging` パラメータで設定できます。

```
--logging '{"cloudWatch":{"logGroup":"/my-app/microvms","logStream":"custom-stream"}}'
```

`logStream` を省略すると、デフォルトで MicroVM ID に設定されます。

次の設定を渡すことによってログ記録を明示的に無効にできます。

```
--logging '{"disabled":{}}'
```

## CloudTrail ロギング
<a name="microvms-monitoring-cloudtrail"></a>

Lambda MicroVM は、ユーザー、ロール、または AWS サービスによって実行されたアクションのレコードを提供するサービスである CloudTrail と統合されています。CloudTrail は、Launch Wizard のすべての API コールをイベントとしてキャプチャします。キャプチャされる呼び出しには、Lambda MicroVMs コンソールからの呼び出しと Lambda API オペレーションへのコード呼び出しが含まれます。

証跡を作成する場合は、Amazon S3 バケットへの CloudTrail イベント (Lambda MicroVMs のイベントを含む) の継続的な配信を有効にすることができます。証跡を設定しない場合でも、CloudTrail コンソールの [Event history] (イベント履歴) で最新のイベントを表示できます。

CloudTrail によって収集された情報を使用すると、Lambda MicroVMs に対するリクエスト、リクエスト元の IP アドレス、リクエスト元、リクエスト日時などの詳細を確認できます。

CloudTrail は、Lambda MicroVMs の 2 種類のイベントを記録します。1 つは管理イベント (イメージの作成や削除などのコントロールプレーンオペレーション) で、もう １つはデータイベント (MicroVM の実行や停止などのデータプレーンオペレーション) です。デフォルトでは、証跡は管理イベントがログに記録されます。データイベントには明示的なオプトインが必要です。

### 管理イベント
<a name="microvms-monitoring-cloudtrail-mgmt"></a>

Lambda MicroVMs 管理イベントは、デフォルトで CloudTrail に記録されるコントロールプレーンオペレーションです。管理イベントには、MicroVM イメージの作成、更新、削除に加えて、リソースの一覧表示と説明が含まれます。

次の Lambda MicroVMs アクションは管理イベントとして記録されます。
+ `CreateMicrovmImage`
+ `DeleteMicrovmImage`
+ `DeleteMicrovmImageVersion`
+ `UpdateMicrovmImage`
+ `UpdateMicrovmImageVersion`
+ `ListMicrovmImages`
+ `GetMicrovmImage`
+ `ListMicrovmImageVersions`
+ `GetMicrovmImageVersion`
+ `ListMicrovmImageBuilds`
+ `GetMicrovmImageBuild`
+ `ListMicrovms`
+ `GetMicrovm`
+ `ListManagedMicrovmImages`

### データイベント
<a name="microvms-monitoring-cloudtrail-data"></a>

データイベントは、リソース上またはリソース内で実行されたリソースオペレーション (MicroVM の実行や終了など) に関する情報を提供します。これらのイベントは、データプレーンオペレーションとも呼ばれます。データイベントは、多くの場合、高ボリュームのアクティビティです。デフォルトでは、CloudTrail はデータイベントをログ記録しません。Lambda MicroVM のデータイベントのログ記録は明示的に有効にする必要があります。

Lambda MicroVMs データイベントの CloudTrail リソースタイプは `AWS::Lambda::MicrovmImage` です。CloudTrail コンソールまたは AWS CLI を使用して、データイベントをログに記録するように証跡またはイベントデータストアを設定できます。

次の Lambda MicroVMs アクションはデータイベントとして記録されます。
+ `RunMicrovm`
+ `TerminateMicrovm`
+ `SuspendMicrovm`
+ `ResumeMicrovm`
+ `CreateMicrovmAuthToken`
+ `CreateMicrovmShellAuthToken`

すべての MicroVM イメージのデータイベントをログに記録するには、次の高度なイベントセレクタを使用します。

```
{
   "Name": "Log Lambda MicroVM data events",
   "FieldSelectors": [
     { "Field": "eventCategory", "Equals": ["Data"] },
     { "Field": "resources.type", "Equals": ["AWS::Lambda::MicrovmImage"] }
   ]
}
```

### データイベントログを有効にする
<a name="microvms-monitoring-cloudtrail-enable"></a>

AWS CLI を使用してデータイベントログを有効にするには、高度なイベントセレクタで `put-event-selectors` コマンドを実行します。

```
aws cloudtrail put-event-selectors \
   --trail-name my-trail \
   --advanced-event-selectors '[{
     "Name": "Log Lambda MicroVM data events",
     "FieldSelectors": [
       { "Field": "eventCategory", "Equals": ["Data"] },
       { "Field": "resources.type", "Equals": ["AWS::Lambda::MicrovmImage"] }
     ]
   }]'
```

### Cloudtrail ログエントリを理解する
<a name="microvms-monitoring-cloudtrail-entries"></a>

CloudTrail 証跡は、指定した Amazon S3 バケットに API アクティビティレコードを配信します。各ログエントリは 1 つの API リクエストを表し、発信元の ID、タイムスタンプ、リクエストパラメータ、レスポンスが含まれます。

次の例は、`RunMicrovm` アクションのデータイベントを示す CloudTrail ログエントリを示します。

```
{
  "eventVersion": "1.11",
  "userIdentity": {
    "type": "AssumedRole",
    "principalId": "A1B2C3D4E5F6G7EXAMPLE:mySessionName",
    "arn": "arn:aws:sts::111122223333:assumed-role/MyRole/mySessionName",
    "accountId": "111122223333",
    "accessKeyId": "AKIAIOSFODNN7EXAMPLE"
  },
  "eventTime": "2026-04-20T18:26:44Z",
  "eventSource": "lambda.amazonaws.com",
  "eventName": "RunMicrovm",
  "awsRegion": "us-east-1",
  "sourceIPAddress": "127.0.0.1",
  "requestParameters": {
    "microvmImageArn": "arn:aws:lambda:us-east-1:111122223333:microvm-image:my-image"
  },
  "responseElements": {
    "microvmId": "ai-12345678-abcd-1234-ef56-123456789abc",
    "microvmState": "PENDING",
    "endpoint": "12345678-abcd-1234-ef56-123456789abc.lambda-microvm.us-east-1.on.aws",
    "microvmImageArn": "arn:aws:lambda:us-east-1:111122223333:microvm-image:my-image",
    "microvmImageVersion": "1.0"
  },
  "requestID": "7aebcd0f-cda1-11e4-aaa2-e356da31e4ff",
  "eventID": "e92a3e85-8ecd-4d23-8074-843aabfe89bf",
  "readOnly": false,
  "resources": [
    {
      "accountId": "111122223333",
      "type": "AWS::Lambda::MicrovmImage",
      "ARN": "arn:aws:lambda:us-east-1:111122223333:microvm-image:my-image"
    }
  ],
  "eventType": "AwsApiCall",
  "managementEvent": false,
  "recipientAccountId": "111122223333",
  "eventCategory": "Data"
}
```