こんにちは。初心者エンジニアです。
Azure Fundamentals(AZ-900)の学習を進める中で、今回はAzureのコンピューティングサービスについて学びました。
Azureにはアプリケーションを動かすためのサービスがいくつも用意されていますが、今回はその中でも
- Azure Virtual Machines(VM)
- Azure Virtual Desktop
について学習しました。
最初は「どちらも仮想化だから何が違うんだろう?」と思ったのですが、Microsoft Learnを読み進めると、それぞれ役割が違うサービスなんだということが少しずつ分かってきました。
今回は学習した内容を、自分なりの理解も交えながら整理してみます。
Azure Virtual Machines(VM)とは?
Azure Virtual Machines(VM)は、Azure上で仮想サーバーを作成できるサービスです。
以前学習したクラウドサービスの分類でいうと、IaaS(Infrastructure as a Service) にあたります。
オンプレミスでは、新しくサーバーを用意しようとすると、
- サーバーを購入する
- 設置する
- OSをインストールする
- ネットワークを設定する
といった作業が必要になります。
一方、Azure VMでは物理的なサーバーを自分で用意する必要がなく、Azure上に仮想サーバーを作成できます。
そのため、物理機器を管理する負担を減らしながらサーバーを利用できるサービスなのかな、と理解しました。
VMはどんな場面で利用するのか
Microsoft Learnでは、VMの利用例として次のようなものが紹介されていました。
- テスト・開発環境
- Webサーバー
- アプリケーションサーバー
- オンプレミス環境の拡張
- ディザスターリカバリー
- リフトアンドシフトによる移行
特に印象に残ったのは「リフトアンドシフト」です。
既存のシステムを大きく作り直さず、そのままAzureへ移行したい場合にVMが利用されるようです。
まだ実際に移行作業をしたことはありませんが、既存のサーバー環境をそのままクラウドへ持っていきたい場合には、VMが選ばれることが多いのかなと思いました。
Azure VMでは何を管理するの?
VMはIaaSなので、Azureがすべて管理してくれるわけではありません。
責任共有モデルで整理すると、
Azureが管理するもの
- 物理サーバー
- ネットワーク
- ストレージ
- 仮想化基盤
利用者が管理するもの
- OS
- セキュリティ更新
- アプリケーション
- ミドルウェア
になります。
以前学習した責任共有モデルがここでも関係してくるので、「IaaSはOSから利用者が管理する」という内容を思い出しました。
VMサイズとは?
VMを作成するときは、必要な性能を選択できます。
例えば、
- CPU
- メモリ
- ストレージ
- ネットワーク性能
などを用途に合わせて選びます。
最初は「VMを作るだけなら全部同じでは?」と思っていましたが、開発環境と本番環境では必要な性能が違うので、用途に応じてサイズを選ぶ仕組みになっているようです。
VMファミリ
Azureでは、VMが用途ごとにシリーズ分けされています。
| シリーズ | 主な用途 |
|---|---|
| Bシリーズ | 開発・テスト向け |
| Dシリーズ | 汎用 |
| Eシリーズ | メモリ重視 |
| Fシリーズ | CPU重視 |
| Lシリーズ | ストレージ重視 |
| Mシリーズ | 大規模データベース |
| Nシリーズ | GPU利用 |
私は全部を覚えるというよりも、
「Dは汎用」「Eはメモリ」「NはGPU」
くらいを最初に覚えておくと整理しやすそうだと感じました。
(全然覚えられてませんが)
VMサイズ名の見方
Microsoft Learnでは、
Standard_D2s_v5
という例が紹介されていました。
それぞれ、
| 項目 | 意味 |
|---|---|
| D | 汎用シリーズ |
| 2 | vCPU数 |
| s | Premium SSD対応 |
| v5 | ハードウェア世代 |
を表しています。
最初は記号の羅列にしか見えませんでしたが、意味を知ると「VMのスペックを表している名前なんだ」と理解できました。
ただ、模擬試験でこのあたり全く出てこないので全然覚えてません(-_-;)
仮想マシンスケールセット
利用者が増えると、1台のVMだけでは処理しきれなくなることがあります。
そんな時に利用するのが、仮想マシンスケールセットです。
Microsoft Learnでは、同じ構成のVMを複数管理し、需要に応じて自動で増減できる仕組みとして紹介されていました。
手動でVMを増やすのではなく、自動的にスケールできるところが特徴なのかなと思いました。
可用性セット
もう一つ覚えておきたいのが、可用性セットです。
最初は「可用性ゾーンと何が違うんだろう?」と少し混乱しました。
Microsoft Learnを読んでみると、可用性セットは1つのリージョン内でVMを更新ドメインと障害ドメインに分けて配置し、メンテナンスや障害の影響を受けにくくする仕組みでした。
以前学習した可用性ゾーンは物理的に離れたデータセンターへ分散する仕組みだったので、
- 可用性セット:VM単位の冗長化
- 可用性ゾーン:データセンター単位の冗長化
という違いなのかな、と理解しました。
細かい内容はまだあやふやなので追々勉強しなおしたいところです。
Azure Virtual Desktopとは?
Azure Virtual Desktopは、Azure上でWindowsデスクトップを利用できるサービスです。
最初はAzure VMとの違いが分かりませんでしたが、
Azure VMはサーバーを提供するサービス、
Azure Virtual DesktopはWindowsデスクトップ環境を提供するサービス、
という違いがあるようです。
利用者は自宅や会社など、どこからでも同じデスクトップ環境へ接続できます。
ただ、実際の現場でどのように使われるのかはあんまりイメージできてません。
グループのみんなが同じ環境のデスクトップ環境を使えるとか、クラウド上で動作してるからリモート環境に強いとかですかね。想像ですけど。
高性能のものを使って負荷の大きい作業を日常的に行おうとするとすごくコストがかかるみたいなので、日常的に長時間利用することが想定されるときはPCをちゃんと購入して持っていたほうがいいみたいです。
逆に決まった処理をするときだけスペックの高い環境が必要、という場合には短時間使ってその時間当たりの金額だけに抑える、みたいな使い分けが良いようです。
実際に活用している人の意見を聞いてみたいところです。
Azure VMとの違い
私なりに整理すると、このようなイメージになりました。
| Azure VM | Azure Virtual Desktop |
|---|---|
| 仮想サーバーを提供する | 仮想デスクトップを提供する |
| サーバー用途 | 利用者の作業環境用途 |
| 管理者向けの利用が多そう | エンドユーザー向けの利用が多そう |
どちらも仮想化技術を利用していますが、「何を提供したいか」が違うサービスなんだと理解しました。
AZ-900試験で覚えておきたいポイント
今回の範囲では、次の内容を整理しておきたいと思いました。
- Azure VMはIaaS
- VMではOSの管理が必要
- スケールセットはVMを自動で増減する
- 可用性セットは更新ドメイン・障害ドメインを利用する
- Azure Virtual Desktopはクラウド上のWindowsデスクトップを提供する
まとめ
今回はAzure VMとAzure Virtual Desktopについて学習しました。
学習する前はどちらも「仮想化サービス」というイメージしかありませんでしたが、Microsoft Learnを読み進めることで、サーバーを提供するサービスなのか、デスクトップ環境を提供するサービスなのかという違いがあることが分かりました。
AZ-900では細かな設定方法を覚えるというよりも、
「どのような場面で利用するサービスなのか」
を理解しておくことが大切なのかなと感じています。
次回はAzureのコンテナーサービスについて、自分なりに整理してみようと思います。