4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Azure Automation RunbookでMicrosoft Fabric容量をスケジュール実行してコスト削減!自動一時停止ガイド

Last updated at Posted at 2025-04-21

はじめに

こんにちは、あるいはこんばんは。

この記事をご覧の方は、Microsoft Fabricの利用を検討されている、あるいは既に利用されている方かもしれません。Microsoft Fabricは2023年に一般提供(GA)が開始された、マイクロソフトが提供する統合データ分析プラットフォームです。

Microsoft Fabric 公式サイト

Microsoft Fabricを利用する際、Azure上で「Fabric容量(Capacity)」を作成する方法があります。このFabric容量には「再開(Resume)」状態と「一時停止(Suspend)」状態があり、VM(仮想マシン)などと同様に、利用していない時間帯に一時停止することで、コストを最適化できます。

今回は、このFabric容量を毎日決まった時間に自動で一時停止する仕組みを、Azure Automation Runbookを使って構築する方法をご紹介します。

Microsoft公式ガイドについて

Microsoftの公式ドキュメントにも、Fabric容量の一時停止・再開の自動化に関する記述があります。

Azure Runbookを使用すると、一時停止操作と再開操作をスケジュールできます。

出典: Fabric 容量の一時停止と再開 - Microsoft Fabric | Microsoft Learn

具体的な手順は、以下のRunbookギャラリーに関するドキュメントで解説されています。

Azure Automation Runbook ギャラリー | Microsoft Learn

ただし、ドキュメント内のスクリーンショットや説明が現在のAzure PortalのUIと若干異なる部分があるため、本記事では最新のUI(2025年3月現在)に基づいた具体的な手順を解説します。

手順1: Automationアカウントの作成と権限付与

