Amazon EC2 Systems ManagerのRun Commandをやってみた #reinvent

reinvent2016_eyecatch

はじめに

本日のAWS re:Invent 2016で発表された新機能、Amazon EC2 Systems Manager

Amazon_EC2_Systems_Manager_-_Amazon_Web_Servivces__AWS_

速報記事は以下です。

この機能の1つであるRun Commandをやってみました。

やってみた

Amazon EC2 Systems Managerに管理されるEC2の要件

  • 以下のOSであること
    • 64-Bit and 32-Bit Systems
      • Amazon Linux 2014.09, 2014.03 or later
      • Ubuntu Server 14.04 LTS or 12.04 LTS
      • Red Hat Enterprise Linux (RHEL) 6.5 or later
      • CentOS 6.3 or later
    • 64-Bit Systems Only
      • Amazon Linux 2015.09, 2015.03 or later
      • Red Hat Enterprise Linux (RHEL) 7.x or later
      • CentOS 7.1 or later
  • SSMエージェントがインストールされていること(インストール手順)
  • EC2にIAM Role(AmazonEC2RoleforSSM)が設定されていること(設定手順)
  • EC2がインターネットアクセスできること

Run Commandの設定

EC2管理コンソールのメニューにSYSTEMS MANAGER SERVICESとSYSTEMS MANAGER SHARED RESOURCESというメニューが追加されています。今回はSYSTEMS MANAGER SERVICESにある「Run Command」をクリックします。

EC2_Management_Console

[Welcome to EC2 Systems Manager – Run Command]と表示されます。[Run a command]ボタンをクリックします。

EC2_Management_Console 2

[Run a command]画面が開きます。[Command document]では18個のコマンド(SSMドキュメント)が定義されています。

EC2_Management_Console 3

今回は一番わかりやすい「AWS-RunShellScript」を実行してみることにします。

EC2_Management_Console 4

[Target Instances]でコマンド実行対象とするインスタンスを選択します。

EC2_Management_Console 5

[Commands]に実行したいシェルスクリプトを記載します。[Working Directory]はシェルスクリプトを実行するときのディレクトリです。[Execution Timeout]はSSMエージェントがコマンドを実行できない際のタイムアウト時間です。

EC2_Management_Console 7

[Comment]にはこのコマンド定義へのコメントをつけることができます。[Timeout]はインスタンス接続に対するタイムアウトです。S3に関する設定は、コマンドの実行結果をS3に保存する際に設定します。またSNS Topicを設定することで、コマンドの失敗などがあった場合に通知することができます。全部設定したら[Run]ボタンをクリックします。

EC2_Management_Console 8

コマンドが実行されました。[View result]ボタンをクリックします。

EC2_Management_Console 9

コマンドが実行され、StatusがSuccessになっていることがわかります。 EC2_Management_Console 10

[Output]タグの[View Output]をクリックします。

EC2_Management_Console 11

コマンドの実行結果が確認できます!

EC2_Management_Console 12

さいごに

複数のサーバを対象にコマンド実行が出来るため、情報の取得やアップデート作業などに便利に活用できそうです。