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

EC2Launch を使用した Windows インスタンスの設定

EC2Launch は Windows Server 2016 AMI で EC2Config サービスを置き換える Windows PowerShell スクリプトのセットです。EC2Launch は最初のインスタンスの起動中に、デフォルトで以下のタスクを実行します。

  • インスタンスに関する情報をレンダリングする新しい壁紙を設定します (Nano Server には適用されません)。

  • コンピュータ名を設定します。

  • Amazon EC2 コンソールにインスタンス情報を送信します。

  • EC2 コンソールに RDP 証明書のサムプリントを送信します。(Nano Server には適用されません)。

  • 管理者アカウントに、ランダムなパスワードを設定します。

  • DNS サフィックスを追加します。

  • オペレーティングシステムパーティションを動的に拡張して、未使用の領域が含まれるようにします。

  • ユーザーデータを実行します (指定された場合)。ユーザーデータを指定する方法については、「インスタンスユーザーデータの使用」を参照してください。

以下のタスクは、EC2Config サービスとの下位互換性を維持するために役立ちます。また、起動中にこれらのタスクを実行するように EC2Launch を設定することもできます。

  • セカンダリ EBS ボリュームを初期化します。

  • EC2 コンソールのログに Windows イベントログを送信します。

  • Windows の使用準備ができている旨のメッセージを EC2 コンソールに送信します。

Windows Server 2016 の詳細については、Microsoft.com にある Windows Server 2016 の新機能および Nano Server のインストールを参照してください。

EC2Launch のバージョンを確認します。

インストールされている EC2Launch のバージョンを確認するには、次の Windows Powershell コマンドを使用します。

PS C:\> Import-Module -Name C:\ProgramData\Amazon\EC2-Windows\Launch\Module\Ec2Launch.psd1; (Get-Module EC2Launch).Version.ToString()

最新バージョンの EC2Launch のインストール

インスタンスで最新バージョンの EC2Launch をダウンロードしてインストールするには、次の手順を使用します。

最新バージョンの EC2Launch をダウンロードしてインストールするには

  1. インスタンスで EC2Launch をすでにインストールして設定している場合は、EC2Launch 設定ファイルのバックアップを作成します。インストールプロセスでは、このファイルに変更内容が保存されません。デフォルトでは、このファイルは C:\ProgramData\Amazon\EC2-Windows\Launch\Config ディレクトリにあります。

  2. EC2-Windows-Launch.zip をインスタンス上のディレクトリにダウンロードします。

  3. install.ps1EC2-Windows-Launch.zip のダウンロード先と同じディレクトリにダウンロードします。

  4. Run install.ps1

  5. EC2Launch 設定ファイルのバックアップを作成する場合は、同ファイルを C:\ProgramData\Amazon\EC2-Windows\Launch\Config ディレクトリにコピーします。

EC2Launch のディレクトリ構造

EC2Launch はデフォルトでは、Windows Server 2016 AMI のルートディレクトリ C:\ProgramData\Amazon\EC2-Windows\Launch にインストールされます。

注記

Windows では、デフォルトで C:\ProgramData 以下のファイルとフォルダは非表示になります。EC2Launch のディレクトリとファイルを表示するには、Windows エクスプローラーにパスを入力するか、フォルダのプロパティを変更して、非表示のファイルとフォルダを表示する必要があります。

Launch ディレクトリには以下のサブディレクトリがあります。

  • Scripts — EC2Launch を構成する PowerShell スクリプトが格納されます。

  • Module — Amazon EC2 関連するスクリプトを構築するためのモジュールが格納されます。

  • Config — カスタマイズ可能なスクリプト設定ファイルが格納されます。

  • Sysprep - Sysprep リソースが格納されます。

  • Settings — Sysprep グラフィカルユーザーインターフェイスのアプリケーションが格納されます。

  • Logs — スクリプトによって生成されたログファイルが格納されます。

EC2Launch の設定

インスタンスが最初に初期化された後で、EC2Launch を再実行し、別の起動タスクを実行するよう EC2Launch を設定できます。

初期化タスクの設定

次の初期化タスクを有効または無効にするには、LaunchConfig.json ファイルで設定を指定します。

  • コンピュータ名を設定します。

  • 新しい壁紙を設定します。

  • DNS サフィックス一覧を追加します。

  • ブートボリュームサイズを拡大します。

  • 管理者パスワードを設定します。

