【アップデート】EC2 Run Commandの事前定義コマンドが増えました

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

ウィスキー、シガー、パイプをこよなく愛する大栗です。
本日EC2 Run Commandで選択できるコマンドが増えたので内容を確認してみました。

何がEC2 Run Commandに追加されたの?

まずEC2 Run Commandについては、以下の記事を御覧ください。

【新機能】EC2に任意のコマンドを実行できるボタン「Run Command」が追加(まだWindowsだけ)
【新機能】EC2に任意のコマンドを実行できるボタン「Run Command」がついにLinuxにも追加

今回追加されたコマンドはWindowsインスタンスに対するもので、インベントリ情報の収集とオンデマンドのパッチ適用ができるようになりました。

  • インベントリ情報の収集(AWS-ListWindowsInventory)
    OSのバージョン、言語、詳細
    インストールされているアプリケーション
    インストールされているOSアップデート

  • オンデマンドのパッチ適用

    • インスタンスをスキャンして不足しているアップデートを確認する(AWS-FindWindowsUpdates)
    • インスタンスに特定の更新プログラムをインストールする(AWS-InstallSpecificWindowsUpdates)
    • インスタンスに不足している更新プログラムをインストールする(AWS-InstallMissingWindowsUpdates)

実際に試します

EC2の準備

今回追加されたコマンドはWindows用なのでWindowsのEC2インスタンスを起動します。2016年4月5日現在東京リージョンでWindows Server 2012 R2の日本語版AMIには以下の3種類があります。

  • Windows_Server-2012-R2_RTM-Japanese-64Bit-Base-2016.01.25(ami-6dbb8203)
  • Windows_Server-2012-R2_RTM-Japanese-64Bit-Base-2016.02.10(ami-36bfbb58)
  • Windows_Server-2012-R2_RTM-Japanese-64Bit-Base-2016.03.09(ami-58282636)

最新のアップデートが当たっていない物が欲しいため、一番古いWindows_Server-2012-R2_RTM-Japanese-64Bit-Base-2016.01.25(ami-6dbb8203)を起動します。

コマンドを実行する

[EC2]-[コマンド]の画面でコマンドを実行をクリックしてRun Commandを実行していきいます。

EC2_Management_Console

インベントリ情報の収集

まずはインベントリ情報の収集を行います。
コマンドのドキュメントでAWS-ListWindowsInventoryを選択します。ターゲットインスタンスで準備したEC2インスタンスを指定します。
様々な情報を取得するため各パラメータを以下の様に選択しました。

パラメータ 設定値 備考
List OS Information true OS情報の一覧
List Installed Applications true インストールされているアプリケーションの一覧
List Installed Updates true インストールされているOSアップデートの一覧

タイムアウトはデフォルトの600秒、出力結果を保存するS3バケットを指定します。一番下には、CLIで実行するためのコマンドも表示されます。

貼り付けた画像_2016_04_05_7_05

実行するとコマンドの状態がPendingとなるので、実行完了まで待ちます。

EC2_Management_Console

コマンドの状態がSuccessになって実行が完了したら実行結果がS3バケットに保存されるので確認します。
実行結果の保存先は、Prefixを指定していないので <指定したS3バケット>/<コマンドID>/<インスタンスID>/awsrunPowerShellScript/stdout.txt となっています。

S3_Management_Console

結果はリンク先のようになります。
OSの詳細情報(Get-OSInventory)やインストールされているアプリケーション(Get-AppInventory)、インストールされているOSアップデート(Get-PatchInventory)が確認できます。

Get-OSInventory - WIN-H615HFCID8U - 2016-04-04T22:18:39Z
    Schema:  1.0
    Publisher:  Microsoft Corporation
    OSName:  Microsoft Windows Server 2012 R2 Standard
    OSVersion:  6.3.9600
    ExtendedProperties:  
                               
                                   Key:  ServicePackLevel
                                   Value:  null
                               
                               
                                   Key:  OSArchitecture
                                   Value:  64 ビット
                               
                               
                                   Key:  OSLanguageId
                                   Value:  1041
                               
                               
                                   Key:  OSLanguage
                                   Value:  日本語 (日本)
                               
                               
                                   Key:  ProductType
                                   Value:  3
                               
                               
                                   Key:  OperatingSystemSKU
                                   Value:  7
                               
                               
                                   Key:  OperatingSystemSKUName
                                   Value:  Standard Server Edition
                               
                           
