[PowerShell] EC2Launchを最新バージョンにするスクリプトを作ってみた

2019.02.05

しばたです。

Windows Server 2016以降のEC2インスタンスに導入されているEC2Launchですが、これまでのEC2Configではバージョンアップを自動化するAWS-UpdateEC2Configドキュメントが提供されているのですが、EC2Launchでは同様のドキュメントは提供されておらずAMI全体のアップデートを行うAWS-UpdateWindowsAmiドキュメントに統合されており単体でバージョンアップすることができません。

そこで今回EC2Launchのバージョンアップを自動化する簡単なスクリプトを作ってみました。

EC2Launchのバージョンアップ手順

EC2LaunchはPowerShellモジュールとして提供されているのですが、標準のモジュールパスに登録されていないためUpdate-Moduleでは更新できず手動で最新パッケージをダウンロードしてインストールする必要があります。 詳細は以下のドキュメントに記載されています。

手順としてはコンテンツのEC2-Windows-Launch.zipinstall.ps1を一緒にダウンロードして実行するだけなのですが、これくらいなら公式な更新ドキュメントを提供してほしいという気持ちもひとしおです...

ちなみEC2Launchの更新履歴は以下にあります。

バージョンアップスクリプト

作ったスクリプトを以下に記載します。

このスクリプトを適当な名前で保存して実行すれば前項で説明した手順を自動化できます。 スクリプトの中身について細かく説明はしませんが、機能ごとに関数を分けてるのでやっていることの雰囲気は掴んで頂けるのではないかと思います。

バージョンアップスクリプトを実行してみる

本記事ではこのスクリプトをSSM Run Commandで実行してみるところまで紹介します。

開発環境にあるWindows Server 2016インスタンスに対して実行する想定でRun Commandを実行できるところまでは設定済みとします。

1. コマンド指定

本記事ではAWS-RunPowerShellScriptコマンドでスクリプトを実行します。

2. スクリプト貼り付け

選んだコマンドのCommands欄に上記スクリプトをそのまま貼り付けます。 Working Directoryは指定しなくても大丈夫です。

3. ターゲット指定、コマンド実行

ターゲットとなるEC2インスタンスを指定します。 ログの出力オプションなどは自由に設定してください。

設定後、「実行」を押してコマンドを実行します。

4. 結果確認

実行が完了したら出力を確認してみます。

このスクリプトでは下図の様なログを出す様にしており、今回はVer.1.3.2000930からVer.1.3.2001040に更新できていることがわかります。

最後に

ざっとこんな感じです。 利用機会はそれほど多くないかもしれませんがこのスクリプトが誰かの役に立てば幸いです。