私は、開発等の仕事ではM2Pro Mac miniを使っていています。Macでの開発はまったく問題ないのですが、教育の仕事で時々Windows環境が必要になることがあります。
大手企業やSIer系のお客様はWindowsを使っていることが多いです。ReactもRuby on RailsのWindowsで動きますが、たまにライブラリーが対応してない事があったりするので最終的にWindwsで動作確認しておく必要があります。
Stable Diffusion(mage.space)が生成した画像を利用しました
Windowsを動かすには
Windows環境は頻繁に使うわけではないので、今まではMacで動くParallels等を使いWindowsを動かしていましたが、Intel MacからM2 Macに移行してしまったのでIntel版WindwosをMac上で動かせなくなってしまいました。
ParallelsでARM版Windwosは動かせますが、お客様でARM版Windwosを導入している企業は少ないでしょうし、Node.jsやRuby等がライブラリーを含めARM版Windwos上でサポートされているのとは思えません。
UTMというソフトを使うとM2 Macの上でIntel版Windwosを動かす事ができるということで試してみました。しかし兆遅いし、原因不明なエラーが発生し実用的ではないと感じました。
UTMはQEMUというエミュレータソフトを使いIntel用のコードをM2 Macで実行するので遅いのはしかたないですね。通常のIntel用アプリならRosetta 2でM2用にコード変換できますが、WindowsのようなOSの変換は難しいと思われます。
そうなると、Windowsが動くPCを買うか、Windowsが使えるクラウドサービスを使う事になります。
仕事でAWSクラウドのWindows環境を使っていますが、OSはWindows Serverで、Windows 11等の通常のデスクトップOSは動かないようです。
Windows Azure
そこで、Windows本家のMicrosoft Azureを調べてみました。Azureにはたくさんのサービスがありますが、AWSのEC2 のようなコンピューティングプラットフォーム Azure Virtual Machine を使ってみる事にしました。
たとえばD2s v3
という2CPU 8Gbyteメモリーの汎用CPUは、¥19.3/時間で使えるようです。ただしAWSと同様にストレージやネットワーク等に課金されるので、使用料金は実際に使ってみないとよく判らない感じです。
クラウド上で動くWindowsにはMicrosoft リモート デスクトップソフト(Mac版もあり)で接続して普通のデスクトップPCのように快適に使えます。
WSL(Windows Subsystem for Linux)
最近のWindowsはWSL(Windows Subsystem for Linux)でLinuxが使えるので、今回のWindows環境でもWSL(正確にはWSL2)をインストールしましたが、最初はかなり苦労しました。
結論としては以下の2つに注意すれば簡単にインストールできます。
- WSLが使えるVMには制限がありBsシリーズのようなバースト対応VMでは使えません、
D2s v3
などのDシリーズがお勧めです - 仮想マシンの作成画面でセキュリティの種類をStandardにする必要があります、デフォルトのトラステッド起動の仮想マシンではWSLは使えません
WSLのインストールは簡単です、DevelopersIOのWSL2記事 等を参考にしてください。
Azureの使用料金
現在Azureを始めると、30日間使える$200のクレジットが付いているので無料でいろいろと試せます。
さて、私が今までに使った料金は以下のようになりました。
期間毎の利用状況:
- 9/18 〜 10/4 : VMを作成し、いろいろと実験
- 10/5 : 作ったVM等を、1つに絞る
- 10/6 〜 10/12 : Azureは未使用
- 10/13 : VM等を全て削除
- 10/14 〜 10/15 : Azureは未使用
驚いたことに、10/6 〜 10/12日は、Azureを全く使って無かったのにVirtual Machineにも課金されていました!
もちろん、VM等を全て削除したら課金はなくなりました。
AWSのEC2は停止していれば、CPU(VM)も課金はありません(ストレージ等は課金されますが)。 Azureは課金の考え方が違うようですね → Azure Virtual Machines の状態と課金状態 。
あ! Azure 仮想マシンにおける操作 (再起動、停止/起動、再デプロイ、再適用) について によると、
ゲスト OS 上でのみシャットダウンを実行した場合には、ポータルの画面より仮想マシンの状態が 停止済み (割り当て解除) ではなく、停止済み と表記されます。この場合はリソースがまだ割り当てられている状態との意味ですので課金が続けられます。
そうか、この違いに気がついていませんでした! Windowsのシャットダウンのみ使っていました。😅
つづく・・・