Get-AppInventory - WIN-H615HFCID8U - 2016-04-04T22:18:41Z
    Schema:  1.0
    InstalledApplications:  
                                  
                                      Name:  AWS PV Drivers
                                      Version:  7.3.2
                                      Publisher:  Amazon Web Services
                                      InstalledOn:  2015-08-13T00:00:00Z
                                      InstallLocation:  null
                                  
                                  
                                      Name:  aws-cfn-bootstrap
                                      Version:  1.4.10
                                      Publisher:  Amazon Web Services
                                      InstalledOn:  2015-08-13T00:00:00Z
                                      InstallLocation:  null
                                  
                                  
                                      Name:  EC2ConfigService
                                      Version:  3.12.649.0
                                      Publisher:  Amazon Web Services
                                      InstalledOn:  2016-01-13T00:00:00Z
                                      InstallLocation:  null
                                  
                              
Get-PatchInventory - WIN-H615HFCID8U - 2016-04-04T22:18:42Z
    Schema:  1.0
    Patches:  
                    
                        HotFixId:  KB3121212
                        Description:  Security Update
                        InstalledOn:  2016-01-13T00:00:00Z
                        InstalledBy:  NT AUTHORITY\SYSTEM
・
・
・

オンデマンドのパッチ適用

次はオンデマンドのパッチ適用を行ってみます。

アップデートの確認(AWS-FindWindowsUpdates)

アップデートの確認を行います。
コマンドのドキュメントでAWS-FindWindowsUpdatesを選択します。ターゲットインスタンスで準備したEC2インスタンスを指定します。
確認対象のアップデートのレベルを指定するUpdate LevelではImportantを選択しました。タイムアウトはデフォルトの600秒、出力結果を保存するS3バケットを指定します。

貼り付けた画像_2016_04_05_8_08

実行するとFailedになってしまいました。

EC2_Management_Console

出力結果を確認すると、以下の様に表示されています。EC2Configのバージョンが古いようなのでAWS-UpdateEC2Configを実行した後に、再度実行します。

CheckEC2ConfigVersion : This command requires EC2Config version 3.14.786 or hig
her. Please run the command AWS-UpdateEC2Config to update EC2Config and try aga
in.
発生場所 C:\ProgramData\Amazon\Ec2Config\Downloads\aws_psModule\owhhtvgm.nh4.ps
1:83 文字:9
+         CheckEC2ConfigVersion
+         ~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [Write-Error], WriteErrorExcep 
   tion
    + FullyQualifiedErrorId : Microsoft.PowerShell.Commands.WriteErrorExceptio 
   n,CheckEC2ConfigVersion

Importantで実行した結果は、リンク先の様になりました。Important Updateは合計19個になっています。

パッチレベル 個数
ImportantUpdates 19
Critical 2
Important 14
Moderate 1
Low 0
Unspecified 2
OptionalUpdates 0
TotalUpdates 19
WIN-H615HFCID8U - PatchNow Assessment Results - 2016-04-05T02:38:35.873
                  Important Updates:   19
                           Critical:    2
                          Important:   14
                           Moderate:    1
                                Low:    0
                        Unspecified:    2
                   Optional Updates:    0
                      Total Updates:   19
Critical
3137513 3140735
Important
3126593 3133043 3127226 3134222 3122654 3126041 3126434 3126446 3126587 3139940 3139398 3139852 3139914 3135994
Moderate
3139929
Unspecified (Important)
890830 3138615
KBArticleId         : 3137513
Name                : Windows Server 2012 R2 用セキュリティ更新プログラム (KB31
                      37513)
Id                  : c0ba6312-2528-49c9-9282-adee07e5a3b8
ReleaseDate         : 2016/03/08 0:00:00 +00:00
Severity            : Critical
Category            : PatchNow.Implementations.UpdateCategory
CategoryName        : Security Updates
IsDownloaded        : False
IsInstalled         : False
Size                : 5762
RebootRequired      : False
EulaAccepted        : True
CanRequestUserInput : False
SecurityBulletinIds : {MS16-028}
SupersededUpdateIds : {128ff4a5-520a-4af2-a59b-04e8315dfb36, 10f82031-e091-4470
                      -8b6b-402c49fa456b}
