Azure の Automation サービスを選ぶ

この記事では、Azure 環境で提供されるさまざまな Automation サービスについて説明します。 これらのサービスを使うと、ビジネスと運用のプロセスを自動化し、複数のサービス、システム、プロセス間の統合の問題を解決できます。 Automation サービスでは、入力、アクション、実行されるアクティビティ、条件、エラー処理、出力生成を定義できます。 これらのサービスを使うと、スケジュールに従ってさまざまなアクティビティを実行することや、要求に応じて手動で実行することができます。 各サービスには、独自の利点と対象ユーザーがあります。 これらのサービスを利用することで、手動で行っていた運用タスクを、次のようなタスクに対応するオートメーションの構築へと移行できます。

  • アクションを実行する時間を短縮する
  • アクションを実行する際のリスクを軽減する
  • イノベーションに割く人材を増やす
  • 運用を標準化する

Automation 運用のカテゴリ

Automation は、大きく分けて以下の 3 つの運用で必要です。

  • リソースのデプロイと管理 - オートメーションまたはコード ツールとしてのインフラストラクチャを使ってプログラムで作成および構成し、クラウド リソースの反復可能で一貫したデプロイと管理を実現します。 たとえば、Azure ネットワーク セキュリティ グループ、および Azure Resource Manager テンプレートまたはオートメーション スクリプトを使用して作成されたセキュリティ グループ ルールをデプロイできます。

  • 外部イベントへの応答 - データベースの変更に応答する、Web ページへの入力に従って動作するなど、重要な外部イベントに基づいて問題を診断し、解決することができます。

  • 複雑なオーケストレーション - ファースト パーティまたはサード パーティの製品と統合することで、エンドツーエンドのオートメーション ワークフローを定義できます。

Automation 用 Azure サービス

複数の Azure サービスで前述の要件を満たすことができます。 各サービスには利点と制限があり、複数のサービスを使ってオートメーションの要件を満たすことができます。

リソースのデプロイと管理

  • Azure Resource Manager (ARM) テンプレートと Bicep
  • Azure Blueprint
  • Azure Automation
  • Azure Automanage (マシンの構成と管理のため。)

外部イベントへの応答

  • Azure Functions
  • Azure Automation
  • Azure Policy Guest Config (リソースのコンプライアンス状態に変化があった場合にアクションを実行します。)

複雑なオーケストレーションとファースト パーティまたはサード パーティ製品との統合

  • Azure Logic Apps
  • Azure Functions または Azure Automation (Azure Logic アプリには、Azure Automation や Azure Functions などの他のサービスとの 400 を超えるコネクタがあり、複雑なオートメーション シナリオを満たすために使用できます)。

Screenshot shows an Overview of Automation services.

Automation サービスのデプロイと管理

Azure Resource Manager (ARM) テンプレート

Azure Resource Manager には、Azure リソースのデプロイに使用する反復可能で一貫性のあるテンプレートを開発するための言語が用意されています。 テンプレートは JavaScript Object Notation (JSON) ファイルであり、プロジェクトのインフラストラクチャと構成が定義されています。 これには宣言型の構文が使われており、デプロイしようとしているものを、それを作成する一連のプログラミング コマンドを記述しなくても記述できます。 このテンプレートでは、デプロイするリソースとそれらのリソースのプロパティを指定します。 詳細については、こちらを参照してください

Bicep

ARM テンプレートと同じ機能を提供するが構文がより使いやすい、Bicep という名前の新しい言語が導入されました。 各 Bicep ファイルは、デプロイ中に自動で ARM テンプレートに変換されます。 "コードとしてのインフラストラクチャ" のオプションを検討している場合は、Bicep をお勧めします。 詳細については、「Bicep とは」を参照してください。

次の表で、ARM テンプレートと Bicep のシナリオとユーザーについて説明します。

シナリオ ユーザー
仮想マシン、ネットワーク、ストレージ アカウント、コンテナーなどのインフラストラクチャ リソースを作成、管理、更新します。

アプリのデプロイ、タグの追加、ポリシーの割り当て、ロールベースのアクセス制御をすべてコードとして宣言的に行い、CI\CD ツールと統合します。

運用、非運用、ディザスター リカバリーなど、複数の環境を管理します。

一貫した信頼性の高いリソースを大規模にデプロイします。
初めて Azure を使う、または Azure をプライマリ クラウドとして使うアプリケーション開発者、インフラストラクチャ管理者、DevOps エンジニア。

クラウド インフラストラクチャのデプロイを担当する IT エンジニアまたはクラウド アーキテクト。

Azure Blueprints (プレビュー)

