

• AWS Systems Manager CloudWatch ダッシュボードは、2026 年 4 月 30 日以降は利用できなくなります。お客様は、これまでと同様に Amazon CloudWatch コンソールを使用して、Amazon CloudWatch ダッシュボードの表示、作成、管理を継続できます。詳細については、「[Amazon CloudWatch ダッシュボードのドキュメント](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Dashboards.html)」を参照してください。

# コマンド実行時の再起動の処理
<a name="send-commands-reboot"></a>

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

**注記**  
再起動スクリプトは、`aws:runDocument` プラグインに含まれていません。ドキュメントに再起動スクリプトが含まれている場合に、別のドキュメントが `aws:runDocument` プラグインを介してドキュメントを実行しようとすると、SSM Agent はエラーが発生します。

**べき等スクリプトの作成**

マネージドノードを再起動するスクリプトを開発するときは、スクリプトをべき等にし、再起動後もスクリプトの実行が継続されるようにします。べき等なスクリプトは状態を管理し、アクションが実行されたかどうかを検証します。これにより、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
    }
```

**例**

次のスクリプトサンプルは、終了コードを使用してマネージドノードを再起動します。Linux の例では、Amazon Linux でパッケージ更新をインストールしてから、ノードを再起動します。Windows Server の例では、Telnet-Client をノードにインストールしてから、再起動します。

------
#### [ Amazon Linux 2 ]

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

------
#### [ Windows ]

```
$telnet = Get-WindowsFeature -Name Telnet-Client
if (-not $telnet.Installed)
    { 
        # Install Telnet and then send a reboot request to SSM Agent.
        Install-WindowsFeature -Name "Telnet-Client"
        exit 3010 
    }
```

------