

# EC2 Windows インスタンスの起動時に EC2Launch v2 エージェントを使用してタスクを実行する
<a name="ec2launch-v2"></a>

AWS Windows Server 2022 および Windows Server 2025 AMI から起動される Amazon EC2 のサポートされたすべてのインスタンスには、EC2Launch v2 起動エージェント `EC2Launch.exe`がデフォルトで含まれています。また、デフォルトの起動エージェントとして EC2Launch v2 がインストールされた、Windows Server 2016 および 2019 AMI も提供されています。これらの AMI は、EC2Launch v1 を含む Windows Server 2016 および 2019 AMI に追加して提供されています。デフォルトで EC2Launch v2 を含む Windows AMI を検索するには、Amazon EC2 コンソールの **AMI** ページで、次のプレフィクスを入力して検索を行います。`EC2LaunchV2-Windows_Server-*`

起動エージェントのバージョン機能を比較するには、「[Amazon EC2 起動エージェントを比較する](configure-launch-agents.md#ec2launch-agent-compare)」を参照してください。

EC2Launch v2 により、インスタンスの起動時にタスクが実行されます。加えて、インスタンスが停止後に起動された場合、または再起動された場合にもタスクが実行されます。EC2Launch v2 では、オンデマンドでタスクを実行させることもできます。タスクには自動的に有効化されるものもありますが、手動で有効化しなければならないものもあります。EC2Launch v2 サービスは、EC2Config と EC2Launch のすべての機能をサポートしています。

このサービスは、設定ファイルを使用してオペレションを制御します。設定ファイルを更新するには、グラフィカルツールを使用するか、これを単一の .yml ファイル `agent-config.yml`として直接編集できます。ファイルロケーションの詳細については、「[EC2Launch v2 のディレクトリ構造](#ec2launch-v2-directory)」を参照してください。

EC2Launch v2 から発行される Windows イベントログを、エラーのトラブルシューティングやトリガーの設定に使用できます。詳細については、「[Windows イベントログ](ec2launchv2-troubleshooting.md#ec2launchv2-windows-event-logs)」を参照してください。

**サポートされる OS のバージョン**  
EC2Launch v2 エージェントでは、次の Windows Server オペレーティングシステム (OS) バージョンがサポートされます。
+ Windows Server 2025
+ Windows Server 2022
+ Windows Server 2019 (長期サービスチャネルおよび半期チャネル)
+ Windows Server 2016

**デフォルトで実行されるタスク**  
EC2Launch v2 エージェントは、インスタンスの初回開始時に、デフォルトで次のタスクを 1 回だけ実行します。タスクは、開始ステージ内で実行される順序に基づいて整理されます。

`Boot` ステージ
+ extendRootPartition

`PreReady` ステージ
+ activateWindows
+ setDnsSuffix
+ setAdminAccount
+ setWallpaper

`PostReady` ステージ
+ startSsm

## EC2Launch v2 の概念
<a name="ec2launch-v2-concepts"></a>

次に示す各概念は、EC2Launch v2 の使用を考慮する際の理解に役立ちます。

**agent-config**  
`agent-config` ファイルは、EC2Launch v2 の設定フォルダに置かれています。これには、Boot、Network、PreReady、PostReady の各ステージの設定が含まれます。このファイルを使用して、AMI の初回起動時または後続の起動時に実行するタスクのインスタンスの設定を指定します。  
デフォルトでは、EC2Launch v2 のインストール時にインストールされる `agent-config` ファイルに、標準の Amazon Windows AMI で使用される推奨設定が含まれています。設定ファイルを修正すると、EC2Launch v2 が指定する AMI での、デフォルトのブート処理を変更できます。ファイルロケーションの詳細については、「[EC2Launch v2 のディレクトリ構造](#ec2launch-v2-directory)」を参照してください。

**頻度**  
タスク頻度は、ブートコンテキストに応じて、いつタスクを実行するか決定されます。ほとんどのタスクで許可される頻度は 1 つだけです。`executeScript` タスクの頻度を指定できます。  
[EC2Launch v2 タスクの設定](ec2launch-v2-settings.md#ec2launch-v2-task-configuration) には次の頻度が表示されます。  
+ 1 回 — タスクは、AMI の初回起動時 (Sysprep の終了時) に 1 回実行されます。
+ 常時 — タスクは起動エージェントが実行されるたびに実行されます。起動エージェントは、以下の場合に実行されます。
  + インスタンスの起動または再起動
  + EC2Launch サービスの実行
  + `EC2Launch.exe run` の呼び出し

**ステージ**  
ステージとは、EC2Launch v2 エージェントが実行するタスクを論理的にグループ化したものです。一部のタスクは、特定のステージでのみ実行できます。その他は複数のステージで実行できます。`agent-config.yml` を使用するときは、ステージのリストと各ステージ内のタスクのリストを指定する必要があります。  
このサービスは、次の順序で実行されます。    
ステージ 1: ブート  
  
ステージ 2: ネットワーク  
  
ステージ 3: PreReady  
  
Windowsの準備ができました  
PreReady ステージが完了すると、サービスは Amazon EC2 コンソールに `Windows is ready` メッセージを送信します。  
ステージ 4: PostReady  
ユーザーデータは *PostReady* ステージで実行されます。スクリプトバージョンには、次のように `agent-config.yml` file *PostReady* ステージの前に実行されるものと後に実行されるものがあります。    
`agent-config.yml` 前  
+ YAML ユーザーデータバージョン 1.1
+ XML ユーザーデータ  
`agent-config.yml` 後  
+ YAML ユーザーデータバージョン 1.0 (後方互換性のためのレガシーバージョン)
ステージとタスクの例については、「[例:`agent-config.yml`](ec2launch-v2-settings.md#ec2launch-v2-example-agent-config)」を参照してください。  
ユーザーデータを使用する場合は、起動エージェントが実行するタスクのリストを指定する必要があります。ステージは暗黙に示しています。例については、「[例: ユーザーデータ](ec2launch-v2-settings.md#ec2launch-v2-example-user-data)」を参照してください。  
EC2Launch v2は、`agent-config.yml` およびユーザーデータで指定した順序でタスクのリストを実行します。ステージは順番に実行されます。次のステージは、前のステージが完了した後に開始されます。タスクも順番に実行されます。

**タスク**  
インスタンスに対してアクションを実行するために、タスクを呼び出すことができます。タスクは、`agent-config.yml` ファイルまたはユーザーデータで設定できます。EC2Launch v2 で使用可能なタスクのリストについては、「[EC2Launch v2 のタスク](#ec2launch-v2-tasks)」を参照してください。タスク設定スキーマの詳細については、「[EC2Launch v2 タスクの設定](ec2launch-v2-settings.md#ec2launch-v2-task-configuration)」を参照してください。

**ユーザーデータ**  
ユーザーデータは、インスタンスの起動時に設定できるデータです。ユーザーデータを更新して、カスタム AMI やクイックスタート AMI の設定を動的に変更できます。EC2Launch v2 は、60 KB のユーザーデータの入力長をサポートします。ユーザーデータに含まれるのは UserData ステージのみであるため、ユーザーデータは `agent-config` ファイルの後に実行されます。インスタンスの起動ウィザードを使用してインスタンスを起動するときにユーザーデータを入力することも、EC2 コンソールからユーザーデータを変更することもできます。ユーザーデータの操作方法の詳細については、[Amazon EC2 が Windows インスタンスのユーザーデータを処理する方法](user-data.md#ec2-windows-user-data)を参照してください。

## EC2Launch v2 タスクの概要
<a name="ec2launch-v2-tasks"></a>

EC2Launch v2 では、ブートが行われるたびに、次のタスクを実行できます。
+ インスタンスに関する情報をレンダリングする新しい壁紙を設定し、必要に応じてカスタマイズします。
+ ローカルマシンに作成される管理者アカウントの属性を設定します。
+ 検索サフィックスのリストに DNS サフィックスを追加します。まだ存在しないサフィックスのみがリストに追加されます。
+ 追加ボリュームのドライブ文字を設定し、これらを拡張して使用可能な領域を使用します。
+ 設定からファイルをディスクに書き込みます。
+ EC2Launch v2 設定ファイルでまたは `user-data` から指定されたスクリプトを実行します。`user-data` からのスクリプトは、プレーンテキストでも、圧縮して base64 形式での提供でも対応可能です。
+ 指定された引数でプログラムを実行します。
+ コンピュータ名を設定します。
+ インスタンス情報を Amazon EC2 コンソールに送信します。
+ RDP 証明書のサムプリントを Amazon EC2 コンソールに送信します。
+ オペレーティングシステムパーティションを動的に拡張して、未使用の領域が含まれるようにします。
+ ユーザーデータを実行します。ユーザーデータを指定する方法については、[EC2Launch v2 タスクの設定](ec2launch-v2-settings.md#ec2launch-v2-task-configuration)を参照してください。
+ メタデータサービスと AWS KMS サーバーに到達するように、非永続的な静的ルートを設定します。
+ 非ブートパーティションを `mbr` または `gpt` に設定します。
+ Sysprep 後に Systems Manager (SSM) サービスを開始します。
+ ENA 設定を最適化します。
+ 新しい Windows バージョンで OpenSSH を有効にします。
+ ジャンボフレームを有効にします。
+ EC2Launch v2 で実行するように Sysprep を設定します。
+ Windows イベントログを発行します。

## EC2Launch v2 のディレクトリ構造
<a name="ec2launch-v2-directory"></a>

EC2Launch v2 は、次のような構成のディレクトリにインストールする必要があります。
+ サービスバイナリ: `%ProgramFiles%\Amazon\EC2Launch`
+ サービスデータ (設定、ログファイル、状態ファイル): `%ProgramData%\Amazon\EC2Launch`

**注記**  
Windows では、デフォルトで `C:\ProgramData` 以下のファイルとフォルダは非表示になります。EC2Launch v2 のディレクトリとファイルを表示するには、Windows エクスプローラーにパスを入力するか、フォルダのプロパティを変更して非表示のファイルとフォルダを表示する必要があります。

`%ProgramFiles%\Amazon\EC2Launch` ディレクトリには、バイナリとサポートライブラリが含まれます。次のサブディレクトリが含まれます。
+ `settings`
  + `EC2LaunchSettingsUI.exe` - `agent-config.yml` ファイルを修正するためのユーザーインターフェース
  + `YamlDotNet.dll` - ユーザーインターフェイスでいくつかのオペレーションをサポートするための DLL
+ `tools`
  + `ebsnvme-id.exe` - インスタンスで EBS ボリュームのメタデータを調べるためのツール
  + `AWSAcpiSpcrReader.exe` - 使用する正しい COM ポートを決定するためのツール
  + `EC2LaunchEventMessage.dll` - EC2Launch の Windows イベントログ記録をサポートするための DLL。
+ `service`
  + `EC2LaunchService.exe` — 起動エージェントがサービスとして実行されたときに起動する Windows サービスの実行可能ファイル。
+ `EC2AgentTelemetry.dll` – EC2 エージェントテレメトリをサポートするための DLL
+ `EC2Launch.exe` - メインの EC2Launch 実行可能ファイル
+ `EC2LaunchAgentAttribution.txt` - EC2 Launch 内で使用されるコードの属性

`%ProgramData%\Amazon\EC2Launch` ディレクトリには以下のサブディレクトリがあります。ログ、設定、状態など、サービスによって生成されたすべてのデータは、このディレクトリに保存されます。
+ `config` – 設定

  サービス設定ファイルは、このディレクトリに `agent-config.yml` として保存されます。このファイルを更新し、サービスによってデフォルトで実行されるタスクを変更、追加、削除できます。このディレクトリにファイルを作成する権限は、権限の昇格を防ぐために、管理者アカウントに制限されています。
+ `log` – インスタンスログ

  サービス (`agent.log`) およびテレメトリ (`telemetry.log`) のログはこのディレクトリに保存されます。`agent.log` は 1 MB のサイズに達すると、自動的にローテーションされ、タイムスタンプ形式 (`agent-2026-03-02T18-56-39.188.log` など) でバックアップファイルが作成されます。一度に保持できるバックアップログファイルは 1 つだけです。
+ `state` – サービスの状態データ

  実行するタスクを決定するためにサービスで使用する状態がここに保存されます。Sysprep 後にサービスが実行済みであるかどうかを示す `.run-once` ファイルがあり、これにより、頻度が 1 回のタスクは次の実行でスキップされます。このサブディレクトリには、各タスクのステータスを追跡するための `previous-state.json` と `state.json` があります。
+ `sysprep` – Sysprep

  このディレクトリ内のファイルを使用して、再利用可能なカスタマイズされた Windows AMI の作成時に Sysprep で実行するオペレーションを決定します。
+ `wallpaper` – 壁紙

  この壁紙イメージはこのディレクトリに保存されます。

## テレメトリ
<a name="ec2launch-v2-telemetry"></a>

テレメトリは、AWSを使用して、要件の理解を深め、問題を診断し、AWS のサービスのサービスのユーザーエクスペリエンスを向上するのに役立つ追加情報です。

EC2Launch v2 バージョン`2.1.592` およびそれ以降のバージョンは、使用状況指標やエラーなどのテレメトリを収集します。このデータは、EC2Launch v2 が実行される Amazon EC2 インスタンスから収集されます。これには、AWSによって所有されるすべての Windows AMI が含まれます。

EC2Launch v2 では、以下のテレメトリを収集しています。
+ **使用状況の情報**— エージェントのコマンド、インストール方法、スケジュールされた実行頻度。
+ **エラーと診断情報** — エージェントのインストールエラーコード、実行エラーコード、およびエラーコールスタック。

バージョン 2.0.592 から 2.1.1 まで収集されたデータの例：

```
2025/07/18 22:38:52Z: EC2LaunchTelemetry: IsTelemetryEnabled=true
2025/07/18 22:38:52Z: EC2LaunchTelemetry: AgentOsArch=windows_amd64
2025/07/18 22:38:52Z: EC2LaunchTelemetry: IsAgentScheduledPerBoot=true
2025/07/18 22:38:52Z: EC2LaunchTelemetry: AgentCommandErrorCode=0
2025/07/18 22:38:52Z: EC2LaunchTelemetry: AdminPasswordTypeCode=0
2025/07/18 22:38:52Z: EC2LaunchTelemetry: IpConflictDetectionCode=0
2025/07/18 22:38:52Z: EC2LaunchTelemetry: AgentErrorLocation=addroutes.go:49
```

バージョン 2.2.63 以降、EC2 エージェントテレメトリデータは JSON オブジェクトとしてフォーマットされます。

```
{"type":"EC2AgentTelemetry","agentId":"WindowsLaunchAgentV2" ... }
```

テレメトリーはデフォルトでは有効になっています。テレメトリ収集はいつでも無効にできます。

**インスタンスでのテレメトリの無効化**  
1 つのインスタンスのテレメトリを無効にするには、システム環境変数を設定するか、MSI を使用してインストールを変更します。

システム環境変数を設定してテレメトリを無効にするには、管理者として次のコマンドを実行します。

```
setx /M EC2LAUNCH_TELEMETRY 0
```

MSI を使用してテレメトリを無効にするには、[MSIをダウンロード](ec2launch-v2-install.md)した後で、以下のコマンドを実行します：

```
msiexec /i ".\AmazonEC2Launch.msi" Remove="Telemetry" /q
```

**Topics**
+ [EC2Launch v2 の概念](#ec2launch-v2-concepts)
+ [EC2Launch v2 タスクの概要](#ec2launch-v2-tasks)
+ [EC2Launch v2 のディレクトリ構造](#ec2launch-v2-directory)
+ [テレメトリ](#ec2launch-v2-telemetry)
+ [EC2Launch v2 の最新バージョンのインストール](ec2launch-v2-install.md)
+ [EC2Launch v2 設定を Windows インスタンスに構成する](ec2launch-v2-settings.md)
+ [EC2Launch v2 起動タスクのタスク定義](ec2launch-v2-task-definitions.md)
+ [EC2Launch v2 エージェントの問題をトラブルシューティングする](ec2launchv2-troubleshooting.md)
+ [EC2Launch v2 のバージョン履歴](ec2launchv2-versions.md)