Azure Virtual Machineを解説 【シリーズ Azureサービスいちから紹介】

このエントリはQiita Advent Calendar 2017 Microsoft Azureサービスいちから紹介 の4日目です。

ナレッジコミュニケーションの大柳です(@oyngtmhr)

4日目はAzure Virtual Machineです。やっとクラウドの花形サービスにたどりつきました。奥の深いサービスですが、要点を絞って解説していきます。

概要

Azure Virtual Machineは仮想マシンを提供するクラウドの中心的なサービスです。AWSのEC2やGoolge Cloud PlatformのGCEに相当します。WindowsだけでなくLinuxももちろん対応しています。

・インスタンスの種類

小規模なWebサイトなどに適した汎用的なものから、CPU性能重視、メモリ量重視、ストレージ性能重視、HPC向け(科学技術計算などのハイパフォーマンスコンピューティング)、そしてGPU搭載可能なものまで様々な用途に合わせたタイプの仮想マシンが提供されています。


https://docs.microsoft.com/ja-jp/azure/virtual-machines/linux/sizes から引用

・OSの種類

Linux系だと、Red Hat Enterprise、CentOS、SUSE Linux Enterprise、Debian、Ubuntu、CoreOS、RancherOS、FreeBSDなどが提供されます。
Windows系ではWindows Serverからwindows10、SQL Serverなどが提供されます。
Azure Marketplaceでは、機械学習パッケージを組み込んだもの、WordpressのようなCMS、最近話題のブロックチェーンを組み込んだOSイメージも提供されます。
OracleやIBMのプロダクトもあり、オンプレ環境で使っているものは、一通りなんでも揃いそうです。

・セキュリティ

Azureの仮想ディスクは暗号化することもできます。また、Azure Resource Managerポリシーを使ったセキュリティポリシーの使用、ロールベースのアクセス制御(RBAC)も可能です。

・メンテナンス

物理筐体のメンテナンスやセキュリティなどのパッチ適用によるシステムのメンテナンスはAzure Virtual Machineでも発生します。
Azureでは再起動が不要なインプレースVM移行と、再起動が必要なメンテナンスがあります。

インプレースVM移行はAzureに独特なもので、パッチなどの適用作業が再起動なしで行われるものです。Azure内部では仮想マシンがある筐体から別の筐体に移行するようですが、ユーザ側ではこれに伴い仮想マシンを停止する必要はありません。再起動なしで運用できるならいいじゃないか、と思うかもしれません。ただし気を付けないといけないのは、インプレースVM移行に伴い30秒程度マシンが一時停止することです。また、インプレースVM移行は事前に通知されず、発生後にも通知されないことです。
30秒以内の停止や遅延を許されないシステムでは多重構成にして処理継続できるよう、特別な考慮が必要です。メモリの内容などは保持されますが、システム上は30秒完全停止するので、cronで何か仕込んでるとはまりそうで怖いです(そもそもcronで定時起動させるのは最近はアンチパターンになってきてますが・・・)

【12/4追記】インプレースVM移行は、事前にインスタンスメタデータから情報を取れるとのことです。@tmak_twさん、ご指摘ありがとうございました。

一方の、再起動が必要なメンテナンスは文字通りです。事前にメンテナンス通知が来て、「セルフサービス期間」にユーザが計画的にメンテナンスを行うか、「予定メンテナンス期間」中に自動的にメンテナンスが行われるのを待つか、を選ぶことができます。

Azure で Linux VM をセキュリティで保護し、ポリシーを使用する | Microsoft Docs

https://docs.microsoft.com/ja-jp/azure/virtual-machines/linux/security-policy

・バックアップ

Azure Backupを使うと、VMのバックアップを取得でき、VM全体の復元、もしくは特定のファイルだけを復元することができます。

・Azure 予約VMインスタンス(RI:Reserver Instance)

1年、もしくは3年の契約期間で仮想マシンを割引価格で使えるリザーブド・インスタンスも利用可能です。
例えば、D1-5 v2インスタンスであれば、1年契約で57%、3年契約で71%の割引を受けることができます。
リザーブドインスタンスは12%の中途解約手数料を支払えば契約期間中の解約もでき、残り期間分は日割りで払い戻されます。


Azure Reserved Virtual Machine Instances | Microsoft Azure
https://azure.microsoft.com/ja-jp/pricing/reserved-vm-instances/

その他

・LinuxインスタンスのSSHキーペアは自身で準備する必要あり。AWSみたいにWebの管理画面上から自動生成してくれない。

・インスタンスのバリエーションは他クラウドより多いと感じる。特に多コア、巨大メモリーなどハイパフォーマンス系に強い印象。

・初めてAzure VMを構築する際には、Resource Groupやストレージアカウント、Virtual NetworkがVMの前提として必要なことを知らないと手間取る。

・インプレースVM移行は30秒以内の停止が真に許容されないシステムは世にそんなにないけど、何か地雷を踏みそうでリスクはある

・停止状態には「停止済み」と「削除済み (割り当て解除済み)」がある。OSからシャットダウンした場合は、「停止済み」状態となり、CPUコアなどは保持されるため、停止中も課金対象となる。リソースを解放して課金されないようにするには、Azure PortalかPowerShellから停止する手順が必要。

料金

・課金はVMを使った時間に対して課金。マーケットプレースでソフトウェアを調達した場合は、それも課金される。

・リザーブドインスタンス(事前予約)もあり。最大71%の割引を受けられる。

・課金単位は分単位(切り捨て)。6分45秒稼働させたら6分だけ課金される。

まとめ

Microsoft AzureなのでWindowsしか提供されないということはなく、Linuxも多くのディストリビューションに対応してますし、Oracleとかも提供されています。VMの使い勝手についてはAWSなど他社クラウドと遜色ない感じです。監視や運用自動化・省力化のためにサービスもいろいろあるようなので、別の日に取り上げたいと思います。

この記事を書いた人

azure-recipe-user