WindowsではGUI(Graphical User Interface)が採用され、デスクトップ上にはアイコンが並び、マウスやタッチパッドなどを使って、メニューから処理を実行できます。視覚的に把握ができ、直感的な操作を可能にすることがGUIの特長です。一方、開発者や技術者にとっては、CLI(Command line interface)のほうが馴染み深いでしょう。文字(キャラクター)でコマンドを入力するスタイルです。
特にサーバーの管理はCLIで行うことが一般的でした。CLIは真っ黒な画面に文字を打ち込んで指示を行うので、GUIのようなはなやかさはありませんが、慣れてしまうと効率的に作業を進められます。同じ作業を繰り返さなくても、一度のコマンドラインによる実行、自動処理が可能です。実はGUIもグラフィックスによるボタンなどの背後では、コマンドラインで処理されています。CUIを使えば、直接コマンドで処理を書き換えられます。
AzureはPaaSとともに仮想マシンを構築するIaaSでもありますが、Azure用のCLIには、Azure コマンド ライン インターフェイス 「Azure CLI」があります。ここではAzure CLIの概要、Azure PowerShellとの違い、主なコマンドについて取り上げます。
Azure CLIとは
ところで、Azureのサービスをコマンドラインのスクリプトで処理するツールには、以下があります。
- Azure CLI
- Azure PowerShell
- AzCopy (Azure Storage用)
- Azureストレージエミュレーター
このうち、AzCopyはストレージアカウントどうしのBLOBまたはファイルのコピーに特化したツールです。Azureストレージエミュレーターは、ローカル環境のストレージでアプリケーションを稼働テストするツールになります。したがって、一般的にはAzure全般のコマンドラインによる管理ツールは、Azure CLIとAzure PowerShellです。
では、Azure CLIとAzure PowerShellはどのように違うのでしょうか。
Azure CLIとAzure PowerShellの違い
Azure CLIを使うと、Azureのさまざまなリソースをコマンドラインで管理できます。特に、仮想マシンの頻繁に行う管理を省力化できることが特長です。Windows、macOS、Linuxのクロスプラットフォームに対応し、コマンドを習得すれば、ブラウザ上のAzure Portalで設定するよりも効率的に処理ができます。
Azure PowerShellの特長としては、機能をまとめた「コマンドレット」によって、既に公開されているコマンドレットを利用したり、カスタマイズしたりすることで、自動処理ができることです。また、Azure Cloud Shellの場合には、Azureポータルから利用できるため、インストールが不要です。
もともとPowerShellはマイクロソフトがWindowsのために開発したCLIでした。したがって、これまでPowerShellを使ってきたWindowsユーザーにとっては、馴染みやすいといえるでしょう。PowerShellは現在ではmacOS、Linuxのクロスプラットフォーム対応を進めていますが、あまりWindowsサーバーに馴染みがないのであれば、macOS、LinuxユーザーにはAzure CLIのほうが向いているかもしれません。
つまり、これまでのサーバー管理などの経歴によって、Windowsサーバー管理がメインであればAzure PowerShell、macOSやLinuxのサーバー管理がメインであればAzure CLIが適しているといえます。とはいえ、Azure CLIも現在はマルチプラットフォームに向かっているため、一概にOSによって分けることはできません。それぞれの開発者や技術者が使いやすいツール、あるいは仕事に必要なコマンドレットや自動処理のコマンドラインが揃っているかによって使い分けるとよいでしょう。
Azureはあらゆる管理担当者や開発者に向けて、自由度の高い柔軟な環境を提供しています。利用する際の環境や機能制限には注意すべきですが、時間があれば両方を試しに使ってみて、フィットしたCLIを選択することがポイントです。
Azure CLIのインストール
Azure CLIを使うためには、インストールが必要です。基本的にWindows環境におけるインストールを解説します。
Azure CLIのインストールには、MSI(Microsoft Installer:拡張子が「.msi」のマイクロソフトのインストーラー)が提供されています。インストーラーをダウンロードして起動します。コンピューターに変更を加えるときの確認メッセージが表示されるので、「はい」をクリックしてインストールします。
以下のページから、Azure CLIのインストーラーがダウンロードできます。
LinuxまたはmacOSでは、インストールの一覧ページから該当するリンク先のドキュメントをご覧ください。
Azure CLIの主なコマンド
実際にAzure CLIを使うにあたって、一般的なコマンドの一部を以下にまとめました。コマンドは「az」から始まり、さまざまなパラメーターを付加して詳細な設定ができます。Azure CLIの動作環境などについては、マイクロソフトのページでご確認ください。また、頻繁に更新されているため、最新のリリースノートを確認することが必要です。
ログイン/ログアウト
ログイン、ログアウトをコマンドで処理できます。Azure CLIを使用するときのログイン、ログアウト、利用中アカウントを確認するためのコマンドです。
az login |
サブスクリプションを持つユーザーのログインに必要なURLとコード文字列を表示します。パラメーターのない状態のコマンドでは、対話型のログインになります。 ユーザー名とパスワードをパラメーターに設定してログインすることも可能ですが、この場合、Microsoftアカウントまたは2要素認証が有効の場合には使うことができません。 |
az logout |
アカウントからログアウトします。Azureサブスクリプションに対するアクセスも削除されます。「--username(ユーザー名)」のパラメーターを設定できますが、該当するアカウントユーザーがみつからない場合は、利用中のアクティブなアカウントからログアウトします。 |
az account show |
現在、ログインしているアカウントのサブスクリプションを表示させ、確認できます。 |
仮想マシン(VM)の管理:Azure Resource Managerのコマンド
仮想マシンの作成から管理をコマンドラインで行えます。以下のコマンドを使うためには、Azure CLIの2.0.4以降のバージョンが必要になります。
■仮想マシンの作成
az vm create |
WindowsまたはLinuxの仮想マシンを作成します。必須パラメーターは「--name -n(仮想マシンの名前)」と「--resource-group -g(リソースグループの名前)」です。 Linuxはディストリビューション(RedHat、Ubuntuなど)を指定することも可能です。プライベートIPアドレス、カスタムイメージからの作成もできます。 |
az group create |
リソースグループを作成します。必須パラメーターは「--properties-p(リソースプロパティを含むJSON形式の文字列)」です。APIアプリやWebアプリのリソースグループを設定できます。 |
■仮想マシンの管理
az vm start |
停止していた仮想マシンを起動します。仮想マシンやリソースグループの名前、サブスクリプションなどをパラメーターで指定できます。 |
az vm stop |
仮想マシンを停止します。シャットダウンせずに実行中の仮想マシンの電源の停止や、リソースグループ内の仮想マシンの電源を停止することも可能です |
az vm deallocate |
仮想マシンの割当を解除します。割当を解除する仮想マシンの名前などを設定できます。 |
az vm restart |
仮想マシンを再起動します。応答しない状態では、強制的に再起動することも可能です。 |
az vm delete |
仮想マシンを削除します。「--yes」のパラメーターを使用すると、確認なしに削除します。 |
■仮想マシンの一覧表示
az vm list |
仮想マシンを一覧表示します。リソースグループごとにすべての仮想マシンの一覧表示と、さらに詳細を表示させるパラメーターがあります。 |
az vm show |
仮想マシンの情報を表示させます。 |
az vm list-usage |
仮想マシンで使用可能なリソースを表示します。必須パラメーターは「--location-l(ロケーション)」です。 |
az vm list-sizes |
使用できる仮想マシンのすべてのサイズを表示します。必須パラメーターは「--location-l(ロケーション)」です。 |
az vm list-vm-resize-options |
仮想マシンでサイズ変更が可能な内容を一覧表示します。 |
この表は、Azure CLIの一部にすぎません。すべてのCLIについては、以下のリファレンスをご覧ください(英語)。
まとめ
Azureには統合されたコンソールとして「Microsoft Azure Portal」があり、このポータルによって仮想マシンの構築からPaaSのあらゆる機能まで簡単に設定ができます。ブラウザ上のウィンドウにしたがって必要な項目を入力していけば、専門的な技術知識がなかったとしても最先端のPaaS環境を整え、利用に合わせてストレージの大きさやスペックなどを変更することが可能です。
しかし、開発や運用にあたって生産性を向上させようとするときには、CLIによるコマンドラインの管理が有効です。プログラム経験のある開発者や技術者であれば、まどろっこしいGUIよりCLIのほうが、ひとつのコマンドラインを記述して実行するだけで迅速かつ正確な処理を行えます。
何度も繰り返される処理がある場合は、CLIで自動処理を行うと、クラウド運用を効率化するとともにコスト削減を実現します。