Windowsインスタンス作成時に自動で環境構築をしてみる

記事タイトルとURLをコピーする

こんにちは!最近Hul◯でひたすら『ウォーキング・デッド』を見ています、高橋です。

ザ・ラスト・オブ・アス』の様な、崩壊した世界観というものが私は好きです。

さて今回はWindowsインスタンス作成時に、PowerShellスクリプトを用いて自動的にサーバの環境構築を行う方法をご紹介します。

どうやってやる?

インスタンス作成時に、User dataにPowerShellスクリプト,コマンドプロンプトを記述します。そうすることでインスタンス起動後にスクリプトが実行され、サーバの環境構築を自動で行うことができます。

詳細は弊社の竹永の記事を御覧くださいませ。

参考:User dataにスクリプトを設定してサーバー設定を自動化する

PowerShellスクリプトを使ってみる

PowerShellスクリプトでサーバの環境構築をしてみましょう。サーバの環境構築というと大げさになってしまいますので、今回はお試しとして「起動時にホスト名を変更する」という処理をさせてみます。

Step1.AMIの選択

マネジメントコンソールのEC2の欄からLaunch instanceをクリックし、AMIを選択しましょう。

launchinstance

Windowsインスタンスであれば何でもいいのですが、今回はWindows Server 2012 R2 Baseを選択します。

aminame

Step2.インスタンスタイプの選択

インスタンスタイプは何でもいいです。テストをしたいだけなら一番安い t2.micro を選択しませう。

Step3.インスタンスの設定

インスタンスを作成するVPC,サブネット等の設定を行います。

Auto-assign Public IPをEnableにすることで、インスタンスにEIPをアタッチしなくてもPublic IPが割り当てられます(EIPを使用しないと、Public IPはインスタンスの停止/起動毎に変わってしまうのでご注意を!)

instancekaunchstep3

Step4.User dataを記入

インスタンスの設定画面を下にスクロールし、Advanced Detailsをクリックします。するとUser dataを記入する欄が出てくるので、以下のとおり書いてください。

Rename-Computer -NewName "testo-dapyon" -Restart

userdata

<powershell>タグでスクリプトを囲むことでPowerShellスクリプトを実行することが可能です。コマンドプロンプトを利用したい場合は<script>タグで囲みましょう。

書いたら Review and Launch をクリックしてインスタンスを作成します。

Step5.インスタンスにログインして確認してみよう!

少し経ってインスタンスが作成されたらログインしてみましょう。

Windowsインスタンスにログインする方法は、まずインスタンスを右クリックしてGet Windows Passwordを選び、秘密鍵を入力します。

getwindowspassword

するとRDP用のパスワードがでてきます。

windowspass

PowerShellを起動し、hostnameを確認してみましょう。ちゃんと設定されているかな。ワクワク*1

powershell11

 

PS C:UsersAdministrator> hostname
testo-dapyon

お分かり頂けたろうか。

まとめ

Windowsインスタンス作成時に、PowerShellを使って任意の処理を実行する方法をご紹介しました。複雑な処理も書くことができるので、自動的にパッケージをインストールするなどのサーバの環境構築を自動的に行うことができます。

PowerShellにはAWS Toolsが用意されているので、AWSの操作を行うことができます。インスタンス作成時にRoute53のDNSレコード切り替えなんかもできちゃいますヨ。

またAuto Scalingでインスタンスを増やす際には、Launch ConfigurationのUser dataにスクリプトを記述することで、インスタンス起動時にサーバの環境構築が自動でできちゃいます。

楽しいWindowsライフをエンジョイしましょう!

*1:o(^∇^)o