Windows Sysprep を使用して Amazon EC2 AMI を作成する - Amazon Elastic Compute Cloud

Windows Sysprep を使用して Amazon EC2 AMI を作成する

Microsoft システム準備 (Windows Sysprep) ツールは、新しいイメージをキャプチャする前にインスタンス固有のシステム設定を削除して、オペレーティングシステムの一般化バージョンを作成します。

EC2 Image Builder を使用して、ソフトウェアと設定が事前にインストール、定義、カスタマイズされたセキュアな最新の「ゴールデン」サーバーイメージの作成、管理、デプロイを自動化することをお勧めします。

Windows 起動エージェントを使用して、Windows Sysprep で標準化 AMI を作成することもできます。詳細については、「起動エージェントで Windows Sysprep を使用する」を参照してください。

重要

Windows Sysprep を使用してインスタンスのバックアップを作成しないでください。Windows Sysprep はシステム固有の情報を削除します。この情報を削除すると、インスタンスのバックアップに予期しない結果が生じる場合があります。

Windows Sysprep のトラブルシューティングについては、「Amazon EC2 Windows インスタンスの Sysprep の問題をトラブルシューティングする」を参照してください。

Windows Sysprep のステップ

Windows Sysprep は、次のステップを通じて実行されます。

  • 一般化: Sysprep ツールはイメージに固有の情報と設定を削除します。Windows Sysprep は、例えばセキュリティ識別子 (SID)、コンピュータ名、イベントログおよび特定のドライバーなどを削除します。このステップを完了すると、オペレーティングシステム (OS) は AMI を作成する準備が整いました。

    注記

    Windows 起動エージェントで Windows Sysprep を実行すると、PersistAllDeviceInstalls はデフォルトで true に設定されているため、システムによってドライバーの削除が禁止されます。

  • 特定化: プラグアンドプレイはコンピュータをスキャンして、検出されたデバイス用のドライバをインストールします。Sysprep ツールは、コンピュータ名や SID など OS に固有の要件を生成します。必要に応じて、このフェーズでコマンドを実行できます。

  • アウトオブボックスエクスペリエンス (OOBE): システムによって Windows セットアップの省略バージョンが実行され、システム言語、タイムゾーン、登録組織などの情報を入力するように求められます。Windows 起動エージェントで Windows Sysprep を実行すると、応答ファイルによってこのステップが自動化されます。

開始する前に

  • Windows Sysprep を実行する前に、Windows Sysprep を実行する単一の管理者アカウント以外のすべてのローカルユーザーアカウントとすべてのアカウントプロファイルを削除することをお勧めします。追加のアカウントとプロファイルを使用して Windows Sysprep を実行すると、プロファイルデータの損失や Windows Sysprep の完了の失敗など、予期しない動作が発生する可能性があります。

  • 詳細については、「Sysprep Overview」を参照してください。

  • Sysprep でサポートされているサーバーロールについては、「Sysprep Support for Server Roles」を参照してください。

起動エージェントで Windows Sysprep を使用する

Windows 起動エージェントの 1 つがインストールされている AMI を使用して開始する場合に、Windows Sysprep を使用して標準化 Amazon マシンイメージ (AMI) を作成できます。

このセクションでは、イメージの準備時に EC2Launch v2 サービスによって実行されるタスクの詳細について説明します。また、EC2Launch v2 サービスで Windows Sysprep を使用して標準化 AMI を作成する手順も示します。

EC2Launch v2 での Windows Sysprep の使用に関するトピック

Windows Sysprep のアクション

