すべてのプロダクト
Search
ドキュメントセンター

Elastic Compute Service:Cloud Assistant プラグインによるサービスのキープアライブ

最終更新日:Apr 29, 2026

アプリケーションエラー、インスタンスの再起動、または停電により、サービスやスクリプトが停止し、ビジネスの中断につながる可能性があります。このトピックでは、Cloud Assistant の ecs-tool-servicekeepalive プラグインを使用して、サービスのキープアライブを確保する方法について説明します。

仕組み

Cloud Assistant の ecs-tool-servicekeepalive プラグインは、Linux のサービスマネージャーである systemd を使用して、停止したサービスやスクリプトを自動的に再起動し、サービスの信頼性と継続性を確保します。このプラグインをキープアライブに使用するには、起動コマンドを指定します。その後、プラグインは必要な systemd サービス設定を生成し、サービスを起動して、起動時の自動起動を有効にします。手動でファイルを編集する必要はありません。

説明

systemd は、Linux のサービスマネージャーであり、起動時の自動起動や予期せず停止したサービスの再起動などのタスクを実行できます。詳細については、「公式のsystemd ドキュメント」をご参照ください。

操作手順

サービスのキープアライブの有効化

サービスをデプロイした後、root ユーザーとして Cloud Assistant プラグイン ecs-tool-servicekeepalive を実行します。

root として実行

sudo acs-plugin-manager --exec --plugin ecs-tool-servicekeepalive --params "start,'<cmd>'"

<cmd>:サービスの起動コマンド。以下の例をご参照ください。

  • シェルスクリプト: /bin/bash /home/ecs-user/keepalive-simple/test-keepalive.sh

  • Python スクリプト: python /home/root/main.py

指定ユーザーとして実行

sudo acs-plugin-manager --exec --plugin ecs-tool-servicekeepalive --params "start,execstart='<cmd>',user=<user_name>,group=<group_name>"
  • <cmd>:サービスの起動コマンド。以下の例をご参照ください。

    • シェルスクリプト: /bin/bash /home/ecs-user/keepalive-simple/test-keepalive.sh

    • Python スクリプト: python /home/root/main.py

  • <user_name>:サービスを実行するユーザー名。既存のユーザーを確認するには、cut -d: -f1 /etc/passwd を実行します。

  • <group_name>:サービスのグループ名。既存のユーザーグループを確認するには、cut -d: -f1 /etc/group を実行します。

警告

キープアライブステータスの確認

次のコマンドを実行して、キープアライブステータスを確認します。

sudo acs-plugin-manager --exec --plugin ecs-tool-servicekeepalive --params "status"

次の出力例は、キープアライブが有効であることを示しています。

service_name                   execstart                                                                                                          user  group  status
ecs_keepalive_1744262359.service /bin/bash /home/ecs-user/keepalive-simple/test-keepalive.sh /home/ecs-user/keepalive-simple/test-keepalive.log                 active (running) since Thu 2025-04-10 13

サービスのキープアライブの無効化

キープアライブを無効にする場合は、次のコマンドを実行します。

sudo acs-plugin-manager --exec --local --plugin ecs-tool-servicekeepalive --params "stop <service_name>"

<service_name>:サービス設定の名前。この値は、キープアライブステータスの確認手順の出力の service_name 列に表示されます。

説明

