

# 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`)、パフォーマンスのログ (`bench.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)

# EC2Launch v2 の最新バージョンのインストール
<a name="ec2launch-v2-install"></a>

EC2Launch v2 エージェントを EC2 インスタンスにインストールするには次のいずれかの方法を使用できます。
+ Amazon S3 からエージェントをダウンロードし、Windows PowerShell を使用してインストールします。ダウンロード URL については「[EC2Launch v2 を Amazon S3 でダウンロード](#lv2-download-s3)」を参照してください。
+ SSM ディストリビューターでインストールする
+ カスタムイメージの作成時に EC2 Image Builder コンポーネントからインストールします。
+ EC2Launch v2 がプリインストールされている AMI からインスタンスを起動する

**警告**  
AmazonEC2Launch.msi はEC2Launch (v1) や EC2Config などの以前のバージョンの EC2 起動サービスをアンインストールします。

インストール手順についてはお好みの方法に合ったタブを選択してください。

------
#### [ PowerShell ]

Windows PowerShell で EC2Launch v2 エージェントの最新バージョンをインストールするには以下の手順に従ってください。

1. ローカルディレクトリを作成する

   ```
   New-Item -Path "$env:USERPROFILE\Desktop\EC2Launchv2" -ItemType Directory
   ```

1. ダウンロード場所の URL を設定します。使用する Amazon S3 URL を使用して次のコマンドを実行します。ダウンロード URL については「[EC2Launch v2 を Amazon S3 でダウンロード](#lv2-download-s3)」を参照してください。

   ```
   $Url = "Amazon S3 URL/AmazonEC2Launch.msi"
   ```

1. 次の複合コマンドを使用して、エージェントをダウンロードしてインストールします。

   ```
   $DownloadFile = "$env:USERPROFILE\Desktop\EC2Launchv2\" + $(Split-Path -Path $Url -Leaf)
   Invoke-WebRequest -Uri $Url -OutFile $DownloadFile
   msiexec /i "$DownloadFile"
   ```
**注記**  
ファイルのダウンロード時にエラーが表示され、Windows Server 2016 以前のバージョンを使用している場合は、PowerShell ターミナルで TLS 1.2 を有効にする必要がある場合があります。次のコマンドで現在の PowerShell セッションの TLS 1.2 を有効にしてから、もう一度試してください。  

   ```
   [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
   ```

1. **msiexec** コマンドはWindows Server インスタンスの `%ProgramFiles%\Amazon\EC2Launch` に EC2Launch v2 をインストールします。インストールが実行されたことを検証するにはインスタンスのローカルファイルシステムを確認できます。

------
#### [ AWS Systems Manager Distributor ]

AWS Systems Manager Quick Setup で EC2Launch v2 の自動更新を設定する方法については「[ディストリビューター Quick Setup で自動的にインストールおよび更新する](#lv2-distributor-quick-setup)」を参照してください。

AWS Systems Manager ディストリビューターから `AWSEC2Launch-Agent` パッケージを 1 回だけインストールすることもできます。Systems Manager Distributor からパッケージをインストールする方法については「AWS Systems Manager ユーザーガイド」の「[パッケージをインストールまたは更新する](https://docs.aws.amazon.com/systems-manager/latest/userguide/distributor-working-with-packages-deploy.html)」をご参照ください。

------
#### [ EC2 Image Builder component ]

EC2 Image Builder でカスタムイメージをビルドするときに、`ec2launch-v2-windows` コンポーネントをインストールできます。EC2 Image Builder でカスタムイメージをビルドする方法については*EC2 Image Builder ユーザーガイド*の[Create an image pipeline using the EC2 Image Builder console wizard](https://docs.aws.amazon.com/imagebuilder/latest/userguide/start-build-image-pipeline.html)を参照してください。

------
#### [ AMI ]

EC2Launch v2 は次の Windows Server 2022 以降の OS の AMI にデフォルトでプリインストールされています。
+ Windows\$1Server-*バージョン*-English-Full-Base
+ Windows\$1Server-*バージョン*-English-Core-Base
+ Windows\$1Server-*バージョン*-English-Core-EKS\$1Optimized
+ 他のすべての言語による Windows Server *バージョン* AMI
+ SQL がインストールされた Windows Server *バージョン* AMI

EC2Launch v2 は次の Windows Server AMI にもプリインストールされています。これらの AMI は Amazon EC2 コンソールから、または AWS CLI の `EC2LaunchV2-` の検索プレフィックスを使用して検索できます。
+ EC2LaunchV2-Windows\$1Server-2019-English-Core-Base
+ EC2LaunchV2-Windows\$1Server-2019-English-Full-Base
+ EC2LaunchV2-Windows\$1Server-2016-English-Core-Base
+ EC2LaunchV2-Windows\$1Server-2016-English-Full-Base

------

## AWS Systems Manager ディストリビューター Quick Setup で EC2Launch v2 を自動的にインストールおよび更新する
<a name="lv2-distributor-quick-setup"></a>

AWS Systems Manager ディストリビューター Quick Setup で、EC2Launch v2 の自動アップデートを設定できます。以下のプロセスではSystems Manager 関連付けをインスタンスに設定して、指定した頻度で EC2Launch v2 エージェントを自動的に更新します。ディストリビューター Quick Setup が作成する関連付けにはAWS アカウント 内かつリージョン内のインスタンス、または AWS 組織内のインスタンスが含まれる場合があります。組織の設定の詳細については「AWS Organizations ユーザーガイド」の「[チュートリアル: 組織の作成と設定](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_tutorials_basic.html)」を参照してください。

開始する前に、インスタンスがすべての前提条件を満たしていることを確認してください。

### 前提条件
<a name="lv2-distributor-quickset-prereq"></a>

ディストリビューター Quick Setup で自動更新を設定するにはインスタンスが次の前提条件を満たす必要があります。
+ EC2Launch v2 をサポートするインスタンスを 1 つ以上実行している。[EC2Launch v2](ec2launch-v2.md) がサポートされているオペレーティングシステムを参照してください。
+ インスタンスで Systems Manager の設定タスクを実行した。詳細については「AWS Systems Manager ユーザーガイド」の「[Systems Manager のセットアップ](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-setting-up-ec2.html)」を参照してください。
+ インスタンスにインストールされている起動エージェントは EC2Launch v2 のみである必要があります。複数の起動エージェントがインストールされている場合、ディストリビューター Quick Setup 設定は失敗します。ディストリビューター Quick Setup で EC2Launch v2 を設定する前に、EC2Config または EC2Launch v1 起動エージェントが存在する場合はアンインストールします。

### EC2Launch v2 のディストリビューター Quick Setup の設定
<a name="lv2-distributor-quickset-config"></a>

ディストリビューター Quick Setup で EC2Launch v2 の設定を作成するには[ディストリビューターパッケージのデプロイ](https://docs.aws.amazon.com/systems-manager/latest/userguide/quick-setup-distributor.html)の手順を完了するときに以下の設定を使用してください。
+ **ソフトウェアパッケージ:**Amazon EC2Launch v2 エージェント。
+ **更新頻度:**リストから頻度を選択してください。
+ **ターゲット:**利用可能なデプロイオプションから選択してください。

設定のステータスを確認するにはAWS マネジメントコンソール で、Systems Manager Quick Setup の **[設定]** タブに移動します。

1. AWS Systems Manager コンソールの [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/) を開いてください。

1. ナビゲーションペインで、[**Quick Setup**] を選択してください。

1. **[設定]** タブで、作成した設定に関連付けられている行を選択してください。**[設定]** タブには設定が一覧表示され、**リージョン**、**デプロイステータス**、**関連付けステータス**などの重要な詳細情報の概要が表示されます。
**注記**  
すべての EC2Launch v2 ディストリビューター設定の関連付け名は`AWS-QuickSetup-Distributor-EC2Launch-Agent-` のプレフィックスで始まります。

1. **詳細を表示するには設定を選択して [詳細を表示] を選択してください。**

詳細とトラブルシューティング手順については「AWS Systems Managerユーザーガイド」の「[Quick Setup の結果のトラブルシューティング](https://docs.aws.amazon.com/systems-manager/latest/userguide/quick-setup-results-troubleshooting.html)」を参照してください。

## EC2Launch v2 を Amazon S3 でダウンロード
<a name="lv2-download-s3"></a>

最新バージョンの EC2Launch v2 をインストールするには以下の場所からインストーラーをダウンロードします。
+ [https://s3.amazonaws.com/amazon-ec2launch-v2/windows/amd64/latest/AmazonEC2Launch.msi](https://s3.amazonaws.com/amazon-ec2launch-v2/windows/amd64/latest/AmazonEC2Launch.msi)

## インストールオプションを設定する
<a name="lv2-configure-install"></a>

EC2Launch v2 をインストールまたはアップグレードする場合、EC2Launch v2 インストールダイアログまたはコマンドラインシェルのコマンド **msiexec**  を使用してインストールオプションを設定できます。

EC2Launch v2 インストーラーをインスタンスで初めて実行すると、インスタンスの起動エージェント設定が次のように初期化されます。
+ ローカルパスを作成し、そこに起動エージェントファイルを書き込みます。これはクリーンインストールと呼ばれることもあります。
+ `EC2LAUNCH_TELEMETRY` 環境変数が存在しない場合は作成され、設定に基づいて設定されます。

設定の詳細については使用する設定方法に合ったタブを選択してください。

------
#### [ Amazon EC2Launch Setup dialog ]

EC2Launch v2 をインストールまたはアップグレードする場合、EC2Launch v2 インストールダイアログから次のインストールオプションを設定できます。**ベーシックインストール**オプション

**テレメトリを送信する**  
この機能をセットアップダイアログに含めると、インストーラーは`EC2LAUNCH_TELEMETRY`環境変数を次の値に`1`。**[テレメトリを送信]** を無効にした場合、インストーラーは環境変数を `0` の値に設定します。  
EC2Launch v2 エージェントが実行されると、`EC2LAUNCH_TELEMETRY` 環境変数を読み取り、テレメトリデータをアップロードするかどうかを決定します。値が `1` の場合、データをアップロードします。そうしないと、アップロードされません。

**デフォルト設定**  
EC2Launch v2 のデフォルト設定ではローカル起動エージェントがすでに存在する場合はそれを上書きします。インスタンスで初めてインストールを実行すると、デフォルト設定でクリーンインストールが実行されます。初回インストール時にデフォルト設定を無効にすると、インストールは失敗します。  
インスタンスでインストールを再度実行する場合はデフォルト設定を無効にして、`%ProgramData%/Amazon/EC2Launch/config/agent-config.yml` ファイルを置き換えないアップグレードを実行できます。

**例: テレメトリによる EC2Launch v2 のアップグレード**  
次の例は現在のインストールをアップグレードしてテレメトリを有効にするように設定された EC2Launch v2 セットアップダイアログを示しています。この設定ではエージェント設定ファイルを置き換えずにインストールを実行し、`EC2LAUNCH_TELEMETRY` 環境変数を `1` の値に設定します。

![\[EC2Launch v2 のアップグレード設定。\]](http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/images/ec2launchv2-clean-default-config.png)


------
#### [ Command line ]

EC2Launch v2 をインストールまたはアップグレードする場合、コマンドラインシェルの **msiexec** コマンドを使用して次のインストールオプションを設定できます。`ADDLOCAL` パラメータ値

**Basic**(必須)  
起動エージェントをインストールします。この値が `ADDLOCAL` パラメータに存在しない場合、インストールは終了します。

**Clean**  
`ADDLOCAL` パラメータに `Clean` の値を含めると、インストーラはエージェント設定ファイルを `%ProgramData%/Amazon/EC2Launch/config/agent-config.yml` の場所に書き込みます。エージェント設定ファイルがすでに存在する場合、ファイルは上書きされます。  
`ADDLOCAL` パラメータの `Clean` 値を省略した場合、インストーラはエージェント設定ファイルを置き換えないアップグレードを実行します。

**Telemetry**  
`ADDLOCAL` パラメータに `Telemetry` の値を含めると、インストーラは `EC2LAUNCH_TELEMETRY` 環境変数を `1` の値に設定します。  
`ADDLOCAL` パラメータから `Telemetry` の値を省略した場合、インストーラは環境変数を `0` の値に設定します。  
EC2Launch v2 エージェントが実行されると、`EC2LAUNCH_TELEMETRY` 環境変数を読み取り、テレメトリデータをアップロードするかどうかを決定します。値が `1` の場合、データをアップロードします。そうしないと、アップロードされません。

**例: テレメトリを使用した EC2Launch v2 のインストール**

```
& msiexec /i "C:\Users\Administrator\Desktop\EC2Launchv2\AmazonEC2Launch.msi" ADDLOCAL="Basic,Clean,Telemetry" /q
```

------

## EC2Launch v2 のバージョンを検証する
<a name="lv2-verify-version"></a>

インスタンスにインストールされている EC2Launch v2 のバージョンを検証するには次のいずれかの手順を使用します。



------
#### [ PowerShell ]

次のように、Windows PowerShell を使用して、インストールされている EC2Launch v2 のバージョンを確認します。

1. AMI からインスタンスを起動して接続します。

1. PowerShell で以下のコマンドを実行して、インストールされている EC2Launch v2 のバージョンを検証します。

   ```
   & "C:\Program Files\Amazon\EC2Launch\EC2Launch.exe" version
   ```

------
#### [ Windows Control Panel ]

Windows のコントロール パネルで、インストールされている EC2Launch v2 のバージョンを検証するには以下に従います。

1. AMI からインスタンスを起動して接続します。

1. Windows の [コントロールパネル] を開き、**[プログラムと機能]** を選択してください。

1. インストールされたプログラムのリストで `Amazon EC2Launch` を探します。バージョン番号は [**Version**] 列に表示されています。

------

AWS Windows AMI の最新のアップデートを確認するにはAWS Windows AMI リファレンスの「[Windows AMI のバージョン履歴](https://docs.aws.amazon.com/ec2/latest/windows-ami-reference/ec2-windows-ami-version-history.html)」を参照してください。

EC2Launch v2 の最新バージョンは[EC2Launch v2 のバージョン履歴](ec2launchv2-versions.md#ec2launchv2-version-history)でご確認ください。

EC2Launch v2 サービスの新しいバージョンがリリースされた際には通知を受け取ることができます。詳細については「[EC2 Windows 起動エージェント通知をサブスクライブする](launch-agents-subscribe-notifications.md)」を参照してください。

# EC2Launch v2 設定を Windows インスタンスに構成する
<a name="ec2launch-v2-settings"></a>

このセクションでは、EC2Launch v2 の設定を構成する方法について説明します。

**Topics**
+ [EC2Launch v2 設定ダイアログボックスを使用して設定を変更する](#ec2launch-v2-ui)
+ [CLI を使用した EC2Launch v2 の設定](#ec2launch-v2-cli)
+ [EC2Launch v2 タスクの設定](#ec2launch-v2-task-configuration)
+ [EC2Launch v2 の終了コードと再起動](#ec2launch-v2-exit-codes-reboots)
+ [EC2Launch v2 とSysprep](#ec2launch-v2-sysprep)

## EC2Launch v2 設定ダイアログボックスを使用して設定を変更する
<a name="ec2launch-v2-ui"></a>

次の手順では、EC2Launch v2 設定ダイアログボックスを使用して、設定を有効または無効にする方法を示します。
**注記**  
agent-config.yml ファイルでカスタムタスクを不適切に設定した場合、Amazon EC2Launch 設定ダイアログボックスを開こうとすると、エラーが発生します。スキーマの例については、「[例:`agent-config.yml`](#ec2launch-v2-example-agent-config)」を参照してください。

1. Windows インスタンスを起動して接続します。

1. [スタート] メニューから、[**すべてのプログラム**] を選択し、[**EC2Launch 設定**] に移動します。**[Sysprep を使用してシャットダウン]** または **[Sysprep を使用せずにシャットダウン]** を選択する前に、シャットダウンの実行時に適用する変更を必ず保存してください。  
![\[EC2 Launch 設定アプリケーション。\]](http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/images/ec2launchv2-settings.png)

1. [**EC2Launch 設定**] ダイアログボックスの [**全般**] タブで、次の設定を有効または無効にすることができます。

   1. **コンピュータ名の設定**

      この設定を有効にすると (デフォルトでは無効になっています)、ブートごとに現在のホスト名が希望するホスト名と比較されます。ホスト名が一致しない場合、ホスト名はリセットされ、システムは必要に応じて再起動して、新しいホスト名を取得します。カスタムホスト名が指定されていない場合は、16 進形式のプライベート IPv4 アドレスを使用して生成されます。例えば、`ip-AC1F4E6` などです。既存のホスト名が変更されないようにするには、この設定を有効にしないでください。

   1. **ブートボリュームの拡張**

      この設定は、`Disk 0`/`Volume 0` を動的に拡張し、未使用の領域を含めます。独自のサイズを指定したルートボリュームからインスタンスを起動するときに便利です。

   1. **管理者アカウントの設定**

      有効にすると、ローカルマシンに作成される管理者アカウントのユーザー名とパスワードの属性を設定できます。この機能を有効にしないと、Sysprep 後に管理者アカウントがシステムに作成されません。`adminPasswordtype` が `Specify` である場合のみ、`adminPassword`にパスワードを入力してください。

      パスワードの種類は次のとおりです。

      1. `Random`

         EC2Launch は、ユーザーのキーを使用してパスワードを生成し、暗号化します。この設定はインスタンス起動後に無効になるため、インスタンスを再起動したり、停止して起動した場合でもパスワードは保持されます。

      1. `Specify`

         EC2Launch は、`adminPassword` で指定したパスワードを使用します。指定したパスワードがシステム要件を満たさない場合は、代わりに EC2Launch によってランダムなパスワードが生成されます。このパスワードはクリアテキストとして `agent-config.yml` に保存され、Sysprep で管理者パスワードが設定されると削除されます。EC2Launch は、ユーザーのキーを使用してパスワードを暗号化します。

      1. `Do not set`

         EC2Launch は、unattend.xml ファイルで指定したパスワードを使用します。unattend.xml でパスワードを指定しないと、管理者アカウントは無効になります。

   1. **SSM サービスの開始**

      選択された Systems Manager サービスの起動が Sysprep の後に有効化されます。EC2Launch v2 は[前述](ec2launch-v2.md#ec2launch-v2-tasks)のすべてのタスクを実行し、SSM Agent は Run Command やステートマネージャーなどの Systems Manager 機能に対するリクエストを処理します。

      Run Command を使用して既存のインスタンスをアップグレードすることで、最新バージョンの EC2Launch v2 サービスや SSM Agent を使用できるようになります。詳細については、*AWS Systems Manager ユーザーガイド*の[Run Command を使用した SSM エージェント の更新](https://docs.aws.amazon.com/systems-manager/latest/userguide/run-command-tutorial-update-software.html)を参照してください。

   1. **ENA の最適化**

      選択すると、ENA の受信側のスケーリングおよび受信キューの深さの設定を AWS 用に最適化するように ENA 設定が設定されます。詳細については、[受信側スケーリング CPU アフィニティを設定する](enhanced-networking-os.md#windows-rss-cpu-affinity)を参照してください。

   1. **SSH の有効化**

      この設定では、より新しいバージョンの Windows で OpenSSH を有効にし、リモートシステム管理を許可できます。

   1. **ジャンボフレームの有効化**

      ジャンボフレームを有効にする場合は、これを選択してください。ジャンボフレームは、ネットワーク通信に意図しない影響を及ぼす可能性があるため、ジャンボフレームがシステムに与える影響をよく理解した上で有効にしてください。ジャンボフレームの詳細については、[ジャンボフレーム (9001 MTU)](network_mtu.md#jumbo_frame_instances)を参照してください。

   1. **イメージングの準備**

      EC2 インスタンスのシャットダウンに Sysprep を使用するかしないかを選択してください。EC2Launch v2 で Sysprep を実行する場合は、[**Sysprep でシャットダウン**] を選択してください。

1. [**DNS サフィックス**] タブで、完全修飾ドメイン名を指定せずに、EC2 で実行されているサーバーの DNS 解決用に DNS サフィックスのリストを追加するかどうかを選択できます。DNS サフィックスには、`$REGION` 変数と `$AZ` 変数を含めることができます。まだ存在しないサフィックスのみがリストに追加されます。  
![\[EC2 Launch 設定アプリケーション。\]](http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/images/ec2launchv2-dns.png)

1. **[壁紙]** タブでは、背景画像を使用してインスタンスの壁紙を設定し、表示する壁紙のインスタンスの詳細を指定できます。Amazon EC2 は、ログインするたびに詳細を生成します。

   次のコントロールで壁紙を設定できます。
   + **[壁紙にインスタンスの詳細を表示]** - このチェックボックスは、壁紙のインスタンス詳細表示を有効または無効にします。
   + **[画像パス (.jpg)]** - 壁紙の背景として使用する画像へのパスを指定します。
   + **[壁紙に表示する属性を選択]** - 壁紙に表示するインスタンスの詳細のチェックボックスを選択してください。壁紙からインスタンスの詳細を削除するには、以前に選択したチェックボックスをオフにします。
   + **[壁紙にインスタンスタグを表示]** - 壁紙にインスタンスタグを表示するには、次のいずれかの設定を選択してください。
     + **[なし]** - 壁紙にインスタンスタグを表示しないでください。
     + **[すべて表示]** - 壁紙にすべてのインスタンスタグを表示します。
     + **[フィルター済みを表示]** - 指定したインスタンスタグを壁紙に表示します。この設定を選択すると、**[インスタンスタグフィルター]** ボックスが表示され、壁紙に表示するインスタンスタグを追加できます。
**注記**  
壁紙にタグを表示するには、メタデータのタグを有効にする必要があります。インスタンスのタグおよびメタデータの詳細については、「[インスタンスメタデータを使用して EC2 インスタンスのタグを表示する](work-with-tags-in-IMDS.md)」を参照してください。  
![\[EC2 起動設定の [壁紙] タブ。\]](http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/images/ec2launchv2-wallpaper-02.png)

1. [**ボリューム**] タブで、インスタンスにアタッチされているボリュームを初期化するかどうかを選択してください。有効にすると、追加ボリュームのドライブ文字が設定され、使用可能な領域を使用するようにドライブ文字が拡張されます。[**すべて**] を選択すると、すべてのストレージボリュームが初期化されます。[**デバイス**] を選択すると、リストで指定されているデバイスのみが初期化されます。初期化するデバイスごとに、デバイスを入力する必要があります。EC2 コンソールにリストされているデバイス (`xvdb` や `/dev/nvme0n1` など) を使用します。ドロップダウンリストには、インスタンスにアタッチされているストレージボリュームが表示されます。インスタンスにアタッチされていないデバイスを入力するには、テキストフィールドに入力してください。

   [**名前**]、[**文字**]、[**パーティション**] は、オプションのフィールドです。**[パーティション]** に値を指定しなかった場合、2 TB より大きいストレージボリュームは `gpt` パーティションタイプで初期化され、2 TB より小さいストレージボリュームは `mbr` パーティションタイプで初期化されます。デバイスが設定済みで、NTFS 以外のデバイスにパーティションテーブルが含まれているか、ディスクの最初の 4 KB にデータが含まれている場合、ディスクはスキップされ、アクションがログに記録されます。  
![\[EC2 Launch 設定アプリケーション。\]](http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/images/ec2launchv2-volumes.png)

## CLI を使用した EC2Launch v2 の設定
<a name="ec2launch-v2-cli"></a>

コマンドラインインターフェイス (CLI) を使用して、EC2Launch の設定を構成し、サービスを管理できます。以下のセクションでは、EC2Launch v2 の管理に使用できる CLI コマンドを説明し、その使用方法を示します。

**Topics**
+ [collect-logs](#ec2launch-v2-collect-logs)
+ [get-agent-config](#ec2launch-v2-get-agent-config)
+ [list-volumes](#ec2launch-v2-list-volumes)
+ [reset](#ec2launch-v2-reset)
+ [実行](#ec2launch-v2-run)
+ [ステータス](#ec2launch-v2-settings-status)
+ [sysprep](#ec2launch-v2-settings-sysprep)
+ [validate](#ec2launch-v2-validate)
+ [バージョン](#ec2launch-v2-version)
+ [壁紙](#ec2launch-v2-wallpaper)

### collect-logs
<a name="ec2launch-v2-collect-logs"></a>

EC2Launch のログファイルを収集し、これらのファイルを圧縮して、指定先のディレクトリに配置します。

**例**

```
ec2launch collect-logs -o C:\Mylogs.zip
```

**使用方法**

`ec2launch collect-logs [flags]`

**Flags**

`-h`, `--help`

`collect-logs` に関するヘルプ

`-o`, `--output string`

圧縮された出力ログファイルへのパス

### get-agent-config
<a name="ec2launch-v2-get-agent-config"></a>

`agent-config.yml` を指定された形式 (JSON または YAML) で印刷します。書式が指定されていない場合、`agent-config.yml` は以前に指定された書式で印刷されます。

**例**

```
ec2launch get-agent-config -f json
```

**使用方法**

`ec2launch get-agent-config [flags]`

**Flags**

`-h`, `--help`

`get-agent-config` に関するヘルプ

`-f`, `--format string`

`agent-config` ファイルの出力形式: `json`、`yaml`

### list-volumes
<a name="ec2launch-v2-list-volumes"></a>

エフェメラルボリュームや EBS ボリュームなど、インスタンスにアタッチされているすべてのストレージボリュームを一覧表示します。

**例**

```
ec2launch list-volumes
```

**使用方法**

`ec2launch list-volumes`

**Flags**

`-h`, `--help`

`list-volumes` に関するヘルプ

### reset
<a name="ec2launch-v2-reset"></a>

このタスクの主な目的は、次回実行時にエージェントをリセットすることです。そのために、**reset**コマンドは EC2Launch v2 `EC2Launch` のすべてのエージェント状態データをローカルディレクトリから削除します (を参照) 。[EC2Launch v2 のディレクトリ構造](ec2launch-v2.md#ec2launch-v2-directory)リセットすると、オプションでサービスログと Sysprep ログが削除されます。

スクリプトの動作は、エージェントがスクリプトを実行するモード (インラインかデタッチモード) によって異なります。

インライン (デフォルト)  
EC2Launch v2 エージェントはスクリプトを 1 つずつ実行します (`detach: false`)。これはデフォルトの設定です。  
インラインスクリプトが **reset** または **sysprep** コマンドを発行すると、すぐに実行され、エージェントがリセットされます。現在のタスクが終了すると、エージェントはそれ以上のタスクを実行せずにシャットダウンします。  
例えば、コマンドを発行するタスクの後にタスク (ユーザーデータの実行後にデフォルトで含まれる) が続く場合、その `startSsm` タスクは実行されず、Systems Manager サービスは開始されません。

デタッチ済み  
EC2Launch v2 エージェントは、他のタスクと同時にスクリプトを実行します (`detach: true`)。  
デタッチされたスクリプトが **reset** または **sysprep** コマンドを発行すると、それらのコマンドはエージェントが終了するのを待ってから実行します。ExecuteScript の後のタスクは引き続き実行されます。

**例**

```
ec2launch reset -c
```

**使用方法**

`ec2launch reset [flags]`

**Flags**

`-c`, `--clean`

`reset` 前にインスタンスログを消去する

`-h`, `--help`

`reset` に関するヘルプ

### 実行
<a name="ec2launch-v2-run"></a>

EC2Launch v2 を実行します。

**例**

```
ec2launch run
```

**使用方法**

`ec2launch run [flags]`

**Flags**

`-h`, `--help`

`run` に関するヘルプ

### ステータス
<a name="ec2launch-v2-settings-status"></a>

EC2Launch v2 エージェントのステータスを取得します。オプションで、エージェントが終了するまでプロセスをブロックします。プロセスの終了コードは、エージェントの状態を決定します:
+ `0` — エージェントは実行され、成功しました。
+ `1` — エージェントは実行されましたが、失敗しました。
+ `2` — エージェントはまだ実行中です。
+ `3` — エージェントの状態が不明です。エージェントの状態が実行されていないか、停止していません。
+ `4` — エージェントの状態を取得しようとしたときにエラーが発生しました。
+ `5` — エージェントが実行されておらず、最後に既知の実行の状態が不明です。これは、次のいずれかの 1 つを意味します。
  + `state.json`および`previous-state.json`の両方がが削除されます。
  + `previous-state.json`は破損している。

  これは、[`reset`](#ec2launch-v2-reset) コマンドを実行した後のエージェントの状態です。

**例:**

```
ec2launch status -b
```

**使用方法**

`ec2launch status [flags]`

**Flags**

`-b`,`--block`

エージェントの実行が終了するまでプロセスをブロックします

`-h`,`--help`

`status` に関するヘルプ

### sysprep
<a name="ec2launch-v2-settings-sysprep"></a>

このタスクの主な目的は、次回実行時にエージェントをリセットすることです。そのために、**sysprep**コマンドはエージェントの状態をリセットし、`unattend.xml`ファイルを更新し、RDPを無効にして、Sysprepを実行します。

スクリプトの動作は、エージェントがスクリプトを実行するモード (インラインかデタッチモード) によって異なります。

インライン (デフォルト)  
EC2Launch v2 エージェントはスクリプトを 1 つずつ実行します (`detach: false`)。これはデフォルトの設定です。  
インラインスクリプトが **reset** または **sysprep** コマンドを発行すると、すぐに実行され、エージェントがリセットされます。現在のタスクが終了すると、エージェントはそれ以上のタスクを実行せずにシャットダウンします。  
例えば、コマンドを発行するタスクの後にタスク (ユーザーデータの実行後にデフォルトで含まれる) が続く場合、その `startSsm` タスクは実行されず、Systems Manager サービスは開始されません。

デタッチ済み  
EC2Launch v2 エージェントは、他のタスクと同時にスクリプトを実行します (`detach: true`)。  
デタッチされたスクリプトが **reset** または **sysprep** コマンドを発行すると、それらのコマンドはエージェントが終了するのを待ってから実行します。ExecuteScript の後のタスクは引き続き実行されます。

**例:**

```
ec2launch sysprep
```

**使用方法**

`ec2launch sysprep [flags]`

**Flags**

`-c`,`--clean`

`sysprep` 前にインスタンスログを消去する

`-h`,`--help`

Sysprep に関するヘルプ

`-s`,`--shutdown`

`sysprep` の後にインスタンスをシャットダウンする

### validate
<a name="ec2launch-v2-validate"></a>

`agent-config` ファイル `C:\ProgramData\Amazon\EC2Launch\config\agent-config.yml` を検証します。

**例**

```
ec2launch validate
```

**使用方法**

`ec2launch validate [flags]`

**Flags**

-h` `、`--help`

`validate` に関するヘルプ

### バージョン
<a name="ec2launch-v2-version"></a>

実行可能なバージョンを取得します。

**例**

```
ec2launch version
```

**使用方法**

`ec2launch version [flags]`

**Flags**

`-h`, `--help`

`version` に関するヘルプ

### 壁紙
<a name="ec2launch-v2-wallpaper"></a>

指定した壁紙パス (.jpg ファイル) に新しい壁紙を設定し、選択したインスタンスの詳細を表示します。

#### 構文
<a name="lv2-wallpaper-syntax"></a>

```
ec2launch wallpaper ^
--path="C:\ProgramData\Amazon\EC2Launch\wallpaper\Ec2Wallpaper.jpg" ^
--all-tags ^
--attributes=hostName,instanceId,privateIpAddress,publicIpAddress,ipv6Address,instanceSize,availabilityZone,architecture
```

#### 入力
<a name="lv2-wallpaper-inputs"></a>パラメータ

**--allowed-tags [*tag-name-1*, *tag-name-n*]**  
(オプション) 壁紙に表示するインスタンスタグ名の Base64 エンコードされた JSON 配列。このタグまたは `--all-tags` を使用できますが、両方は使用できません。

**--attributes *attribute-string-1*, *attribute-string-n***  
(オプション) 壁紙に設定を適用する `wallpaper` 属性文字列のコンマ区切りのリスト。

**[--path \$1 -p] *path-string***  
(必須) `wallpaper` 背景画像ファイルのパスを指定します。フラグ

**--all-tags**  
(オプション) 壁紙にすべてのインスタンスタグを表示します。このタグまたは `--allowed-tags` を使用できますが、両方は使用できません。

**[--help \$1 -h]**  
**wallpaper** コマンドに関するヘルプを表示します。

## EC2Launch v2 タスクの設定
<a name="ec2launch-v2-task-configuration"></a>

このセクションでは、`agent-config.yml`とユーザーデータの設定スキーマ、タスク、詳細、および例が含まれます。

**Topics**
+ [スキーマ：`agent-config.yml`](#ec2launch-v2-schema-agent-config)
+ [起動または再起動時に実行される EC2Launch v2 ユーザーデータスクリプトを設定する](#ec2launch-v2-schema-user-data)

### スキーマ：`agent-config.yml`
<a name="ec2launch-v2-schema-agent-config"></a>

`agent-config.yml` ファイルの構造を以下に示します。同じステージでタスクを繰り返すことはできないことに注意してください。タスクのプロパティについては、次のタスクの説明を参照してください。

#### ドキュメント構造: agent-config.yml
<a name="ec2launch-v2-schema-agent-config-doc-structure"></a>

**JSON**

```
{
	"version": "1.1",
	"config": [
		{
			"stage": "string",
			"tasks": [
				{
					"task": "string",
					"inputs": {
						...
					}
				},
				...
			]
		},
		...
	]
}
```

**YAML**

```
version: 1.1
config:
- stage: string
  tasks:
  - task: string
	inputs:
	  ...
  ...
...
```

#### 例:`agent-config.yml`
<a name="ec2launch-v2-example-agent-config"></a>

次の例は、`agent-config.yml` 設定ファイルの設定を示しています。

```
version: 1.1
config:
- stage: boot
  tasks:
  - task: extendRootPartition
- stage: preReady
  tasks:
  - task: activateWindows
    inputs:
      activation:
        type: amazon
  - task: setDnsSuffix
    inputs:
      suffixes:
      - $REGION.ec2-utilities.amazonaws.com
  - task: setAdminAccount
    inputs:
      password:
        type: random
  - task: setWallpaper
    inputs:
      path: C:\ProgramData\Amazon\EC2Launch\wallpaper\Ec2Wallpaper.jpg
      attributes:
      - hostName
      - instanceId
      - privateIpAddress
      - publicIpAddress
      - instanceSize
      - availabilityZone
      - architecture
- stage: postReady
  tasks:
  - task: startSsm
```

### 起動または再起動時に実行される EC2Launch v2 ユーザーデータスクリプトを設定する
<a name="ec2launch-v2-schema-user-data"></a>

次の JSON と YAML の例は、ユーザーデータのドキュメント構造を示しています。Amazon EC2 は、ドキュメントで指定した `tasks` 配列で指定された各タスクを解析します。各タスクには、独自のプロパティと要件があります。詳細については、「[EC2Launch v2 起動タスクのタスク定義](ec2launch-v2-task-definitions.md)」を参照してください。

**注記**  
タスクは、ユーザーデータタスク配列で重複しないようにします。

#### 文書構造: ユーザーデータ
<a name="ec2launch-v2-schema-user-data-doc-structure"></a>

**JSON**

```
{
	"version": "1.1",
	"tasks": [
		{
			"task": "string",
			"inputs": {
				...
			},
		},
		...
	]
}
```

**YAML**

```
version: 1.1
tasks:
- task: string
  inputs:
    ...
...
```

#### 例: ユーザーデータ
<a name="ec2launch-v2-example-user-data"></a>

ユーザーデータの詳細については、[Amazon EC2 が Windows インスタンスのユーザーデータを処理する方法](user-data.md#ec2-windows-user-data)を参照してください。

次の YAML ドキュメントの例は、EC2Launch v2 がファイルを作成するためのユーザーデータとして実行する PowerShell スクリプトを示しています。

```
version: 1.1
tasks:
- task: executeScript
  inputs:
  - frequency: always
    type: powershell
    runAs: localSystem
    content: |-
      New-Item -Path 'C:\PowerShellTest.txt' -ItemType File
```

ユーザーデータには、以前のバージョンの起動エージェントと互換性のある XML 形式を使用できます。EC2Launch v2 はスクリプトを `UserData` ステージ内の `executeScript` タスクとして実行します。EC2Launch v1 と EC2Config の動作に合わせて、ユーザーデータスクリプトはデフォルトでアタッチ/インラインプロセスとして実行されます。

オプションのタグを追加して、スクリプトの実行方法をカスタマイズできます。例えば、インスタンスの起動時だけでなく、インスタンスの再起動時にユーザーデータスクリプトを実行するには、次のタグを使用できます。

`<persist>true</persist>`

**例:**

```
<powershell>
  $file = $env:SystemRoot + "\Temp" + (Get-Date).ToString("MM-dd-yy-hh-mm")
  New-Item $file -ItemType file
</powershell>
<persist>true</persist>
```

`<powershellArguments>` タグを使用して、1 つ以上の PowerShell 引数を指定できます。引数が渡されない場合、EC2Launch v2 はデフォルトで次の引数を追加します: `-ExecutionPolicy Unrestricted`

**例:**

```
<powershell>
  $file = $env:SystemRoot + "\Temp" + (Get-Date).ToString("MM-dd-yy-hh-mm")
  New-Item $file -ItemType file
</powershell>
<powershellArguments>-ExecutionPolicy Unrestricted -NoProfile -NonInteractive</powershellArguments>
```

XML ユーザーデータスクリプトをデタッチプロセスとして実行するには、ユーザーデータに次のタグを追加します。

`<detach>true</detach>`

**例:**

```
<powershell>
  $file = $env:SystemRoot + "\Temp" + (Get-Date).ToString("MM-dd-yy-hh-mm")
  New-Item $file -ItemType file
</powershell>
<detach>true</detach>
```

**注記**  
デタッチタグは以前の起動エージェントではサポートされていません。

#### 変更ログ: ユーザーデータ
<a name="ec2launch-v2-versions-user-data"></a>

次の表は、ユーザーデータの変更点と、該当する EC2Launch v2 エージェントバージョンとの相互参照を示しています。


| ユーザーデータバージョン | 詳細 | ご紹介 | 
| --- | --- | --- | 
| 1.1 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/ec2launch-v2-settings.html) | EC2Launch v2 バージョン 2.0.1245 | 
| 1.0 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/ec2launch-v2-settings.html) | EC2Launch v2 バージョン 2.0.0 | 

\$1 デフォルトの `agent-config.yml` ファイルで使用した場合。

## EC2Launch v2 の終了コードと再起動
<a name="ec2launch-v2-exit-codes-reboots"></a>

EC2Launch v2 を使用して、スクリプトによる終了コードの処理方法を定義できます。デフォルトでは、スクリプトで最後に実行されたコマンドの終了コードは、スクリプト全体の終了コードとしてレポートされます。例えば、スクリプトに 3 つのコマンドが含まれており、最初のコマンドが失敗したが、次のコマンドが成功した場合、実行ステータスは、最後のコマンドが成功したために `success` として報告されます。

スクリプトでインスタンスを再起動する場合、再起動がスクリプトの最後のステップで実行されるようになっていても、そのスクリプト内で `exit 3010` を指定する必要があります。`exit 3010` は、インスタンスを再起動し、さらに `3010` 以外の終了コードが返されるか再起動が最大回数に達するまで、スクリプトを再度呼び出すように EC2Launch v2 に指示します。EC2Launch v2 では、タスクごとに最大 5 回の再起動が許可されます。`Restart-Computer` などの別のメカニズムを使用してスクリプトからインスタンスを再起動しようとすると、スクリプトの実行ステータスは矛盾します。例えば、再起動ループで停止したり、再起動を実行しなかったりすることがあります。

古いエージェントと互換性のある XML ユーザーデータ形式を使用している場合、ユーザーデータは意図した回数よりも多く実行されることがあります。詳細については、トラブルシューティングセクションの[サービスはユーザーデータを複数回実行する](ec2launchv2-troubleshooting.md#ec2launchv2-troubleshooting-user-data-more-than-once)を参照してください。

## EC2Launch v2 とSysprep
<a name="ec2launch-v2-sysprep"></a>

EC2Launch v2 サービスは Sysprep という Microsoft ツールを実行します。このツールを利用すると、再利用可能でカスタマイズされた Windows AMI を作成できます。EC2Launch v2 は、Sysprep を呼び出す際、`%ProgramData%\Amazon\EC2Launch` にあるファイルを使用して実行する操作を決定します。(オプション) フィルターセットをデフォルトフィルターとして設定するには、**[EC2 サービスプロパティ]** チェックボックスをオンにします。ただし、一部の高度な設定は [**EC2Launch 設定**] ダイアログボックスで利用できないため、これらのエントリは直接編集する必要があります。

インスタンスの設定を更新した後で、そのインスタンスから AMI を作成した場合、その AMI から起動されるすべてのインスタンスには、更新後の新しい設定が適用されます。AMI の作成の詳細については、[Amazon EBS-backed AMI を作成する](creating-an-ami-ebs.md)を参照してください。

# EC2Launch v2 起動タスクのタスク定義
<a name="ec2launch-v2-task-definitions"></a>

EC2Launch v2 が起動時またはスタートアップ時に実行する各タスクには、独自のプロパティと要件のセットがあります。タスクの詳細には、タスクの実行頻度 (1 回のみ、または毎回) に関する設定、タスクが実行されるエージェントのブートプロセスのステージ、構文、および YAML ドキュメントの例が含まれます。詳細については、このリファレンスに示されているタスクの詳細を確認してください。

**Topics**
+ [activateWindows](#ec2launch-v2-activatewindows)
+ [enableJumboFrames](#ec2launch-v2-enablejumboframes)
+ [enableOpenSsh](#ec2launch-v2-enableopenssh)
+ [executeProgram](#ec2launch-v2-executeprogram)
+ [executeScript](#ec2launch-v2-executescript)
+ [extendRootPartition](#ec2launch-v2-extendrootpartition)
+ [initializeVolume](#ec2launch-v2-initializevolume)
+ [optimizeEna](#ec2launch-v2-optimizeena)
+ [setAdminAccount](#ec2launch-v2-setadminaccount)
+ [setDnsSuffix](#ec2launch-v2-setdnssuffix)
+ [setHostName](#ec2launch-v2-sethostname)
+ [setWallpaper](#ec2launch-v2-setwallpaper)
+ [startSsm](#ec2launch-v2-startssm)
+ [sysprep](#ec2launch-v2-task-sysprep)
+ [writeFile](#ec2-launch-v2-writefile)

## activateWindows
<a name="ec2launch-v2-activatewindows"></a>

AWS KMS サーバーのセットに対して Windows をアクティブ化します。インスタンスが Bring-Your-Own-License (BYOL) であることが検出された場合、アクティベーションはスキップされます。

*Frequency* - 1 回

*AllowedStages* - `[PreReady]`

*Inputs* - 

`activation`: (マップ)

`type`: (文字列) 使用するアクティベーションタイプ、`amazon` に設定

*例*

```
task: activateWindows
  inputs:
    activation:
    type: amazon
```

## enableJumboFrames
<a name="ec2launch-v2-enablejumboframes"></a>

ジャンボフレームを有効にします。これにより、ネットワークアダプターの最大送信単位 (MTU) が増加します。詳細については、[ジャンボフレーム (9001 MTU)](network_mtu.md#jumbo_frame_instances)を参照してください。

*Frequency* - 常に

*AllowedStages* - `[PostReady, UserData]`

*Inputs* - なし

*例*

```
task: enableJumboFrames
```

## enableOpenSsh
<a name="ec2launch-v2-enableopenssh"></a>

Windows OpenSSH を有効にし、インスタンスのパブリックキーを認証済みキーフォルダに追加します。

*Frequency* - 1 回

*AllowedStages* - `[PreReady, UserData]`

*Inputs* - なし

*例*

次の例は、インスタンスで OpenSSH を有効にし、インスタンスのパブリックキーを認証済みキーフォルダーに追加する方法を示しています。この設定は、Windows Server 2019 以降のバージョンを実行しているインスタンスでのみ機能します。

```
task: enableOpenSsh
```

## executeProgram
<a name="ec2launch-v2-executeprogram"></a>

オプションの引数と指定された頻度でプログラムを実行します。

**ステージ**: `PreReady`、`PostReady`、および `UserData` のステージ中に `executeProgram` タスクを実行できます。

**頻度:** 設定可能です。「*入力*」を参照してください。

**入力**  
このセクションには、**executeProgram** タスクを実行するための 1 つ以上のプログラム (入力) が含まれます。各入力には、次の設定を含めることができます:    
**frequency (文字列)**  
(必須) 次の値のいずれかを正確に指定します。  
+ `once`
+ `always`  
**path (文字列)**  
(必須) 実行する実行可能ファイルのファイルパス。  
**arguments (文字列のリスト)**  
(オプション) 入力としてプログラムに提供する引数のカンマ区切りのリスト。  
**runAs (文字列)**  
(必須) `localSystem` に設定する必要があります

**Output**  
すべてのタスクはログファイルエントリを `agent.log` ファイルに書き込みます。`executeProgram` タスクからの追加出力は、次のように動的に名前が付けられたフォルダに個別に保存されます。  
`%LocalAppData%\Temp\EC2Launch#########\outputfilename.tmp`  
出力ファイルへの正確なパスが `agent.log` ファイルに含まれています。例:  

```
Program file is created at: C:\Windows\system32\config\systemprofile\AppData\Local\Temp\EC2Launch123456789\ExecuteProgramInputs.tmp
Output file is created at: C:\Windows\system32\config\systemprofile\AppData\Local\Temp\EC2Launch123456789\Output.tmp
Error file is created at: C:\Windows\system32\config\systemprofile\AppData\Local\Temp\EC2Launch123456789\Err.tmp
```
**`executeProgram` タスクの出力ファイル**    
`ExecuteProgramInputs.tmp`  
実行可能ファイルのパスと、`executeProgram` タスクが実行時に渡すすべての入力パラメータが含まれます。  
`Output.tmp`  
`executeProgram` タスクが実行するプログラムからのランタイム出力が含まれます。  
`Err.tmp`  
`executeProgram` タスクが実行するプログラムからのランタイムエラーメッセージが含まれます。

**例**  
次の例は、`executeProgram` タスクを使用してインスタンス上のローカルディレクトリから実行可能ファイルを実行する方法を示しています。  
**例 1: 1 つの引数を使用する設定実行可能ファイル**  
この例は、設定実行可能ファイルを Quiet モードで実行する `executeProgram` タスクを示しています。

```
task: executeProgram
  inputs:
    - frequency: always
      path: C:\Users\Administrator\Desktop\setup.exe
      arguments: ['-quiet']
```
**例 2: 2 つの引数を使用する VLC 実行可能ファイル**  
この例は、入力パラメータとして渡された 2 つの引数を使用して VLC 実行可能ファイルを実行する `executeProgram` タスクを示しています。

```
task: executeProgram
  inputs:
    - frequency: always
      path: C:\vlc-3.0.11-win64.exe 
      arguments: ['/L=1033','/S']
      runAs: localSystem
```

## executeScript
<a name="ec2launch-v2-executescript"></a>

オプションの引数と指定された頻度でスクリプトを実行します。スクリプトの動作は、エージェントがスクリプトを実行するモード (インラインかデタッチモード) によって異なります。

インライン (デフォルト)  
EC2Launch v2 エージェントはスクリプトを 1 つずつ実行します (`detach: false`)。これはデフォルトの設定です。  
インラインスクリプトが **reset** または **sysprep** コマンドを発行すると、すぐに実行され、エージェントがリセットされます。現在のタスクが終了すると、エージェントはそれ以上のタスクを実行せずにシャットダウンします。  
例えば、コマンドを発行するタスクの後にタスク (ユーザーデータの実行後にデフォルトで含まれる) が続く場合、その `startSsm` タスクは実行されず、Systems Manager サービスは開始されません。

デタッチ済み  
EC2Launch v2 エージェントは、他のタスクと同時にスクリプトを実行します (`detach: true`)。  
デタッチされたスクリプトが **reset** または **sysprep** コマンドを発行すると、それらのコマンドはエージェントが終了するのを待ってから実行します。ExecuteScript の後のタスクは引き続き実行されます。

**ステージ**: `PreReady`、`PostReady`、および `UserData` のステージ中に `executeScript` タスクを実行できます。

**頻度:** 設定可能です。「*入力*」を参照してください。

**入力**  
このセクションには、**executeScript** タスクを実行するための 1 つ以上のスクリプト (入力) が含まれます。各入力には、次の設定を含めることができます:    
**frequency (文字列)**  
(必須) 次の値のいずれかを正確に指定します。  
+ `once`
+ `always`  
**type (文字列)**  
(必須) 次の値のいずれかを正確に指定します。  
+ `batch`
+ `powershell`  
**arguments (文字列のリスト)**  
(オプション) (PowerShell スクリプトではなく) シェルに渡す文字列引数のリスト。このパラメータは、`type: batch` ではサポートされません。引数が渡されない場合、EC2Launch v2 はデフォルトで次の引数を追加します: `-ExecutionPolicy Unrestricted`  
**content (文字列)**  
(必須) インラインスクリプトのコンテンツ。  
**runAs (文字列)**  
(必須) 次の値のいずれかを正確に指定します。  
+ `admin`
+ `localSystem`  
**デタッチ (ブール値)**  
(オプション) EC2Launch v2 エージェントは、スクリプトを一度に 1 つずつ実行するようデフォルトで設定されています (`detach: false`)。スクリプトを他のタスクと同時に実行するには、値を `true` (`detach: true`) に設定します。  
`detach` に `true` が設定されている場合、スクリプトの終了コード (`3010` など) は効果がなくなります。

**Output**  
すべてのタスクはログファイルエントリを `agent.log` ファイルに書き込みます。`executeScript` タスクが実行するスクリプトからの追加出力は、次のように動的に名前が付けられたフォルダに個別に保存されます。  
`%LocalAppData%\Temp\EC2Launch#########\outputfilename.ext`  
出力ファイルへの正確なパスが `agent.log` ファイルに含まれています。例:  

```
Program file is created at: C:\Windows\system32\config\systemprofile\AppData\Local\Temp\EC2Launch123456789\UserScript.ps1
Output file is created at: C:\Windows\system32\config\systemprofile\AppData\Local\Temp\EC2Launch123456789\Output.tmp
Error file is created at: C:\Windows\system32\config\systemprofile\AppData\Local\Temp\EC2Launch123456789\Err.tmp
```
**`executeScript` タスクの出力ファイル**    
`UserScript.ext`  
`executeScript` タスクが実行したスクリプトが含まれます。ファイルの拡張子は、次のように、`executeScript` タスクの `type` パラメータで指定したスクリプトのタイプによって異なります。  
+ タイプが `batch` の場合、ファイルの拡張子は `.bat` です。
+ タイプが `powershell` の場合、ファイルの拡張子は `.ps1` です。  
`Output.tmp`  
`executeScript` タスクが実行するスクリプトからのランタイム出力が含まれます。  
`Err.tmp`  
`executeScript` タスクが実行するスクリプトからのランタイムエラーメッセージが含まれます。

**例**  
次の例は、`executeScript` タスクでインラインスクリプトを実行する方法を示しています。  
**例 1: Hello world 出力テキストファイル**  
この例は、PowerShell スクリプトを実行して `C:` ドライブ上に「Hello world」テキストファイルを作成する `executeScript` タスクを示しています。

```
task: executeScript
  inputs:
    - frequency: always
      type: powershell
      runAs: admin
      content: |-
        New-Item -Path 'C:\PowerShellTest.txt' -ItemType File
        Set-Content 'C:\PowerShellTest.txt' "Hello world"
```
**例 2: 2 つのスクリプトを実行する**  
この例は、`executeScript` タスクが複数のスクリプトを実行できること、およびスクリプトの種類が必ずしも一致する必要がないことを示しています。
最初のスクリプト (`type: powershell`) は、インスタンス上で現在実行されているプロセスの概要を `C:` ドライブ上のテキストファイルに書き込みます。  
2 番目のスクリプト (`batch`) は、システム情報を `Output.tmp` ファイルに書き込みます。  

```
task: executeScript
  inputs:
    - frequency: always
      type: powershell
      runAs: localSystem
      content: |
        Get-Process | Out-File -FilePath C:\Process.txt
    - frequency: always
      type: batch
      runAs: localSystem
      content: |
        systeminfo
```
**例 3: 再起動を伴うべき等システム設定**  
この例は、べき等スクリプトを実行して、各ステップの間に再起動しながら、次のシステム設定を実行する `executeScript` タスクを示しています。
+ コンピュータの名前を変更します。
+ コンピュータをドメインに参加させます。
+ Telnet を有効にします。
スクリプトは、各オペレーションが 1 回だけ実行されるようにします。これにより、再起動ループが防止され、スクリプトがべき等になります。  

```
task: executeScript
  inputs:
    - frequency: always
      type: powershell
      runAs: localSystem
      content: |-
        $name = $env:ComputerName
        if ($name -ne $desiredName) {
          Rename-Computer -NewName $desiredName
          exit 3010
        }
        $domain = Get-ADDomain
        if ($domain -ne $desiredDomain) 
        {
          Add-Computer -DomainName $desiredDomain
          exit 3010
        }
        $telnet = Get-WindowsFeature -Name Telnet-Client
        if (-not $telnet.Installed)
        {
          Install-WindowsFeature -Name "Telnet-Client"
          exit 3010 
        }
```

## extendRootPartition
<a name="ec2launch-v2-extendrootpartition"></a>

ルートボリュームを拡張して、ディスクのすべての使用可能な領域を使用します。

*Frequency* - 1 回

*AllowedStages* - `[Boot]`

*Inputs* - なし

*例* 

```
task: extendRootPartition
```

## initializeVolume
<a name="ec2launch-v2-initializevolume"></a>

インスタンスにアタッチされた空のボリュームを初期化して、アクティブ化およびパーティション化できるようにします。起動エージェントは、ボリュームが空でないことを確認した場合、初期化をスキップします。ボリュームの最初の 4 KiB が空の場合、またはボリュームに [Windows で認識可能なドライブレイアウト](https://learn.microsoft.com/en-us/windows/win32/api/winioctl/ns-winioctl-drive_layout_information_ex)がない場合、そのボリュームは空とみなされます。

`letter` 入力パラメータは、ドライブがすでに初期化されているかどうかを問わず、このタスクの実行時に常に適用されます。

`initializeVolume` タスクは以下のアクションを実行します。
+ ディスク属性 `offline` と `readonly` を false に設定します。
+ パーティションを作成します。`partition` 入力パラメータでパーティションタイプが指定されていない場合、以下のデフォルトが適用されます。
  + ディスクサイズが 2 TB 未満の場合、パーティションタイプを `mbr` に設定します。
  + ディスクサイズが 2 TB 以上の場合、パーティションタイプを `gpt` に設定します。
+ ボリュームを NTFS としてフォーマットします。
+ ボリュームラベルを次のように設定します。
  + 指定されている場合、`name` 入力パラメータの値を使用します。
  + ボリュームがエフェメラルで名前が指定されていない場合、ボリュームラベルを `Temporary Storage Z` に設定します。
+ ボリュームがエフェメラル (Amazon EBS ではなく SSD または HDD) である場合は、ボリュームのルートに次の内容を持つ `Important.txt` ファイルを作成します。

  ```
  This is an 'Instance Store' disk and is provided at no additional charge.
  
  *This disk offers increased performance since it is local to the host
  *The number of Instance Store disks available to an instance vary by instance type
  *DATA ON THIS DRIVE WILL BE LOST IN CASES OF IMPAIRMENT OR STOPPING THE INSTANCE. PLEASE ENSURE THAT ANY IMPORTANT DATA IS BACKED UP FREQUENTLY
  
  For more information, please refer to: EC2 インスタンス用のインスタンスストアの一時ブロックストレージ.
  ```
+ ドライブ文字を `letter` 入力パラメータで指定された値に設定します。

**Stages:**: `PostReady` および `UserData` のステージ中に `initializeVolume` タスクを実行できます。

**Frequency:** 常時。

**入力**  
ランタイムパラメータは次のように設定できます。    
**devices (マップのリスト)**  
(条件付き) 起動エージェントが初期化する各デバイスの設定です。`initialize` 入力パラメータが `devices` に設定されている場合に必須です。  
+ **device (文字列、必須)** — インスタンスの作成中にデバイスを識別します。例えば、`xvdb`、`xvdf`、または `\dev\nvme0n1` です。
+ **letter (文字列、オプション)** — 1 文字です。割り当てるドライブ文字です。
+ **name (文字列、オプション)** — 割り当てるボリューム名です。
+ **partition (文字列、オプション)** — 作成するパーティションのタイプに次のいずれかの値を指定するか、ボリュームサイズに基づいて起動エージェントをデフォルトにします。
  + mbr
  + gpt  
**initialize (文字列)**  
(必須) 次の値のいずれかを正確に指定します。  
+ `all`
+ `devices`

**例**  
以下は、`initializeVolume` タスクの入力構成の例です。  
**例 1: インスタンス上の 2 つのボリュームを初期化**  
こちらは、インスタンス上の 2 つのセカンダリボリュームを初期化する `initializeVolume` タスクの例です。この例の `DataVolume2` という名前のデバイスはエフェメラルです。

```
task: initializeVolume
inputs:
  initialize: devices
  devices:
  - device: xvdb
    name: DataVolume1
    letter: D
    partition: mbr
  - device: /dev/nvme0n1
    name: DataVolume2
    letter: E
    partition: gpt
```

**例 2: インスタンスにアタッチされた EBS ボリュームを初期化**  
こちらは、インスタンスにアタッチされた空の EBS ボリュームをすべて初期化する `initializeVolume` タスクの例です。

```
task: initializeVolume
inputs:
  initialize: all
```

## optimizeEna
<a name="ec2launch-v2-optimizeena"></a>

現在のインスタンスタイプに基づいて ENA 設定を最適化します。インスタンスは再起動される場合があります。

*Frequency* - 常に

*AllowedStages* - `[PostReady, UserData]`

*Inputs* - なし

*例* 

```
task: optimizeEna
```

## setAdminAccount
<a name="ec2launch-v2-setadminaccount"></a>

ローカルマシンに作成されるデフォルトの管理者アカウントの属性を設定します。

*Frequency* - 1 回

*AllowedStages* - `[PreReady]`

*Inputs* - 

`name`: (文字列) 管理者アカウントの名前

`password`: (マップ)

`type`: (文字列) パスワードを設定する戦略 (`static`、`random`、`doNothing` のいずれかとして設定)

`data`: (文字列) `type` フィールドが静的な場合にデータを保存

*例*

```
task: setAdminAccount
inputs:
  name: Administrator
  password:
  type: random
```

## setDnsSuffix
<a name="ec2launch-v2-setdnssuffix"></a>

検索サフィックスのリストに DNS サフィックスを追加します。まだ存在しないサフィックスのみがリストに追加されます。起動エージェントによる DNS サフィックスの設定方法の詳細については、「[EC2 Windows 起動エージェントの DNS サフィックスを設定する](launch-agents-set-dns.md)」を参照してください。

*Frequency* - 常に

*AllowedStages* - `[PreReady]`

*Inputs* - 

`suffixes`: (文字列のリスト) 1 つ以上の有効な DNS サフィックスのリスト (有効な代替変数は `$REGION` と `$AZ`)

*例*

```
task: setDnsSuffix
inputs:
  suffixes:
  - $REGION.ec2-utilities.amazonaws.com
```

## setHostName
<a name="ec2launch-v2-sethostname"></a>

コンピュータのホスト名を、カスタム文字列に設定します。また、`hostName` が指定されていない場合は、プライベート IPv4 アドレスに設定します。

*Frequency* - 常に

*AllowedStages* - `[PostReady, UserData]`

*Inputs* - 

`hostName`: (文字列) オプションのホスト名。次のようにフォーマットする必要があります。
+ 15 文字以下にする必要があります
+ 英数字 (a～z、A～Z、0～9) とハイフン (-) のみを使用する必要があります。
+ 数字だけで構成することはできません。

`reboot`: (ブール値) ホスト名の変更時に再起動を許可するかどうかを示す

*例*

```
task: setHostName
inputs:
  reboot: true
```

## setWallpaper
<a name="ec2launch-v2-setwallpaper"></a>

既存の (`Default User` を除く) 各ユーザーのスタートアップフォルダ内に、ショートカットファイル `setwallpaper.lnk` を作成します。このショートカットファイルは、ユーザーがインスタンスの起動後に初めてログインしたときに実行されます。インスタンス属性を表示するカスタム壁紙があるインスタンスが設定されます。

ショートカットパスは次のとおりです。

```
$env:SystemDrive/Users/<user>/AppData/Roaming/Microsoft/Windows/Start Menu/Programs/Startup/setwallpaper.lnk
```

**注記**  
この `setWallpaper` タスクを削除しても、このショートカットファイルは削除されません。詳細については、「[`setWallpaper` タスクは有効になっていないものの、再起動時にウォールペーパーがリセットされる](ec2launchv2-troubleshooting.md#ec2launchv2-troubleshooting-wallpaper-resets)」を参照してください。

**Stages:** `PreReady` および `UserData` の各ステージ中にウォールペーパーを設定できます。

**頻度:** `always`

**壁紙設定**  
次の設定を使用して壁紙を設定できます。

**入力**  
指定した入力パラメータと、壁紙を設定するために設定できる属性:    
**path (文字列)**  
(必須) 壁紙画像に使用するローカル .jpg 形式の画像ファイルのファイル名パス。  
**属性 (文字列のリスト)**  
(オプション) 壁紙には、次の属性を 1 つ以上追加できます。  
+ `architecture`
+ `availabilityZone`
+ `hostName`
+ `instanceId`
+ `instanceSize`
+ `privateIpAddress`
+ `publicIpAddress`
+ `ipv6Address`  
**InstanceTags**  
(オプション) この設定には、次のオプションを 1 つだけ使用できます。  
+ **AllTags** (文字列) - すべてのインスタンスタグを壁紙に追加します。

  ```
  instanceTags: AllTags
  ```
+ **instanceTags** (文字列のリスト) - 壁紙に追加するインスタンスタグ名のリストを指定します。例えば、次のようになります。

  ```
  instanceTags:
    - Tag 1
    - Tag 2
  ```

**例**  
次の例は、壁紙背景画像のファイルパス、`Tag 1` および `Tag 2` という名前のインスタンスタグ、およびインスタンスのホスト名、インスタンス ID、プライベート IP アドレスとパブリック IP アドレスを含む属性を設定する壁紙設定入力を示しています。

```
task: setWallpaper
inputs:
  path: C:\ProgramData\Amazon\EC2Launch\wallpaper\Ec2Wallpaper.jpg
  attributes:
  - hostName
  - instanceId
  - privateIpAddress
  - publicIpAddress
  instanceTags:
  - Tag 1
  - Tag 2
```

**注記**  
壁紙にタグを表示するには、メタデータのタグを有効にする必要があります。インスタンスのタグおよびメタデータの詳細については、「[インスタンスメタデータを使用して EC2 インスタンスのタグを表示する](work-with-tags-in-IMDS.md)」を参照してください。

## startSsm
<a name="ec2launch-v2-startssm"></a>

Sysprep に続けて Systems Manager (SSM) サービスを開始します。

*Frequency* - 常に

*AllowedStages* - `[PostReady, UserData]`

*Inputs* - なし

*例*

```
task: startSsm
```

## sysprep
<a name="ec2launch-v2-task-sysprep"></a>

サービスの状態のリセット、`unattend.xml` の更新、RDP の無効化、Sysprep の実行を行います。このタスクは、他のすべてのタスクが完了した後にのみ実行されます。

*Frequency* - 1 回

*AllowedStages* - `[UserData]`

*Inputs* - 

`clean`: (ブール) Sysprep を実行する前にインスタンスログを消去する

`shutdown`: (ブール) Sysprep を実行した後にインスタンスをシャットダウンする

*例*

```
task: sysprep
inputs:
clean: true
shutdown: true
```

## writeFile
<a name="ec2-launch-v2-writefile"></a>

ファイルを送信先に書き込みます。

*Frequency* - *Inputs* を参照

*AllowedStages* - `[PostReady, UserData]`

*Inputs* - 

`frequency`: (文字列) `once` または `always` のいずれか

`destination`: (文字列) コンテンツを書き込む先のパス

`content`: (文字列) 送信先に書き込むテキスト

*例*

```
task: writeFile
inputs:
  - frequency: once
  destination: C:\Users\Administrator\Desktop\booted.txt
  content: Windows Has Booted
```

# EC2Launch v2 エージェントの問題をトラブルシューティングする
<a name="ec2launchv2-troubleshooting"></a>

このセクションでは、EC2Launch v2 での一般的なトラブルシューティングシナリオ、Windows イベントログの表示に関する情報、およびコンソールログの出力とメッセージについて説明します。

**Topics**
+ [一般的なシナリオ](#ec2launchv2-troubleshooting-scenarios)
+ [Windows イベントログ](#ec2launchv2-windows-event-logs)
+ [EC2Launch v2 コンソールログ出力](#ec2launchv2-console-output)

## 一般的なトラブルシューティングのシナリオ
<a name="ec2launchv2-troubleshooting-scenarios"></a>

このセクションでは、一般的なトラブルシューティングのシナリオと解決手順を示します。

**Topics**
+ [サービスで壁紙を設定できない](#ec2launchv2-troubleshooting-wallpaper)
+ [サービスでユーザーデータを実行できない](#ec2launchv2-troubleshooting-user-data)
+ [サービスはタスクを 1 回だけ実行する](#ec2launchv2-troubleshooting-task-once)
+ [サービスでタスクを実行できない](#ec2launchv2-troubleshooting-task-failed)
+ [サービスはユーザーデータを複数回実行する](#ec2launchv2-troubleshooting-user-data-more-than-once)
+ [EC2Launch v2 への移行後、EC2Launch v1 のスケジュールされたタスクが実行されない](#ec2launchv2-troubleshooting-scheduled-tasks-migration)
+ [空ではない EBS ボリュームがサービスによって初期化される](#ec2launchv2-troubleshooting-ebs-initialize)
+ [`setWallpaper` タスクは有効になっていないものの、再起動時にウォールペーパーがリセットされる](#ec2launchv2-troubleshooting-wallpaper-resets)
+ [サービスは実行中ステータスでスタックしています](#ec2launchv2-troubleshooting-service-stuck-running)
+ [無効な`agent-config.yml`は EC2Launch v2 設定ダイアログボックスが開くことを防止します](#ec2launchv2-troubleshooting-invalid-agent-config)
+ [`task:executeScript should be unique and only invoked once`](#ec2launchv2-troubleshooting-executescript)

### サービスで壁紙を設定できない
<a name="ec2launchv2-troubleshooting-wallpaper"></a>

**解決策**

1. `%AppData%\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\setwallpaper.lnk` が存在することを確認します。

1. `%ProgramData%\Amazon\EC2Launch\log\agent.log` をチェックし、エラーが発生したかどうかを確認します。

### サービスでユーザーデータを実行できない
<a name="ec2launchv2-troubleshooting-user-data"></a>

**考えられる原因**: ユーザーデータを実行する前にサービスが失敗した可能性があります。

**解決策**

1. `%ProgramData%\Amazon\EC2Launch\state\previous-state.json` をチェックします。

1. `boot`、`network`、`preReady`、`postReadyLocalData` のすべてが成功とマークされているかどうかを確認します。

1. いずれかのステージが失敗した場合は、特定のエラーの `%ProgramData%\Amazon\EC2Launch\log\agent.log` を確認します。

### サービスはタスクを 1 回だけ実行する
<a name="ec2launchv2-troubleshooting-task-once"></a>

**解決策**

1. タスクの頻度を確認します。

1. サービスが Sysprep 後に実行済みであり、タスクの頻度が `once` に設定されている場合、タスクは再度実行されません。

1. EC2Launch v2 が実行されるたびにタスクを実行する場合は、タスクの頻度を `always` に設定します。

### サービスでタスクを実行できない
<a name="ec2launchv2-troubleshooting-task-failed"></a>

**解決策**

1. `%ProgramData%\Amazon\EC2Launch\log\agent.log` の最新のエントリを確認します。

1. エラーが発生しなかった場合は、`"%ProgramFiles%\Amazon\EC2Launch\EC2Launch.exe" run` からサービスを手動で実行し、タスクが成功するかどうかを確認します。

### サービスはユーザーデータを複数回実行する
<a name="ec2launchv2-troubleshooting-user-data-more-than-once"></a>

**解決策**  
ユーザーデータは、EC2Launch v1 と EC2Launch v2 では異なる方法で処理されます。`persist` が `true` に設定されている場合、EC2Launch v1 はユーザーデータをインスタンスでスケジュールされたタスクとして実行します。`persist` が `false` に設定されている場合、タスクが再起動して終了したり、実行中に中断された場合でも、タスクはスケジュールされません。

EC2Launch v2 は、ユーザーデータをエージェントタスクとして実行し、実行状態を追跡します。ユーザーデータがコンピュータの再起動を発行した場合、または実行中にユーザーデータが中断された場合、実行状態は `pending` として持続し、ユーザーデータは次回のインスタンスの起動時に再び実行されます。ユーザーデータスクリプトが複数回実行されないようにするには、スクリプトをべき等にします。

次のべき等スクリプト例では、コンピュータ名を設定し、ドメインに参加します。

```
<powershell>
  $name = $env:computername
  if ($name -ne $desiredName) {
	Rename-Computer -NewName $desiredName
  }
  $domain = Get-ADDomain
  if ($domain -ne $desiredDomain) 
  {
	Add-Computer -DomainName $desiredDomain
  }
  $telnet = Get-WindowsFeature -Name Telnet-Client
  if (-not $telnet.Installed)
  {
	Install-WindowsFeature -Name "Telnet-Client"
  }
</powershell>
<persist>false</persist>
```

### EC2Launch v2 への移行後、EC2Launch v1 のスケジュールされたタスクが実行されない
<a name="ec2launchv2-troubleshooting-scheduled-tasks-migration"></a>

**解決策**  
移行ツールは、EC2Launch v1 スクリプトにリンクされているスケジュールされたタスクを検出しないため、EC2Launch v2 のタスクは自動的にセットアップされません。タスクを設定するには、[`agent-config.yml`](ec2launch-v2-settings.md#ec2launch-v2-task-configuration) ファイルを編集するか、[EC2Launch v2 設定ダイアログボックス](ec2launch-v2-settings.md#ec2launch-v2-ui)を使用します。例えば、インスタンスのタスクが `InitializeDisks.ps1` を実行するようにスケジュールされている場合は、移行ツールを実行した後、EC2Launch v2 の設定ダイアログボックスで、初期化するボリュームを指定する必要があります。[EC2Launch v2 設定ダイアログボックスを使用して設定を変更する](ec2launch-v2-settings.md#ec2launch-v2-ui) の手順については、ステップ 6 を参照してください。

### 空ではない EBS ボリュームがサービスによって初期化される
<a name="ec2launchv2-troubleshooting-ebs-initialize"></a>

**解決策**  
ボリュームが初期化される前に、EC2Launch v2 は、そのボリュームにデータがないこと確認します。ボリュームが空でない場合、初期化はスキップされます。空でないことが検出されたボリュームは初期化されません。ボリュームの最初の 4 KiB が空の場合、またはボリュームに [ Windows を認識できるドライブレイアウト](https://learn.microsoft.com/en-us/windows/win32/api/winioctl/ns-winioctl-drive_layout_information_ex)がない場合、ボリュームは空と見なされます。Linux システムで初期化およびフォーマットされたボリュームには、Windows を認識できるドライブレイアウト (MBR や GPT など) がありません。したがって、それは空とみなされ、初期化されます。このデータを保持する場合、EC2Launch v2 による空ドライブの検出には頼らないでください。代わりに、[EC2Launch v2 設定ダイアログボックス](ec2launch-v2-settings.md#ec2launch-v2-ui) (ステップ 6 を参照) または [`agent-config.yml`](ec2launch-v2-task-definitions.md#ec2launch-v2-initializevolume) で、初期化するボリュームを指定します。

### `setWallpaper` タスクは有効になっていないものの、再起動時にウォールペーパーがリセットされる
<a name="ec2launchv2-troubleshooting-wallpaper-resets"></a>

`setWallpaper` タスクにより、すべての既存ユーザーのスタートアップフォルダ内に `setwallpaper.lnk` ショートカットファイルが作成されます。このショートカットファイルは、ユーザーがインスタンスの起動後に初めてログインしたときに実行されます。インスタンス属性を表示するカスタム壁紙があるインスタンスが設定されます。この `setWallpaper` タスクを削除しても、このショートカットファイルは削除されません。このファイルは手動で削除するか、スクリプトを使用して削除する必要があります。

ショートカットパスは次のとおりです。

`$env:SystemDrive/Users/<user>/AppData/Roaming/Microsoft/Windows/Start Menu/Programs/Startup/setwallpaper.lnk`

**解決策**  
このファイルを手動で削除するか、スクリプトを使用して削除します。

**ショートカットファイルを削除する PowerShell スクリプトの例**

```
foreach ($userDir in (Get-ChildItem "C:\Users" -Force -Directory).FullName)
{
	$startupPath = Join-Path $userDir -ChildPath "AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup"
	if (Test-Path $startupPath)
	{
		$wallpaperSetupPath = Join-Path $startupPath -ChildPath "setwallpaper.lnk"
		if (Test-Path $wallpaperSetupPath)
		{
			Remove-Item $wallpaperSetupPath -Force -Confirm:$false
		}
	}
}
```

### サービスは実行中ステータスでスタックしています
<a name="ec2launchv2-troubleshooting-service-stuck-running"></a>

**説明**

EC2Launch v2 は、次のようなログ (`agent.log`) でブロックされます。

```
2022-02-24 08:08:58 Info: *****************************************************************************************
2022-02-24 08:08:58 Info: EC2Launch Service starting
2022-02-24 08:08:58 Info: Windows event custom log exists: Amazon EC2Launch
2022-02-24 08:08:58 Info: ACPI SPCR table not supported. Bailing Out
2022-02-24 08:08:58 Info: Serial port is in use. Waiting for Serial Port...
2022-02-24 08:09:00 Info: ACPI SPCR table not supported. Use default console port.
2022-02-24 08:09:02 Info: ACPI SPCR table not supported. Use default console port.
2022-02-24 08:09:04 Info: ACPI SPCR table not supported. Use default console port.
2022-02-24 08:09:06 Info: ACPI SPCR table not supported. Use default console port.
```

**考えられる原因**  
SAC が有効化され、シリアルポートを使用しています。詳細については、「[SAC を使用して Windows インスタンスをトラブルシューティングする](troubleshoot-using-serial-console.md#troubleshooting-sac)」を参照してください。

**解決策**  
この問題を解決するには、以下の手順を実行します。
+ このシリアルポートを使用しているサービスを、無効にします。
+ サービスでこのシリアルポートを引き続き使用する場合は、起動エージェントタスクを実行するカスタムスクリプトを作成し、スケジュールされたタスクとして起動します。

### 無効な`agent-config.yml`は EC2Launch v2 設定ダイアログボックスが開くことを防止します
<a name="ec2launchv2-troubleshooting-invalid-agent-config"></a>

**説明**  
EC2Launch v2 設定は、ダイアログボックスを開く前に `agent-config.yml` ファイルの解析を試みます。YAML 設定ファイルがサポートされているスキーマに準拠しない場合、ダイアログボックスに次のエラーが表示されます。

`Unable to parse configuration file agent-config.yml. Review configuration file. Exiting application.`

**解決策**

1. 設定ファイルが [[supported schema]](ec2launch-v2-settings.md#ec2launch-v2-schema-agent-config) (サポートされているスキーマ) に準拠していることを検証します。

1. 最初から始めたい場合は、デフォルトの設定ファイルを `agent-config.yml` にコピーします。「タスク設定セクション」に提供されている [サンプル `agent-config.yml`](ec2launch-v2-settings.md#ec2launch-v2-example-agent-config) を使用できます。

1. `agent-config.yml` を削除して最初からやり直すこともできます。EC2Launch v2 設定は空の設定ファイルを生成します。

### `task:executeScript should be unique and only invoked once`
<a name="ec2launchv2-troubleshooting-executescript"></a>

**説明**  
同じステージでタスクを繰り返すことはできません。

**解決策**  
一部のタスクは、[**executeScript**](ec2launch-v2-task-definitions.md#ec2launch-v2-executescript) と [**executeProgram**](ec2launch-v2-task-definitions.md#ec2launch-v2-executeprogram) などの配列として入力する必要があります。スクリプトを配列として記述する方法の例については、「[**executeScript**](ec2launch-v2-task-definitions.md#ec2launch-v2-executescript)」を参照してください。

## Windows イベントログ
<a name="ec2launchv2-windows-event-logs"></a>

EC2Launch v2 は、サービスの開始、Windows の準備完了、さらにタスクの成否などの重要なイベントに関する Windows イベントログを発行します。イベント識別子は、特定のイベントを一意に識別します。各イベントには、ステージ、タスク、レベル情報、説明が含まれます。イベント識別子を使用して、特定のイベントのトリガーを設定できます。

イベント識別子は、イベントに関する情報を提供し、いくつかのイベントを一意に識別します。イベント ID の最下位桁は、イベントの重大度を示します。


| イベント | 最下位桁 | 
| --- | --- | 
|  Success  | . . .0 | 
| Informational | . . .1 | 
| Warning | . . .2 | 
| Error | . . .3 | 

サービスの開始時または停止時に生成されるサービスに関するイベントには、1 桁のイベント識別子が含まれます。


| イベント | 1 桁の識別子 | 
| --- | --- | 
|  Success  | 0 | 
| Informational | 1 | 
| Warning | 2 | 
| Error | 3 | 

`EC2LaunchService.exe` イベントのイベントメッセージは、`Service:` から始まります。`EC2Launch.exe` イベントのイベントメッセージは、`Service:` で始まるものではありません。

4 桁のイベント ID には、イベントのステージ、タスク、重大度に関する情報が含まれます。

**Topics**
+ [イベント ID 形式](#ec2launchv2-windows-event-logs-format)
+ [イベント ID の例](#ec2launchv2-windows-event-logs-id-examples)
+ [Windows イベントログのスキーマ](#ec2launch-v2-windows-event-logs-schema)

### イベント ID 形式
<a name="ec2launchv2-windows-event-logs-format"></a>

次の表に EC2Launch v2 でのイベント識別子の形式を示します。


| 3 | 2 1 | 0 | 
| --- | --- | --- | 
|  S  |  T  |  L  | 

表内の文字と数字は、次のイベントタイプと定義を表します。


| イベントタイプ | 定義 | 
| --- | --- | 
|  S (ステージ)  |  0 - サービスレベルのメッセージ 1 - Boot 2 - Network 3 - PreReady 5 - Windows is Ready 6 - PostReady 7 - User Data  | 
|  T (タスク)  |  対応する 2 つの値で表されるタスクは、ステージごとに異なります。イベントの詳細なリストを表示するには、[Windows イベントログのスキーマ](#ec2launch-v2-windows-event-logs-schema)を参照してください。  | 
| L (イベントのレベル) |  0 - 成功 1 - 情報 2 - 警告 3 - エラー  | 

### イベント ID の例
<a name="ec2launchv2-windows-event-logs-id-examples"></a>

イベント ID の例を次に示します。
+ `5000` - Windows の使用準備完了
+ `3010` - PreReady ステージの Windows のアクティブ化タスクが成功しました
+ `6013` - PostReady ローカルデータステージの壁紙の設定タスクでエラーが発生しました

### Windows イベントログのスキーマ
<a name="ec2launch-v2-windows-event-logs-schema"></a>


| メッセージ ID/イベント ID | イベントメッセージ | 
| --- | --- | 
|  . . .0  | Success | 
|  . . .1  | Informational | 
|  . . .2  | Warning | 
|  . . .3  | Error | 
|  x  | EC2Launch service-level logs | 
|  0  | EC2Launch service exited successfully | 
|  1  |  EC2Launch service informational logs | 
|  2  |  EC2Launch service warning logs | 
| 3 | EC2Launch service error logs | 
|  10  | Replace state.json with previous-state.json | 
| 100 | Serial Port | 
| 200 | Sysprep | 
| 300 | PrimaryNic | 
| 400 | Metadata | 
|  x000  | Stage (1 digit), Task (2 digits), Status (1 digit) | 
|  1000  | Boot | 
|  1010  | Boot - extend\$1root\$1partition | 
| 2000 | Network | 
|  2010  | Network - add\$1routes | 
|  3000  | PreReady | 
|  3010  | PreReady - activate\$1windows | 
|  3020  | PreReady - install\$1egpu\$1manager | 
|  3030  | PreReady - set\$1monitor\$1on | 
|  3040  | PreReady - set\$1hibernation | 
|  3050  | PreReady - set\$1admin\$1account | 
|  3060  | PreReady - set\$1dns\$1suffix | 
|  3070  | PreReady - set\$1wallpaper | 
|  3080  | PreReady - set\$1update\$1schedule | 
|  3090  | PreReady - output\$1log | 
|  3100  | PreReady - enable\$1open\$1ssh | 
|  5000  | Windows is Ready to use | 
|  6000  | PostReadyLocalData | 
| 7000 | PostReadyUserData | 
|  6010/7010  | PostReadyLocal/UserData - set\$1wallpaper | 
|  6020/7020  | PostReadyLocal/UserData - set\$1update\$1schedule | 
|  6030/7030  | PostReadyLocal/UserData - set\$1hostname | 
|  6040/7040  | PostReadyLocal/UserData - execute\$1program | 
|  6050/7050  | PostReadyLocal/UserData - execute\$1script | 
|  6060/7060  | PostReadyLocal/UserData - manage\$1package | 
|  6070/7070  | PostReadyLocal/UserData - initialize\$1volume | 
|  6080/7080  | PostReadyLocal/UserData - write\$1file | 
|  6090/7090  | PostReadyLocal/UserData - start\$1ssm | 
|  7100  | PostReadyUserData - enable\$1open\$1ssh | 
|  6110/7110  | PostReadyLocal/UserData - enable\$1jumbo\$1frames | 

## EC2Launch v2 コンソールログ出力
<a name="ec2launchv2-console-output"></a>

このセクションには、サンプルの EC2Launch v2 コンソールログ出力が含まれており、EC2Launch v2 コンソールログエラーメッセージのうち、問題のトラブルシューティングに役立つものを一覧表示しています。インスタンスコンソール出力とそのアクセス方法の詳細については、「[インスタンスコンソール出力](troubleshoot-unreachable-instance.md#instance-console-console-output)」を参照してください。

**Topics**
+ [EC2Launch v2 コンソールログ出力](#ec2launchv2-console-log-output)
+ [EC2Launch v2 コンソールログメッセージ](#ec2launchv2-console-log-messages)

### EC2Launch v2 コンソールログ出力
<a name="ec2launchv2-console-log-output"></a>

以下に示しているのは、サンプルの EC2Launch v2 コンソールログ出力です。この例の一部の値は、中括弧で囲まれた代表的なテキストに置き換えられます。

```
2025/07/22 21:26:53Z: Windows sysprep configuration complete.
2025/07/22 21:26:53Z: Message: Waiting for access to metadata...
2025/07/22 21:26:53Z: Message: Meta-data is now available.
2025/07/22 21:26:53Z: AMI Origin Version: 2024.12.13
2025/07/22 21:26:53Z: AMI Origin Name: Windows_Server-2022-English-Full-Base
2025/07/22 21:26:53Z: OS: Microsoft Windows NT 10.0.20348
2025/07/22 21:26:53Z: OsVersion: 10.0
2025/07/22 21:26:53Z: OsProductName: Windows Server 2022 Datacenter
2025/07/22 21:26:53Z: OsBuildLabEx: 20348.1.amd64fre.fe_release.210507-1500
2025/07/22 21:26:53Z: OsCurrentBuild: 20348
2025/07/22 21:26:53Z: OsReleaseId: 2009
2025/07/22 21:26:53Z: Language: en-US
2025/07/22 21:26:53Z: TimeZone: UTC
2025/07/22 21:26:53Z: Offset: UTC +0000
2025/07/22 21:26:53Z: Launch: EC2 Launch v2.2.63
2025/07/22 21:26:53Z: AMI-ID: ami-1234567890abcdef1
2025/07/22 21:26:53Z: Instance-ID: i-1234567890abcdef0
2025/07/22 21:26:54Z: Instance Type: t3.xlarge
2025/07/22 21:26:54Z: Driver: AWS NVMe Driver v1.6.0.35
2025/07/22 21:26:54Z: SubComponent: 1.6.0.35; EnableSCSIPersistentReservations: 0
2025/07/22 21:26:54Z: Driver: AWS PV Driver Package v8.5.0
2025/07/22 21:26:55Z: Driver: Amazon Elastic Network Adapter v2.8.0.0
2025/07/22 21:26:55Z: HOSTNAME: EC2AMAZ-9FJG5CC
2025/07/22 21:26:55Z: RDPCERTIFICATE-SUBJECTNAME: {certificate subject name}
2025/07/22 21:26:55Z: RDPCERTIFICATE-THUMBPRINT: {thumbprint hash}
2025/07/22 21:26:56Z: SSM: Amazon SSM Agent v3.3.2746.0
2025/07/22 21:26:57Z: User data format: no_user_data
2025/07/22 21:26:57Z: EC2LaunchTelemetry: IsTelemetryEnabled=true
2025/07/22 21:26:57Z: EC2LaunchTelemetry: AgentOsArch=windows_amd64
2025/07/22 21:26:57Z: EC2LaunchTelemetry: IsAgentScheduledPerBoot=true
2025/07/22 21:26:57Z: EC2LaunchTelemetry: AgentCommandErrorCode=1
2025/07/22 21:26:57Z: EC2LaunchTelemetry: AdminPasswordTypeCode=0
2025/07/22 21:26:57Z: EC2LaunchTelemetry: AgentErrorLocation=execute_windows.go:410
2025/07/22 21:26:57Z: EC2LaunchTelemetry: IpConflictDetectionCode=0
2025/07/22 21:26:57Z: Message: Windows is Ready to use
{"type":"EC2AgentTelemetry","agentId":"WindowsLaunchAgentV2", ...}
{"type":"EC2AgentTelemetry","agentId":"WindowsLaunchAgentV2", ...}
```

### EC2Launch v2 コンソールログメッセージ
<a name="ec2launchv2-console-log-messages"></a>

以下に示しているのは、すべての EC2Launch v2 コンソールログメッセージのリストです。

```
Error EC2Launch service is stopping. {error message}
```

停止したサービスエラーの詳細：
+ `Error setting up EC2Launch agent folders`
+ `See instance logs for detail`
+ `Error stopping service`
+ `Error initializing service`

```
Windows sysprep configuration complete
```

```
Invalid administrator username: {invalid username}
```

```
Invalid administrator password
Username: {username}
Password: <Password>{encrypted password}</Password>
```

次のメッセージは、AMI の詳細を含む情報ブロックです。

```
AMI Origin Version: {amiVersion}
AMI Origin Name: {amiName}
Microsoft Windows NT {currentVersion}.{currentBuildNumber}
OsVersion: {currentVersion}
OsProductName: {productName}
OsBuildLabEx: {buildLabEx}
OsCurrentBuild: {currentBuild}
OsReleaseId: {releaseId}
Language: {language}
TimeZone: {timeZone}
Offset: UTC {offset}
Launch agent: EC2Launch {BuildVersion}
AMI-ID: {amiId}
Instance-ID: {instanceId}
Instance Type: {instanceType}
HOSTNAME: {computer name}
RDPCERTIFICATE-SUBJECTNAME: {certificate subject name}
RDPCERTIFICATE-THUMBPRINT: {thumbprint hash}
SqlServerBilling: {sql billing}
SqlServerInstall: {sql patch leve, edition type}
Driver: AWS NVMe Driver {version}
Driver: Inbox NVMe Driver {version}
Driver: AWS PV Driver Package {version}
SSM: Amazon SSM Agent {version}
AWS VSS Version: {version}
```

```
Windows sysprep configuration complete.
Windows is being configured. 'SysprepState is {state}'
Windows is still being configured. 'SysprepState is {state}'
Windows is Ready to use
Waiting for access to metadata...
Meta-data is now available.
Metadata is not available for this instance.
Timed out waiting for access to metadata.
User data format: {format}
```

EC2Launch v2 テレメトリメッセージには、起動テレメトリプロパティ値が含まれます。バージョン 2.2.63 以降、EC2 エージェントテレメトリデータは JSON オブジェクトとしてフォーマットされます。

```
EC2LaunchTelemetry: {telemetry property}
```

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

# EC2Launch v2 のバージョン履歴
<a name="ec2launchv2-versions"></a>

**Topics**
+ [EC2Launch v2 のバージョン履歴](#ec2launchv2-version-history)

## EC2Launch v2 のバージョン履歴
<a name="ec2launchv2-version-history"></a>

最新の起動エージェントがインストールされていることを確認するには、「[EC2Launch v2 の最新バージョンのインストール](ec2launch-v2-install.md)」を参照してください。EC2Launch v2 エージェントの新しいバージョンがリリースされた際に、通知を受け取ることができます。詳細については「[EC2 Windows 起動エージェント通知をサブスクライブする](launch-agents-subscribe-notifications.md)」を参照してください。

次の表で、EC2Launch v2 のリリース済みバージョンについて説明します。


| バージョン | 詳細 | リリース日 | 
| --- | --- | --- | 
| 2.4.0 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/ec2launchv2-versions.html)  | 2026 年 3 月 5 日 | 
| 2.3.237 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/ec2launchv2-versions.html)  | 2026 年 2 月 25 日 | 
| 2.3.108 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/ec2launchv2-versions.html)  | 2025 年 12 月 29 日 | 
| 2.3.56 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/ec2launchv2-versions.html)  | 2025 年 11 月 4 日 | 
| 2.3.5 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/ec2launchv2-versions.html) | 2025 年 9 月 15 日 | 
| 2.2.63 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/ec2launchv2-versions.html) | 2025 年 7 月 29 日 | 
| 2.1.1 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/ec2launchv2-versions.html) | 2025 年 5 月 14 日 | 
| 2.0.2107 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/ec2launchv2-versions.html) | 2025 年 3 月 27 日 | 
| 2.0.2081 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/ec2launchv2-versions.html)  | 2025 年 2 月 4 日 | 
| 2.0.2046 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/ec2launchv2-versions.html)  | 2024 年 10 月 3 日 | 
| 2.0.1981 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/ec2launchv2-versions.html)  | 2024 年 8 月 6 日 | 
| 2.0.1948 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/ec2launchv2-versions.html)  | 2024 年 7 月 1 日 | 
| 2.0.1924 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/ec2launchv2-versions.html)  | 2024 年 6 月 10 日 | 
| 2.0.1914 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/ec2launchv2-versions.html)  | 2024 年 6 月 5 日 | 
| 2.0.1881 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/ec2launchv2-versions.html)  | 2024 年 5 月 8 日 | 
| 2.0.1815 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/ec2launchv2-versions.html)  | 2024 年 3 月 6 日 | 
| 2.0.1739 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/ec2launchv2-versions.html)  | 2024 年 1 月 17 日 | 
| 2.0.1702 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/ec2launchv2-versions.html) | 2024 年 1 月 4 日 | 
| 2.0.1643 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/ec2launchv2-versions.html) | 2023 年 10 月 4 日 | 
| 2.0.1580 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/ec2launchv2-versions.html) | 2023 年 9 月 5 日 | 
| 2.0.1521 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/ec2launchv2-versions.html) | 2023 年 7 月 3 日 | 
| 2.0.1303 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/ec2launchv2-versions.html) | 2023 年 5 月 3 日 | 
| 2.0.1245 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/ec2launchv2-versions.html) | 2023 年 3 月 8 日 | 
| 2.0.1173 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/ec2launchv2-versions.html) | 2023 年 2 月 6 日 | 
| 2.0.1121 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/ec2launchv2-versions.html) | 2023 年 1 月 4 日 | 
| 2.0.1082 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/ec2launchv2-versions.html) | 2022 年 12 月 7 日 | 
| 2.0.1011 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/ec2launchv2-versions.html) | 2022 年 11 月 11 日 | 
| 2.0.1009 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/ec2launchv2-versions.html) | 2022 年 11 月 8 日 | 
| 2.0.982 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/ec2launchv2-versions.html) | 2022 年 10 月 31 日 | 
| 2.0.863 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/ec2launchv2-versions.html) | 2022 年 7 月 6 日 | 
| 2.0.698 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/ec2launchv2-versions.html) | 2022 年 1 月 30 日 | 
| 2.0.674 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/ec2launchv2-versions.html) | 2021 年 11 月 15 日 | 
| 2.0.651 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/ec2launchv2-versions.html) | 2021 年 10 月 7 日 | 
| 2.0.592 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/ec2launchv2-versions.html) | 2021 年 8 月 31 日 | 
| 2.0.548 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/ec2launchv2-versions.html) | 2021 年 8 月 4 日 | 
| 2.0.470 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/ec2launchv2-versions.html) | 2021 年 7 月 20 日 | 
| 2.0.285 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/ec2launchv2-versions.html) | 2021 年 3 月 8 日 | 
| 2.0.207 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/ec2launchv2-versions.html) | 2021 年 2 月 2 日 | 
| 2.0.160 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/ec2launchv2-versions.html) | 2020 年 12 月 4 日 | 
| 2.0.153 | UserData に Sysprep 機能を追加しました。 | 2020 年 11 月 3 日 | 
| 2.0.146 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/ec2launchv2-versions.html)  | 2020 年 10 月 6 日 | 
| 2.0.124 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/ec2launchv2-versions.html)  | 2020 年 9 月 10 日 | 
| 2.0.104 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/ec2launchv2-versions.html)  | 2020 年 8 月 12 日 | 
| 2.0.0 | 初回リリース。 | 2020 年 6 月 30 日 | 