イメージを準備するために、Windows Sysprep と EC2Launch v2 は以下のアクションを実行します。

  1. [EC2Launch settings (EC2Launch の設定)] ダイアログボックスで [Shutdown with Sysprep (Sysprep によるシャットダウン)] を選択すると、システムは ec2launch sysprep コマンドを実行します。

  2. EC2Launch v2 は、unattend.xml のレジストリ値を読み取ることで、HKEY_USERS\.DEFAULT\Control Panel\International\LocaleName ファイルの内容を編集します。このファイルは C:\ProgramData\Amazon\EC2Launch\sysprep ディレクトリにあります。

  3. システムは BeforeSysprep.cmd を実行します。このコマンドは、次のレジストリキーを作成します。

    reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 1 /f

    レジストリキーは再度有効になるまで RDP 接続を無効にします。RDP 接続を無効にすることは、安全上の観点より必要となります。これは、Windows Sysprep 実行後の最初のブートセッション中、RDP が接続できるわずかな時間の間に管理者パスワードが空白となるためです。

  4. EC2Launch v2 サービスは、以下のコマンドを実行して Windows Sysprep を呼び出します。

    sysprep.exe /oobe /generalize /shutdown /unattend: "C:\ProgramData\Amazon\EC2Launch\sysprep\unattend.xml"

ステップの一般化
  • EC2Launch v2 は、コンピュータ名や SID などイメージに固有の情報と設定を削除します。インスタンスがドメインのメンバーである場合は、そのドメインから削除されます。unattend.xml 応答ファイルには、このステップに影響する以下の設定が含まれています。

    • PersistAllDeviceInstalls: この設定は、Windows セットアップがデバイスを削除したり再設定することを防ぐことによってイメージ準備プロセスを高速化します。これは、Amazon AMI を実行するためには特定のドライバーが必要となり、これらのドライバーの再検出には時間がかかるためです。

    • DoNotCleanUpNonPresentDevices: この設定では、現在存在しないデバイス用のプラグアンドプレイ情報を保持します。

  • Windows Sysprep は AMI の作成の準備完了後に OS をシャットダウンします。システムは、新しいインスタンスを起動するか、または元のインスタンスを起動します。

ステップの特定化

システムは、コンピュータ名や SID など OS に固有の要件を生成します。またシステムは、unattend.xml 応答ファイルで指定した設定に基づいて、以下のアクションを実行します。

  • CopyProfile: Windows Sysprep は、組み込まれた管理者のプロファイルを含むすべてのユーザープロファイルを削除するように設定できます。この設定は、組み込まれた管理者アカウントを保持するため、アカウントで作成したすべてのカスタム設定は新しいイメージに引き継がれます。デフォルト値は True です。

    CopyProfile は、デフォルトのプロファイルを既存のローカル管理者プロファイルに置き換えます。Windows Sysprep の実行後にログインしたすべてのアカウントは、最初のログイン時にそのプロファイルとその内容のコピーを受け取ります。

    新しいイメージに引き継ぐ特定のユーザープロファイルがない場合、この設定を False に変更します。Windows Sysprep はすべてのユーザープロファイルを削除します (これにより時間とディスク領域が節約されます)。

  • タイムゾーン: タイムゾーンはデフォルトで世界時 (UTC) に設定されます。

  • 順序 1 の同期コマンド: システムは次のコマンドを実行して、管理者アカウントを有効化し、パスワード条件を指定します。

    net user Administrator /ACTIVE:YES /LOGONPASSWORDCHG:NO /EXPIRES:NEVER /PASSWORDREQ:YES
  • 順序 2 の同期コマンド: システムは、管理者パスワードを組み換えます。このセキュリティ対策の目的は、setAdminAccount のタスクを設定していない場合、Windows Sysprep の完了後にインスタンスへのアクセスを防ぐことです。

    システムは、ローカルの起動エージェントディレクトリ (C:\Program Files\Amazon\EC2Launch\) から次のコマンドを実行します。

    EC2Launch.exe internal randomize-password --username Administrator
  • リモートデスクトップ接続を有効にするため、システムはターミナルサーバーの fDenyTSConnections レジストリキーを false に設定します。

OOBE のステップ
  1. システムは EC2Launch v2 応答ファイルを使用して以下の設定を指定します。

    • <InputLocale>en-US</InputLocale>

    • <SystemLocale>en-US</SystemLocale>

    • <UILanguage>en-US</UILanguage>

    • <UserLocale>en-US</UserLocale>

    • <HideEULAPage>true</HideEULAPage>

    • <HideWirelessSetupInOOBE>true</HideWirelessSetupInOOBE>

    • <ProtectYourPC>3</ProtectYourPC>

    • <BluetoothTaskbarIconEnabled>false</BluetoothTaskbarIconEnabled>

    • <TimeZone>UTC</TimeZone>

    • <RegisteredOrganization>Amazon.com</RegisteredOrganization>

    • <RegisteredOwner>EC2</RegisteredOwner>

    注記

    一般化ステップと特殊化ステップの実行中、EC2Launch v2 によって OS のステータスがモニタリングされます。OS が Sysprep のステップにあることが EC2Launch v2 によって検出された場合、以下のメッセージがシステムログに発行されます。

    Windows is being configured. SysprepState=IMAGE_STATE_UNDEPLOYABLE

  2. システムは EC2Launch v2 を実行します。

