どうも、フリーランスエンジニアのMakotoです。
今回は、Azure Cloud Shellについて解説します。
Cloud ShellはAWSにもありますが、Azureのほうが先に提供開始されました。初めてAzure Cloud Shellを触わった時は
と感動しました。今でもよく利用するサービスの一つです。
なにが便利なのか。そんな疑問にお答えするためにAzure Cloud Shellの概要をお伝えします。ぜひ、最後までお読みください。
それではいってみましょう!
Azure Cloud Shellとは?
Azure Cloud Shellは、ブラウザから利用できるコマンド実行環境(シェル環境)のことで、よく使われているコマンドラインツールや言語がインストールされた環境をすぐに利用することができます。
Azureポータル右上にあるアイコンからアクセスするか、もしくは、shell.azure.com に直接アクセスして利用することができます。
![Image from Gyazo](https://i.gyazo.com/54896b0a551e8e16ddc6c0daf1d72c95.png)
ブラウザベースのツールなので、PC、タブレット、スマホなどOS問わず利用することができます。
Azure Cloud Shellの使い方
Azure Cloud Shellを起動するとようこそ画面が表示されますのでシェル環境を選択します。シェル環境はBash、PowerShellを選択できます。(BashはLinuxにおける一般的なコマンド実行環境です)
![Azure Cloud Shell(シェルの選択)](https://i.gyazo.com/15ab7794cff0e5e4fcec849f652cc8dc.png)
Azure Cloud Shellでは最初にデータの保存場所となるストレージアカウント(ファイル共有)を作成する必要があり、初回起動時に作成を求められます。ファイル共有=共有フォルダのことです。
![Azure Cloud Shell(ストレージの作成)](https://i.gyazo.com/648d00b5d5d197d37b91c0c57059795b.png)
「ストレージの作成」を押すとストレージアカウントなど3つのリソースが自動的に作成されます。(詳細設定の表示から名前などを指定して作成することもできます)
- リソース グループ:
cloud-shell-storage-<region>
- ストレージ アカウント:
cs<uniqueGuid>
- ファイル共有:
cs-<user>-<domain>-com-<uniqueGuid>
Azure Cloud Shellの利用自体は無料ですが、ストレージの保存コストがわずかながら発生します。ストレージアカウントについてはこちらの記事で詳しく解説していますので参考にしてください。
![【AZ-900】Azure Storage(Azureストレージ)とは?サービスの種類や冗長性オプションをしっかり解説!](https://az-start.com/wp-content/uploads/2022/05/fe4c115a7adaee21ff0313b873cbd634-320x180.jpg)
Azure Cloud Shellが起動すると以下のような画面になります。この画面の例ではBashで起動しています。
画面上部にはツールバーが並んでおり、左上のプルダウンからはシェル環境をBash⇔PowerShellに切り替えることができます。
![Azure Cloud Shell(Bashで起動)](https://i.gyazo.com/9e0ce39595bb0371694bced0671521aa.png)
![Azure Cloud Shell(Bashで起動)](https://i.gyazo.com/9e0ce39595bb0371694bced0671521aa.png)
PowerShellに切り替えるとこんな感じ。
![Azure Cloud Shell(PowerShellで起動)](https://i.gyazo.com/54cc84d791aae5811b6ae91df923d65e.png)
![Azure Cloud Shell(PowerShellで起動)](https://i.gyazo.com/54cc84d791aae5811b6ae91df923d65e.png)
裏では仮想マシンが動いているのですが、サーバの存在は全く意識することなくすぐにコマンド実行環境を起動することができます。
Azure Cloud Shellで使えるツール
Azure Cloud Shellには「Azure CLI」や「Azure PowerShell」などAzureをコマンド操作で管理するためのツールが初めからインストールされています。
この2つのAzureツールについてはこちらの記事を参考にしてください。
![【AZ-900】Azure CLIとAzure PowerShellの違いについて解説!](https://az-start.com/wp-content/uploads/2022/05/ed1233dbc166a28128270ef05dca7974-320x180.jpg)
![【AZ-900】Azure CLIとAzure PowerShellの違いについて解説!](https://az-start.com/wp-content/uploads/2022/05/ed1233dbc166a28128270ef05dca7974-320x180.jpg)
![【AZ-900】Azure CLIとAzure PowerShellの違いについて解説!](https://az-start.com/wp-content/uploads/2022/05/ed1233dbc166a28128270ef05dca7974-320x180.jpg)
Azure CLI、Azure PowerShell以外にも一般的によく使われるツール、エディタ、言語がインストールされています。インストール不要でどの端末からもすぐに使えるのは本当に便利。
- git
- Docker
- Terraform
- Java
- Python etc…
インストールされているツールや言語の詳細は公式ドキュメントを参照してください。
ストレージ永続化の仕組み
さて、ここからはAZ-900試験で問われないと思いますが、Azure Cloud Shellのストレージについて補足しておきます。
Azure Cloud Shellは何も操作せず20分が経過するとタイムアウトとなりセッションは切断されます。再接続すれば新たにセッションを開始して利用を再開できますが
こんな疑問があるかもしれません。答えは「No」です。
Azure Cloud Shellではデータの保存先としてファイル共有をマウントしているので、以下の場所に保存するデータは永続化されます(詳細は公式ドキュメントを参照)
- /home/<User> ($HOME)
- /home/<User>/clouddrive
![AzureCloudShellのストレージ永続化の仕組み](https://az-start.com/wp-content/uploads/2022/05/9cac4f682cced7ba2ad83be08d761795.jpg)
![AzureCloudShellのストレージ永続化の仕組み](https://az-start.com/wp-content/uploads/2022/05/9cac4f682cced7ba2ad83be08d761795.jpg)
ホームディレクトリ(/home/<User>)はファイル共有の中に作成されるimgファイルをマウントしており、5GBまでデータを保存することができます。
![ホームディレクトリのimgファイル](https://i.gyazo.com/50d61ed62330d5e9ea88c507c7a38a43.png)
![ホームディレクトリのimgファイル](https://i.gyazo.com/50d61ed62330d5e9ea88c507c7a38a43.png)
外部からファイルをアップロードしたり持ち出したい場合は「clouddrive」のディレクトリに保存します。ここはファイル共有のディレクトリ(cs-<User>-xxx)とリンクされています。
試しに「testfile.txt」という空ファイルをclouddriveディレクトリに作成してみます。
![Azure Cloud Shell上に空ファイルを作成](https://i.gyazo.com/9ae19fe67c9d1743a90562698e5a43ac.png)
![Azure Cloud Shell上に空ファイルを作成](https://i.gyazo.com/9ae19fe67c9d1743a90562698e5a43ac.png)
Azureポータルでストレージアカウントのファイル共有の中身を見ると「testfile.txt」が作成されていることがわかりますね。
![ファイル共有で空ファイルを確認](https://i.gyazo.com/1bda7a63c31acc4119b00b47886ec735.png)
![ファイル共有で空ファイルを確認](https://i.gyazo.com/1bda7a63c31acc4119b00b47886ec735.png)
まとめ
今回はAzure Cloud Shellの概要について解説しました。AZ-900試験対策のポイントをまとめると次の通りです。
- OS問わずブラウザから利用できる
- ストレージアカウントの作成が必要
- シェル環境はBashまたはPowerShellを選択できる
- Azure CLIやAzure PowerShellなどのツールが初めからインストールされている
Azure Cloud Shellを使えばローカル環境をセットアップすることなく、ブラウザ上からサクッとコマンドを実行できるのでちょっとした確認なんかには非常に便利です。
ぜひ活用してみてください。