EC2 Systems ManagerのRun CommandをWindowsServerで試してみた #reinvent

reinvent2016_eyecatch

はじめに

AWS re:Invent 2016で新機能EC2 Systems Managerが発表されました。
機能の1つであるRun CommandをWindowsServerで試してみました。
OSにログインせずとも、OS、アプリケーション、アップデートの状態を確認出来ました。
結果はAWSコンソールで確認できるほか、SNSで通知したりs3に配置できます。

やってみた

s3バケットの作成

マネージドコンソールでは2500文字までの表示になるため、s3に出力します。
s3バケットを作成し、バケットポリシーを設定します。
以下のバケットポリシーを適用しました。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "sitemanager",
            "Effect": "Allow",
            "Principal": {
                "Service": "ssm.amazonaws.com"
            },
            "Action": "*",
            "Resource": "arn:aws:s3:::bucket-name"
        }
    ]
}

IAMロールを適用してEC2を作成

Run Commandを実行するには、EC2にIAMロールを割り当てる必要があります。
IAMコンソールで以下のIAMロールを作成し、EC2作成時に割り当てます。

  • IAMロールタイプ:Amazon EC2 Role for Simple Systems Manager
  • ポリシー:AmazonEC2RoleforSSM

Run Command

検証はオレゴンリージョンで行いました。
EC2コンソールの左メニュー"Run Command" > "Run a Command"を選択します。

ドキュメントの選択

数が多いので、プラットホームで絞ると良いでしょう。
今回は"AWS-ListWindowsInventory"を使います。
OS、アプリケーション、アップデートの状態を表示するドキュメントです。

List information about the operating system, installed applications, or installed updates. We recommend exporting results to an Amazon S3 bucket. Output can exceed the maximum.

2

ターゲットの選択

対象にするEC2を選択します。
IAMロールを設定しないと、一覧に出ません。

3

パラメータの入力

パラメータを入力します。
パラメータはドキュメントによって異なります。
"AWS-ListWindowsInventory"では、表示する内容を選択できるようです。

4

タイムアウト、s3バケットへの格納、通知

結果をs3バケットに格納したり、SNSで通知出来ます。
今回はs3に格納します。

5

AWS CLI実行コマンド

コマンドで実行する場合のコマンドが表示されます。
これは便利ですね。

7

結果の確認

すぐにステータスが"Success"になりました。
View Outputを選択します。

8

結果を確認できます。
2500文字を超えて切り詰められていました。

10

s3には"stdout"ファイルが配置されました。 "stdout"ファイルの結果を抜粋します。
全文はこちらをご覧ください。コンピュータ名はマスクしています。

OS Informationには言語やエディションが表示されます。

Key:OSLanguage
Value:日本語 (日本)

Key:OperatingSystemSKUName
Value:Standard Server Edition

List Installed Applicationsでは、アプリケーションのバージョンなどを確認出来ます。

Name:  EC2ConfigService
Version:  4.0.1343.0
Publisher:  Amazon Web Services
InstalledOn:  2016-11-22T00:00:00Z
InstallLocation:  null

List Installed Updatesでは、パッチの適用状況を確認出来ます。

HotFixId:KB3195362
Description:Update
InstalledOn:2016-11-22T00:00:00Z
InstalledBy:NT AUTHORITY¥SYSTEM

終わりに

Run Commandを使って、OSにログインせずとも情報を取得できることを確認しました。
リモートデスクトップせずにWindows Serverを利用するケースが出てきそうです。

検証環境

  • オレゴンリージョン
  • Windows_Server-2012-RTM-Japanese-64Bit-Base-2016.11.23(ami-e7e24d87)

参考

AWS Cloud Roadshow 2017 福岡