Azure Blueprints (プレビュー) を使って、組織の標準、パターン、要件を実装し、これらに準拠した一連の反復可能な Azure リソースを定義します。 Blueprints は、さまざまなリソース テンプレートや、ロールの割り当て、ポリシーの割り当て、ARM テンプレート、リソース グループなどの成果物のデプロイを調整できる宣言型の方法です。 詳細については、こちらを参照してください

シナリオ ユーザー
デプロイしたインフラストラクチャが組織のコンプライアンス標準に適合するように、インフラストラクチャ リソースを作成、管理、更新します。

Azure のデプロイを監査し、追跡します。
デプロイされた Azure インフラストラクチャが組織のコンプライアンス標準を満たしていることを確認する責任を持つ監査担当者と中央情報技術グループ。

Azure Automation

Azure Automation では、クラウドまたはハイブリッド環境において、グラフィカル、PowerShell、および Python Runbook を使って、反復的なプロセスを調整します。 複雑なジョブのオーケストレーションを可能にする、変数、接続、オブジェクトなどの永続的な共有資産が用意されています。 詳細については、こちらを参照してください

PowerShell ギャラリーには 3,000 を超えるモジュールがあり、PowerShell コミュニティは成長し続けています。 PowerShell モジュールに基づく Azure Automation は、ファースト パーティとサード パーティの両方で、複数のアプリケーションおよびベンダーと連携できます。 統合、拡張性、自動化のタスク用に PowerShell モジュールをリリースするアプリケーション ベンダーが増えるにつれて、既存の PowerShell スクリプトをそのまま使用して、変更を加えずに Automation アカウントで PowerShell Runbook として実行できます。

シナリオ ユーザー
Automation では、Azure Resource Manager テンプレートを使用して Azure リソースをデプロイする Automation PowerShell Runbook を記述できます。

タスクをスケジュールします。たとえば、夜間に dev/test VM またはサービスを停止し、日中に有効にするなどです。

システム アラート、サービス アラート、高 CPU/メモリ アラートなどのアラートへの応答、ServiceNow のチケット作成など。

SQL Server や Active Directory など、オンプレミス サーバーの自動化を管理できるハイブリッド オートメーション。

Azure リソースのライフサイクル管理とガバナンスには、リソースのプロビジョニング、プロビジョニング解除、正しいタグ、ロック、NSG の追加などが含まれます。
PowerShell や Python ベースのスクリプトの使用に熟練している IT 管理者、システム管理者、IT 運用管理者。

インフラストラクチャ管理者は、スクリプトを使って、またはオンプレミスで稼働しているサーバー上の月末業務などの長期的なジョブを実行して、オンプレミスのインフラストラクチャを管理します。

Azure Automation ベースのゲスト内管理

構成管理: インベントリを収集し、環境の変更を追跡します。 詳細については、こちらを参照してください。 望ましい状態のマシンを構成して、構成のドリフトを検出し、修正できます。 詳細については、こちらを参照してください

更新プログラム管理: サーバーのコンプライアンスを評価します。また、マシンへの更新のインストールをスケジュールできます。 詳細については、こちらを参照してください

シナリオ ユーザー
マシンへのソフトウェア、サービス、ファイル、レジストリの変更を検出し、アラートを生成し、サーバーにインストールされているすべてのものを監視します。

Azure Update 管理を使って、サーバー上の更新プログラムを評価し、インストールします。

サーバーの望ましい状態を構成し、準拠した状態を維持します。


大規模な規制要件を模索し、望ましい、パッチが適用され、監査されたサーバーの最終状態を確保する中央の IT またはインフラストラクチャ管理者または監査担当者。

Azure Automanage (プレビュー)

反復的な日々の運用タスクを、例外のみの管理モデルに置き換えます。これにより、正常で安定した状態の VM をハンズフリーで管理できるようになります。 詳細については、こちらを参照してください

Linux と Windows のサポート

  • 仮想マシンをインテリジェントにオンボードして、ベスト プラクティスの Azure サービスを選ぶことができます。
  • Azure のベスト プラクティスに沿って各サービスを自動的に構成できます。
  • Dev\Test と運用ワークロードのための VM のベスト プラクティス テンプレートによるベスト プラクティス サービスのカスタマイズをサポートします。
  • ドリフトを監視し、検出されたら修正できます。
  • シンプルなエクスペリエンスを提供します (ポイント、選択、セット、破棄)。
シナリオ ユーザー
Microsoft ベースライン構成ごとにゲスト オペレーティング システムを自動的に構成します。

VM のライフサイクル全体でドリフトを自動的に検出し、修正します。

ハンズフリーのマシン管理を目指します。
IT 管理者、インフラストラクチャ管理者、IT 運用管理者は、Azure とオンプレミス全体でサーバーのワークロードや日々の管理タスク (バックアップ、ディザスター リカバリー、セキュリティ更新プログラムなど) の管理、セキュリティ脅威への対応、その他を担っています。

