適切な Azure コマンド ライン ツールを選択する

Azure の管理に関しては、多くのオプションがあります。 この記事では、Azure CLI と Azure PowerShell 言語を比較し、これらが実行されるシェル環境の比較を示します。

Azure CLIAzure PowerShellAzure Cloud Shell の機能は重複しています。 それぞれの動作は異なっています。また、言語が環境と混同される場合があります。 このガイドを利用して、最適なツールを判断してください。

Azure コマンド ライン ツールを使用する利点

Azure は自動的に実行されます。 ポータル内で行うすべてのアクションは、いずれかの場所で、リソースの読み取り、作成、変更、または削除を行うために実行されるコードに変換されます。

ワークロードを Azure に移行すると、管理上の負担の一部が軽減されますが、全部ではありません。 Azure での導入率が上がると、オーバーヘッドも増加します。 データ センターについて心配する必要はありませんが、その場合でも Azure VM に対するパッチの適用とトラブルシューティング、データベースのフェールオーバー、仮想ネットワークの構成は行う必要があります。

Azure を実行する既存の自動化を利用すると、コマンドライン ツールによってそのオーバーヘッドが削減されます。

Azure コマンド ライン ツールとは

Azure コマンドライン ツールでは、日常的な操作が自動化され、データベースのフェールオーバーが標準化され、優れた分析情報を提供するデータがプルされます。 コマンドライン ツールを使用すると、Azure のタスクをスケーリングできるだけでなく、共有がはるかに簡単になります。 スクリプトの共有は、時間のかかるスクリーンショットを伴う長い Wiki ページよりはるかに簡単です。

Azure コマンド ライン ツールの使用は常に必要とは限りませんが、持っていると便利なスキルです。

Azure CLI と Azure PowerShell

Azure CLI と Azure PowerShell は、Azure リソースを作成および管理できるようにするコマンドライン ツールです。 どちらもクロスプラットフォームであり、Windows、macOS、Linux にインストールできます。

Azure CLI

  • クロスプラットフォーム コマンドライン インターフェイスであり、Windows、macOS、Linux にインストールできます
  • Windows PowerShell、Cmd、Bash などの Unix シェルで実行されます。

Azure PowerShell

  • クロスプラットフォーム PowerShell モジュールであり、Windows、macOS、Linux で実行されます
  • Windows PowerShell または PowerShell が必要です

さまざまなシェル環境

シェル環境 Azure CLI Azure PowerShell
Cmd (英語の可能性あり) Yes
Bash はい
Windows PowerShell はい はい
PowerShell Yes Yes

Windows PowerShell、PowerShell、Cmd、Bash はシェル環境です。 シェル環境によって、使用できるツールが決まりまるだけでなく、コマンドライン エクスペリエンスも変わります。

