自由気ままに書いちゃおう

好きなことをつらつらと・・・

【Azure】AzureCloudShellを触ってみる

今更ですが、AzureCloudShellを触ってみたので、その時の備忘です。

 

■AzureCloudShellとは

Azureポータルから利用できるAzurePowershellもしくはAzureCLIです。

■AzureCloudShellの利用料について

非常に簡単に始めることができますが、
新規または既存のAzureFiles共有マウントを作成する必要があります。

そのため、ストレージアカウントが存在する環境でも「ファイル共有」を新規作成する必要があります。

下記はAzureCloudShell初回利用時に作成したファイル共有(cloudshell-filesと命名)の内容です。

f:id:guri2o1667:20211206134642p:plain


右ペインの「cloudshell-files」をクリックすると、下記のように表示されます。

f:id:guri2o1667:20211206143641p:plain



「.cloudconsole」ディレクトリ配下には「acc_アカウント名.img」という5GBのイメージファイルが格納されております。

つまり、初めてAzureCloudshellを使うときには、
AzureFiles(ファイル共有)のセットアップ(=サブスクリプションの指定とリソースグループの指定)が必要になり、AzureFilesの使用量に応じた料金も発生します。
料金ですが、ファイル共有内に約6GBが格納されます。
具体的な料金ですがあくまで参考までとなりますが、
例えば、LRS/JapnaEast/ホットのストレージアカウントの構成の場合は約20円/月といった感じです。

f:id:guri2o1667:20211206142244p:plain

■AzureCloudShellを触ってみる

初回手順を下記します。

1.Azureポータルの右上にある「Cloud Shell」アイコンをクリックします。

f:id:guri2o1667:20211206133320p:plain

2.Azureポータルの画面下に以下の表示が出現します。

f:id:guri2o1667:20211206133423p:plain

3.「Bash」か「PowerShell」のどちらかをクリックします。
※ここでは、「Powershell」をクリックしました。

4.以下画面に遷移するため、既存のストレージアカウントを利用するために「詳細設定の表示」をクリックします。
※ストレージアカウントを新規作成する場合には「ストレージの作成」をクリックします。

Azure Cloud Shell でファイルを永続化する | Microsoft Docs

f:id:guri2o1667:20211206133615p:plain

5.以下の通り、「サブスクリプション」「リージョン」「リソースグループ」「ストレージアカウント」「共有ファイル」の項目が表示されるため、すべての項目が必須のため必要事項を入力後、「ストレージを作成」をクリックします。
※ここでは、西日本に存在するtestというリソースグループ内のストレージアカウントを利用しています。
※「ストレージの作成」がグレーアウトしている場合には、必要事項への記載が不足しております。

f:id:guri2o1667:20211206134301p:plain

6.上記5実行後、数十秒でAzureCloudShellが利用できるようになります。

7.試しにGet-AzVMコマンドを実行してみます。

f:id:guri2o1667:20211206140231p:plain


これでAzurePowershellが使えるようになるので、ローカルPCでセットアップするよりも簡単です。

■AzureCloudShellって結局何なの?

実態はAzureポータルからアクセス可能なUbuntu 18.04の仮想マシンです。
※執筆当時のバージョンです。

f:id:guri2o1667:20211206142546p:plain


Cloudshellへのログイン時のホームディレクトリは、
「/home/ユーザ名」となっており、
ユーザ名にはAzureADアカウントのドメイン名を除いたものが利用されます。

例えば、test1@example.localでCloudshellを起動した場合には、/home/test1がホームディレクトリになります。

/home/test1を例にすると、その配下のディレクトリ構成は以下のようになっております。

f:id:guri2o1667:20211206143435p:plain

/home/test1/clouddriveディレクトリの実態は/usr/csuser/clouddriveディレクトリとなっております。
/usr/csuser/clouddriveディレクトリは下記の通りマウントされております。

f:id:guri2o1667:20211206143544p:plain
※左側が切れていますが、CIFSにより接続されておりますので、「\\ストレージアカウント名.file.core.windows.net/ファイル共有名」という書式です。

つまり、ストレージアカウントの共有ファイルで作成したディレクトリが、
/home/ユーザ名/clouddriveにマウントされていることになります。

試しに、/home/ユーザ名/clouddriveにてファイルを生成してみます。

f:id:guri2o1667:20211206144136p:plain

ここで生成されたファイル(test.txt)はAzureファイル共有にも反映されるため、
Azureポータルからもtest.txtの存在を確認することができます。

f:id:guri2o1667:20211206144233p:plain

このあたりの内容は、MS公式サイトにも記載がございます。

Azure Cloud Shell でファイルを永続化する | Microsoft Docs

 

■AzureCloudShellの補足(概念)

最後に補足を少し記載致します。

Azure Cloud Shell の概要 | Microsoft Docs

 

  • Cloud Shell は、ユーザーごとにセッション単位で一時的に提供されるホスト上で実行されます。
  • Cloud Shell は、無操作状態で 20 分経過するとタイムアウトとなります。
  • Cloud Shell では、Azure ファイル共有がマウントされている必要があります
  • Cloud Shell では、Bash と PowerShell に対して同じ Azure ファイル共有が使用されます
  • Cloud Shell には、ユーザー アカウントごとに 1 台のマシンが割り当てられます。
  • Cloud Shell はファイル共有に保持されている 5 GB のイメージを使用して $HOME を永続化します
  • Bash では、標準の Linux ユーザーとしてアクセス許可が設定されます。




以上です。