初期設定を行うには

  1. 設定するインスタンスで、C:\ProgramData\Amazon\EC2-Windows\Launch\Config\LaunchConfig.json ファイルをテキストエディタで開きます。

  2. 必要に応じて次の設定を更新し、変更を保存します。adminPasswordtypeSpecify である場合のみ、adminPassword にパスワードを入力します。

    { "setComputerName": false, "setWallpaper": true, "addDnsSuffixList": true, "extendBootVolumeSize": true, "adminPasswordType": "Random | Specify | DoNothing", "adminPassword": "password that adheres to your security policy (optional)" }

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

    Random

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

    Specify

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

    DoNothing

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

  3. Windows PowerShell で次のコマンドを実行し、Windows のスケジュールされたタスクとしてスクリプトの実行をスケジュールします。スクリプトは次回の起動時に 1 回のみ実行され、以降、これらのタスクは再実行されなくなります。

    PS C:\> C:\ProgramData\Amazon\EC2-Windows\Launch\Scripts\InitializeInstance.ps1 -Schedule

ドライブの初期化とドライブ文字のマッピング

ドライブ文字を EC2 インスタンスのボリュームにマッピングするには、DriveLetterMappingConfig.json ファイルで設定を指定します。スクリプトは、ドライブがすでに初期化およびパーティション化されていない場合、このオペレーションを実行します。

ドライブ文字をボリュームにマッピングするには

  1. テキストエディタで C:\ProgramData\Amazon\EC2-Windows\Launch\Config\DriveLetterMappingConfig.json ファイルを開きます。

  2. 次のボリューム設定を指定し、変更を保存します。

    { "driveLetterMapping": [ { "volumeName": "sample volume", "driveLetter": "H" } ] }
  3. Windows PowerShell を開き、次のコマンドを使用して、ディスクを初期化する EC2Launch スクリプトを実行します。

    PS C:\> C:\ProgramData\Amazon\EC2-Windows\Launch\Scripts\InitializeDisks.ps1

    インスタンスが起動するたびにディスクを初期化するには、-Schedule フラグを次のように追加します。

    PS C:\> C:\ProgramData\Amazon\EC2-Windows\Launch\Scripts\InitializeDisks.ps1 -Schedule

EC2 コンソールへの Windows イベントログの送信

EC2 コンソールログに Windows イベントログを送信するには、EventLogConfig.json ファイルで設定を指定します。

Windows イベントログを送信するよう設定を指定するには

  1. インスタンスで、C:\ProgramData\Amazon\EC2-Windows\Launch\Config\EventLogConfig.json ファイルをテキストエディタで開きます。

  2. 次のログ設定を行い、変更を保存します。

    { "events": [ { "logName": "System", "source": "An event source (optional)", "level": "Error | Warning | Information", "numEntries": 3 } ] }
  3. Windows PowerShell で次のコマンドを実行し、Windows のスケジュールされたタスクとして、インスタンスが起動されるたびにスクリプトの実行がスケジュールされるようにします。

    PS C:\> C:\ProgramData\Amazon\EC2-Windows\Launch\Scripts\SendEventLogs.ps1 -Schedule

    ログが EC2 コンソールログに表示されるまでには、3 分以上かかる場合があります。

正常に起動した後の Windows の準備が完了した旨のメッセージの送信

EC2Config サービスは、起動するたびに、Windows の準備が完了した旨のメッセージを EC2 コンソールに送信しました。EC2Launch は最初の起動後に、このメッセージを送信します。EC2Config サービスとの下位互換性のため、毎回の起動後にこのメッセージを送信するよう EC2Launch をスケジュールできます。インスタンスで Windows PowerShell を開き、次のコマンドを実行します。システムは、Windows のスケジュールされたタスクとして実行するようスクリプトをスケジュールします。

PS C:\> C:\ProgramData\Amazon\EC2-Windows\Launch\Scripts\SendWindowsIsReady.ps1 -Schedule

Sysprep と EC2Launch の使用

Sysprep は Windows Server 2016 のカスタマイズされたインストールの複製プロセスを簡素化します。Ec2Launch は AMI でイメージ準備プロセスを自動化し、保護する、Sysprep 用のデフォルトの応答ファイルとバッチファイルを提供します。これらのファイルの変更はオプションです。デフォルトでは、これらのファイルは C:\ProgramData\Amazon\EC2-Windows\Launch\Sysprep ディレクトリにあります。

重要

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

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

Unattend.xml

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

BeforeSysprep.cmd

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

SysprepSpecialize.cmd

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

Sysprep と EC2Launch の実行

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

EC2Launch Settings アプリケーションを使用して 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 に保存され、Sysprep で管理者パスワードが設定されると削除されます。ここでシャットダウンした場合、パスワードはすぐに設定されます。EC2Launch は、ユーザーのキーを使用してパスワードを暗号化します。

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

  7. [Shutdown with Sysprep] を選択します。

EC2Launch を使用して手動で 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 に保存され、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 を安全に作成できます。