みなさん元気ですか?元気です。どうも、クラウドアーキテクトのワタナベです。
さて、みなさんは Azure 上に構成した仮想マシンにどのような方法でアクセスしているでしょうか? Windows であれば、NSG で RDP のポートを開放してリモートデスクトップ接続をするのが一般的だろうと思います。
今回は、先般の Ignite 2018 において一般提供が発表された Azure Cloud Shell を利用して、仮想マシンへアクセスする方法をご紹介します。
まず、Azure Cloud Shell とは何でしょう?
みなさんは、Azure Portal の右上に Azure Cloud Shell のアイコンが表示されているのにお気づきになったでしょうか?
これは、ブラウザを使ってアクセスしている Azure Portal から Azure のコマンドライン環境に接続できる機能です。
それでは、Azure Cloud Shell を起動してみます。起動は右上の Azure Cloud Shell のアイコンをクリックするだけです。
※はじめて Azure Cloud Shell を利用する場合、Azure ストレージアカウントを設定する必要があります。画面指示に従い、任意のサブスクリプションにストレージアカウントを作成します。
Azure Cloud Shell の初回実行時には以下のような画面が表示されます。シェルは [Bash] か [PowerShell] が選択可能です。今回は [PowerShell] を選択します。( [Bash] を選んでも後続の対応は同じです)
新しいストレージアカウントを作るためにサブスクリプションを選択する必要があります。任意のサブスクリプションをドロップダウンメニューから選択して、「ストレージの作成」をクリックします。
しばらくすると、以下のようなシェルの画面が表示されます。
また、新しいストレージアカウントを作る際に選択したサブスクリプションには、以下のようなリソースグループとストレージアカウントが作成されます。
※このサブスクリプションには、ストレージアカウントの費用が発生します。
Azure Cloud Shell では、PowerShell と Bash が用意されており、左上の「環境の選択」メニューで切り替えることができます。
今回は PowerShell で仮想マシンへの接続を試していきます。
Azure Cloud Shell から仮想マシンへ接続するためには、まず仮想マシンに Azure Cloud Shell が接続するための設定をする必要があります。この設定は、Azure Cloud Shell から行うことができます。
今回は、Windows の仮想マシンに対して Azure Cloud Shell から接続できるようにするための設定を行います。
まず、Azure Cloud Shell のプロンプトに以下のコマンドを入力します。このコマンドで仮想マシンのリモート PowerShell を有効化しています。
Enable-AzVMPSRemoting -Name “仮想マシン名” -ResourceGroupName “リソースグループ名”
※“仮想マシン名”と“リソースグループ名”はご自身の環境にあわせて設定してください。
エラー無くプロンプトが返ってくれば、準備は完了です。
準備が整ったので、Azure Cloud Shell から仮想マシンに対して接続をしてみます。
仮想マシンへの接続には以下のコマンドを利用します。
Enter-AzVm -Name “仮想マシン名” - Credential “接続するアカウント名”
※“仮想マシン名”と接続するアカウント名”はご自身の環境にあわせたものをご利用ください。(ここでは、demo1-vm1 という仮想マシンに sysadmin というアカウントで接続しています)
パスワードが求められるので、接続するアカウントのパスワードを入力します。
接続が成功すると、対象の仮想マシンのプロンプトが表示されます。
本当に接続できたのかコマンドを投入して確認してみます。
接続した仮想マシンの情報が表示されました。この画像からわかるように、対象の仮想マシンの PowerShell に Azure Cloud Shell が接続できました。
Azure Cloud Shell を利用して、仮想マシンの PowerShell に接続することができました。これは、Azure Portal が利用できる環境から仮想マシン上で実行されるシステムを PowerShell ベースで管理することができることを意味します。
これが意味するところは、対応するブラウザ環境さえあればコマンドラインベースの管理がどんなデバイスからでもできるということです。つまり、iPad でも Chromebook でもデバイスのローカル環境で PowerShell が動作しなくても、Azure 上のリソースを管理できるということになります。
例えば、iPad から Safari で Azure Cloud Shell を利用すると以下のようになります。
これは、とても画期的で便利なことだと思います。是非、みなさんもこの便利な機能を使いこなして、Azure リソース管理にお役立てください。
また、今回ご紹介した機能の詳しい解説はこちらの動画(英語)で紹介されています。
ご興味のある方はあわせてご参照ください。
[ご参考]: PowerShell in Azure Cloud Shell GA
https://channel9.msdn.com/Shows/Azure-Friday/PowerShell-in-Azure-Cloud-Shell-GA?ocid=player