Sysprep 後

Windows Sysprep が完了すると、EC2Launch v2 によって以下のメッセージがコンソール出力に送信されます。

Windows sysprep configuration complete.

次に、EC2Launch v2 は以下のアクションを実行します。

  1. agent-config.yml ファイルの内容を読み取り、設定されたタスクを実行します。

  2. preReady ステージのすべてのタスクを実行します。

  3. 完了したら、Windows is ready メッセージをインスタンスのシステムログに送信します。

  4. PostReady ステージのすべてのタスクを実行します。

EC2Launch v2 の詳細については、「EC2 Windows インスタンスの起動時に EC2Launch v2 エージェントを使用してタスクを実行する」を参照してください。

EC2Launch v2 で Windows Sysprep を実行する

以下の手順に従って、EC2Launch v2 で Windows Sysprep を使用して標準化 AMI を作成します。

  1. Amazon EC2 コンソールで、複製する AMI の場所を特定します。

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

  3. カスタマイズする。

  4. Windows の [スタート] メニューから、[Amazon EC2Launch settings (Amazon EC2Launch 設定)] を検索して選択します。[Amazon EC2Launch settings (Amazon EC2Launch 設定)] ダイアログボックスのオプションと設定の詳細については、「EC2Launch v2 設定を Windows インスタンスに構成する」を参照してください。

  5. [Shutdown with Sysprep (Sysprep を使用したシャットダウン)] または [Shutdown without Sysprep (Sysprep を使用しないシャットダウン)] を選択します。

Windows Sysprep を実行しインスタンスをシャットダウンするかどうか確認を求められたら [はい] をクリックします。EC2Launch v2 は Windows Sysprep を実行します。次に、インスタンスからログオフされ、インスタンスがシャットダウンされます。Amazon EC2 コンソールの [Instances (インスタンス)] ページでは、インスタンスの状態が Running から Stopping に変わった後、Stopped に変わります。この状態になれば、インスタンスから AMI を安全に作成できます。

コマンドラインから Windows Sysprep ツールを手動で呼び出すには、次のコマンドを使います。

"%programfiles%\amazon\ec2launch\ec2launch.exe" sysprep --shutdown=true

EC2Launch は、AMI でイメージ準備プロセスを自動化および保護する Windows Sysprep 用のデフォルトの応答ファイルとバッチファイルを提供します。これらのファイルの変更はオプションです。デフォルトでは、これらのファイルは C:\ProgramData\Amazon\EC2-Windows\Launch\Sysprep ディレクトリにあります。

重要

Windows Sysprep を使用してインスタンスのバックアップを作成しないでください。Windows Sysprep はシステム固有の情報を削除します。この情報を削除すると、インスタンスバックアップで意図しない結果が生じる可能性があります。

Windows Sysprep の EC2Launch 応答ファイルとバッチファイル

Windows Sysprep の EC2Launch 応答ファイルとバッチファイルには以下のものが含まれます。

Unattend.xml

これがデフォルトの応答ファイルです。SysprepInstance.ps1 を実行するか、ユーザーインターフェイスで ShutdownWithSysprep を選択すると、このファイルから設定が読み取られます。

BeforeSysprep.cmd

このバッチファイルをカスタマイズし、EC2Launch が Windows Sysprep を実行する前にコマンドを実行します。

SysprepSpecialize.cmd

このバッチファイルをカスタマイズして、Windows Sysprep の特定化ステップ中にコマンドを実行します。

EC2Launch で Windows Sysprep を実行する