キープアライブを無効にすると、サービスプロセスが停止し、自動起動設定と ecs-tool-servicekeepalive プラグインが作成したサービス設定ファイルが削除されます。

  1. テストサービススクリプトの準備

    このスクリプトは、作業ディレクトリとして /home/ecs-user を使用します。実際の作業ディレクトリに置き換えてください。

    # /home/ecs-user ディレクトリに keepalive-simple ディレクトリを作成し、その中に test-keepalive.sh スクリプトを作成します。
    sudo mkdir -p /home/ecs-user/keepalive-simple && \
    sudo tee /home/ecs-user/keepalive-simple/test-keepalive.sh > /dev/null << 'EOF'
    #!/bin/bash
    # 指定したログファイルに、1 秒ごとに 1 行のログを書き込みます。
    while true
    do
       sudo echo "$(date '+%Y-%m-%d %H:%M:%S') progress is alive" >> $1
        sleep 1
    done
    EOF
    # スクリプトに実行権限を付与します。
    sudo chmod +x /home/ecs-user/keepalive-simple/test-keepalive.sh
  2. (オプション)サービスの実行ステータスの確認

    次のコマンドを実行して、サービスの実行ステータスを確認します。

    ps aux | grep test-keepalive.sh

    次の出力例は、サービスが実行されていないことを示しています。

    ecs-user    2207  0.0  0.0 221528   916 pts/0    S+   11:34   0:00 grep --color=auto test-keepalive.sh
  3. サービスのキープアライブの有効化

    sudo acs-plugin-manager --exec --plugin ecs-tool-servicekeepalive --params "start,'/bin/bash /home/ecs-user/keepalive-simple/test-keepalive.sh /home/ecs-user/keepalive-simple/test-keepalive.log'"

    次の出力例は、キープアライブが有効であることを示しています。

    Created symlink /etc/systemd/system/multi-user.target.wants/ecs_keepalive_1744256544.service → /etc/systemd/system/ecs_keepalive_1744256544.service.
    Start systemd service for "/bin/bash /home/ecs-user/keepalive-simple/test-keepalive.sh /home/ecs-user/keepalive-simple/test-keepalive.log" success
  4. キープアライブステータスとサービスの実行ステータスの確認

    1. 次のコマンドを実行して、キープアライブステータスを確認します。

      sudo acs-plugin-manager --exec --plugin ecs-tool-servicekeepalive --params "status"

      次の出力例は、キープアライブが有効であり、サービスが実行されていることを示しています。

      service_name                   execstart                                                                                                          user  group  status
      ecs_keepalive_1744256544.service /bin/bash /home/ecs-user/keepalive-simple/test-keepalive.sh /home/ecs-user/keepalive-simple/test-keepalive.log                 active (running) since Thu 2025-04-10 11
    2. 次のコマンドを実行して、サービスの実行ステータスを確認します。

      ps aux | grep test-keepalive.sh

      次の出力例は、サービスが実行されていることを示しています。

      root        3144  0.0  0.0 222200  3420 ?        Ss   11:42   0:00 /bin/bash /home/ecs-user/keepalive-simple/test-keepalive.sh /home/ecs-user/keepalive-simple/test-keepalive.log
      ecs-user    6841  0.0  0.0 221660   968 pts/0    S+   11:49   0:00 grep --color=auto test-keepalive.sh
  5. (オプション)キープアライブの検証

    1. サービスを手動で停止して、Cloud Assistant がプロセスを自動的に再起動することを確認します。

      方法 1:ECS インスタンスの再起動

      インスタンスを再起動して、予期しないインスタンスの再起動をシミュレートします。

      方法 2:プロセスの終了

      次のコマンドを実行して、test-keepalive.sh プロセスを終了します。<PID> を、ps コマンドで返されるプログラムの PID に置き換えてください。

      sudo date && kill -9 <PID>
    2. 次のコマンドを実行して、サービスの実行ステータスを確認します。

      ps aux | grep test-keepalive.sh

      次の出力例は、サービスが実行されていることを示しています。

      root       33061  0.0  0.0 222200  3504 ?        Ss   13:19   0:00 /bin/bash /home/ecs-user/keepalive-simple/test-keepalive.sh /home/ecs-user/keepalive-simple/test-keepalive.log
      ecs-user   34558  0.0  0.0 221660  2556 pts/0    S+   13:23   0:00 grep --color=auto test-keepalive.sh
  6. サービスのキープアライブの無効化

    次のコマンドを実行して、キープアライブを無効にします。

    sudo acs-plugin-manager --exec --local --plugin ecs-tool-servicekeepalive --params "stop ecs_keepalive_1744256544.service"

    次の出力例は、キープアライブ設定が無効になったことを示しています。

    service check ok, file:ecs_keepalive_1744256544.service is valid
    Removed /etc/systemd/system/multi-user.target.wants/ecs_keepalive_1744256544.service.
    stop service ok, service:ecs_keepalive_1744256544.service is stopped and removed

関連ドキュメント

Cloud Assistant の詳細については、「Cloud Assistant の概要」をご参照ください。