AWS Systems Manager
ユーザーガイド

スクリプトからのマネージドインスタンスの再起動

Run Command を使用して実行するスクリプトでマネージドインスタンスを再起動する場合は、スクリプトで終了コードを指定する必要があります。その他のメカニズムを使用して、スクリプトからインスタンスを再起動しようとすると、再起動がスクリプトの最後のステップであっても、スクリプトの実行ステータスが正しく更新されない場合があります。Windows マネージドインスタンスの場合は、スクリプトで exit 3010 を指定します。Linux マネージドインスタンスの場合は、exit 194 を指定します。終了コードは SSM エージェント にマネージドインスタンスの再起動を指示し、再起動の完了後にスクリプトを再起動します。再起動を開始する前に、SSM エージェント はクラウド上の Systems Manager サービスに対して、サーバーの再起動中に通信が中断されることを知らせます。

べき等スクリプトの作成

マネージドインスタンスを再起動するスクリプトを開発するときは、再起動後に中断したところでスクリプトが実行を継続するように、必ずスクリプトをべき等にします。べき等なスクリプトは状態を管理し、アクションが実行されたかどうかを検証します。これにより、1 回のみ実行するように意図されているステップが複数回実行されなくなります。

インスタンスを複数回再起動する、べき等スクリプトの出力例を次に示します。

$name = Get current computer name If ($name –ne $desiredName) { Rename computer exit 3010 } $domain = Get current domain name If ($domain –ne $desiredDomain) { Join domain exit 3010 } If (desired package not installed) { Install package exit 3010 }

次のスクリプトサンプルは、終了コードを使用してインスタンスを再起動します。Windows の例では、インスタンスで Hyper-V アプリケーションをインストールしてから、インスタンスを再起動します。Linux の例では、Amazon Linux でパッケージ更新をインストールしてから、インスタンスを再起動します。

Windows の例

$hyperV = Get-WindowsFeature -Name Hyper-V if(-not $hyperV.Installed) { # Install Hyper-V and then send a reboot request to SSM Agent. Install-WindowsFeature -Name Hyper-V -IncludeManagementTools exit 3010 }

Amazon Linux 例

#!/bin/bash yum -y update needs-restarting -r if [ $? -eq 1 ] then exit 194 else exit 0 fi