Azure PowerShellはクラウド向けの強力なCLI

Azure PowerShellはクラウド向けの強力なCLI

WindowsなどOS(オペレーションシステム)の操作には、アイコンなどで直感的に操作するGUI(Graphical User Interface)と、文字でコマンドを打ち込んで操作するCUI(Character User Interface)があります。一般的なユーザーにとってはGUIが使いやすく馴染みがありますが、プログラミングを使いこなす開発者やエンジニアにとってはCUIの方が使いやすいのではないでしょうか。

Windowsの管理に関しては、マウスを使わずにキーボードによって作業ができるCLI(Command line Interface)として「PowerShell」があります。マイクロソフトが独自に開発したCLIで、Windows Server 2008 R2 / Windows 7 から標準で搭載されるようになりました。

クラウドのAzureで使えるPowerShellがAzure PowerShellです。コマンド(文字による命令)によって細かな設定をしたり、自動化をしたり、効率的な開発のために便利なツールです。ここではCLIの基礎知識、Azure PowerShellの概要、インストール方法などについて解説します。

azure-powershell

CLIとAzure PowerShellの概要

開発者の方であれば基本事項なので、CLIが何か、どんなメリットがあるかについては十分に理解されているでしょう。とりあえず、基礎知識として簡単に整理します。

CLIとPowerShell

Windowsマシンであれば、コマンドプロンプトでも文字でシステムに命令を送ることができます。しかし、PowerShellの最大のメリットは「開発環境を備えている」ことです。つまり複雑な処理については「コマンドレット」を作ることができます。コマンドレットは、操作の指示をまとめたものです。コマンドプロンプトはコマンドを覚える必要がありますが、コマンドレットでは「どのような操作か?」ということが分かりやすく記述できます。よく使われる処理はコマンドレットにして自動化すると効率的です。

Windows環境ではPowerShellが標準装備されています。.NET Frameworkによって構築されているため、開発環境を準備する必要がありません。統合開発環境が整っているとともに文法や用法が統一されているので、わかりやすい自動処理ができます。

Azure PowerShellとは

もともとはWindowsマシンの管理のためのCLIでしたが、その後PowerShell はWindows Server 2008 / Windows 7から標準装備されるようになりました。さらにAzureのために用意されたCLIがAzure PowerShellです。

Azure PowerShellは、Azureのリソースを管理できるように設計されたCLIで、ローカルPCにインストールまたはブラウザで利用できます。

Azure Resource Managerとの関係

Azure のデプロイおよび管理サービスには「Azure Resource Manager(RM)」があります。Azureのリソース作成、管理、削除などには、複数の方法で実行することが可能です。開発者がAzure Portal、Azure Power ShellやAzure CLIなどのSDK、RESTのAPIなどから要求を入力すると、Azure Resource Managerで要求の認証と承認が行われ、さまざまなサービスの管理を実行する仕組みになっています。

Azure Resource Managerは、テンプレートによってインフラストラクチャを管理し、あらゆるリソースをグループでデプロイ、管理、監視します。

Azure cloud Shellの概要と使い方

クラウドだからこそできるシェルによる管理用のCLIが、Azure cloud Shellです。1ユーザーごとに割り当てられた自動的な認証によるブラウザベースのシェルによって、あらゆる場所から利用できます。エクスペリエンスはPowerShellだけでなくBasも選択可能です。編集のためには、オープンソースのMonaco Editorベースによる統合ファイルエディターが用意されています。

Azure cloud Shellは、以下から利用できます。

  • portal.azure.com
  • shell.azure.com
  • Azure CLIドキュメント
  • Azure PowerShellドキュメント
  • Azure Mobile App
  • Visual Studio CodeのAzure Account拡張機能

Azure PowerShellを最も簡単に試す方法は、Azure Cloud Shellを利用することです。 ただし、Azure Cloud ShellはLinux コンテナー上でPowerShell 6を実行するので、Windows独自の機能を利用できません。

また、注意事項としては、ホストとなるマシンは無料でインストールが不要ですが、Azure cloud Shellを使うときには費用がかかります。さらに、操作のない状態で20分が経過するとタイムアウトするなど、いくつかの注意すべきポイントがあります。

Azure Cloud Shellの基本的な使い方の流れ