Windows Server 2016 以降の完全インストール (デスクトップ体験を含む) では、EC2Launch を使用して手動で、または [EC2 起動設定] アプリケーションを使用して、Windows Sysprep を実行できます。

[EC2 起動設定] アプリケーションを使用して Windows Sysprep を実行するには
  1. Amazon EC2 コンソールで、Windows Server 2016 以降の AMI を見つけるか作成します。

  2. AMI から Windows インスタンスを起動します。

  3. Windows インスタンスに接続し、カスタマイズします。

  4. [EC2LaunchSettings] アプリケーションを検索して実行します。このアプリケーションは、デフォルトでは C:\ProgramData\Amazon\EC2-Windows\Launch\Settings ディレクトリにあります。

    EC2 Launch Settings アプリケーション
  5. 必要に応じて、オプションを選択または選択解除します。これらの設定は LaunchConfig.json ファイルに保存されます。

  6. [Administrator Password] で、以下のいずれかを行います。

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

    • [Specify] を選択し、システム要件を満たすパスワードを入力します。このパスワードはクリアテキストとして LaunchConfig.json に保存され、Windows Sysprep で管理者パスワードが設定されると削除されます。ここでシャットダウンした場合、パスワードはすぐに設定されます。EC2Launch は、ユーザーのキーを使用してパスワードを暗号化します。

    • [DoNothing] を選択して、unattend.xml ファイルでパスワードを指定します。unattend.xml でパスワードを指定しない場合、管理者アカウントは無効になります。

  7. [Shutdown with Sysprep (Sysprep を使用してシャットダウン)] を選択します。

EC2Launch を使用して手動で Windows Sysprep を実行するには
  1. Amazon EC2 コンソールで、複製する Windows Server 2016 以降の Datacenter エディション AMI を見つけるか作成します。

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

  3. インスタンスをカスタマイズします。

  4. LaunchConfig.json ファイルで設定を指定します。デフォルトでは、このファイルは C:\ProgramData\Amazon\EC2-Windows\Launch\Config ディレクトリにあります。

    adminPasswordType で、次のいずれかの値を指定します。

    Random

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

    Specify

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

    DoNothing

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

  5. (オプション) 必要に応じて、unattend.xml およびその他の設定ファイルで設定を指定します。手動のインストールを計画している場合は、これらのファイルに変更を加える必要はありません。デフォルトでは、このファイルは C:\ProgramData\Amazon\EC2-Windows\Launch\Sysprep ディレクトリにあります。

  6. Windows PowerShell で、./InitializeInstance.ps1 -Schedule を実行します。デフォルトでは、このスクリプトは C:\ProgramData\Amazon\EC2-Windows\Launch\Scripts ディレクトリにあります。このスクリプトは、次の起動中に初期化するようインスタンスをスケジュールします。次のステップで SysprepInstance.ps1 スクリプトを実行する前に、このスクリプトを実行する必要があります。

  7. Windows PowerShell で、./SysprepInstance.ps1 を実行します。デフォルトでは、このスクリプトは C:\ProgramData\Amazon\EC2-Windows\Launch\Scripts ディレクトリにあります。

ユーザーは自動的にログオフさせられ、インスタンスがシャットダウンします。Amazon EC2 コンソールの [Instances (インスタンス)] ページを見ると、インスタンスの状態が Running から Stopping に、そして Stopped へ変わるのがわかります。この状態になれば、インスタンスから AMI を安全に作成できます。

カスタム AMI の起動時に Server 2016 以降のメタデータ/KMS ルートを更新する

カスタム AMI の起動時に Server 2016 以降のメタデータ/KMS ルートを更新するには、以下のいずれかの操作を行います。

  • EC2LaunchSettings GUI (C:\ProgramData\Amazon\EC2-Windows\Launch\Settings\Ec2LaunchSettings.exe) を実行し、Windows Sysprep を使用してシャットダウンするオプションを選択します。

  • AMI を作成する前に、EC2LaunchSettings を実行し、Windows Sysprep を使用しないでシャットダウンします。これにより、次回の起動時に実行される EC2 Launch の初期化タスクが設定され、インスタンスのサブネットに基づいてルートが設定されます。

  • PowerShell から AMI を作成する前に、EC2 Launch の初期化タスクを手動で再スケジュールします。

    重要

    タスクを再スケジューリングする前に、デフォルトではパスワードリセット動作となることに注意してください。

  • Windows のライセンス認証またはインスタンスメタデータの通信に関するエラーが発生している実行中のインスタンスのルートを更新するには、「Windows のライセンス認証を行うことができません」を参照してください。