たとえば、行連結文字には、Bash ではバックスラッシュ \ が使用されますが、Windows PowerShell ではバックティック ` が使用されます。 シェル環境の違いによって、Azure CLI と Azure PowerShell の動作が変わることはありません。 ただし、コマンドライン エクスペリエンスは変わります。

Azure CLI は、4 つすべてのシェル環境でそのコマンドを実行可能にするインストーラーを備えています。

Azure PowerShell は Az という名前の PowerShell モジュールとしてパッケージ化されたコマンドレットのセットであり、実行可能ファイルではありません。 Az モジュールをインストールするには、Windows PowerShell または PowerShell を使用する必要があります。

Windows PowerShell は、ほとんどの Windows オペレーティング システムにプレインストールされている標準のスクリプト シェルです。PowerShell は、そのランタイムとして .NET Core を使用して、macOS、Linux、Windows にインストールできるようになっている、スタンドアロン インストールです。 PowerShell は、そのランタイムとして .NET Core を使用して、macOS、Linux、Windows にインストールできるようになっている、スタンドアロン インストールです。

重要なポイント:

  • AzureRM は、PowerShell を使用した Azure の管理で引き続き参照されている、PowerShell モジュールです。 ただし、Azure PowerShell に置き換えられていて、2024 年 2 月 29 日が正式な提供終了日になっています。

AzureRM を使用している場合は、AzureRM から Az に Azure PowerShell を移行できます。

Azure Cloud Shell について

Azure Cloud Shell は、Ubuntu コンテナーで実行されるホストされたシェル環境です。

Cloud Shell では、Bash (Azure CLI がプレインストール済み) と PowerShell (Azure PowerShell がプレインストール済み) の 2 つのシェル環境が提供されます。 Cloud Shell ウィンドウの上部にあるドロップダウン リストを使用すると、2 つの環境を簡単に切り替えることができます。

Cloud Shell は Web ブラウザーからアクセスでき、Windows ターミナルVisual Studio Code の統合を備えています。

Azure CloudShell Bash and PowerShell environments

Note

Azure Cloud Shell では、3 つすべてのツールの公開スケジュールが異っているため、最新の Azure PowerShell と Azure CLI リリースが常にすぐに反映されるとは限りません。 ただし、一般に、Azure Cloud Shell には、両方のツールの最新バージョンが常に含まれていると考えられています。

最適な Azure コマンドライン ツール

適切なツールを選定する場合は、過去の経験と現在の作業環境を考慮してください。

Azure CLI の構文は、Bash スクリプトのものに似ています。 主に Linux システムを使用している場合、Azure CLI の方が自然に感じられるでしょう。

Azure PowerShell は PowerShell モジュールです。 主に Windows システムを使用している場合は、Azure PowerShell が自然に適合します。 コマンドは動詞-名詞の名前付けスキームに従っていて、データはオブジェクトとして返されます。

自分の経験を活用できる、学習曲線を短縮するツールを選択してください。 Microsoft ラーニングを活用して、コマンド ラインでの Azure の管理を習得してください。

とはいえ、柔軟な考えを持つことで初めて、自分の能力を向上できます。 妥当であれば、別のツールを使用してください。

重要なポイント:

  • Azure サービスの機能パリティが、Azure CLI と Azure PowerShell の間に常に存在するとは限りません。

Azure CLI と Azure PowerShell: コマンドの横並び比較

サインイン、サブスクリプション、場所のコマンド:

コマンド Azure CLI Azure PowerShell
Web ブラウザーを使用したサインイン az login Connect-AzAccount
利用可能なサブスクリプションの取得 az account list Get-AzSubscription
サブスクリプションの設定 az account set –-subscription <SubscriptionId> Set-AzContext -Subscription <SubscriptionID>
Azure の場所の一覧表示 az account list-locations Get-AzLocation

バージョンの確認、ヘルプの参照、コマンドのヘルプの表示:

コマンド Azure CLI Azure PowerShell
バージョンの確認 az --version Get-InstalledModule -Name Az
ヘルプの参照 az --help Get-Help
コマンドのヘルプの表示 az vm --help Get-Help -Name New-AzVM

リソース グループ、VM、ストレージ アカウントの作成:

コマンド Azure CLI Azure PowerShell
リソース グループの作成 az group create --name <ResourceGroupName> --location eastus New-AzResourceGroup -Name <ResourceGroupName> -Location eastus
Azure 仮想マシンを作成する az vm create --resource-group myResourceGroup --name myVM --image UbuntuLTS --admin-username azureuser --admin-password '<Password>' New-AzVM -ResourceGroupName <ResourceGroupName> -Name myVM -Image UbuntuLTS -Credential (Get-Credential)
Azure ストレージ アカウントを作成する az storage account create --name <StorageAccountName> --resource-group <ResourceGroupName> --location eastus --sku Standard_LRS --kind StorageV2 New-AzStorageAccount -Name <StorageAccountName> -ResourceGroupName <ResourceGroupName> -Location eastus -SkuName Standard_LRS -Kind StorageV2

Azure Virtual Machines の管理:

コマンド Azure CLI Azure PowerShell
VM の一覧表示 az vm list Get-AzVM
VM の再起動 az vm restart --name myVM --resource-group <ResourceGroupName> Restart-AzVM -Name myVM -ResourceGroupName <ResourceGroupName>
VM の停止 az vm stop --name myVM --resource-group <ResourceGroupName> Stop-AzVM -Name myVM -ResourceGroupName <ResourceGroupName>
VM の停止および割り当て解除 az vm deallocate --name myVM --resource-group <ResourceGroupName> Stop-AzVM -Name myVM -ResourceGroupName <ResourceGroupName>
VM の起動 az vm start --name myVM --resource-group <ResourceGroupName> Start-AzVM -Name myVM -ResourceGroupName <ResourceGroupName>
VM を削除する az vm delete --name myVM --resource-group <ResourceGroupName> Remove-AzVM -Name myVM -ResourceGroupName <ResourceGroupName>

プロパティの選択と出力形式の変更:

コマンド Azure CLI Azure PowerShell
すべてのサブスクリプション情報の表示 az account list --all Get-AzSubscription | Select-Object -Property *
テーブルとして出力 az account list -o table Get-AzSubscription | Format-Table
JSON として出力 az account show Get-AzSubscription | ConvertTo-Json

重要なポイント:

次のステップ

Azure CLI:

Azure PowerShell: