Azure PowerShell がタスクに合っているかどうかを判断する

完了

顧客関係管理 (CRM) システムのテストに使用する Azure リソースの管理ツールを選択する必要があるとします。 テストでは、リソース グループの作成と仮想マシン (VM) のプロビジョニングが必要です。

管理者が簡単に習得できて、複数の仮想マシンのインストールと設定を自動化できるか、完全なアプリケーション環境をスクリプト化できる強力な機能があるツールを探しています。 利用できるツールは複数あります。お客様のスタッフとタスクに最適なツールを見つける必要があります。

使用できるツール

Azure には、次の 3 つの管理ツールがあります。

  • Azure portal
  • Azure CLI
  • Azure PowerShell

いずれも管理できる機能はほぼ同じです。あるツールで実行できるタスクは、他の 2 つのツールでも同様に実行できます。 3 つのツールはすべてクロスプラットフォームであり、Windows、macOS、および Linux 上で動作します。 構文、設定要件、および自動化をサポートするかどうかは異なります。

ここでは、3 つの選択肢についてそれぞれ説明し、その中からどのように選択するかについてガイダンスをいくつか示します。

Azure portal とは

Azure portal は、Azure サブスクリプションのリソースを作成、構成、変更することができる Web サイトです。 ポータルはグラフィカル ユーザー インターフェイス (GUI) であり、必要なリソースを検索したり、必要な変更を実行したりする場合に便利です。 また、ウィザードやツールヒントが用意されているので、複雑な管理タスクにも対応できます。

ポータルには、反復的なタスクを自動化する方法は用意されていません。 たとえば、15 個の VM を設定するには、個々の VM についてウィザードを完了して 1 つずつ VM を作成する必要があります。 複雑なタスクの場合、この処理には時間がかかり、誤りが発生しやすくなります。

Azure CLI とは

Azure CLI は、Azure に接続して Azure リソース上で管理コマンドを実行することができるクロスプラットフォームのコマンドライン プログラムです。 たとえば、VM を作成するには、次のようなコマンドを使用します。

az vm create \
  --resource-group CrmTestingResourceGroup \
  --name CrmUnitTests \
  --image UbuntuLTS
  ...

Azure CLI を使用するには、Azure Cloud Shell 経由のブラウザー内、または Linux、Mac、または Windows 上のローカル インストールという 2 つの方法があります。 いずれの場合も、対話形式またはスクリプト形式で使用できます。 対話形式で使用するには、まずシェル (Windows 上では cmd.exe、Linux または macOS 上では Bash) を起動し、シェルのプロンプトでコマンドを発行します。 反復的なタスクを自動化するには、選択したシェルのスクリプト構文を使用して、複数のコマンドを 1 つのシェル スクリプトにまとめて、スクリプトを実行します。

Azure PowerShell とは

Azure PowerShell は、PowerShell に追加し、Azure サブスクリプションに接続してリソースを管理することができるモジュールです。 Azure PowerShell を使用するには、PowerShell が機能している必要があります。 PowerShell は、シェル ウィンドウ、コマンド解析などのサービスを提供します。 Azure Az PowerShell モジュールで、Azure 固有のコマンドが追加されます。

たとえば Azure PowerShell には、Azure サブスクリプション内に仮想マシンを作成する New-AzVM コマンドがあります。 使用するには、PowerShell アプリケーションを起動し、次のようなコマンドを発行します。

New-AzVm `
    -ResourceGroupName "CrmTestingResourceGroup" `
    -Name "CrmUnitTests" `
    -Image "UbuntuLTS"
    ...

Azure PowerShell を使用する場合も、Azure Cloud Shell 経由のブラウザー内、または Linux、Mac、または Windows 上のローカル インストールという 2 つの方法があります。 いずれの場合も、2 つのモードから選択できます。 対話モードでは、一度に 1 つのコマンドを手動で発行します。スクリプト モードでは、複数のコマンドで構成される 1 つのスクリプトを実行できます。

管理ツールを選択する方法

管理できる Azure オブジェクトと作成できる構成の点で、ポータル、Azure CLI、Azure PowerShell はほぼ同等です。 また、いずれもクロスプラットフォームです。 そのため、選択する場合は、通常、他のいくつかの要素を考慮することになります。

  • 自動化:一連の複雑なタスクまたは反復的なタスクを自動化する必要はありますか。 Azure PowerShell と Azure CLI ではサポートしていますが、ポータルではサポートしていません。

  • 学習曲線:新しいコマンドや構文を習得することなく、すぐにタスクを完了する必要がありますか。 Azure portal では、構文を習得したり、コマンドを記憶したりする必要はありません。 Azure PowerShell と Azure CLI では、使用する各コマンドの詳細な構文を把握する必要があります。

  • チームのスキルセット:チームには既存の専門知識がありますか。 たとえば、チームが PowerShell を使用して Windows を管理したことがあるとします。 このような場合は、Azure PowerShell の使用にもすぐになじむでしょう。

ご利用の CRM アプリケーションのテスト環境を作成するために、管理ツールを選択していることを思い出してください。 管理者には、実行する必要がある Azure のタスクが 2 つあります。

  1. テストのカテゴリ (ユニット テスト、統合テスト、および受け入れテスト) ごとに 1 つのリソース グループを作成します。
  2. 各テスト ラウンドの前に、個々のリソース グループに複数の VM を作成します。

リソース グループを作成するには、Azure portal が適しています。 1 回限りのタスクなので、スクリプトを実行する必要はありません。

VM の作成に最適なツールを見つけることは、より難しい判断になります。 リソース グループをいくつか作成する必要があります。また、毎週複数回など、繰り返し作成する必要があります。 つまり、自動化が必要なので、Azure portal は適していません。 この場合、Azure PowerShell または Azure CLI のいずれかがニーズに合っています。 チーム メンバーに PowerShell の知識が既にある場合は、おそらく Azure PowerShell が最適です。 Azure PowerShell は、管理チームが使用するオペレーティング システム上で使用可能で自動化をサポートしています。また、チームはすぐに習得できるはずです。

多くの管理者は Azure portal で Azure の機能を初めて使用します。 きれいで整理されたグラフィカル インターフェイスが用意されているため、初めての場合には最適ですが、自動化のオプションは限られています。 自動化が必要な場合、Azure には 2 つの選択肢があります。PowerShell の経験がある管理者向けの Azure PowerShell と、その他のユーザー向けの Azure CLI です。

通常、実際の業務では、1 回限りのタスクと反復的なタスクが混在しています。 つまり、ポータルとスクリプト ソリューションの両方を使用するのが一般的です。 この CRM の例では、ポータルを使用してリソース グループを作成し、PowerShell を使用して VM の作成を自動化する方法が適切です。

このモジュールの残りの部分では、Azure PowerShell のインストールと使用を中心に説明します。