フォーム読み込み中
こんにちは。ソフトバンクの木村です。
MSPサービスの運用に関する開発業務を行っており、CI/CDのパイプラインの整備やAzureの各種機能を用いた運用業務の効率化などを担当しています。
クラウド上で発生する定型的な業務を自動化する方法として、Azureではクラウドオートメーションサービスの「Azure Automation」を提供しています。本記事では、「Azure Automation」の基本的な利用方法と注意点について解説します。
「Azure Automation」とは、クラウド上で発生する運用タスクを自動化するクラウドオートメーションサービスです。
「Azure Automation」を利用することで、VMなどのリソースを展開することなく、運用タスクを行うPowerShellスクリプトを動作させることができます。また、認証情報やモジュールの管理機能もあわせて備えています。
また、VMに対する構成管理や更新プログラムの適用、VMの自動開始・停止など、基本的な運用タスクについては、ポータル上からの操作のみで自動化を行うことも可能です。
「Azure Automation」を利用するメリットとしては以下が挙げられます。
一方でデメリットとしては以下が挙げられます。
デメリットはいくつかありますが、実行環境を一から構築して管理するのは面倒だが、常時実行ではない単発のタスクを自動化したい、といった方にお勧めのサービスです。
以下の章から、「Azure Automation」の基本的な利用方法と注意点について解説していきます。
それでは、実際のポータル画面を見ながら「Azure Automation」の利用方法を解説していきます。
まず、「Azure Automation」の各種リソースを管理するオートメーションアカウントを作成します。オートメーションアカウントは以下の手順で作成します。
①Azure Portalにサインインし「リソースの作成」に移動、「管理ツール」の「オートメーション」を選択します。
②次に、オートメーションアカウントに関する情報を入力し、「作成」をクリックします。
「Azure Automation」では、Azureに対する操作を行うために、実行アカウントというAzure操作用のサービスプリンシパルを利用します。オートメーションアカウントと実行アカウントを同時に作成するために、実行アカウントの作成は「はい」を選択します。
③オートメーションアカウントの作成が完了したら、Azure Portalの検索バーに作成したオートメーションアカウントの名前を入力し、オートメーションアカウントのページに移動します。
「Azure Automation」では、PowerShellのモジュールをオートメーションアカウントごとに管理します。作成したオートメーションアカウントでは、あらかじめ標準的なPowerShellのモジュールがすでに導入された状態になっています。必要に応じて、モジュールの追加を行います。
導入されているモジュールの管理は「モジュール」にて実施できます。また、ギャラリーで公開されているモジュールについては、「モジュールギャラリー」にて、ポータルから直接導入することも可能です。
次に、実際に処理を行うPowerShellスクリプトである、ランブックの作成を行います。
① 「Runbook」メニューを選択し、「Runbookの作成」をクリックします。
② ランブックの名前を入力し、「Runbookの種類」はPowerShellを選択し、「作成」をクリックします。
③運用タスクを実際に行う、PowerShellのスクリプトを作成します。作成が完了したら、「保存」をクリックし、スクリプトの内容を保存します。
ここで作成するスクリプトから、Azureリソースに対するアクセスを行うことも可能です。Azureリソースにアクセスする際には、2.1で作成した実行アカウントを利用します。
以下のコードを利用することで、実行アカウントのサービスプリンシパルの情報を取得し、Azureに対して認証を行うことができます。
④次に作成したスクリプトのテストを行います。「テスト ウィンドウ」をクリックすることで、試験を実施します。
パラメータなどを設定し、「開始」をクリックすることでスクリプトが起動し、テストが実行されます。
⑤テストが完了したら、テストのブレードを閉じます。最後に、ランブックの編集ページにて、「公開」をクリックすることで、スクリプトを公式バージョンとして登録します。
次に作成したランブックを実行するための、スケジュールの作成を行います。
① 「スケジュールへのリンク」をクリックし、次に「スケジュール」をクリックします。
②「新しいスケジュールを作成します」を選択し、スケジュールの名前や実行時間などを設定し、「作成」をクリックします。
③ 「パラメータと実行設定」を選択し、ランブックに渡す可変値を入力し、「OK」をクリックします。
④設定が完了したら「OK」を選択し、スケジュールを有効化します。
以上で、「Azure Automation」を利用して、運用タスクを実施するスクリプトの作成から自動化までを実施することができました。今回はポータル画面上から設定を行いましたが、その他のAzureリソースと同様に、「Azure PowerShell」や「ARMテンプレート」を用いて、構築の自動化を行うことも可能です。
この章では、「Azure Automation」を利用する上で注意するべき点について説明していきます。
第2章で解説した通り、「Azure Automation」では、実行アカウントというアカウントを発行してAzureリソースに対する認証を行います。この実行アカウントについて、以下の2点に注意する必要があります。
権限の設定については、該当のサブスクリプションの「アクセス制御 (IAM)」のページから、ロールの割り当てと削除ができます。
証明書の更新は、該当のオートメーションアカウントの「実行アカウント」のメニューから実施できます。
「Azure Automation」では、オートメーションアカウントを作成した段階で、Azureリソースを操作するためのモジュール「Azure PowerShell」が標準で導入されています。
しかし、導入されている「Azure PowerShell」のモジュールは、従来まで利用されていたAzureRMモジュールで、最新機能が導入されているAzモジュールではありません。必要に応じて「モジュールギャラリー」からAzモジュールの追加を行ってください。
「Azure Automation」はその他のAzureリソースと同様に「ARMテンプレート」という機能を利用して、構築するリソースの情報をjson形式で管理し、Infrastructure as Codeを実現できます。
ただし、「Azure Automation」については、以下の2点について「ARMテンプレート」での構築ができません。
これらのリソースについては、「Azure PowerShell」やポータル上での操作などを組み合わせて、構築を実施していく必要があります。
今回、クラウドオートメーション機能「Azure Automation」の利用方法について解説しました。ソフトバンクでは、仮想マシンの自動起動・停止や、月次でのキャパシティレポートの生成などに「Azure Automation」を活用しています。
「Azure Automation」には今回解説したPowerShellスクリプトを動作させる機能のほかにも、運用タスクの自動化に関する機能もありますので、定型的な運用タスクの自動化に「Azure Automation」を利用してみてはいかがでしょうか。
以上、最後までお読みいただきありがとうございました。
Microsoft Azureは、Microsoftが提供するパブリッククラウドプラットフォームです。コンピューティングからデータ保存、アプリケーションなどのリソースを、必要な時に必要な量だけ従量課金で利用することができます。
条件に該当するページがございません