このセクションでは、イメージの準備時に EC2Config サービスによって実行されるタスクの詳細について説明します。また、EC2Config サービスで Windows Sysprep を使用して標準化 AMI を作成する手順も示します。

Windows Sysprep のアクション

イメージを準備するために、Windows Sysprep と EC2Config サービスは次のアクションを実行します。

  1. [EC2 サービスのプロパティ] ダイアログボックスで [Sysprep を使用してシャットダウンする] を選択すると、システムは ec2config.exe -sysprep コマンドを実行します。

  2. EC2Config サービスは BundleConfig.xml ファイルの内容を読み込みます。デフォルトでは、このファイルは C:\Program Files\Amazon\Ec2ConfigService\Settings ディレクトリにあります。

    BundleConfig.xml ファイルには、以下の設定が含まれています。これらの設定は変更できます:

    • AutoSysprep: Windows Sysprep を自動で使用するかどうかを示します。[EC2 サービスプロパティ] ダイアログボックスで Windows Sysprep を実行した場合、この値を変更する必要はありません。デフォルト値は No です。

    • SetRDPCertificate: リモートデスクトップサーバーに自己署名証明書を設定します。これによって、リモートデスクトッププロトコール (RDP) を安全に使用して、インスタンスに接続できます。新しいインスタンスに証明書が必要な場合は、値を Yes に変更します。この設定は、Windows Server 2012 のインスタンスでは使用されません。これらのオペレーティングシステムが独自の証明書を生成できるためです。デフォルト値は No です。

    • SetPasswordAfterSysprep: 新しく起動したインスタンスにランダムなパスワードを設定し、ユーザー起動キーで暗号化して、暗号化されたパスワードをコンソールに出力します。新しいインスタンスにランダムに暗号化されたパスワードを設定しない場合は、値 No に変更します。デフォルト値は Yes です。

    • PreSysprepRunCmd: 実行するコマンドの場所。コマンドは、デフォルトでは C:\Program Files\Amazon\Ec2ConfigService\Scripts\BeforeSysprep.cmd ディレクトリにあります。

  3. システムは BeforeSysprep.cmd を実行します。このコマンドは、次のレジストリキーを作成します。

    reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 1 /f

    レジストリキーは再度有効になるまで RDP 接続を無効にします。RDP 接続を無効にすることは、安全上の観点より必要となります。これは、Windows Sysprep 実行後の最初のブートセッション中、RDP が接続できるわずかな時間の間に管理者パスワードが空白となるためです。

  4. EC2Config サービスは、以下のコマンドを実行して Windows Sysprep を呼び出します。

    sysprep.exe /unattend: "C:\Program Files\Amazon\Ec2ConfigService\sysprep2008.xml" /oobe /generalize /shutdown
ステップの一般化
  • このツールは、コンピュータ名や SID のようなイメージに固有の情報と設定を削除します。インスタンスがドメインのメンバーである場合は、そのドメインから削除されます。sysprep2008.xml 応答ファイルには、このステップに影響する以下の設定が含まれています。

    • PersistAllDeviceInstalls: この設定は、Windows セットアップがデバイスを削除したり再設定することを防ぐことによってイメージ準備プロセスを高速化します。これは、Amazon AMI を実行するためには特定のドライバーが必要となり、これらのドライバーの再検出には時間がかかるためです。

    • DoNotCleanUpNonPresentDevices: この設定では、現在存在しないデバイス用のプラグアンドプレイ情報を保持します。

  • Windows Sysprep は AMI の作成の準備完了後に OS をシャットダウンします。システムは、新しいインスタンスを起動するか、または元のインスタンスを起動します。

ステップの特定化

