EC2Launch v2 の設定 - Amazon Elastic Compute Cloud

EC2Launch v2 の設定

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

EC2Launch v2 設定ダイアログボックスを使用して設定を変更する

次の手順では、EC2Launch v2 設定ダイアログボックスを使用して設定を有効または無効にする方法を示します。

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

  2. [スタート] メニューから、[すべてのプログラム] を選択し、[EC2Launch 設定] に移動します。

    
                            EC2 Launch 設定アプリケーション
  3. [EC2Launch 設定] ダイアログボックスの [全般] タブで、次の設定を有効または無効にすることができます。

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

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

    2. ブートボリュームの拡張

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

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

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

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

      1. Random

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

      2. Specify

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

      3. DoNothing

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

    4. SSM サービスの開始

      選択すると、Systems Manager サービスが Sysprep 後に開始できるようになります。EC2Launch v2 は前述のすべてのタスクを実行し、SSM エージェントは Run Command やステートマネージャーなどの Systems Manager 機能に対するリクエストを処理します。

      Run Command を使用して既存のインスタンスをアップグレードすることで、最新バージョンの EC2Launch v2 サービスおよび SSM エージェントを使用できます。詳細については、AWS Systems Manager ユーザーガイドの「Run Command を使用して SSM エージェントを更新する」を参照してください。

    5. ENA の最適化

      選択すると、ENA の受信側のスケーリングおよび受信キューの深さの設定を AWS 用に最適化するように ENA 設定が構成されます。詳細については、「RSS CPU アフィニティを設定する」を参照してください。

    6. SSH の有効化

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

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

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

    8. イメージングの準備

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

  4. [DNS サフィックス] タブで、完全修飾ドメイン名を指定せずに、EC2 で実行されているサーバーの DNS 解決用に DNS サフィックスのリストを追加するかどうかを選択できます。DNS サフィックスには、$REGION 変数と $AZ 変数を含めることができます。まだ存在しないサフィックスのみがリストに追加されます。

    
                            EC2 Launch 設定アプリケーション
  5. [壁紙] タブで、選択したインスタンスの詳細を壁紙に表示できます。また、カスタムイメージを選択することもできます。詳細は、ログインするたびに生成されます。壁紙からインスタンスの詳細を削除するには、チェックボックスをオフにします。

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

    [名前]、[文字]、[パーティション] は、オプションのフィールドです。[パーティション] に値を指定しないと、2 TB より大きいストレージボリュームは GPT パーティションタイプで初期化され、2 TB より小さいストレージボリュームは MBR パーティションタイプで初期化されます。デバイスが設定済みで、NTFS 以外のデバイスにパーティションテーブルが含まれているか、ディスクの最初の 4 KB にデータが含まれている場合、ディスクはスキップされ、アクションがログに記録されます。

    
                            EC2 Launch 設定アプリケーション

EC2Launch ダイアログに入力した設定から作成される設定 YAML ファイルの例を次に示します。

version: 1.0 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 - memory - network - stage: postReady tasks: - task: startSsm

EC2Launch v2 ディレクトリ構造

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 サービスの実行可能ファイル。

  • EC2Launch.exe - メインの EC2Launch 実行可能ファイル

  • EC2LaunchAgentAttribution.txt - EC2 Launch 内で使用されるコードの属性

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

  • config - 設定

    サービス設定ファイルは、このディレクトリに agent-config.yml として保存されます。このファイルを更新し、サービスによってデフォルトで実行されるタスクを変更、追加、削除できます。

  • log - インスタンスログ

    サービスのログ (agent.log)、コンソールのログ (console.log)、パフォーマンスのログ (bench.log)、エラーのログ (error.log) は、このディレクトリに保存されます。ログファイルは、サービスの以降の実行時に追加されます。

  • state - サービスの状態データ

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

  • sysprep - Sysprep

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

CLI による EC2Launch v2 の設定

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

collect-logs

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

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

使用

ec2launch collect-logs [flags]

Flags

-h--help

collect-logs に関するヘルプ

-o--output string

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

get-agent-config

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

ec2launch get-agent-config -f json

例 2

以下の PowerShell コマンドは、agent-config ファイルを JSON 形式で編集および保存する方法を示しています。

