はじめに
こんにちは、あるいはこんばんは。
この記事をご覧の方は、Microsoft Fabricの利用を検討されている、あるいは既に利用されている方かもしれません。Microsoft Fabricは2023年に一般提供(GA)が開始された、マイクロソフトが提供する統合データ分析プラットフォームです。
Microsoft Fabricを利用する際、Azure上で「Fabric容量(Capacity)」を作成する方法があります。このFabric容量には「再開(Resume)」状態と「一時停止(Suspend)」状態があり、VM(仮想マシン)などと同様に、利用していない時間帯に一時停止することで、コストを最適化できます。
今回は、このFabric容量を毎日決まった時間に自動で一時停止する仕組みを、Azure Automation Runbookを使って構築する方法をご紹介します。
Microsoft公式ガイドについて
Microsoftの公式ドキュメントにも、Fabric容量の一時停止・再開の自動化に関する記述があります。
Azure Runbookを使用すると、一時停止操作と再開操作をスケジュールできます。
具体的な手順は、以下のRunbookギャラリーに関するドキュメントで解説されています。
Azure Automation Runbook ギャラリー | Microsoft Learn
ただし、ドキュメント内のスクリーンショットや説明が現在のAzure PortalのUIと若干異なる部分があるため、本記事では最新のUI(2025年3月現在)に基づいた具体的な手順を解説します。
手順1: Automationアカウントの作成と権限付与
まず、Runbookを実行するためのAutomationアカウントを作成し、Fabric容量を操作するための権限を付与します。
- Azureポータル (https://portal.azure.com) にサインインし、上部の検索バーで「Automation アカウント」を検索し、サービスを開きます。
- 「+ 作成」ボタンをクリックし、画面の指示に従って新しいAutomationアカウントを作成します。(サブスクリプション、リソースグループ、名前、地域などを選択・入力)
- 作成したAutomationアカウントのページを開き、左側のメニューから「アクセス制御 (IAM)」を選択します。
- 「+ 追加」ボタンをクリックし、「ロールの割り当ての追加」を選択します。
- 「ロール」タブで、「共同作成者 (Contributor)」ロールを検索して選択し、「次へ」をクリックします。(※ このロールには、Fabric容量を一時停止・再開する権限が含まれます)
- 「メンバー」タブで「+ メンバーを選択する」をクリックします。右側に表示されるパネルで、先ほど作成したAutomationアカウントの名前を検索して選択し、「選択」ボタンをクリックします。
- 「レビューと割り当て」タブで内容を確認し、「レビューと割り当て」ボタンをクリックして、ロールの割り当てを完了します。
手順2: Runbookの作成と設定
次に、実際にFabric容量を一時停止する処理(スクリプト)を含むRunbookを作成します。
-
作成したAutomationアカウントの左側のメニューから「プロセス オートメーション」セクションにある「Runbook」を選択します。
-
「ギャラリーを参照」をクリックします。
-
「ギャラリーの参照」画面の検索ボックスに「fabric」と入力して検索します。
-
検索結果から「suspend_or_resume_fabric_capacity_runbook」をクリックし、「インポート」をクリックします。(※環境によっては、クリック後に直接インポート画面に遷移する場合もあります)
-
インポート設定画面で、Runbookの「名前」を任意に決めます(例:
Suspend-FabricCapacity-Daily
)。「ランタイム バージョン」が「5.1」であることを確認(またはお使いの環境に応じて選択)し、「インポート」をクリックします。 -
インポートが完了したら、Runbookの一覧から作成したRunbook(例:
Suspend-FabricCapacity-Daily
)を選択します。詳細画面が開いたら、「編集」をクリックします。 -
エディター画面が開きます。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" ### 以降のスクリプトは変更不要 ###
-
-
編集後、エディター画面上部の「保存」をクリックし、続いて「発行」をクリックします。「はい」を選択して発行を確定します。(※ 発行しないとスケジュール実行できませんので注意してください)
-
(任意)実行確認: Runbookの詳細画面に戻り、「開始」ボタンをクリックして手動で実行テストができます。「はい」をクリックして開始します。しばらくすると、ジョブの状態が「実行中」から「完了」または「失敗」に変わります。Azureポータルで対象のFabric容量の状態が「一時停止」になっていれば成功です。
- (注意: 既に一時停止状態の容量に対して実行した場合、ジョブは失敗し「BadRequest」のようなエラーが出ることがありますが、これは期待される動作であり、容量の状態には影響ありません。)
手順3: スケジュールの設定
Runbookが正しく動作することを確認したら、定期的に実行するためのスケジュールを設定します。
- Runbookの詳細画面で、「リソース」セクションにある「スケジュール」を選択(もしくは画面上部の「スケジュールにリンク」をクリック)します。
- 「スケジュールの追加」をクリックします。
- 「スケジュールのRunbookへのリンク」画面が開きます。「スケジュール」の項目で「+ スケジュールを追加する」を選択します。
- 右側に「スケジュールの追加」パネルが表示されます。以下の項目を設定し、「作成」をクリックします。
-
名前: スケジュールを識別する名前(例:
DailySuspend-2300
) - 説明: (任意)
- 開始: スケジュールを開始する日時
-
タイム ゾーン: 実行時刻の基準となるタイムゾーン(例:
(UTC+09:00) 大阪、札幌、東京
) - 繰り返し: 「繰り返し」を選択
- 繰り返し間隔: 「1」
- 繰り返し単位: 「日」を選択(毎日実行する場合)
- 有効期限を設定: 必要に応じて設定(無期限も可)
-
名前: スケジュールを識別する名前(例:
- 元の「スケジュールのRunbookへのリンク」画面に戻ったら、「パラメーターと実行設定を構成します」をクリックします。今回はスクリプト内に値を直接記述したため、特に設定は不要です。内容を確認し、「OK」をクリックしてスケジュール設定を完了します。
手順4: スケジュール実行の確認
設定したスケジュールどおりにRunbookが実行されているかを確認します。
- スケジュールされた時刻になったら、再度Automationアカウントの該当Runbookを開きます。
- Runbookの詳細画面で、「リソース」セクションの「ジョブ」タブを選択します。
- スケジュールされた時刻にジョブが開始され、状態が「完了」になっていれば、自動一時停止が成功しています。エラーが発生している場合は、ジョブの詳細を確認して原因を調査してください。
まとめ
以上、Azure Automation Runbookを使用してMicrosoft Fabric容量を自動で一時停止する設定方法を解説しました。
スクリプト ($operation = "resume"
) とスケジュール設定を変更すれば、自動で再開する仕組みも同様に作成できます。例えば、毎日23時に一時停止し、翌朝8時に再開するといった運用を組むことで、Fabric容量の利用料金をより効率的に管理できます。ぜひ、ご自身の環境に合わせて活用してみてください。
- Azure は、マイクロソフト 企業グループの商標です。
- その他、本資料に記載されている会社名、製品名は、各社の登録商標または商標です。