Azure CLIでリソース作成!VM・Storage・VNetを一行のコマンドでデプロイする方法
生徒
「Azure(アジュール)で仮想サーバーやネットワークを作りたいのですが、ポータル画面をポチポチ操作するのは大変そうです。もっと簡単に作る方法はありますか?」
先生
「それならAzure CLI(コマンドラインインターフェース)を使うのがおすすめですよ。コマンド一行を入力するだけで、仮想マシンの作成から設定まで一気に完了させることができます。」
生徒
「コマンド一行で全部できるんですか?難しそうですが、初心者でも覚えられますか?」
先生
「基本の型(テンプレート)さえ覚えれば大丈夫です。今回は、VM(ブイエム)、Storage(ストレージ)、VNet(ブイネット)を素早く作成する秘訣を詳しく解説しますね!」
1. Azure CLIとは?初心者向けに基礎知識を解説
Azure CLI(アジュール・シーエルアイ)とは、Microsoft(マイクロソフト)が提供するクラウドサービス「Azure」を操作するためのコマンドラインツールです。通常、ブラウザからポータル画面(GUI)を開いてマウスで操作しますが、Azure CLIを使えば文字入力だけでリソースの作成や削除、管理が行えます。CUI(シーユーアイ)と呼ばれる文字ベースの操作に慣れると、作業効率が劇的に向上します。
特にプログラミング初心者やインフラエンジニアを目指す方にとって、Azure CLIの習得は必須と言えるでしょう。なぜなら、コマンド操作は「手順の自動化」が可能だからです。一度書いたコマンドを保存しておけば、次回からはそれを実行するだけで、全く同じ環境を何度でも再現できます。これを「Infrastructure as Code(インフラストラクチャ・アズ・コード)」の第一歩として学ぶ人も多いです。
Azure CLIは、Windows(ウィンドウズ)だけでなく、Mac(マック)やLinux(リナックス)でも動作します。また、ブラウザ上でそのまま実行できる「Azure Cloud Shell(アジュール・クラウド・シェル)」を使えば、自分のパソコンにインストールすることなく、すぐに練習を始めることができます。まずは基本となるログインコマンドから学んでいきましょう。
2. まずは準備!Azureへのログインとリソースグループの作成
Azure CLIを使うための最初のステップは、自分のアカウントにログインすることです。ログインしないと、どのサブスクリプション(契約枠)に対して操作を行うのかが判断できないためです。ログインが完了したら、次に「リソースグループ」という箱を作ります。Azureでは、仮想マシンやネットワークなどの部品を必ずこのリソースグループの中に入れて管理するルールになっています。
リソースグループ(Resource Group)は、プロジェクトごとに作成するのが一般的です。例えば「テスト用」というグループを作っておけば、不要になったときにそのグループごと削除するだけで、中に入っている全ての部品を一括で消去できるので非常に便利です。管理の手間を減らすためにも、名前の付け方にはルールを持たせると良いでしょう。
az login
[
{
"cloudName": "AzureCloud",
"homeTenantId": "xxx-xxx",
"id": "subscription-id",
"isDefault": true,
"state": "Enabled",
"user": {
"name": "user@example.com",
"type": "user"
}
}
]
次に、リソースグループを作成するコマンドを実行します。ここでは「MyResourceGroup」という名前で、場所(リージョン)を「japaneast(東日本)」に指定します。
az group create --name MyResourceGroup --location japaneast
{
"id": "/subscriptions/xxx/resourceGroups/MyResourceGroup",
"location": "japaneast",
"name": "MyResourceGroup",
"properties": {
"provisioningState": "Succeeded"
}
}
3. 仮想ネットワーク(VNet)を爆速で構築するコマンド
クラウド上に自分専用のネットワーク空間を作るのが、VNet(Virtual Network:バーチャル・ネットワーク)です。家を建てるための「土地」を区画整理するようなイメージだと考えると分かりやすいでしょう。VNetの中には「サブネット」というさらに小さな区切りを作ります。Webサーバー用、データベース用といった形で場所を分けることで、セキュリティを強化できます。
通常、ネットワークの設定はIP(アイピー)アドレスの範囲指定など難しい設定が多いですが、Azure CLIならデフォルト値を活用してシンプルに作成できます。基本的には「名前」「リソースグループ名」「サブネット名」を指定するだけです。これにより、外部からの通信をどのように受け入れるかの土台が完成します。
az network vnet create --resource-group MyResourceGroup --name MyVNet --address-prefix 10.0.0.0/16 --subnet-name MySubnet --subnet-prefix 10.0.1.0/24
{
"newVNet": {
"addressSpace": {
"addressPrefixes": [
"10.0.0.0/16"
]
},
"name": "MyVNet",
"resourceGroup": "MyResourceGroup"
}
}
4. ストレージアカウントの作成!データを保存する場所を確保
Storage(ストレージ)アカウントは、画像ファイルやログデータ、プログラムの実行ファイルなどを保存するための「倉庫」です。Azureには、ファイルを保存する「Blob(ブロブ)」や、ファイル共有のための「File(ファイル)」など様々な種類がありますが、それらをまとめて管理するのがストレージアカウントです。名前は世界中で重複しない一意(ユニーク)なものを付ける必要があります。
ストレージアカウントを作成する際は「SKU(エスキュー)」という性能プランを選びます。初心者の学習用であれば、コストを抑えた「Standard_LRS(スタンダード・エルアールエス)」が推奨されます。これは、同じデータセンター内でデータを3重にコピーして守ってくれる、安価で信頼性の高いプランです。一行のコマンドで、セキュリティ設定も含めた作成が可能です。
az storage account create --name mystorageacct2026 --resource-group MyResourceGroup --location japaneast --sku Standard_LRS
{
"accessTier": "Hot",
"creationTime": "2026-03-31T12:00:00Z",
"id": "/subscriptions/xxx/resourceGroups/MyResourceGroup/providers/Microsoft.Storage/storageAccounts/mystorageacct2026",
"kind": "StorageV2",
"location": "japaneast",
"name": "mystorageacct2026",
"provisioningState": "Succeeded"
}
5. 仮想マシン(VM)を一行でデプロイする魔法のコマンド
いよいよ本命のVM(Virtual Machine:バーチャル・マシン)作成です。VMとは、クラウド上の仮想的なコンピューターのことで、OS(オペレーティング・システム)としてWindowsやLinuxを選んで動かすことができます。本来、VMを作るにはネットワークやディスク、ネットワークインターフェース(NIC)など多くの部品を個別に作る必要があります。しかし、Azure CLIのaz vm createコマンドは非常に優秀で、必要な部品を全て自動で一緒に作ってくれます。
以下のコマンドは、Ubuntu(ウブントゥ)というLinux OSを搭載したVMを作成する例です。引数に--generate-ssh-keysを付けることで、サーバーへ安全に接続するための「鍵」も自動生成してくれます。これを一行入力して数分待つだけで、世界中のどこからでもアクセスできるサーバーが立ち上がります。これがクラウドの醍醐味です。
az vm create --resource-group MyResourceGroup --name MyVM --image Ubuntu2204 --admin-username azureuser --generate-ssh-keys --vnet-name MyVNet --subnet MySubnet
{
"fqdns": "",
"id": "/subscriptions/xxx/resourceGroups/MyResourceGroup/providers/Microsoft.Compute/virtualMachines/MyVM",
"location": "japaneast",
"macAddress": "00-0D-3A-XX-XX-XX",
"powerState": "VM running",
"privateIpAddress": "10.0.1.4",
"publicIpAddress": "20.XXX.XXX.XXX",
"resourceGroup": "MyResourceGroup"
}
6. リソース作成時に役立つ便利なオプションと注意点
Azure CLIを使いこなすために知っておきたいのが、出力形式の変更です。標準ではJSON(ジェイソン)形式という、プログラムが読みやすい形式で結果が表示されます。しかし、人間が見るには少し複雑ですよね。そこで--output tableというオプションを最後に付けると、表形式でスッキリと結果を表示させることができます。視認性が上がるため、初心者は積極的に使ってみましょう。
また、リソースを削除する際のコマンドも覚えておきましょう。クラウドサービスは従量課金制(じゅうりょうかきんせい)といって、使った分だけお金がかかる仕組みです。特にVMは動かし続けている間、ずっと料金が発生します。学習が終わったら、最初に作ったリソースグループごと削除することで、消し忘れによる無駄な出費を防ぐことができます。これは「クラウド破産」を防ぐための大切なマナーです。
az group list --output table
Name Location Status
--------------- ---------- ---------
MyResourceGroup japaneast Succeeded
NetworkWatcherRG japaneast Succeeded
7. パラメータを整理して効率的にコマンドを打つコツ
一行で長いコマンドを打つのは大変ですが、シェルスクリプトやバッチファイルという「命令書」にまとめておけば、ダブルクリック一つで複雑な環境を構築できます。変数を活用することで、名前やリージョンを自由に変更できるようになります。例えば、開発環境(Dev)と本番環境(Prod)で名前だけ変えて、中身は全く同じ構成をコピーするといった作業が数秒で終わります。
また、Azure CLIには「対話モード」という機能もあります。az interactiveと入力すると、コマンドの候補を自動で表示(補完)してくれるモードになります。どのキーワードを入れればいいか忘れてしまった場合でも、ヒントを出しながら教えてくれるので、リファレンスをいちいち調べなくて済みます。初心者がコマンドを覚えるまでの補助輪として最適です。
8. 実際に作成されたリソースを一覧で確認する方法
リソースを作った後は、本当に正しく作成されているか確認することが重要です。作成コマンドが成功しても、ネットワークの設定ミスなどで外部から繋がらないことはよくあります。az resource listコマンドを使えば、自分が作成した全ての部品を一覧表示できます。ここでリソースのIDや状態を確認し、意図した通りにデプロイされているかチェックしましょう。
もしエラーが出た場合は、出力されるメッセージをよく読んでみてください。Azure CLIのエラーメッセージは比較的丁寧で、「名前が重複している」「権限が足りない」といった原因を英語で教えてくれます。エラーを解決する過程こそが、インフラ知識を深める一番の近道になります。まずは恐れずに、どんどんコマンドを叩いてみることが上達への第一歩です。
az resource list --resource-group MyResourceGroup --output table
Name ResourceGroup Location Type
------------------ --------------- ---------- ----------------------------------
MyVM MyResourceGroup japaneast Microsoft.Compute/virtualMachines
MyVNet MyResourceGroup japaneast Microsoft.Network/virtualNetworks
mystorageacct2026 MyResourceGroup japaneast Microsoft.Storage/storageAccounts
まとめ
今回の記事では、MicrosoftのクラウドプラットフォームであるAzureを、コマンド一行で効率的に操作するためのツール「Azure CLI」の基本から応用までを詳しく解説しました。ポータル画面でのマウス操作(GUI)も直感的で便利ですが、実務や大規模なシステム運用においては、Azure CLI(CUI)を使いこなすことが、作業時間の短縮と正確な環境構築への近道となります。
特に、仮想マシン(VM)の作成、仮想ネットワーク(VNet)の構築、そしてデータを保存するためのストレージアカウント(Storage Account)のデプロイは、クラウドエンジニアにとって最も頻繁に行う操作です。これらを個別に設定するのではなく、リソースグループという一つの単位で管理し、依存関係を意識しながらコマンドを実行する流れを理解することが重要です。
Azure CLIを活用するメリットの再確認
Azure CLIを利用する最大の利点は、作業の再現性にあります。一度作成したコマンドをシェルスクリプトやバッチファイルとして保存しておけば、開発環境、テスト環境、本番環境といった複数の環境を、全く同じ構成で瞬時に立ち上げることが可能です。これは「Infrastructure as Code (IaC)」の基本的な考え方であり、手動操作による設定ミスや漏れを劇的に減らすことができます。
また、Azure CLIはクロスプラットフォームに対応しており、WindowsのPowerShell、macOSのターミナル、さらにはLinux環境でも同一のコマンド体系で操作できる点が魅力です。クラウド上ですぐに使えるAzure Cloud Shellを活用すれば、ローカル環境へのインストール作業すら不要で、ブラウザさえあればどこからでもインフラ構築が始められます。
コマンド実行時の重要なポイント
記事の中で紹介した az vm create コマンドのように、Azure CLIは非常に強力な自動化機能を備えています。本来であればネットワークインターフェースやパブリックIPアドレス、ディスクなどを個別に作成する必要がありますが、主要なパラメータを指定するだけで、それらの付随するリソースを裏側で自動生成してくれます。初心者のうちは、この「自動で何が作られているか」を az resource list コマンドなどで確認する癖をつけると、Azureの内部構造への理解がより深まります。
さらに、運用面で欠かせないのがコスト管理です。クラウドは使った分だけ課金される仕組みであるため、不要になったリソースは速やかに削除する必要があります。リソースグループ単位で削除コマンドを実行することで、関連するすべてのリソースを一括で消去し、課金の発生を確実に止めることができるテクニックは、プロの現場でも必須のスキルです。
C#によるAzure CLI呼び出しの自動化例
より高度な活用方法として、プログラム内からAzure CLIを呼び出して制御することも可能です。例えば、C#のコンソールアプリケーションからAzureリソースの作成状況を確認するようなツールを作成する場合、以下のようなコード構成になります。
using System;
using System.Diagnostics;
class AzureManager
{
static void Main(string[] args)
{
// 実行するAzure CLIコマンドの設定
string command = "az group list --output table";
ProcessStartInfo psi = new ProcessStartInfo
{
FileName = "cmd.exe",
Arguments = $"/c {command}",
RedirectStandardOutput = true,
UseShellExecute = false,
CreateNoWindow = true
};
using (Process process = Process.Start(psi))
{
string result = process.StandardOutput.ReadToEnd();
Console.WriteLine("現在のリソースグループ一覧を表示します:");
Console.WriteLine(result);
}
}
}
実行結果は以下のようになります。
現在のリソースグループ一覧を表示します:
Name Location Status
--------------- ---------- ---------
MyResourceGroup japaneast Succeeded
NetworkWatcherRG japaneast Succeeded
SQLによるリソース情報の管理イメージ
大量のリソースを管理する場合、データベースで構成情報を管理することもあります。以下は、作成したVMの情報を管理するテーブルの例と、特定のリージョンにあるVMを抽出するSQLのイメージです。
id | vm_name | resource_group | location | status
---+--------------+-----------------+-----------+---------
1 | WebServer01 | MyResourceGroup | japaneast | running
2 | DBServer01 | MyResourceGroup | japaneast | stopped
3 | TestVM | DevGroup | westus | running
4 | BackupNode | MyResourceGroup | japaneast | running
SELECT vm_name, resource_group, status
FROM azure_resources
WHERE location = 'japaneast' AND status = 'running';
vm_name | resource_group | status
-------------+-----------------+---------
WebServer01 | MyResourceGroup | running
BackupNode | MyResourceGroup | running
Azure CLIは、単なる操作ツールを超えて、自動化やシステム連携の核となる存在です。今回学んだ基本コマンドを土台にして、より複雑なアーキテクチャの構築に挑戦してみてください。クラウドの柔軟性を最大限に引き出すのは、あなたのキーボード入力から始まります。
生徒
「先生、ありがとうございました!Azure CLIを使えば、あんなに長い設定項目をポータルで入力しなくても、たった一行でVMが作れるなんて驚きました。魔法みたいですね!」
先生
「そう感じてもらえて嬉しいです。まさに魔法の杖のようなツールですよね。でも、魔法にはルールがあるのと同じで、コマンドにも正確な構文が必要です。特にハイフン二つのオプションなどは、最初は戸惑うかもしれませんが、慣れると手放せなくなりますよ。」
生徒
「確かに、最初は --resource-group とか入力するのが大変そうだなと思いましたが、タブキーで補完したり、対話モードを使えば意外とスムーズにいけそうです。さっき教えてもらったリソースグループごと削除するコマンドも、忘れずにメモしておきました!」
先生
「それは素晴らしい心がけです!クラウドで一番怖いのは、使い終わったリソースを消し忘れて、翌月の請求額に驚くことです。 az group delete コマンドは、インフラエンジニアのお守りだと思っておいてくださいね。」
生徒
「はい、お守りですね!あと、C#からコマンドを実行する方法も少し見せてもらいましたが、あれを応用すれば自分専用の管理ツールも作れそうですね。」
先生
「その通りです。プログラムとAzure CLIを組み合わせれば、例えば特定の時間に自動でVMを起動したり、バックアップを取ったりする仕組みも自作できます。可能性は無限大ですよ。次は、複数のVMを同時に立ち上げるスクリプト作成に挑戦してみましょうか!」
生徒
「ぜひ挑戦したいです!もっとコマンドを使いこなして、効率的にインフラを構築できるようになりたいと思います。これからもよろしくお願いします!」