常に最新のコマンド管理ツールが使える「Azure Cloud Shell」がPowerShellに対応Microsoft Azure最新機能フォローアップ(42)

米国オーランドで開催された「Microsoft Ignite 2017」では、Microsoft Azureに関するさまざまな発表が行われました。その中から、手軽に利用できる「Azure Cloud Shell」(プレビュー)の最新情報をお届けします。Azure Cloud Shellでは、これまでのBashに加えて、Windows PowerShellのシェル環境が利用可能になりました。

» 2017年09月28日 05時00分 公開
[山市良テクニカルライター]
「Microsoft Azure最新機能フォローアップ」のインデックス

連載目次

クラウドからワンクリックで起動できるAzure管理のための最新シェル環境

 Microsoft Azureのサービスやリソースを管理する主な手段としては、「Azureポータル」(https://portal.azure.com/、クラシックポータルはhttps://manage.windowsazure.com/)を使用する方法と、「Azure CLI」や「Azure PowerShell」のコマンドライン管理ツールを使用する方法があります。

 Azureポータルは、サポート対象のWebブラウザ(主要なWebブラウザをサポート)があればどこからでも利用できます。一方、コマンドライン管理ツールは、管理元の端末(Windows、Linux、Mac)にAzure CLIやAzure PowerShellをインストールして準備する必要があります。また、これらのツールは頻繁に更新されるため、最新の状態に維持するのも一苦労です(画面1)。

画面1 画面1 Azure CLIやAzure PowerShellをローカルコンピュータにセットアップした場合は、頻繁な更新に追い付いていくのが大変

 「Azure Cloud Shell」は、2017年5月に開催された開発者向けのイベント「Microsoft Build 2017」で発表され、同時にAzure CLIが組み込み済みの「Bash」のシェル環境のプレビュー提供が開始されました(画面2)。

画面2 画面2 Bash版Azure Cloud Shellは、Linux(Ubuntu 16.04 LTS)ベースのBash環境に、Azure CLI 2.0を組み込んだAzureのコマンドライン管理環境

 Azure Cloud Shellは、Azureポータルの上部のナビゲーションバーにある「Cloud Shell」アイコンをクリックするだけで利用できます。初回起動時にはストレージの作成が要求されますが、2回目以降の起動はワンクリックで素早く開始できます。

 先にパブリックプレビュー提供が始まったBash版は、Linux(Ubuntu 16.04 LTS)ベースのBashシェル環境で、ほぼ最新バージョンのAzure CLI 2.0が最初から組み込まれています。

 2017年9月26日からパブリックプレビュー提供が始まったPowerShell版は、Windows Server 2016ベースのWindows PowerShell 5.1のシェル環境に、ほぼ最新バージョンのAzure PowerShellのモジュールが最初から組み込まれています。

 Microsoft Ignite 2017に合わせてAzure PowerShellバージョン4.4.0がリリースされていますが、2017年9月26日のPowerShell版Azure Cloud Shellには、1つ前のバージョン4.3.1がインストールされていました(画面3)。

画面3 画面3 PowerShell版Azure Cloud Shellは、Windows Server 2016ベースで、Windows PowerShell 5.1(OS標準)とAzure PowerShell 4.3.1(プレビュー開始時点)が最初から利用可能

 Bash版とPowerShell版はドロップダウンメニューから簡単に切り替えることが可能で、最後に使用していた方が、次回起動時の既定のシェル環境になります(画面4)。

画面4 画面4 Azure Cloud Shellのシェルの切り替え

 その他、Azure Cloud Shellの使用方法については、以下の公式ドキュメントを参照してください。なお、現時点では日本語ページ(「en-us」の部分を「ja-jp」に置き換えたURL)には、PowerShell版の情報は含まれていません。

 Azure Cloud Shellの各セッションは、Azureポータルへのサインインに使用した資格情報を基に、シェル開始時に自動的に認証されます。そのため、Azure CLIの「az login」や、Azure PowerShellの「Login-AzureRmAccount」を実行することなく、すぐにAzure上のリソースを管理することができます。

 ただし、Azure PowerShellで別のサブスクリプションに接続する場合は、注意が必要です。ローカルのWindows環境で「Login-AzureRmAccount」を実行すると、認証画面がポップアップ表示され、必要に応じてIDの種類の選択(職場か個人か)や多要素認証の処理などが行われます。Cloud Shellは、完全にCUI(キャラクタユーザーインタフェース)のみの環境であり、この処理は機能しません。Azure PowerShellの以下のドキュメントやAzureテクニカルサポートチームのブログで説明されているサービスプリンシパルを使用したログイン方法は利用可能です(画面5)。

画面5 画面5 PowerShell版のAzure Cloud Shellから「Login-AzureRmAccount」で別のサブスクリプションに接続する場合は少し面倒

Azure Cloud Shellのシェル環境は、技術的にはDockerコンテナ

 Azure Cloud Shellのシェル環境およびツールのバージョンは、Microsoftが保守、更新するため、利用者は常に動作確認された最新環境をワンクリックで素早く実行できます。

 これを可能にしているのが、“Dockerベースのコンテナ技術”です。Bash版のAzure Cloud Shellは、Linuxベースのコンテナ環境でホストされたものです。そして、PowerShell版のAzure Cloud Shellは、筆者が確認した限り、Windows Server 2016のコンテナ環境でWindows Serverコンテナとしてホストされている、Windows Server 2016 Server Coreベース(microsoft/windowsservercore)のWindowsコンテナです。コンテナ技術であるため、常に更新された環境を素早く起動できるのです。

 一方で、開始したセッションはそのときだけのもので(一定時間内であれば同じセッションに再接続可能)、次回開始時にはデータは失われます。データの永続性については、「Azure File Storage」のSMB(Server Message Block)ファイル共有などを利用して補完することができます。

 Azure Cloud ShellがDockerコンテナであることは、公式な情報としては明らかにされていないかもしれません。Dockerコンテナであることや、PowerShell版がWindows Serverコンテナであると筆者が考えている理由については、筆者の個人ブログをご覧ください。

 Microsoft Azureは、LinuxコンテナやWindowsコンテナのホスティングに対応した「Azure Container Service」(Windowsコンテナはプライベートプレビュー)や、より簡単に利用できる「Azure Container Instances」(パブリックプレビュー、Azure CLIの「az container」から作成、管理可能)のサービスを提供していますが、Azure Cloud Shellは“コンテナを利用したアプリケーションのサービス化”の好例といえるでしょう。

 そして、Azure Cloud Shellでは、コンテナ技術の特徴である“展開の速さ“も体感できます。もっと言えば、Linuxコンテナの速さに、Windowsコンテナがまだまだ追い付いていないという点も体感できるでしょう(プレビューが始まったばかりという点も考慮してあげるべきかもしれません)。その点に関しては、間もなく登場する「Windows Server バージョン1709」やそれ以降のバージョン、Dockerの今後のバージョンで改善され、その差が縮まっていくものと大いに期待しています。

Azureのリソース管理以外にも応用可能

 Azure Cloud Shellは、Azure CLIやAzure PowerShellを使用する以外の目的で利用することもできます。例えば、Bash版は通常のBash環境として、標準のコマンドを利用してSSHクライアントとして使ったり、OpenSSLの鍵を作成したりといった目的で利用できます(以下の筆者の個人ブログはその一例を示しています)。PowerShell版は、通常のWindows PowerShell環境として、PowerShellギャラリーなどからモジュールを追加して拡張できるでしょう。

 Azure Cloud Shellはまだパブリックプレビュー提供の段階ですが、管理のエンドポイントとして利用できる、セッションごとの単なるシェル環境です。Azureを利用しているなら、これを利用しない理由はないでしょう。料金は無料です(Azure File Storageを永続的なデータ保存用に使う場合はその料金が必要)。

筆者紹介

山市 良(やまいち りょう)

岩手県花巻市在住。Microsoft MVP:Cloud and Datacenter Management(Oct 2008 - Sep 2016)。SIer、IT出版社、中堅企業のシステム管理者を経て、フリーのテクニカルライターに。Microsoft製品、テクノロジーを中心に、IT雑誌、Webサイトへの記事の寄稿、ドキュメント作成、事例取材などを手掛ける。個人ブログは『山市良のえぬなんとかわーるど』。


Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。