どうも、フリーランスエンジニアのMakotoです。
仮想マシンはAzureで仮想サーバを起動するための基本となるコンピューティングサービスです。しかし、Azureでいざ仮想マシンを作ろうとすると、入力が必要なパラメータが多くて困惑したことはありませんか?
私も最初は戸惑いました。デフォルト値で良ければささっと作成することもできますが、余計なところでコストがかかってしまったりします。
クラウドではパズルを組み合わせるように、部品と部品が繋がりあって構成されていることがよくあります。それらの構成要素を分解して考えればそれほど難しくありません。
そこで今回は、仮想マシンを構成する各リソースについて解説します。
それではいってみましょう!
仮想マシンの構成要素
最初に全体像を見ておきましょう。リージョンや可用性ゾーンなどデータセンターの概念は省略しています。
仮想マシンを作成するにはサーバを配置するための仮想ネットワーク/サブネットが必要です。
仮想ネットワークについてはこちらの記事でまとめていますが、IPアドレスの範囲を定義して他のサーバやインターネットと通信するためのプライベートネットワークを構成します。
その他のリソースについて順番に見ていきましょう。
仮想マシン
OSイメージ
仮想マシンのOSは「イメージ」の選択で決まります。
Marketplaceには次のような代表的なOSのほか、SQLServerやWordPressなどよく使われるソフトがインストール済みのイメージも公開されています。
- Windows Server 2019/2022
- Windows 10/11
- Ubuntu Server
- CentOS
- Debian
- SUSE Enterprise
- Red Hat Enterprise
サイズ(スペック)
CPUやメモリなどのスペックは「サイズ」の選択で決まります。サイズは「タイプ」と「シリーズ」で分類されており、例えば次のようなタイプがあります。
- CPUとメモリのバランスがとれた「汎用」
- CPUの性能が高い「コンピューティング最適化」
- メモリの性能が高い「メモリ最適化」
- グラフィック処理に特化した「GPU」
サイズの名前はルールにもとづいて命名されており、シリーズ、CPUコア数、世代などが元になっています。
Azureポータルでサイズを選択する画面では各シリーズごとのサイズが一覧表示され、条件で絞り込みしたり並び替えしながら選択することができます。
仮想マシンのサイズにより決定される要素は意外と多いです。CPU、メモリ、コストが選択基準のベースになりますが、その他のディスクとネットワークの性能に関する部分は具体的な要件にもよりますので必要に応じて都度調べるのが良いでしょう。
- CPU
- メモリ
- コスト
- データディスクの接続数
- 最大IOPS
- 最大スループット
- 一時ストレージ容量
- Premiumディスクのサポートあり/なし
- NICの接続数
- NICのネットワーク帯域
ディスク
仮想マシンと同じようにディスクも性能を選択できます。
HDDよりSSD、StandardよりPremiumのほうがコストが高く、性能も高い傾向にあります。
- Premium SSD
- Standard SSD
- Standard HDD
ディスク性能はIOPSとスループットで表されます。
IOPS
1秒あたりに処理できる読み書きの数
スループット
1秒あたりのデータ転送量
また、冒頭の図ではOSディスクしか表していませんが、必要に応じてアプリケーションやデータを格納するためのディスク(データディスク)を追加することもできます。
他にも、仮想マシンのサイズによってはデフォルトで一時ディスクと呼ばれる領域がアタッチ(接続)されます。
OSディスク
イメージで選択したOSがインストールされたディスクは文字通り「ディスク」として作成され仮想マシンに接続されます。Windows/Linux問わずOSの入ったディスクなので必ず作成されるものです。
OSディスクのサイズは既定で決まっています。
- Windows Server:127GB
- Linux:30GB
詳細は以下の公式ドキュメントを参照してください。
Windows 仮想マシンに接続されている仮想ハード ディスクを拡張する方法
Azure CLI を使用して Linux VM の仮想ハード ディスクを拡張する
ただし、Windows Serverの場合はイメージ名の頭に「smalldisk」と付いているものを選択すればOSディスクのサイズが30GBで作成されます。
Windows Serverの場合はsmalldiskを選択することでOSディスクのサイズを小さくできる
試験対策ではありませんが、コストを減らして学習するためのテクニックとして便利ですので覚えておきましょう。(あとで拡張はできるが縮小はできないので)
データディスク
アプリケーションやデータはOSディスクとは領域を分けて保存することはよくあります。そういった場合には、別でディスクを作成して仮想マシンにアタッチすることで簡単に保存領域を確保することができます。
OSディスク、データディスクともローカルディスクとして扱えるので物理サーバのディスクにアクセスしているように感じるかもしれませんが、実際にはネットワーク越しにBLOBストレージと呼ばれるところに接続しています。
これらのディスクは「マネージドディスク」と呼ばれAzureによって管理されているため、利用者がどこにあるのか保存場所を意識する必要はありません。
一時ディスク
ほとんどの仮想マシン(のサイズ)には漏れなく「一時ディスク」が「Dドライブ」としてアタッチされます。(ドライブレターはあとで変更できます)
Dドライブは仮想マシンをホストしている物理サーバのディスクを一時ディスクとして使っています。
物理サーバのディスクにアクセスするため、読み書きの速度が速いといったメリットがあるのですが、仮想マシンを一度停止してから起動したり再デプロイしたりすると、別のホストへ仮想マシンが移動することがあるため、元の一時ディスクにはアクセスできなくなってしまいます。
ページファイル、スワップファイルなど消失してもよい一時的なファイルの用途で利用します。
ネットワークインターフェイス
ネットワークインターフェイスカード(NIC)のことです。
サブネットのIPアドレス範囲内から「10.1.0.4」などのプライベートIPアドレスが割り当てられ仮想マシンにアタッチされます。
他のリソースやインターネットと通信するために必要なので、OSディスクと同じく必ず仮想マシンといっしょに作成されます。
ネットワークインターフェイスは、後述のパブリックIPアドレスやネットワークセキュリティグループの割当先にもなりますし、他にも個別にDNSサーバを指定したい場合など、単一仮想マシンのネットワーク設定を行う場合のリソースとなります。
パブリックIPアドレス
インターネット(外部)から接続する場合にはグローバルなIPアドレスも割り当てることもできます。AzureではグローバルIPアドレスのことを「パブリックIPアドレス」と呼びます。
パブリックIPアドレスは、仮想マシンのみならずインターネット接続が必要なサービス全般で利用されます(ロードバランサ、Application Gateway、Azure Firewallなど)
ネットワークセキュリティグループ
ネットワークセキュリティグループは、仮想ネットワーク内のAzureリソースが送受信するトラフィックを許可・拒否するためのサービスです。略してNSGと呼ぶことが多いです。
仮想マシンなどの通信を制御するための重要なサービスです。こちらの記事で詳しく解説しています。
まとめ
今回は仮想マシンを構成するリソースについて解説しました。ネットワーク系のリソースを除くと、次の4つが仮想マシンを構成する主なリソースです。
- 仮想マシン
- ディスク
- ネットワークインターフェイス
- パブリックIPアドレス
AZ-900の試験対策としては細かく問われることはないかもしれませんが、実務で仮想マシンを扱う上では基礎となる知識です。ぜひ、実際に手を動かして仮想マシンを作りながら理解を深めてください。