$config = ec2launch get-agent-config --format json | ConvertFrom-Json $jumboFrame =@" { "task": "enableJumboFrames" } "@ $config.config | %{if($_.stage -eq 'postReady'){$_.tasks += (ConvertFrom-Json -InputObject $jumboFrame)}} $config | ConvertTo-Json -Depth 6 | Out-File -encoding UTF8 $env:ProgramData/Amazon/EC2Launch/config/agent-config.yml

使用

ec2launch get-agent-config [flags]

Flags

-h--help

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

-f--format string

agent-config ファイルの出力形式: jsonyaml

list-volumes

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

ec2launch list-volumes

使用

ec2launch list-volumes

Flags

-h--help

list-volumes に関するヘルプ

reset

.runonce ファイルを削除し、1 回実行するように指定されたタスクが次の実行時に実行されるようにします。必要に応じて、サービスログと sysprep ログを削除します。

ec2launch reset -c

使用

ec2launch reset [flags]

Flags

-c--clean

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

-h--help

reset に関するヘルプ

run

EC2Launch v2 を実行します。

ec2launch run

使用

ec2launch run [flags]

Flags

-h--help

run に関するヘルプ

status

EC2Launch サービスのステータスを取得します。オプションで、サービスが終了するまでプロセスをブロックします。プロセスの終了コードは、以下のように、サービスの状態を決定します。

  • 0 — サービスは実行され、成功しました。

  • 1 — サービスが実行され、失敗しました。

  • 2 — サービスはまだ実行中です。

例:

ec2launch status -b

使用

ec2launch status [flags]

Flags

-b,--block

は、サービスの実行が終了するまでプロセスをブロックする

-h,--help

status に関するヘルプ

sysprep

サービスの状態のリセット、unattend.xml の更新、RDP の無効化、Sysprep の実行を行います。

例:

ec2launch sysprep

使用

ec2launch sysprep [flags]

Flags

-c,--clean

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

-h,--help

Sysprep に関するヘルプ

-s,--shutdown

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

validate

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

ec2launch validate

使用

ec2launch validate [flags]

Flags

-h --help

validate に関するヘルプ

version

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

ec2launch version

使用

ec2launch version [flags]

Flags

-h--help

version に関するヘルプ

壁紙

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

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

使用

ec2launch wallpaper [flags]

Flags

--attributes strings

wallpaper 属性

-h--help

wallpaper に関するヘルプ

-p--path string

wallpaper ファイルパス

EC2Launch v2 タスクの設定

このセクションでは、agent-config.yml ファイルと user-data.yml ファイルの設定タスク、詳細、例について説明します。

activateWindows

KMS サーバーのセットに対して Windows をアクティブにします。

Frequency - 1 回

AllowedStages - [PreReady]

Inputs -

activation: (マップ)

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

task: activateWindows inputs: activation: type: amazon

enableJumboFrames

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

Frequency - 常に

AllowedStages - [PostReady, UserData]

Inputs - なし

task: enableJumboFrames

enableOpenSsh

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

Frequency - 1 回

AllowedStages - [PreReady, UserData]

Inputs - なし

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

task: enableOpenSsh

executeProgram

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

Frequency - Inputs を参照

AllowedStages - [PostReady, UserData]

Inputs -

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

path: (文字列) 実行可能ファイルへのパス

arguments: (文字列のリスト) 実行可能ファイルに渡す文字列引数のリスト

runAs: (文字列) localSystem に設定要

次の例は、インスタンスに既に存在する実行可能ファイルを実行する方法を示しています。

