前から Linux の VPS は主に Docker 用として契約して使ってましたが、Windows Server にも対応したと聞いたので早速契約してみることにしました。
10% オフになっても 2GB プランはまあまあのお値段という感じがします。
みんなお待たせっ!ついにConoHaでもWindows Serverの提供開始するよ!今ならWIN2GBプランが10%OFFになるし、ぜひチェックしてくださーい! https://t.co/iwxlWLJq1D
— 美雲このは (@MikumoConoHa) 2018年4月24日
どうやら Windows Server 2016 Datacenter だけのイメージと SQL Server が入ったイメージが選べるようになっているみたいです。SQL Server 入りを選ぶとライセンス分が上乗せされるので高くなります。
ConoHa の Windows Server は珍しく 3 コアのマシンが選べます。
人生で 3 コアのマシンを使ったことがなかったので、試してみることにしました。
リモートデスクトップ用のパスワードを入力して、追加ボタンを押せば VM が作成されます。プロビジョニングは結構早いです。そしてブラウザからデスクトップが確認出来るのはかなり良いですね。
最初は「どうせ Windows Server では動作しないんだろ」とか思ってました。ごめんなさい。
デフォルトの Windows Server 2016 のバージョンは少し古いものでした。デフォルトで日本語 OS が起動するのが、地味に便利な気がしますね。
この状態で Windows Update を実行すると、累積アップデートが落ちてきます。Azure や AWS は少し遅れて新しいイメージが提供されてますが、ConoHa ではどうなるのか気になります。
そしてタスクマネージャーの表示です。3 コアだと微妙に収まりが悪いですね。
当然ですが、Windows Server 2016 の VM を作成しても、そのままでは何も出来ません。最低限 Web サーバーとして運用するためには IIS を入れる必要があります。
ConoHa のデフォルトではファイアウォールが全ポート許可になっているので、実際に使う際にはちゃんと必要なポートだけ開けるようにして使ってください。
Web Deploy を使ってデプロイ
IIS を入れてもアプリケーションのデプロイは必要になるので、Web Deploy をインストールして Visual Studio や MSDeploy を使ってリモートでデプロイ出来るようにしないと、使い道が無さそうです。
Web Deploy のインストールは癖があるので、いい感じに記事を参考にしてください。
適当に Web Deploy をインストールして、発行用のユーザーを作成し、publishsettings ファイルを作成して Visual Studio にインポートします。この辺りは App Service を使っている場合と同じです。
証明書周りの警告が出ますが、オレオレ証明書なのでスルーします。
デプロイが完了すると、見慣れた ASP.NET アプリケーションが表示されました。問題なく動いてますね。
MSDeploy を使ってデプロイが出来るので、AppVeyor や VSTS から簡単に扱えるはずです。
Docker を使う
ちなみに ConoHa でも Docker EE をインストールして Windows Server Containers を使うことが出来ます。Nested Virtualization には対応していないので Hyper-V Containers は無理です。 ごめんなさい、Hyper-V Containers 使えました。
インストールは Docker 公式のドキュメントを読んでください。このブログでも何回か書きました。
Server Core のイメージはサイズが大きすぎるので Nano Server を pull してきました。
動作確認を簡単にするために、IIS がインストールされたものを使います。8080 を 80 にフォワーディングするように指定して、Nano Server なコンテナーを起動します。
コンテナーホストの外から 8080 にアクセスすると IIS のスタートページが表示されます。
簡単な Windows Server Containers の検証としても良い感じですね。メモリが 2GB では心許ないですが、お遊びでは十分という感じもします。
最後に気が付いたのですが、何故か起動した Windows Server は時計が 1 時間遅れていました。タイムゾーンは合ってたので、NTP を使うと日本時間に戻りましたが謎です。
追記 : Hyper-V Containers も使えました
書いたときは Hyper-V を微妙に見落としていたのか、Install-WindowsFeature Hyper-V であっさりとインストールした後に、docker run で isolation を hyperv にすると Hyper-V Containers として起動できました。
タスクマネージャーを見ると wmwp や vmmem が動いてることが確認できます。
大きめのインスタンスを契約すれば Azure Functions Runtime などのインストールも出来そうな気がします。