ksaitoの日記

日々試したことの覚え書き

AWSでWindowsのAMIを作成する。

AWSWindowsのAMIを作成して再利用できるようにしました。

作成手順は以下の通りです。

  1. WindowsのAMIイメージからインスタンスを作成する。
  2. 必要な設定、追加アプリをインストールする。
  3. EC2ConfigServiceを使って固有情報を削除する。
  4. 固有情報を削除して停止したマシンイメージからAMIイメージを作成する。
  5. 作成したAMIからインスタンスを作成する。

Linuxと異なるのは、「EC2ConfigServiceを使って固有情報を削除する。」です。 また、「作成したAMIからインスタンスを作成する。」は、LinuxのAMIより起動に時間がかかるようです。ステータスが完了しても、しばらくの間リモートデスクトップで接続できないため、作成に成功したAMIを何度も作り直して時間を無駄にしました。

WindowsのAMIイメージからインスタンスを作成する。

EC2のインスタンス作成でWindowsのAMIを選択します。

今回は、下記のWindows 2012 R2のイメージを使いました。

f:id:ksaito11:20160220201554p:plain

サイズやネットワークは、使うアプリケーションが動くなるべく小さいサイズが良いでしょう。今回は、無料枠で使えるt2.microを使いました。

f:id:ksaito11:20160220202025p:plain

インスタンスタイプの選択、インスタンスの設定、ストレージの追加、インスタンスのタグ付けは、デフォルトで設定しました。使うソフトウェアに応じて適切に設定して下さい。

セキュリティグループの設定は、デフォルトでリモートデスクトッププロトコルインバウンドが設定されています。

送信元にマイIPを設定します。

EC2のインスタンスは、インターネットからアクセスできるため、作成するOSによらず、この設定をお勧めします。

f:id:ksaito11:20160220202319p:plain

必要な設定、追加アプリをインストールする。

ここは、ニーズに応じて適宜必要なものをインストールしてください。

例えば、

とか...

EC2ConfigServiceを使って固有情報を削除する。

この手順が本題となります。

AWSの「EC2Config サービスを使用した Windows インスタンスの設定」を参考にしました。

AWSWindows AMIで、Startメニューで"EC2"を検索すると「EC2Configuration Service」が見つかるので起動します。

f:id:ksaito11:20160220204555p:plain

Generalタブで、「Event Log」をチェックします。WindowsのイベントログがEC2インスタンスのシステムログから参照することができるようになります。

f:id:ksaito11:20160220204754p:plain

Storageタブで「Root Volume」をチェックします。EC2インスタンスを作成した際にルートボリュームのサイズを変更した際に動的に認識してくれるらしいです。

f:id:ksaito11:20160220205040p:plain

Imageタブで「Administrator Password」を選択します。Randomは、毎回動的に割り当てられてAWSコンソールから秘密鍵で参照するおなじみの方式でオススメです。その他のオプションは、指定のパスワードを使うと、インスタンスの元のパスワードほ保持するですが、再入力による確認がなく忘れてしまったらそれまでです。

あとは、「Shutdown with Sysprep」ボタンを押します。

f:id:ksaito11:20160220205222p:plain

下記の確認ダイアログが出るので「Yes」ボタンを押します。

f:id:ksaito11:20160220205652p:plain

sysprepが実行されます。しばらく時間がかかりEC2インスタンスが停止します。

f:id:ksaito11:20160220205813p:plain

固有情報を削除して停止したマシンイメージからAMIイメージを作成する。

sysprepでSIDやライセンスなどマシン固有の情報が削除されインスタンスが停止します。 AWSコンソールで停止したインスタンスを選択し下記のメニューでイメージを作成します。

f:id:ksaito11:20160220210408p:plain

作成したAMIからインスタンスを作成する。

作成したAMIからインスタンスを作成します。 LinuxのAMIより時間がかかる気がします。

ステータスは、runningになりステータスチェックも完了している風ですが、ログを見るとしばらく作業が続きます。

下記は、作成から4分後のスクリーンショットですが、まだ、ターミナルサーバで接続するとエラーとなるので、失敗と勘違いして何度かやり直しましたがじっと我慢です。

f:id:ksaito11:20160220211456p:plain

だいたい10分くらい経つとEC2Configが完了しますが、まだ、処理は続きます。

f:id:ksaito11:20160220212107p:plain

ログにWindows is Ready to useが表示されたら作成完了です。 約13分かかりました。

インスタンスタイプを大きくすればもう少し早いかもしれません。

f:id:ksaito11:20160220212344p:plain

あとは、普通にAWSコンソールからパスワードを取得してターミナルサーバで接続します。

以上