システムは、コンピュータ名や SID など OS に固有の要件を生成します。またシステムは、sysprep2008.xml 応答ファイルで指定した設定に基づいて、次のアクションを実行します。

  • CopyProfile: Windows Sysprep は、組み込まれた管理者のプロファイルを含むすべてのユーザープロファイルを削除するように設定できます。この設定は、組み込まれた管理者アカウントを保持するため、アカウント作成したすべてのカスタム設定は新しいイメージに引き継がれます。デフォルト値は True です。

    CopyProfile は、デフォルトのプロファイルを既存のローカル管理者プロファイルに置き換えます。Windows Sysprep の実行後にログインしたすべてのアカウントは、最初のログイン時にそのプロファイルとその内容のコピーを受け取ります。

    新しいイメージに引き継ぐことを希望する特定のユーザープロファイルがない場合、この設定を「いいえ」に変更します。Windows Sysprep はすべてのユーザーを削除します。これによって時間とディスク領域が節約されます。

  • タイムゾーン: タイムゾーンはデフォルトで世界時 (UTC) に設定されます。

  • 順序 1 の同期コマンド: システムは次のコマンドを実行して、管理者アカウントを有効化し、パスワード条件を指定します。

    net user Administrator /ACTIVE:YES /LOGONPASSWORDCHG:NO /EXPIRES:NEVER /PASSWORDREQ:YES

  • 順序 2 の同期コマンド: システムは、管理者パスワードを組み換えます。このセキュリティ対策の目的は、ec2setpassword 設定を有効にしていない場合、Windows Sysprep の完了後にインスタンスへのアクセスを防ぐことです。

    C:\Program Files\Amazon\Ec2ConfigService\ScramblePassword.exe" -u Administrator

  • 順序 3 の同期コマンド: システムは次のコマンドを実行します。

    C: \Program Files\Amazon\Ec2ConfigService\Scripts\SysprepSpecializePhase.cmd

    このコマンドは、RDP を再度有効にする次のレジストリキーを追加します。

    reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 0 /f

OOBE のステップ
  1. EC2Config サービス応答ファイルを使用すると、システムは次の設定を指定します。

    • <InputLocale>en-US</InputLocale>

    • <SystemLocale>en-US</SystemLocale>

    • <UILanguage>en-US</UILanguage>

    • <UserLocale>en-US</UserLocale>

    • <HideEULAPage>true</HideEULAPage>

    • <HideWirelessSetupInOOBE>true</HideWirelessSetupInOOBE>

    • <NetworkLocation>その他</NetworkLocation>

    • <ProtectYourPC>3</ProtectYourPC>

    • <BluetoothTaskbarIconEnabled>false</BluetoothTaskbarIconEnabled>

    • <TimeZone>UTC</TimeZone>

    • <RegisteredOrganization>Amazon.com</RegisteredOrganization>

    • <RegisteredOwner>Amazon</RegisteredOwner>

    注記

    一般化と特定化ステップにおいて、EC2Config サービスは OS のステータスをモニタリングします。OS が Sysprep のステップにあることが EC2Config によって検出された場合、以下のメッセージがシステムログに発行されます。

    EC2ConfigMonitorState: 0 Windows is being configured. SysprepState=IMAGE_STATE_UNDEPLOYABLE

  2. OOBE フェーズが完了すると、システムは SetupComplete.cmd から C:\Windows\Setup\Scripts\SetupComplete.cmd を実行します。2015 年 4 月以前の Amazon パブリック AMI では、このファイルは空となり、イメージには何も実行されません。2015 年 4 月以降のパブリック AMI では、ファイルに call "C:\Program Files\Amazon\Ec2ConfigService\Scripts\PostSysprep.cmd" の値が含まれます。

  3. システムが PostSysprep.cmd を実行し、次の操作を行います。

    • ローカル管理者パスワード期限切れにならないよう設定します。パスワードの期限が切れた場合、管理者がログインできないことがあります。

    • MSSQLServer マシン名を設定すると (インストールされている場合)、名前は AMI で同期されます。

Sysprep 後

Windows Sysprep が完了したら、EC2Config サービスは次のメッセージをコンソール出力へ送信します。

Windows sysprep configuration complete.
			Message: Sysprep Start
			Message: Sysprep End