Azure Cloud Shellの基本的な使い方について、その流れを概略としてまとめると以下のようになります。

  1. Azure Portal上部のナビゲーションから「Cloud Shell」のアイコンをクリックします。
  2. ウィンドウの下の「PowerShell (Windows)」を選択します。
  3. サブスクリプションを選択して「ストレージの作成」を選択します。
  4. 左側のドロップダウンメニューから「PowerShell 」を選択するとAzureドライブになります。
  5. PowerShellコマンドを実行します。以下のような操作が可能です。
  • Azure リソース間を移動する(cd、dir)
  • SSHを使用する
  • 使用可能なコマンドを一覧表示する
  • カスタムモジュールをインストールする
  • Azure Filesを使ってデータを保存する
  • カスタム プロファイルを使う
  • Gitを使う
  • シェルを終了する

詳細については、以下のチュートリアルをご覧ください。

参考:Azure Cloud Shell のPowerShell のクイックスタート

Azure Cloud Shellの価格

Azure Files共有に基づいた料金で、ストレージに格納したデータ量、トランザクションにおける転送量と種類、データ冗長オプションによって料金が変わります。Azure Cloud ShellからAzure File共有のマウントを解除しても、基本リソースは削除されないため継続して課金されることにも注意が必要です。

参考:Cloud Shell の価格

Azure PowerShellをインストールする

続いて、Azure Power Shellのインストールについて解説します。Azure PowerShellを使えば、Azureのリソースをコマンドレットで直接管理できるようになります。ダウンロードの方法は以下のようになります。

Azure PowerShellモジュールは、PowerShellGetを使用してインストールします。Windowsだけでなく、macOSとLinuxプラットフォーム上でも使用可能です。

必要条件の確認

Azure PowerShellをインストールするときには、まずバージョンを確認して、最新バージョンのPowerShell Coreをインストールする必要があります。PowerShell のバージョンを確認するには「$PSVersionTable.PSVersion」のコマンドを実行します。

Windows 10はPowerShell 5.1 が標準でインストールされていますが、必要に応じて更新します。また、.NET Framework 4.7.2 以降がインストールされていることも条件になります。

モジュールのインストール

コマンドラインを使ってインストールします。推奨するインストールは、アクティブユーザー限定です。アクティブユーザー以外のすべてのユーザーに対してインストールする場合は、管理者の権限が必要になります。PowerShellギャラリーは規定ではPowerShellGetの信頼できるリポジトリとして構成されません。そのことが表示されます。

「Are you sure you want to install the modules from 'PSGallery'?」というメッセージが表示されたときに「[Y] Yes」または「[A] Yes to All」を選択するとインストールされます。

なお、Windows 用のPowerShell 5.1では、AzureRMと新しいAzモジュールを同時にインストールできません。AzureRMの使用を継続するためには、PowerShell Core 6.x 以降用のAzモジュールのインストールが必要です。したがって、PowerShell Core 6.x 以降をインストールした後で、PowerShell Coreターミナルでインストールする必要があります。

インストールの詳細については、以下をご覧ください。

参考:Azure PowerShell モジュールのインストール

Azモジュールとは

インストールの注意事項で「Azモジュール」について言及しましたが、Azモジュールは、2018年12月に公開された新しいモジュールです。AzureRMと同等の機能を持ちながら、クロスプラットフォームのサポート、コマンドの短縮化などの改良が加えられています。

Azモジュールによって、コマンドレットとモジュールの設計と名前付けに一貫性をもたせることによって、コマンドレットが覚えやすく用途が明確になりました。コマンドレットは「動詞-Az名詞」を使用するとともに、モジュールの数も整理されました。

既存のAzureRMからAzモジュールにアップグレードするには、AzureRMモジュールをアンインストールした後に、Azモジュールをインストールします。互換モードによって、既存のスクリプトを新しい構文にすることも可能です。

詳細は以下をご覧ください。

参考:新しいAzure PowerShell Az モジュールの概要

まとめ

GUIは直感的に分かりやすい便利なインターフェースですが、アイコンを間違えてドラッグしてゴミ箱に捨ててしまうなど、ヒューマンエラーが起きやすいことが難点です。

Azureは専門的な開発者以外のユーザーも配慮して、視覚的に分かりやすいインターフェースを備えています。さらにCLIに慣れ親しんだ開発者のために、コマンドレットによって自動化できるPowerShellという強力なツールを提供しています。学習のためのトレーニングツールも充実しているので、本格的にAzureを使いこなしたい開発者は、ラーニングのコンテンツを利用するとよいでしょう。

Azure PowerShellはクラウド向けの強力なCLI

関連記事