サーバーを管理したくない、または優先順位の低いタスクに時間を割きたくない開発者。

Automation ワークフローのイベントに応答する

Azure Policy ベースのゲスト構成

Azure Policy ベースのゲスト構成は、Azure Automation State Configuration の次のイテレーションです。 詳細については、こちらを参照してください

インストールされている内容は、以下で確認できます。

  • Azure Automation State Configuration の次のイテレーション。
  • 既知の不適切なアプリ、プロトコル証明書、管理者特権、エージェントの正常性。
  • 顧客が作成したコンテンツ。
シナリオ ユーザー
コンプライアンス データを取得します。たとえば、オペレーティング システムの構成 (ファイル、レジストリ、サービス)、アプリケーションの構成または存在、環境設定のチェックなどです。

スコープ内のすべてのマシン (セット) に対して、既存のマシンには事後対応的に、新しいマシンにはデプロイ時に事前対応的に、設定を監査またはデプロイします。

ポリシー イベントに応答し、オンデマンドまたは継続的な修復を提供します。
中央の IT、インフラストラクチャ管理者、監査担当者 (クラウド管理者) は、大規模な規制要件に取り組み、サーバーの最終状態が望ましい状態になるようにします。

アプリケーション チームは、変更をリリースする前にコンプライアンスを検証します。

Azure Automation - プロセスのオートメーション

クラウドまたはハイブリッド環境において、グラフィカル、PowerShell、および Python Runbook を使って、反復的なプロセスを調整します。 詳細については、こちらを参照してください

  • 複雑なジョブのオーケストレーションを可能にする、変数、接続、オブジェクトなどの永続的な共有資産が用意されています。
  • Azure Monitor のアラートに基づいて、または Webhook を介して Runbook を呼び出すことができます。
シナリオ ユーザー
Splunk や ServiceNow などのファースト パーティまたはサード パーティの監視ツールからのシステム アラート、サービス アラート、または高 CPU/メモリ アラートに対応し、ServiceNow チケットベースのアラートなどを作成します。

SQL Server や Active Directory などのオンプレミス サーバーの自動化を外部イベントに基づいて管理できるハイブリッド オートメーション シナリオ。

Azure リソースのライフサイクル管理とガバナンス。Azure Monitor アラートに基づくリソースのプロビジョニング、プロビジョニング解除、正しいタグ、ロック、NSG の追加などです。
PowerShell や Python ベースのスクリプトの使用に熟練している IT 管理者、システム管理者、IT 運用管理者。

Azure 関数

さまざまなソース、サードパーティのサービス、およびオンプレミス システムからの重要なイベントに対応するコードを記述できる、自動化用のサーバーレス イベント ドリブン コンピューティング プラットフォームを提供します。 たとえば、基になるプラットフォームを心配することのない HTTP トリガーなどです。 詳細については、こちらを参照してください

  • さまざまな言語を使用して C#、Java、JavaScript、PowerShell、Python など好みの言語で関数を記述でき、特定のコードの部分に集中できます。 Functions ランタイムはオープンソースです。
  • 必要な関数アプリのスケーリング要件、機能、リソースに応じてホスティング プランを選択できます。
  • 永続的な関数によって複雑なワークフローを調整できます。
  • 予期しないタイムアウトの問題を引き起こす可能性がある、サイズが大きく実行時間の長い関数は避ける必要があります。 詳細については、こちらを参照してください
  • Function Apps 内で PowerShell スクリプトを記述する場合は、スクリプトを調整して、関数の動作 (トリガー方法、入力および出力パラメーターなど) を定義する必要があります。 詳細については、こちらを参照してください
シナリオ ユーザー
リソースに対するイベントに応答します。たとえば、リソース グループ ベースのコスト センターへのタグの追加、VM の削除時などです。

特定の時刻に VM を停止および開始するパターンの設定や、一定間隔で BLOB ストレージの内容を読み込むなど、スケジュールされたタスクを設定します。

CPU アクティビティが 90% に急増したときにチームのイベントを送信するように Azure アラートを処理します。

Microsoft 365 などの外部システムに合わせて調整します。

データベースの変更に応答します。
C#、F#、PHP、Java、JavaScript、PowerShell、Python などのコーディング言語に熟練したアプリケーション開発者。

Azure Functions が大規模なアプリケーション ワークフローの一部になる可能性があるサーバーレス アプリケーションを構築するクラウド アーキテクト。

Azure Automation で複雑なジョブを調整する

Azure Logic Apps