task: executeProgram inputs: - frequency: always path: C:\Users\Administrator\Desktop\setup.exe arguments: [‘—quiet']

例 2

次の例は、インスタンスに既に存在する実行可能ファイルを実行する方法を示しています。この設定では、インスタンスの C: ドライブに存在する VLC .exe ファイルをインストールします。/L=1033/S は、VLC .exe ファイルと共に文字列リストとして渡される VLC 引数です。

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

executeScript

オプションの引数と指定された頻度でスクリプトを実行します。

Frequency - Inputs を参照

AllowedStages - [PostReady, UserData]

Inputs -

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

type: (文字列) batch または powershell のいずれか

arguments: (文字列のリスト) シェルに渡す文字列引数のリスト

content: (文字列) スクリプトの内容

runAs: (文字列) admin または localSystem のいずれか

task: executeScript inputs: - frequency: always type: powershell content: | Get-Process | Out-File -FilePath .\Process.txt runAs: localSystem

例 2

次の例は、EC2 インスタンスで PowerShell スクリプトを実行する方法を示しています。この設定では、C: ドライブにテキストファイルを作成します。

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"

例 3

次の例は、インスタンスを複数回再起動するべき等スクリプトを示しています。

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

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

Frequency - 1 回

AllowedStages - [Boot]

Inputs - なし

task: extendRootParitition

initializeVolume

インスタンスにアタッチされたボリュームを初期化して、アクティブ化およびパーティション化できるようにします。空でないことが検出されたボリュームは初期化されません。ボリュームの最初の 4 KiB が空の場合、またはボリュームに Windows を認識できるドライブレイアウトがない場合、ボリュームは空と見なされます。

Frequency - 常に

AllowedStages - [PostReady, UserData]

Inputs -

initialize: (文字列) 使用する初期化戦略のタイプ、all または devices のいずれか

devices: (マップのリスト)

device: インスタンスの作成時に使用されるデバイス識別子 (例: xvdbxvdf/dev/nvme0n1)

name: (文字列) 割り当てるドライブ名

letter: (文字列) 割り当てるドライブ文字

partition: (文字列) 使用するパーティション分割タイプ、mbr または gpt のいずれか

例 1

次の例は、選択したボリュームを初期化するように設定するための InitializeVolume タスクの入力を示しています。

task: initializeVolume inputs: initialize: devices devices: - device: xvdb name: MyVolumeOne letter: D partition: mbr - device: /dev/nvme0n1 name: MyVolumeTwo letter: E partition: gpt

例 2

次の例は、インスタンスにアタッチされている EBS ボリュームを初期化する方法を示しています。この設定では、インスタンスにアタッチされているすべての空の EBS ボリュームを初期化します。ボリュームが空でない場合、ボリュームは初期化されません。

task: initializeVolume inputs: initialize: all

optimizeEna

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

Frequency - 常に

AllowedStages - [PostReady, UserData]

Inputs - なし

task: optimizeEna

setAdminAccount

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

Frequency - 1 回

AllowedStages - [PreReady]

Inputs -

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

password: (マップ)

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

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

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

setDnsSuffix

検索サフィックスのリストに DNS サフィックスを追加します。まだ存在しないサフィックスのみがリストに追加されます。

Frequency - 常に

AllowedStages - [PreReady]

Inputs -

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

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

setHostName

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

Frequency - 常に

AllowedStages - [PostReady, UserData]

Inputs -

hostName: (文字列) オプションのホスト名。次のようにフォーマットする必要があります。

  • 15 文字以下にする必要があります

  • 英数字 (a~z、A~Z、0~9) とハイフン (-) のみを使用する必要があります。

  • 数字だけで構成することはできません。

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

task: setHostName inputs: reboot: true

setWallpaper

インスタンス属性を表示するカスタム壁紙を使用してインスタンスを設定します。

Frequency - 常に

AllowedStages - [PreReady, UserData]

Inputs -

path: (文字列) 壁紙イメージとして使用するローカル .jpgファイルへのパス

attributes: (文字列のリスト) 壁紙に追加する属性のリスト (hostNameinstanceIdprivateIpAddresspublicIpAddressinstanceSizeavailabilityZonearchitecturememorynetwork のいずれか)

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

startSsm

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

Frequency - 常に

AllowedStages - [PostReady, UserData]

Inputs - なし

task: startSsm

sysprep

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

Frequency - 1 回

AllowedStages - [UserData]

Inputs -

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

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

task: sysprep inputs: clean: true shutdown: true

writeFile

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

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

例: agent-config.yml

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

version: 1.0 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 - memory - network - stage: postReady tasks: - task: startSsm

例: ユーザーデータ

ユーザーデータの詳細については、「Windows インスタンスでの起動時のコマンドの実行」を参照してください。

次の例は、ユーザーデータの設定を示しています。

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

次のフォーマットは、このサービスの旧バージョンと互換性があります。

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

EC2Launch v2 終了コードと再起動

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

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

古いエージェントと互換性のあるレガシーユーザーデータ形式を使用している場合、ユーザーデータは意図したよりも多く実行されることがあります。詳細については、トラブルシューティングセクションの「サービスはユーザーデータを複数回実行する」を参照してください。

EC2Launch v2 と Sysprep

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

インスタンスの設定を更新した後で、そのインスタンスから AMI を作成した場合、その AMI から起動されるすべてのインスタンスには、更新後の新しい設定が適用されます。AMI の作成の詳細については、「カスタム Windows AMI を作成する」を参照してください。