

# 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)を参照してください。