【初心者向け】Azure Automation アカウント をざっくり理解する
この記事の内容
- Azure Automationは、PowerShellやPythonスクリプトをクラウド上で定期実行・自動化できるMicrosoftのサービスです
- VMのcronやタスクスケジューラと異なり、基盤管理をMicrosoftに任せられるため運用コストを削減できます
- Azure Functionsとの違いや使い分け基準についても解説します
- オートメーションアカウント・ランタイム環境・ランブックという基本構成を理解できます
- ハイブリッドワーカーを使えばオンプレミス環境にも自動化処理を適用できます
Azure Automationとは?
Azure Automationは、Microsoftが提供するクラウドベースの自動化サービスです。仮想マシン(VM)やその他のAzureリソースに対して、PowerShellスクリプトやPythonスクリプトを登録・実行し、さまざまな運用作業を自動化できます。
たとえば「1日に1回定期的に処理を流す」「月に1回Windows Updateを自動適用する」など、繰り返し発生する作業の自動化に威力を発揮します。また、HTTPやHTTPS経由で外部から処理をトリガーする「Webフック」機能も利用できます。
仮想マシン内での自動化との違い
仮想マシン上で「cron」や「タスクスケジューラ」を使って定期実行する方法もありますが、その場合はVM自体を常に起動しておく必要があり、運用コストやメンテナンスの手間がかかります。
Azure Automationを利用すれば、基盤のメンテナンスやOSアップデートの管理などをMicrosoftに任せ、必要なスクリプトだけを動かすことができます。「インフラのことは気にせず、運用自動化の作業だけに集中したい」という場合に最適です。
Azure Functionsとの使い分け
同じくスクリプトやプログラムをクラウド上で実行できる「Azure Functions」というサービスもあります。両者の主な違いは以下の通りです。
Azure Functions
- イベント駆動型で、開発者向けのサービスです
- 「Blob Storageにファイルができたとき」などのイベント発生時にスケーラブルに処理を実行したい場合に向いています
- 大量並列処理やイベントトリガー型の用途が得意です
Azure Automation
- 運用管理者向けのサービスです
- 定期的または不定期に、決まった運用タスク(バックアップ、アップデート等)を自動化し、基盤管理を省力化したい場合に向いています
- 「ハイブリッドワーカー」と呼ばれる仕組みを使えば、Azure上だけでなくオンプレミス環境のVMにも自動化処理を実行できます
Azure Automationの基本構成
Azure Automationを利用するにあたり、以下の3つの要素を理解しておく必要があります。
1. オートメーションアカウント
まず「オートメーションアカウント」を作成します。これは自動化リソースを管理するための単位で、IDや権限(ロール)を紐付けます。
2. ランブック
ランブックとは、実際に実行するスクリプト(PowerShellやPython等)のことです。オートメーションアカウント内でランブックを新規作成し、必要な自動化処理を記述します。
3. ランタイム環境
以前はオートメーションアカウント上の標準環境でスクリプトを実行していましたが、現在は「ランタイム環境」として、より柔軟な実行環境(裏側はコンテナ技術を利用していると考えられます)を構成できます。ランタイム環境ごとに、使用する言語やバージョン、追加パッケージを設定可能です。
また、スクリプトで使うPowerShellのモジュールやPythonパッケージを、オートメーションアカウントやランタイム環境単位で追加・管理することもできます。
実際にAzure Automationを使ってみる
オートメーションアカウントの作成手順
- Azureポータルで「オートメーションアカウント」を新規作成します
- サブスクリプションやリソースグループは任意で選択
- アカウント名を指定(重複不可)
- リージョンを選択
- マネージドIDを設定します
- 自動化スクリプトからAzureリソースにアクセスする場合は、マネージドID(システム割当てまたはユーザー割当て)を作成します
- 権限管理・ロール割り当てもここで設定します
- ネットワーク設定を行います
- パブリックアクセス、プライベートアクセス、プライベートエンドポイントから選択します
- タグを付与し、確認・作成します
- デプロイ完了後、アカウントへ移動します
ランタイム環境の構成
ランタイム環境の名前、使用言語(例:PowerShell 5.1)、バージョンを選択し、必要なパッケージやモジュールを追加します。
ランブックの作成と実行
- ランブックの種類を選択します(PowerShell、Python、グラフィカルパワーシェル等)
- コードを記述し、必要に応じてテストウィンドウで動作確認します
- 実行方法は手動実行・スケジュール実行・Webフックでのトリガーなど多様な方法から選べます
グラフィカルランブックとは?
グラフィカルランブックは、処理の流れを箱(ノード)と矢印(フロー)で視覚的に構成できるランブックの種類です。ローコード的な編集が可能で、各処理をドラッグ&ドロップで繋ぎながら自動化フローを設計できます。
コードで書く方法と比べると好みが分かれますが、ビジュアルで処理の流れを把握したい方には便利な機能です。
権限設定と実行時の注意点
Azure Automationを使う上で、権限まわりの設定には注意が必要です。
- オートメーションアカウントがAzureリソースへアクセスするには、適切なロール(例:共同作成者)を割り当てる必要があります
- サブスクリプションが複数ある場合は、スクリプト内で
Set-AzContextなどを使って対象サブスクリプションを明示的に指定すると、リソース取得などの操作が確実に動作します
# 対象サブスクリプションを明示的に指定する例
Set-AzContext -SubscriptionId "your-subscription-id"
権限やサブスクリプションの設定ミスにより、スクリプトが正常に動作しない場合がありますので、設定を確認するようにしてください。
まとめ
Azure Automationは、日々の運用業務を強力に自動化できるサービスです。主なポイントを振り返ります。
- VMのcron・タスクスケジューラと異なり、基盤管理をMicrosoftに任せられるため運用コストを削減できます
- Azure Functionsとの違いとして、Azure Automationは運用管理者向けで定期的な運用タスクの自動化に向いています
- ハイブリッドワーカーを活用すれば、オンプレミス環境にも自動化処理を適用できます
- オートメーションアカウント・ランタイム環境・ランブックの3つが基本構成要素です
「インフラ管理をできるだけ省力化したい」「定期的な作業を自動化したい」という方には特におすすめのサービスです。ぜひ一度試してみて、運用効率化に役立ててみてください。