PagerDuty Runbook Automationとは

2024.04.26
現在自分が所属している運用保守チームでは、PagerDutyを活用して業務の効率化を目指しています。最近PagerDuty Runbook Automationの無料トライアルを試す機会があったので、このサービスが何なのかについて、この記事では紹介します。

RunDeck

PagerDuty Runbook Automationは、一言で言うとRundeckのフルマネージドSaaSサービスです。
まずRundeckが何なのかについて紹介します。
RundeckはOSSのジョブ管理ツールです。定期的に行う作業や処理を自動化して、定時実行やwebhookを通して実行などが出来ます。2020年ごろにPagerDuty社がRundeckを買収しています。

スクリプトの定期実行はcronでも出来ますが、ログ出力が難しかったり、ジョブのエラー時に気づけない、複数のインスタンスで連携してジョブ実行が難しいなどがあります。
ジョブ管理ツールを使うことでそれらを解決できます。

Rundeckでは、

  • Web GUI, CLI, APIを使ったジョブの実行、管理
  • Pluginsにより他のサービスと連携
  • ジョブの実行ログ、ユーザー認証やロール管理、アクセスコントロール、シークレット鍵の管理

など、他にも多くの機能があります。

自動化できそうな作業の具体例として以下のようなものがあるようです。

  • エラーが発生したサーバーの再起動、キャッシュの削除
  • 負荷が高くなるとサーバーを自動でプロビジョニング
  • エラー発生時にフェイルオーバー
  • サーバーのエラーログを取得する作業
  • エラー発生時にチケット管理ツールで起票、解決したらクローズ

Rundeckの種類

Rundeckには3つの種類があります。

  • Rundeck Community
    • OSS、無料、セルフマネージド
  • PagerDuty® Runbook Automation (旧称:Rundeck Cloud)
    • 高機能、Cloud版、SaaS
    • フルマネージド
    • 主にクラウド上のサーバー運用などを管理
  • PagerDuty® Process Automation On-Prem (旧称:Rundeck Enterprise)
    • 高機能、Enterprise版
    • セルフマネージド
    • 主にオンプレサーバーの運用などを管理

Rundeck Communityは無料ですが、有料版に比べると機能は少なくなっています。以下のページで機能の違いは確認できます。

セルフマネージドなので自分でpcやサーバーにインストールして利用します。EC2などにRundeckをインストールして、社内の人たちで使うといったことも出来ます。
企業利用する場合であってもRundeck Communityを使って良いみたいですが、企業サポートを受けることは出来ません。社内での利用規模が大きい場合は一度PageDuty社に確認した方が良いかもしれません。

PagerDuty® Runbook AutomationはSaaSとして提供されている、有料の高機能なRundeckです。自分でインストールなどしなくても、ブラウザからログインするだけで利用できます。

PagerDuty Process Automationはセルフマネージドで、有料の高機能なRundeckです。主にオンプレ環境の管理などをしたい場合に、自分でインストールして利用します。

有料のRundeckは、名前がRunbook AutomationやProcess Automationとなっており、Rundeckと別物に思うかもしれませんが基本は同じもので、より高機能なRundeckで企業サポートも付いてきます。

PagerDuty Runbook Automationとは

前述した通り、PagerDuty Runbook Automationは、RundeckのフルマネージドなSaaSサービスです。ログインするだけですぐにRunbook Automation(= 高機能なRundeck)が利用できます。以下がPagerDuty Runbook Automationのスクショです。左側のサイドバーから各機能に移動できます。

  • Dashboard
    • 情報(ジョブの実行履歴、実行中のインスタンス、スケジュールされたジョブの一覧、Readme)を確認できます。
  • ジョブ
    • ジョブの一覧がカテゴリ分けされて表示され、ジョブの実行、管理ができます。
  • ノード
    • ジョブを実行するサーバーがノードとして表示されます。PROJECT SETTINGS > EDIT NODESからノードを追加できます。
  • コマンド
    • ノードを選択してコマンド入力すると実行できます。
  • アクティビティ
    • ジョブの実行履歴(実行日時、実行時間、実行したアカウント名、ノード名など)
  • WEBHOOKS
    • webhookを使ってジョブを実行できます。aws snsやdataDog, github, pagerDutyなどからwebhookを呼び出してジョブを実行できます。
  • SCHEDULE
    • 時間とジョブを指定して定期実行できます。
  • CALENDARS
    • 日時を指定してジョブを実行できます。実行する期間、実行しない期間の指定もできます。