Identity            : System.__ComObject
HResult             : 0
Description         : Microsoft ソフトウェア製品に、ユーザーのシステムに影響を与え
                      る可能性があるセキュリティ問題が発見されました。この更新プ
                      ログラムをインストールすると、お使いのシステムを保護できま
                      す。この更新プログラムの対象となる問題の完全な一覧について
                      は、関連するサポート技術情報を参照してください。インストール
                      後には、システムの再起動が必要になる場合があります。
IsImportant         : True
・
・
・
特定の更新プログラムをインストール(AWS-InstallSpecificWindowsUpdates)

次に特定アップデートをインストールします。 コマンドのドキュメントでAWS-FindWindowsUpdatesを選択します。ターゲットインスタンスで準備したEC2インスタンスを指定します。
ここでは、先ほど確認した時にCriticalとして表示されていた「3137513」と「3140735」をカンマで繋いで指定します。
タイムアウトはデフォルトの600秒、出力結果を保存するS3バケットを指定します。

EC2_Management_Console

実行結果は以下の通りとなり、Criticalの「3137513」と「3140735」がインストールされました

WIN-H615HFCID8U - PatchNow Installation Results - 2016-04-05T03:00:24.923
                  Important Updates:    2
                           Critical:    2
                          Important:    0
                           Moderate:    0
                                Low:    0
                        Unspecified:    0
                   Optional Updates:    0
                      Total Updates:    2
KbArticleId Installed   Message
----------- ----------- -----------
3137513     Yes         Success
3140735     Yes         Success
KBArticleId         : 3137513
Name                : Windows Server 2012 R2 用セキュリティ更新プログラム (KB31
                      37513)
Id                  : c0ba6312-2528-49c9-9282-adee07e5a3b8
ReleaseDate         : 2016/03/08 0:00:00 +00:00
Severity            : Critical
Category            : PatchNow.Implementations.UpdateCategory
CategoryName        : Security Updates
IsDownloaded        : True
IsInstalled         : True
Size                : 5762
RebootRequired      : False
EulaAccepted        : True
CanRequestUserInput : False
SecurityBulletinIds : 
SupersededUpdateIds : 
Identity            : 
HResult             : 0
Description         : Microsoft ソフトウェア製品に、ユーザーのシステムに影響を与え
                      る可能性があるセキュリティ問題が発見されました。この更新プ
                      ログラムをインストールすると、お使いのシステムを保護できま
                      す。この更新プログラムの対象となる問題の完全な一覧について
                      は、関連するサポート技術情報を参照してください。インストール
                      後には、システムの再起動が必要になる場合があります。
IsImportant         : True
KBArticleId         : 3140735
Name                : Windows Server 2012 R2 用セキュリティ更新プログラム (KB31
                      40735)
Id                  : 18c3ca8c-b318-4604-9e36-6c62b80a23d5
ReleaseDate         : 2016/03/08 0:00:00 +00:00
Severity            : Critical
Category            : PatchNow.Implementations.UpdateCategory
CategoryName        : Security Updates
IsDownloaded        : True
IsInstalled         : True
Size                : 465
RebootRequired      : True
EulaAccepted        : True
CanRequestUserInput : False
SecurityBulletinIds : 
SupersededUpdateIds : 
Identity            : 
HResult             : 0
Description         : Microsoft ソフトウェア製品に、ユーザーのシステムに影響を与え
                      る可能性があるセキュリティ問題が発見されました。この更新プ
                      ログラムをインストールすると、お使いのシステムを保護できま
                      す。この更新プログラムの対象となる問題の完全な一覧について
                      は、関連するサポート技術情報を参照してください。インストール
                      後には、システムの再起動が必要になる場合があります。
IsImportant         : True

もう一度AWS-FindWindowsUpdatesで確認すると、以下の通りCriticalが0件となっています。

WIN-H615HFCID8U - PatchNow Assessment Results - 2016-04-05T03:06:28.883
                  Important Updates:   17
                           Critical:    0
                          Important:   14
                           Moderate:    1
                                Low:    0
                        Unspecified:    2
                   Optional Updates:    0
                      Total Updates:   17
