【EC2】Sysprepの手順【Windows】

AWS運用自動化サービス「Cloud Automator」

こんにちは。3月より技術二課となった伊藤Kです。

最近、こんなインタビューに答えました。
オンプレのインフラエンジニアだった私が、クラウド専業の会社に転職した理由。

タイアップを狙ったわけではないですが、しばらく、
「オンプレのインフラエンジニアだった私が、EC2のWindowsでひっかかったポイント」
がテーマとなる記事を書いていく予定です。
本日は第一弾「Sysprep」について。

EC2のSysprep

え、Sysprepでしょ。Windowsメインのエンジニアなら常識だよね。
「C:\Windows\System32\sysprep」フォルダの「Sysprep.exe」を実行するよね。
オプションは、「/generalize、/shutdown、/oobe」をつけとけばいいでしょ。
そんなふうに考えていた時期が俺にもありました・・・。

EC2のSysprepは専用のサービス(サービスと言いつつツールに近い)「EC2Config」もしくは「EC2Launch」を使用します。
Windows Server 2012 R2 以前のバージョンのOSは「EC2Config」、
Windows Server 2016 以降のバージョンのOSは「EC2Launch」となります。
この記事では、両方の手順を見ていきます。

「EC2Config」によるSysprep

まずは、「EC2Config」によるSysprepです。図のOSはWindows Server 2012 R2です。

OSのスタートメニューのアプリケーション一覧より、「EC2ConfigService Settings」を選択します。

「Image」タブを選択します。

Sysprep後に、「Administrator」ユーザーに割り当たるパスワードのオプションを選択します。
・Random:ランダムなパスワードが割り当てられ、マネジメントコンソールより確認できます。
・Specify:右の入力エリアで入力したパスワードが割り当たります。
・Keep Existing:既に設定されているパスワードをそのまま割り当てます。(が、直後に記載されている「Note」に書かれているように、「Windows Server 2008」以降のOSでは効果がなく、既に設定されているパスワードが消されてしまうため、ほぼ使えません)

というわけで、「Specify」を選択し、右の入力エリアへ新しいパスワードを入力します。

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

確認のメッセージが出るので、 [はい] をクリックします。

Sysprepが開始され、自動的にOSシャットダウンします。ここまでくると、オンプレエンジニアにも見慣れたダイアログです。

「EC2Launch」によるSysprep

次に、「EC2Launch」によるSysprepです。図のOSはWindows Server 2016です。

OSのスタートメニューのアプリケーション一覧より、「Ec2LaunchSettings」を選択します。

今度は「General」タブしかありませんね。

設定する項目は「EC2Config」と同じです。「Administrator Password」欄で、
Sysprep後、「Administrator」ユーザーに割り当たるパスワードのオプションを選択します。
・Random:ランダムなパスワードが割り当てられ、マネジメントコンソールより確認できます。
・Specify:右の入力エリアで入力したパスワードが割り当たります。
・Do Nothing:unattend.xml ファイルでパスワードを指定します。unattend.xml でパスワードを指定しない場合、管理者アカウントは無効になります。

図では、「Do Nothing」を選択していますが、別途unattend.xmlをつかう用途がない場合は、SpecifyもしくはRandomが分かりやすいです。

画面一番下の、[Shutdown with Sysprep] を選択します。

Sysprep用Scriptの場所と応答ファイルの場所が表示されます。[Yes]をクリックします。

余談ですが、「EC2Launch」によるSysprepは内部的にPowerShellスクリプトが実行されることで実現されるのですが、それが上記ダイアログから見て取れます。また、応答ファイルを編集して、カスタマイズされたSysprepを実行する場合は、上記パスより対象ファイルが分かります。

参考までに、Unattend.xmlのパスはこちら
C:\ProgramData\Amazon\EC2-Windows\Launch\Sysprep\Unattend.xml

同じく見慣れたダイアログが表示されます。Sysprepが開始されており、自動的にOSシャットダウンします。

その後(共通)

「EC2Config」、「EC2Launch」どちらの手順も実行後はインスタンスが「Sysprep済み、シャットダウン」の状態となるので、
あとは、一般的な使い方としてはシャットダウンされたインスタンスのAMIをそのまま取って、そこからローンチすることで、Sysprep後の状態のマシンを起動して使用します。

おわりに

密かに「令和」投稿第1号を狙ってましたが、さすがはサーバーワークス、しれっと先をこされました。「令和」投稿第3号ぐらいになりそうです。

AWS運用自動化サービス「Cloud Automator」