Logic Apps は、アプリ、データ、サービス、システムを統合する複雑なオーケストレーション ワークフローを作成および実行するためのプラットフォームです。 詳細については、こちらを参照してください

  • オンプレミス、ハイブリッド、クラウド ネイティブで稼働するファースト パーティとサード パーティのアプリ、サービス、システム間のスマートな統合を構築できます。
  • ワークフローで使う 450 以上の Azure コネクタ エコシステムから、マネージド コネクタを使用できます。
  • エンタープライズ統合と B2B のシナリオに最上級のサポートを実現します。
  • ワークフローを視覚的に作成および編集できる柔軟性 - ロー コードまたはノー コード アプローチ
  • クラウドでのみ動作します。
  • 多数のすぐに使えるアクションとトリガーのコレクションを提供します。
シナリオ ユーザー
Office 365 を使用して、特定のイベントが発生したときのメール通知をスケジュールして送信する。 たとえば、新しいファイルがアップロードされます。

オンプレミス システムとクラウド サービスの垣根を越えて顧客注文をルーティングし、処理します。

アップロードされたファイルを SFTP サーバーまたは FTP サーバーから Azure Storage に移動します。

ツイートを監視したり、そのセンチメントを分析したり、確認が必要な項目についてアラートやタスクを作成したりします。
外部システムまたは API への高度な統合シナリオにロー コードまたはノー コード オプションを使いたいプロフェッショナルのインテグレーターと開発者、IT プロフェッショナル。

Azure Automation - プロセスのオートメーション

クラウドまたはハイブリッド環境において、グラフィカル、PowerShell、および Python Runbook を使って、反復的なプロセスを調整します。 複雑なジョブのオーケストレーションを可能にする、変数、接続、オブジェクトなどの永続的な共有資産が用意されています。 詳細については、こちらを参照してください

シナリオ ユーザー
Azure リソースのライフサイクル管理とガバナンス。たとえば、ITSM アラートからトリガーされる Runbook を介したリソースのプロビジョニング、プロビジョニング解除、正しいタグ、ロック、NSG の追加などです。

ハイブリッド worker をクラウドからオンプレミスへのブリッジとして使い、オンプレミスでのリソースおよびユーザー管理を可能にします。

Automation Runbook を使って複雑なディザスター リカバリー ワークフローを実行します。

Azure Automation Connector を使って、Logic アプリ ワークフローの一環として Automation Runbook を実行します。
PowerShell や Python ベースのスクリプトの使用に熟練している IT 管理者、システム管理者、IT 運用管理者。

インフラストラクチャ管理者は、スクリプトを使って、またはオンプレミスで稼働しているサーバー上の月末業務などの長期的なジョブを実行して、オンプレミスのインフラストラクチャを管理します。

Azure 関数

さまざまなソース、サードパーティのサービス、およびオンプレミス システムからの重要なイベントに対応するコードを記述できる、自動化用のサーバーレス イベント ドリブン コンピューティング プラットフォームを提供します。 たとえば、基になるプラットフォームを心配することのない HTTP トリガーなどです。詳細については、こちらを参照してください

  • さまざまな言語を使用して C#、Java、JavaScript、PowerShell、Python など好みの言語で関数を記述でき、特定のコードの部分に集中できます。 Functions ランタイムはオープンソースです。
  • 必要な関数アプリのスケーリング要件、機能、リソースに応じてホスティング プランを選択できます。
  • 永続的な関数によって複雑なワークフローを調整できます。
  • 予期しないタイムアウトの問題を引き起こす可能性がある、サイズが大きく実行時間の長い関数は避ける必要があります。 詳細については、こちらを参照してください
  • Function Apps 内で PowerShell スクリプトを記述する場合は、スクリプトを調整して、関数の動作 (トリガー方法、入力および出力パラメーターなど) を定義する必要があります。 詳細については、こちらを参照してください
シナリオ ユーザー
リソースに対するイベントに応答します。たとえば、リソース グループ ベースのコスト センターへのタグの追加、VM の削除時などです。

特定の時刻に VM を停止および開始するパターンの設定や、一定間隔で BLOB ストレージの内容を読み込むなど、スケジュールされたタスクを設定します。

CPU アクティビティが 90% に急増したときにチームのイベントを送信するように Azure アラートを処理します。

Microsoft 365 などの外部システムに合わせて調整します。

Logic アプリ ワークフローの一環として、Azure Function Connector を介して Azure Function を実行します。
C#、F#、PHP、Java、JavaScript、PowerShell、Python などのコーディング言語に熟練したアプリケーション開発者。

1 つまたは複数の Azure Functions が大規模なアプリケーション ワークフローの一部になる可能性があるサーバーレス アプリケーションを構築するクラウド アーキテクト。

次の手順