常に最新のコマンド管理ツールが使える「Azure Cloud Shell」がPowerShellに対応:Microsoft Azure最新機能フォローアップ(42)
米国オーランドで開催された「Microsoft Ignite 2017」では、Microsoft Azureに関するさまざまな発表が行われました。その中から、手軽に利用できる「Azure Cloud Shell」(プレビュー)の最新情報をお届けします。Azure Cloud Shellでは、これまでのBashに加えて、Windows PowerShellのシェル環境が利用可能になりました。
クラウドからワンクリックで起動できる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)。
「Azure Cloud Shell」は、2017年5月に開催された開発者向けのイベント「Microsoft Build 2017」で発表され、同時にAzure CLIが組み込み済みの「Bash」のシェル環境のプレビュー提供が開始されました(画面2)。
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 PowerShell版Azure Cloud Shellは、Windows Server 2016ベースで、Windows PowerShell 5.1(OS標準)とAzure PowerShell 4.3.1(プレビュー開始時点)が最初から利用可能
Bash版とPowerShell版はドロップダウンメニューから簡単に切り替えることが可能で、最後に使用していた方が、次回起動時の既定のシェル環境になります(画面4)。
その他、Azure Cloud Shellの使用方法については、以下の公式ドキュメントを参照してください。なお、現時点では日本語ページ(「en-us」の部分を「ja-jp」に置き換えたURL)には、PowerShell版の情報は含まれていません。
- Overview of Azure Cloud Shell(Preview)[英語](Microsoft Azure)
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)。
- Azure PowerShell > Login > Log in with a service principal[英語](Microsoft Azure)
- Azure PowerShellスクリプトにて認証画面を出さずログインし、実行したい(Japan Azure Technical Support Engineers' Blog)
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コンテナであると筆者が考えている理由については、筆者の個人ブログをご覧ください。
- Azure Cloud Shell PowerShellもPublic Previewに(たぶんこれは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をSSHクライアントとして使う(筆者の個人ブログ:山市良のえぬなんとかわーるど)
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.
関連記事
- Microsoft、「量子コンピュータ」向けプログラミング言語とシミュレーターを公開
Microsoftが法人顧客向け年次イベント「Microsoft Ignite」で多数の新世代技術や新サービスを発表。クラウド、AI、MRといった技術を用いて顧客のビジネスを積極支援していく方針を示し、量子コンピュータ関連の研究開発の取り組みや、法人向けの広範な製品やサービスの新展開も発表した。 - マイクロソフト、Azure CLI 2.0の新しい対話型シェル「Azure CLI Shell」をリリース
マイクロソフトは、「Azure Command Line 2.0」(Azure CLI 2.0)の新しい対話型シェル「Azure CLI Shell」のプレビュー版をリリース。併せて、4つの新たなコマンドモジュールを公開した。 - Microsoft、「Azure Container Instances」を発表 シングルコマンドでコンテナをデプロイ可能、Linuxコンテナ向けのプレビュー版を公開
Microsoftが、新しいコンテナ管理サービス「Azure Container Instances(ACI)」を発表。Linuxコンテナ向けのパブリックプレビュー版を公開した。 - 所要時間わずか10分で「Docker」を体験しよう――Azureで始めるDocker入門
2014年から急速に注目度が増しているコンテナー型仮想化技術「Docker」。すでに多くのLinuxで利用可能な技術ですが、次期Windows Serverでもサポートされる予定です。Dockerとはどのようなものなのか、一度、実際に触って体験してみてはいかがでしょうか。