メニュー
Amazon Elastic Compute Cloud
Windows インスタンス用ユーザーガイド

Sysprep を使って標準の Amazon マシンイメージを作成します。

システム準備 (Sysprep) ツールは、Microsoft Windows のカスタマイズされたインストールの重複プロセスを簡略化します。 標準のAmazon Machine Image (AMI) を作成する場合には、Sysprep の使用をお勧めします。 この標準化されたイメージから Windows 向けの新しい Amazon EC2 インスタンスを作成できるようになります。

さらに、EC2Launch (Windows Server 2016) または EC2Config サービス (Windows Server 2016 より前) を使用して Sysprep を実行することをお勧めします。EC2Launch での Sysprep の使用は、Nano インストールオプションを使用した Windows Server 2016 ではサポートされません。

重要

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

開始する前に

EC2Config サービスで Sysprep を使用する

Sysprep の各種の実行ステップと、イメージが準備されるために EC2Config サービスが行うタスクの詳細について説明します。

Sysprep ステップ

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

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

    注記

    EC2Config サービスで Sysprep を実行すると、システムはドライバーの削除を防ぎます。これは、PersistAllDeviceInstalls の設定がデフォルトで有効となっているためです。

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

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

Sysprep のアクション

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

  1. EC2 Service Properties ダイアログボックスで Shutdown with Sysprep を選択すると、システムは ec2config.exe –sysprep コマンドを実行します。

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

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

    • AutoSysprep:Sysprep を自動で使用するかどうかを示します。 EC2 Service Properties ダイアログボックスで Sysprep を実行した場合、この値を変更する必要はありません。 デフォルト値は、「いいえ」です。

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

    • SetPasswordAfterSysprep:新しく起動したインスタンスにランダムなパスワードを設定し、ユーザー起動キーで暗号化して、暗号化されたパスワードをコンソールに出力します。 新しいインスタンスにランダムに暗号化されたパスワードを設定しない場合は、この設定の値を「いいえ」に変更します。 デフォルト値は [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 接続を無効にすることは、安全上の観点より必要となります。これは、Sysprep 実行後の最初のブートセッション中、RDP が接続できるわずかな時間の間に管理者パスワードが空白となるためです。

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

    sysprep.exe /unattend: "C:\Program Files\Amazon\Ec2ConfigService\sysprep2008.xml" /oobe /generalize /shutdown

ステップを一般化する

  • このツールは、コンピュータ名や SID のようなイメージに固有の情報と設定を削除します。 インスタンスがドメインのメンバーである場合は、そのドメインから削除されます。 sysprep2008.xml 応答ファイルには、このステップに影響する次の設定が含まれます。

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

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

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

特定化ステップ

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

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

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

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

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

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

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

    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>Other</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 が設定されています。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 後

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

Windows sysprep の設定が完了しました。メッセージ: Sysprep 開始メッセージ: Sysprep 終了

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

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

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

    • Ec2SetPassword

    • Ec2SetComputerName

    • Ec2InitializeDrives

    • Ec2EventLog

    • Ec2ConfigureRDP

    • Ec2OutputRDPCert

    • Ec2SetDriveLetter

    • Ec2WindowsActivate

    • Ec2DynamicBootVolumeSize

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

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

    • AWS CloudWatch ログ

    • UserData

    • Simple Systems Manager (SSM)

Windows プラグインの詳細については、「EC2Config サービスを使用した Windows インスタンスの設定」を参照してください。

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

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

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

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

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

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

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

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

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

注記

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

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

EC2Config の Sysprep トラブルシューティング

イメージ準備中に問題が発生したり、エラーメッセージを受け取った場合、次のログを確認します。

  • %WINDIR%\Panther\Unattendgc

  • %WINDIR%\System32\Sysprep\Panther

  • "C:\Program Files\Amazon\Ec2ConfigService\Logs\Ec2ConfigLog.txt"

Sysprep でイメージ準備中にエラーメッセージを受け取った場合、OS にアクセスできないことがあります。 ログファイルを確認するには、インスタンスを停止し、別の正常なインスタンスにルートボリュームをセカンダリボリュームとしてアタッチして、上記のログをセカンダリボリュームで確認します。

Unattendgc のログファイルでエラーを見つけた場合は、Microsoft Error Lookup Tool を使ってのエラーの詳細にアクセスします。 Unattendgc のログファイルでレポートされた次の事項では、インスタンス内の 1 つ以上の破損しているユーザープロフィールがよくある原因です。

エラー [Shell Unattend] _FindLatestProfile failed (0x80070003) [gle=0x00000003] エラー [Shell Unattend] CopyProfile failed (0x80070003) [gle=0x00000003]

この問題を解決するためには 2 つのオプションがあります。

オプション 1: そのインスタンスで Regedit を使用して、次のキーを探します。 削除されたユーザーのプロファイルレジストリキーがないことを確認します:

[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\ProfileList\

オプション 2: EC2Config 応答ファイル (C:\Program Files\Amazon\Ec2ConfigService\sysprep2008.xml) を編集して、<CopyProfile>true</CopyProfile> を <CopyProfile>false</CopyProfile> に変更します。 Sysprep を再度実行します。 この設定の変更は、Sysprep が完了した後で、組み込まれた管理者ユーザープロフィールを削除することに注意してください。