こんにちは!最近Hul◯でひたすら『ウォーキング・デッド』を見ています、高橋です。
『ザ・ラスト・オブ・アス』の様な、崩壊した世界観というものが私は好きです。
さて今回はWindowsインスタンス作成時に、PowerShellスクリプトを用いて自動的にサーバの環境構築を行う方法をご紹介します。
どうやってやる?
インスタンス作成時に、User dataにPowerShellスクリプト,コマンドプロンプトを記述します。そうすることでインスタンス起動後にスクリプトが実行され、サーバの環境構築を自動で行うことができます。
詳細は弊社の竹永の記事を御覧くださいませ。
参考:User dataにスクリプトを設定してサーバー設定を自動化する
PowerShellスクリプトを使ってみる
PowerShellスクリプトでサーバの環境構築をしてみましょう。サーバの環境構築というと大げさになってしまいますので、今回はお試しとして「起動時にホスト名を変更する」という処理をさせてみます。
Step1.AMIの選択
マネジメントコンソールのEC2の欄からLaunch instanceをクリックし、AMIを選択しましょう。
Windowsインスタンスであれば何でもいいのですが、今回はWindows Server 2012 R2 Baseを選択します。
Step2.インスタンスタイプの選択
インスタンスタイプは何でもいいです。テストをしたいだけなら一番安い t2.micro を選択しませう。
Step3.インスタンスの設定
インスタンスを作成するVPC,サブネット等の設定を行います。
Auto-assign Public IPをEnableにすることで、インスタンスにEIPをアタッチしなくてもPublic IPが割り当てられます(EIPを使用しないと、Public IPはインスタンスの停止/起動毎に変わってしまうのでご注意を!)
Step4.User dataを記入
インスタンスの設定画面を下にスクロールし、Advanced Detailsをクリックします。するとUser dataを記入する欄が出てくるので、以下のとおり書いてください。
Rename-Computer -NewName "testo-dapyon" -Restart
<powershell>
タグでスクリプトを囲むことでPowerShellスクリプトを実行することが可能です。コマンドプロンプトを利用したい場合は<script>
タグで囲みましょう。
書いたら Review and Launch をクリックしてインスタンスを作成します。
Step5.インスタンスにログインして確認してみよう!
少し経ってインスタンスが作成されたらログインしてみましょう。
Windowsインスタンスにログインする方法は、まずインスタンスを右クリックしてGet Windows Passwordを選び、秘密鍵を入力します。
するとRDP用のパスワードがでてきます。
PowerShellを起動し、hostnameを確認してみましょう。ちゃんと設定されているかな。ワクワク*1
PS C:UsersAdministrator> hostname testo-dapyon
お分かり頂けたろうか。
まとめ
Windowsインスタンス作成時に、PowerShellを使って任意の処理を実行する方法をご紹介しました。複雑な処理も書くことができるので、自動的にパッケージをインストールするなどのサーバの環境構築を自動的に行うことができます。
PowerShellにはAWS Toolsが用意されているので、AWSの操作を行うことができます。インスタンス作成時にRoute53のDNSレコード切り替えなんかもできちゃいますヨ。
またAuto Scalingでインスタンスを増やす際には、Launch ConfigurationのUser dataにスクリプトを記述することで、インスタンス起動時にサーバの環境構築が自動でできちゃいます。
楽しいWindowsライフをエンジョイしましょう!
*1:o(^∇^)o