適切な Azure コマンド ライン ツールを選択する
Azure の管理に関しては、多くのオプションがあります。 この記事では、Azure CLI と Azure PowerShell 言語を比較し、これらが実行されるシェル環境の比較を示します。
Azure CLI、Azure PowerShell、Azure 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 の統合を備えています。
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 では、既定で JSON 文字列が出力されます。 その他の形式オプションについては、「Azure CLI コマンドの出力形式」を参照してください。
- Azure PowerShell では、既定でオブジェクトが出力されます。 PowerShell での書式設定の詳細については、「Format コマンドを使用した出力ビューの変更」を参照してください。
次のステップ
Azure CLI:
Azure PowerShell:
Azure CLI