AWSでセットアップ済のインスタンスをテンプレート化(AMI化)

| コメントをどうぞ

AWSでマーケットプレイスのAMIからlaunchしたインスタンスでセットアップ後に社内の別部署、もしくは外部公開用などのテンプレートとしてAMIにしたい場合の方法です。

Linuxの場合は特に何も考えなくてもセットアップ済のインスタンスをAMI化してそこからインスタンスを作成すると作成時に新規パスワードを設定させるメニューが出るようにお膳立てしてくれていますが、Windowsはセットアップ時に設定したパスワードのままとなり、別のAWSアカウントで作成すると「Get Windows Password」がいつまでたっても応答が戻ってこず前のパスワードを知らないとログイン出来ません。またSIDという個々を識別する情報も同じになる為色々と不具合が出る場合があります。Linuxでもホスト名などを設定してしまっている場合は公開用に設定しなおす必要があります。これを、一般化といいます。WindowsとLinuxで呼び方が違います。(やってるとこは同じような事)

    • Windowsはsysprepと呼びます。
    • スタート→「EC2ConfigService Settings」
    • Linuxはsealingと呼びます。

Windowsの一般化(sysprep)

sysprepと書いていますが、AWSではsysprepを使用せずに「EC2ConfigService Settings」というツールで行います。(マーケットプレイスからLaunchしたWindowsに最初から入っています。)

      1. セットアップ済のWindowsインスタンスへRDPで接続
      2. ※個人情報が特定できそうなファイルやシリアル関係、ログは削除しておきます。

      3. 「スタート」→「EC2ConfigService Settings」

1

  1. コンピュータ名をランダムにするには「general」タブの「Set Computer Name」にチェックをつけます。(コンピュータ名を固定の場合はつけない)。「AWSの壁紙(インスタンスタイプが白文字で表示されるもの)を利用する場合は「Wallpaper Information」にチェックをつけます。

2

  1.  外部の利用者が自身のAWSアカウントのパスワードでアクセス出来るように「Image」タブで「Random」にチェックをつけて「Shutdown with Sysprep」をクリックします。確認のポップアップが上がるのでOKを押すと一般化を伴うシャットダウンが実行されます。

3

シャットダウン完了後は通常のAMI作成で作成したものからインスタンスをLaunchしたものに対して「Get Windows Password」でパスワードを取得してRDPでアクセス出来ます。

Linuxの一般化(Sealing)

Linuxの場合は特に意識せずともインスタンスセットアップ後に通常のAMI作成→作成したAMIからLaunchで利用できます。(VMWAREでは一般化しないとテンプレートにできません。) その為、Linuxのテンプレート化は以下のことをします。

  1. rootの.ssh内にあるファイルを全削除
  2. /etc/ssh内のssh_hostではじまるファイルを全削除
  3. /tmpやその他にある不要ファイル、作業ファイルの削除
  4. /var/log以下のログを全部削除(ログのみ消します。ディレクトリは消さない。)
  5. ホスト名を固定設定している場合は元に戻す。合わせて/etc/hostsファイルも初期状態に。

1.の作業で不要ファイルの他に他サーバへログインする為の鍵やライセンスキーなど置いてある場合はそれも削除します。以上の作業を行った後にAMI化します。

  • VMWAREでのテンプレート化について

AWSではありませんが、VMWAREで利用できる一般化テンプレートの作成方法はWindowsは「Sysprep」、Linuxは「Sealing」になります。こちらが一般的な一般化の方法になります。VMWARE用の一般化テンプレートの作成方法は次回記載します。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>