みなさんこんにちは。マネージドサービス部(MS部MS2課)の塩野です。
MSと聞くと、なぜかモビルスーツの映像が頭に浮かんでくるのは世代のせいでしょうか(汗
概要
今回はEC2インスタンス(Windows)作成時にAWS Systems Manager Session Managerを有効化にするやり方を紹介します。
AWS Systems Manager Session Managerを使用することで、AWSのマネージメントコンソールからWindowsのOSにコマンドを実行することができるようになるため、ちょっとした作業をおこなう際にとても使い勝手がよくなります。
手順
1.使用したいWindowsバージョンのインスタンスを選択します。
2.適当なインスタンスタイプを選択して次に進みます。
3.インスタンスの詳細の設定でIAMロールを割り当てます。
※ロールがない場合は新規ロールを作成し、AmazonSSMManagedInstanceCoreのポリシーをアタッチしてください。
4.ユーザーデータの枠に以下のスクリプトを投入し、次へ進みます。
<script> SET TEMP_FOLDER=C:\SSM_INST SET AGENT_PATH=%TEMP_FOLDER%\SSMAgent_latest.exe SET AGENT_URL=https://s3.amazonaws.com/ec2-downloads-windows/SSMAgent/latest/windows_amd64/AmazonSSMAgentSetup.exe MKDIR %TEMP_FOLDER% TIMEOUT /T 1 >NUL powershell.exe "Invoke-WebRequest %AGENT_URL% -OutFile %AGENT_PATH%" TIMEOUT /T 1 >NUL %AGENT_PATH% /S TIMEOUT /T 1 >NUL SC START AmazonSSMAgent RMDIR /S /Q %TEMP_FOLDER% </script>
※オリジナルのバッチコマンドを仕込むときは、ユーザーデータの枠にコマンドを貼り付け、<script> ここにコマンド </script>というように scriptタグではさんであげると、scriptタグの間のコマンドがインスタンスが作成されたタイミングで実行されます。
5.次へ進みます。
6.次へ進みます。
7.確認と作成をクリックします。
8.起動をクリックします。
9.インスタンスの作成をクリックします。
設定は以上です。
動作確認
インスタンスが実行中になり、ステータスチェックに合格するとAWS Systems Manager Session Managerを利用することができます。使い方は対象インスタンスを右クリックし、接続をクリックします。
AWS Systems Manager Session Managerの画面で接続をクリックすると、EC2のコマンド画面が表示されWindowsのコマンドを実行することができます。
総括
ユーザーデータにスクリプトを仕込むことである程度の設定を自動的に実施できます。使用できるスクリプトはバッチだけでなくPowershellも組み込むことができ、より柔軟な制御をおこなうことができます。
CloudFormationやBeanstalkを使っても同じようなことはできますがその分だいぶ敷居が高くなってしまうので、インスタンスを作成するタイミングで簡単なスクリプトを流す程度なら使う場面も出てくるのではないでしょうか。
どなたかのお役に立てれば幸いです。
塩野 正人 ブログ記事一覧はコチラ
マネージドサービス部所属。ネコが好きです。