はじめに

インシデント管理ツールとして知られる「PagerDuty」ですが、自動化のサービスとして「PagerDuty Runbook Automation」があります。
社内で導入する機会がありましたので、概要と基本的な使い方を簡単にまとめました。

PagerDuty Runbook Automationとは?

PagerDuty Runbook Automation は、PagerDuty Operations Cloud の一部で、部門、テクノロジー、ネットワークにまたがる自動ワークフローを作成、管理、実行するための SaaSです。Runbook Automation は、セルフサービスの委任、およびイベントトリガーによる自動化を管理します。これらの自動化されたジョブは、運用やインシデントの復旧に活用できます。

PagerDuty Runbook Automation

元々はオープンソースの「Rundeck」として知られていたジョブ管理ツールですが、PagerDuty社に統合され、以下の商用版も展開されています。

サービス名 利用形態
Runbook Automation cloud 商用(SaaS)
Runbook Automation SelfHosted 商用(セルフホスト)
Rundeck OSS(セルフホスト)

Rundeckとは?

Runbook Automation SelfHostedやOSS版は、Rundeckインスタンスを構築・管理する必要があります。導入にあたり、ネットワークやセキュリティ要件に問題がないようでしたら、SaaS版のRunbook Automation cloudを利用するのが手軽です。

できること

定型的な業務などをジョブとして定義しておき、任意のタイミングで実行できます。

主な実行方法

  • コンソールから手動で実行
  • スケジュールして実行
  • 外部ツールから呼び出して実行

コンソールの実行ボタンで実行することもできますし、cronの様にスケジューリングしてジョブを実行することもできます。また、多くの外部ツールとのインテグレーションが用意されていますので、様々なタイミングでジョブを実行できます。

以下の記事では、PagerDutyと連携したインシデント対応の自動化に活用する使い方を解説していますので、ぜひご覧ください。

PagerDutyを活用したインシデント対応の自動化
PagerDuty自動化関連機能まとめ+内製システムとの比較
【PagerDuty・AWS】Runbook AutomationにてAmazon EC2 サーバー内の調査を自動化するまでの道のり

その他に以下のような特徴があります。

項目 概要
通知機能 ジョブの成功・失敗、各ステップでの処理結果などを出力・通知できます。
実行制御 ジョブの同時実行の可否、タイムアウト、リトライ等を設定できます。
ワークフロー・オーケストレーション 複数のステップやツールを組み合わせたり、条件分岐やエラーハンドリングを定義したワークフローを作成できます。
アクセス制御 ACL(Access Control Policy)を使用したユーザ・グループに対する権限管理ができ、認証のためにSSO・LDAPなどと統合できます。
ジョブ間の相関 連携しているジョブの関係性を可視化できます。

 

主な構成要素

Runbook Automationのプロジェクト内に自動化したい処理をジョブとして定義します。
ジョブの中では、実行したい処理や他ツールとの連携をステップという単位で定義していき、一連の処理の流れ(ワークフロー)を作成します。
その他にも、処理を実行したい対象(ノード)やジョブの実行制御に関する設定についても、ジョブ内で定義します。

名称 概要
プロジェクト ジョブ等を保存する最上位の管理単位
ジョブ 特定の手順やタスクをパッケージ化したもの
ワークフロー ジョブの中で実行される「一連の処理の流れ」
ステップ ワークフローを構成する最小の「処理単位」
ノード 操作の対象となる「リソース(サーバーなど)」

以下はイメージ図です。


What are the pieces of a job?

ジョブの実行環境・構成

クラウド環境のリソースに対して処理を実行したい場合、プロジェクト設定で対象のクラウド環境とのプラグインを設定するのが簡単です。

以下、AWS環境のリソースに対して処理を行うケースで紹介します。

AWS環境との連携(プラグイン)

Runbook Automationのプロジェクトと処理対象のAWSアカウントで、IAMロールによるプラグインを設定します。各プロジェクトでは1つのAWSアカウントしかプラグインを設定できないため、プロジェクトとAWSアカウントは、基本的には1対1の関係となります。


AWS Integration for Runbook Automation

クロスアカウント

プラグインを設定したAWSアカウントと別のAWSアカウントをIAMロールで信頼関係を設定することで、クロスアカウントでの処理も可能となります。Runbook Automationプラグインを設定したAWSアカウント(MasterAccount)がハブとなるようなイメージです。

  • MasterAccount:Runbook Automationとプラグインを設定したアカウント
  • RemoteAccount:MasterAccountとIAMロールによる信頼関係を設定したアカウント


Cross-Account Orchestration with AWS Systems Manager

Runner(ランナー)

Runbook Automationとの直接アクセスが制限されているなど、ネットワークやセキュリティ面で考慮が必要となる場合、Runnerという機能を活用することができます。

Runnerは定期的にRunbook Automationインスタンスにタスクを問い合わせ、プロジェクト内のジョブをリモート環境で実行します。これにより、Runbook Automationからの処理は、Runnerを経由するような形となります。

なお、Runnerは、AWSアカウント内のEC2などにRunnerソフトウェアをインストールすることで動作させることが可能です。


Create a Runner to connect to remote nodes

クロスアカウント+Runner(ランナー)

先ほどのクロスアカウントとRunnerを組み合わせると以下のような構成も検討できそうです。

  • Runbook Automationとプラグインしているアカウント(MaseterAccount)にRunnerを配置
  • MaseterAccountとIAMロールによる信頼関係を設定したアカウント(RemoteAccount)に処理対象のノードを配置

ジョブの作成

ジョブの作成方法については、以下ドキュメントで紹介されています。
細かい内容については、別の記事で紹介したいと思います。
Creating a Rundeck Job

また、Beta版ですが、AI-Generated Runbooks という、生成AIを活用してジョブ作成できる機能もあります。
少し試してみましたが、自然言語でのやり取りを重ねてジョブを作成できるので、ジョブの叩き台を作るようなイメージで活用できそうです。
なお、現時点では生成できないコンテンツもあるので、そこは手動で設定する必要があります。


AI-Generated Runbooks (Beta)

最後に

今回、PagerDuty Runbook Automationの概要や基本的な使い方を紹介しました。
また別の記事で、ジョブ作成の部分などについて、もう少し細かい内容を紹介したいと思います。

手動運用が抱える課題を解決し、より効率的で信頼性の高いシステム運用体制を構築するために、ぜひPagerDuty Runbook Automationの導入をご検討ください。
弊社では、現在インシデント対応を「PagerDuty」と「AMS」というシステムを用いて自動化しております。
その知見を生かし、お客様のシステムの内製化支援等も行っていますので、ご興味がある方は、アイレットへお気軽にご相談ください。

最後までご覧いただきありがとうございました。