そして、EC2Config は次のアクションを実行します。

  1. config.xml ファイルのコンテンツを読み取り、すべての有効なプラグインを示します。

  2. 「Windows の準備が終了する前」のすべてのプラグインを同時に実行します。

    • Ec2SetPassword

    • Ec2SetComputerName

    • Ec2InitializeDrives

    • Ec2EventLog

    • Ec2ConfigureRDP

    • Ec2OutputRDPCert

    • Ec2SetDriveLetter

    • Ec2WindowsActivate

    • Ec2DynamicBootVolumeSize

  3. これが完了すると、「Windows の準備完了」のメッセージをインスタンスのシステム ログに送信します。

  4. 「Windows の準備が終了した後」のすべてのプラグインを同時に実行します

    • Amazon CloudWatch Logs

    • UserData

    • AWS Systems Manager (Systems Manager)

Windows プラグインの詳細については、「EC2Config サービスを使用して、EC2 レガシー Windows オペレーティングシステムインスタンスの起動時にタスクを実行する」を参照してください。

EC2Config サービスで Windows Sysprep を実行する

以下の手順に従って、Windows Sysprep と EC2Config サービスを使用して標準化 AMI を作成します。

  1. Amazon EC2 コンソールで複製を希望する AMI を見つけるか、作成します。

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

  3. カスタマイズする。

  4. EC2Config サービス応答ファイルで特定設定を指定します。

    C:\Program Files\Amazon\Ec2ConfigService\sysprep2008.xml

  5. Windows の [スタート] メニューから [すべてのプログラム] を選び、次に [EC2ConfigService 設定] を選択します。

  6. [Ec2 サービスプロパティ] ダイアログボックスで [イメージ] タブを選択します。Ec2 サービスプロパティダイアログボックスのオプションと設定についての詳細は、「Ec2 サービスプロパティ」を参照してください。

  7. 管理者パスワードのオプションを選択してから、[Shutdown with Sysprep] または [Shutdown without Sysprep] を選択します。EC2Config は、選択したパスワードオプションに基づいて設定ファイルを編集します。

    • ランダム: EC2Config はパスワードを生成してユーザーのキーで暗号化し、暗号化されたパスワードをコンソールに表示します。この設定は初回起動後に無効になるため、インスタンスを再起動したり、停止して起動した場合でもパスワードは保持されます。

    • 指定: パスワードは、Windows Sysprep 応答ファイルに暗号化されていない形式 (平文) で保存されます。Windows Sysprep が次に実行されると、管理者パスワードに設定されます。ここでシャットダウンした場合、パスワードはすぐに設定されます。サービスを再開すると、管理者パスワードは削除されます。このパスワードは後で取得できないため覚えておくことが重要です。

    • 既存のパスワードを保持: Windows Sysprep の実行時や EC2Config の再起動時に、管理者アカウントの既存のパスワードは変更されません。このパスワードは後で取得できないため覚えておくことが重要です。

  8. [OK] を選択します。

Windows Sysprep を実行しインスタンスをシャットダウンするかどうか確認を求められたら [はい] をクリックします。これにより、EC2Config が Windows Sysprep を実行します。次に、ユーザーは自動的にログオフさせられ、インスタンスがシャットダウンします。Amazon EC2 コンソールの [インスタンス] ページを見ると、インスタンスの状態が Running から Stopping、最終的に Stopped に変わるのがわかります。この状態になれば、インスタンスから AMI を安全に作成できます。

コマンドラインから Windows Sysprep ツールを手動で呼び出すには、次のコマンドを使います。

"%programfiles%\amazon\ec2configservice\"ec2config.exe -sysprep""
注記

CMD シェルが C:\Program Files\Amazon\EC2ConfigService\ ディレクトリ内に既に存在する場合、コマンドの二重引用符は不要です。

ただし、この操作は慎重に行ってください。Ec2ConfigService\Settings フォルダで指定した XML ファイルオプションが正しくないと、インスタンスに接続できなくなる場合があります。設定ファイルの詳細については、「EC2Config の設定ファイル」を参照してください。コマンドラインから Windows Sysprep を設定して実行する例については、「Ec2ConfigService\Scripts\InstallUpdates.ps1」を参照してください。