Important
3126593 3133043 3127226 3134222 3122654 3126041 3126434 3126446 3126587 3139940 3139398 3139852 3139914 3135994
Moderate
3139929
Unspecified (Important)
890830 3138615

・
・
・
不足している更新プログラムをインストール(AWS-InstallMissingWindowsUpdates)

最後に不足しているアップデートを全てインストールします。 コマンドのドキュメントでAWS-InstallMissingWindowsUpdatesを選択します。ターゲットインスタンスで準備したEC2インスタンスを指定します。
インストール対象のアップデートのレベルを指定するUpdate LevelではImportantを選択しました。Exclude Kb Article Idsを入力することでインストール対象から除外することができます。
タイムアウトはデフォルトの600秒、出力結果を保存するS3バケットを指定します。

EC2_Management_Console

実行結果はリンク先の様になります。不足していたアップデートを全て適用しました。

WIN-H615HFCID8U - PatchNow Installation Results - 2016-04-05T03:27:43.287
                  Important Updates:   17
                           Critical:    0
                          Important:   14
                           Moderate:    1
                                Low:    0
                        Unspecified:    2
                   Optional Updates:    0
                      Total Updates:   17
KbArticleId Installed   Message
----------- ----------- -----------
3126593     Yes         Success
3133043     Yes         Success
3127226     Yes         Success
3134222     Yes         Success
3122654     Yes         Success
3126041     Yes         Success
3126434     Yes         Success
3126446     Yes         Success
3126587     Yes         Success
3139940     Yes         Success
3139398     Yes         Success
3139852     Yes         Success
3139914     Yes         Success
3135994     Yes         Success
3139929     Yes         Success
890830      Yes         Success
3138615     Yes         Success
KBArticleId         : 3126593
Name                : Windows Server 2012 R2 用セキュリティ更新プログラム (KB31
                      26593)
Id                  : 3ce61d87-7153-4540-a74b-fd0065edfdde
ReleaseDate         : 2016/02/09 0:00:00 +00:00
Severity            : Important
Category            : PatchNow.Implementations.UpdateCategory
CategoryName        : Security Updates
IsDownloaded        : True
IsInstalled         : True
Size                : 8587
RebootRequired      : True
EulaAccepted        : True
CanRequestUserInput : False
SecurityBulletinIds : 
SupersededUpdateIds : 
Identity            : 
HResult             : 0
Description         : Microsoft ソフトウェア製品に、ユーザーのシステムに影響を与え
                      る可能性があるセキュリティ問題が発見されました。この更新プ
                      ログラムをインストールすると、お使いのシステムを保護できま
                      す。この更新プログラムの対象となる問題の完全な一覧について
                      は、関連するサポート技術情報を参照してください。インストール
                      後には、システムの再起動が必要になる場合があります。
IsImportant         : True
・
・
・

念のためAWS-FindWindowsUpdatesでも確認しましょう。
確認結果は以下の通りImportantでは対象のアップデートが無くなりました。

WIN-H615HFCID8U - PatchNow Assessment Results - 2016-04-05T03:33:01.655
                  Important Updates:    0
                           Critical:    0
                          Important:    0
                           Moderate:    0
                                Low:    0
                        Unspecified:    0
                   Optional Updates:    0
                      Total Updates:    0

さいごに

WindowsインスタンスのOS情報や面倒なWindowsのパッチ適用をRun Commandから実行できるようになりました。全てカスタムなスクリプトを作成すれば操作可能なのですが、事前定義コマンドが増えるとOSレイヤ以上の管理がAWSと統合できて管理が楽になりますね。
ただし、セキュリティについては注意が必要です。以前はAWSインフラとOSの中のセキュリティを分けて考えることができましたが、AWSからOS内部の操作が可能になっているのでIAMの権限分離などに検討が必要になります。ご注意ください。
それと、Linux版SSM Agentのソースがgithubで公開されました。ライセンスはAmazon Software Licenseとなっており、利用できる環境は「Amazon.com及びAmazon Web Services Inc.を含む関連会社が提供するウェブサービス、コンピュータ・プラットフォームまたはアプリケーション」となっているのでAWS上で使用しましょう。