まず、Runbookを実行するためのAutomationアカウントを作成し、Fabric容量を操作するための権限を付与します。

  1. Azureポータル (https://portal.azure.com) にサインインし、上部の検索バーで「Automation アカウント」を検索し、サービスを開きます。
  2. + 作成」ボタンをクリックし、画面の指示に従って新しいAutomationアカウントを作成します。(サブスクリプション、リソースグループ、名前、地域などを選択・入力)
  3. 作成したAutomationアカウントのページを開き、左側のメニューから「アクセス制御 (IAM)」を選択します。
  4. + 追加」ボタンをクリックし、「ロールの割り当ての追加」を選択します。
  5. ロール」タブで、「共同作成者 (Contributor)」ロールを検索して選択し、「次へ」をクリックします。(※ このロールには、Fabric容量を一時停止・再開する権限が含まれます)
  6. メンバー」タブで「+ メンバーを選択する」をクリックします。右側に表示されるパネルで、先ほど作成したAutomationアカウントの名前を検索して選択し、「選択」ボタンをクリックします。
  7. レビューと割り当て」タブで内容を確認し、「レビューと割り当て」ボタンをクリックして、ロールの割り当てを完了します。

手順2: Runbookの作成と設定

次に、実際にFabric容量を一時停止する処理(スクリプト)を含むRunbookを作成します。

  1. 作成したAutomationアカウントの左側のメニューから「プロセス オートメーション」セクションにある「Runbook」を選択します。

  2. ギャラリーを参照」をクリックします。

  3. 「ギャラリーの参照」画面の検索ボックスに「fabric」と入力して検索します。

  4. 検索結果から「suspend_or_resume_fabric_capacity_runbook」をクリックし、「インポート」をクリックします。(※環境によっては、クリック後に直接インポート画面に遷移する場合もあります)

  5. インポート設定画面で、Runbookの「名前」を任意に決めます(例: Suspend-FabricCapacity-Daily)。「ランタイム バージョン」が「5.1」であることを確認(またはお使いの環境に応じて選択)し、「インポート」をクリックします。

  6. インポートが完了したら、Runbookの一覧から作成したRunbook(例: Suspend-FabricCapacity-Daily)を選択します。詳細画面が開いたら、「編集」をクリックします。

  7. エディター画面が開きます。PowerShellスクリプトの冒頭部分を以下のように編集します。

    • Param(...) のブロック全体をコメントアウト(各行の先頭に # を追加)します。
    • $ResourceID$operation の行のコメントアウトを解除(行頭の # を削除)し、値を設定します。
    # Paramセクション全体をコメントアウトします。スケジュール実行用に値を直接指定するためです。
    # Param(
    #  [string]$ResourceID, # e.g. "/subscriptions/12345678-1234-1234-1234-123a12b12d1c/resourceGroups/fabric-rg/providers/Microsoft.Fabric/capacities/myf2capacity"
    #  [string]$operation # "suspend" or "resume"
    # )
    
    # 下記2行のコメントアウトを解除し、値を設定します。
    # 一時停止したいFabric容量の「リソースID」に書き換えてください。
    # リソースIDは、Azureポータルで対象のFabric容量リソースを開き、「プロパティ」または「JSONビュー」で確認できます。
    $ResourceID = "/subscriptions/12345678-1234-1234-1234-123a12b12d1c/resourceGroups/fabric-rg/providers/Microsoft.Fabric/capacities/your_fabric_capacity_name"
    
    # 今回は自動で「一時停止」させたいので、"suspend" を指定します。
    $operation = "suspend"
    # 再開させたい場合は、$operation = "resume" を使用します。
    #$operation = "resume"
    
    ### 以降のスクリプトは変更不要 ###
    
  8. 編集後、エディター画面上部の「保存」をクリックし、続いて「発行」をクリックします。「はい」を選択して発行を確定します。(※ 発行しないとスケジュール実行できませんので注意してください)

  9. (任意)実行確認: Runbookの詳細画面に戻り、「開始」ボタンをクリックして手動で実行テストができます。「はい」をクリックして開始します。しばらくすると、ジョブの状態が「実行中」から「完了」または「失敗」に変わります。Azureポータルで対象のFabric容量の状態が「一時停止」になっていれば成功です。

    • (注意: 既に一時停止状態の容量に対して実行した場合、ジョブは失敗し「BadRequest」のようなエラーが出ることがありますが、これは期待される動作であり、容量の状態には影響ありません。)

手順3: スケジュールの設定

Runbookが正しく動作することを確認したら、定期的に実行するためのスケジュールを設定します。

  1. Runbookの詳細画面で、「リソース」セクションにある「スケジュール」を選択(もしくは画面上部の「スケジュールにリンク」をクリック)します。
  2. スケジュールの追加」をクリックします。
  3. 「スケジュールのRunbookへのリンク」画面が開きます。「スケジュール」の項目で「+ スケジュールを追加する」を選択します。
  4. 右側に「スケジュールの追加」パネルが表示されます。以下の項目を設定し、「作成」をクリックします。
    • 名前: スケジュールを識別する名前(例: DailySuspend-2300
    • 説明: (任意)
    • 開始: スケジュールを開始する日時
    • タイム ゾーン: 実行時刻の基準となるタイムゾーン(例: (UTC+09:00) 大阪、札幌、東京
    • 繰り返し: 「繰り返し」を選択
    • 繰り返し間隔: 「1
    • 繰り返し単位: 「」を選択(毎日実行する場合)
    • 有効期限を設定: 必要に応じて設定(無期限も可)
  5. 元の「スケジュールのRunbookへのリンク」画面に戻ったら、「パラメーターと実行設定を構成します」をクリックします。今回はスクリプト内に値を直接記述したため、特に設定は不要です。内容を確認し、「OK」をクリックしてスケジュール設定を完了します。

手順4: スケジュール実行の確認

設定したスケジュールどおりにRunbookが実行されているかを確認します。

  1. スケジュールされた時刻になったら、再度Automationアカウントの該当Runbookを開きます。
  2. Runbookの詳細画面で、「リソース」セクションの「ジョブ」タブを選択します。
  3. スケジュールされた時刻にジョブが開始され、状態が「完了」になっていれば、自動一時停止が成功しています。エラーが発生している場合は、ジョブの詳細を確認して原因を調査してください。

まとめ

以上、Azure Automation Runbookを使用してMicrosoft Fabric容量を自動で一時停止する設定方法を解説しました。

スクリプト ($operation = "resume") とスケジュール設定を変更すれば、自動で再開する仕組みも同様に作成できます。例えば、毎日23時に一時停止し、翌朝8時に再開するといった運用を組むことで、Fabric容量の利用料金をより効率的に管理できます。ぜひ、ご自身の環境に合わせて活用してみてください。

  • Azure は、マイクロソフト 企業グループの商標です。
  • その他、本資料に記載されている会社名、製品名は、各社の登録商標または商標です。
4
3
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?