この記事は更新から24ヶ月以上経過しているため、最新の情報を別途確認することを推奨いたします。
初めに
こんにちは、パーソル プロセス&テクノロジーの永井です。
突然ですが、オンプレミスと比較した場合、
クラウドの強みとして”柔軟性があること”があげられます。
Microsoft AzureやAWS、GoogleCloudにて仮想マシンやディスクをデプロイ後、
リソースの追加や削除、サイズ変更が容易というメリットです。
今回はMicrosoft Azureにてデプロイ済みの仮想マシン(以下VM)にて、
サイズの変更をする方法、メリット、注意点などをまとめて記載できればと思います。
サイズの変更とは
Azureで展開されているVMには様々なサイズが標準で用意されています。
バランスの取れた汎用型のシリーズや高いCPU性能をもつシリーズ、メモリに特化しているシリーズなど様々です。
汎用型のシリーズだけでも、Av2/B/Dsv3などに分かれており目的に合わせて選択する必要があります。
※さらに、それぞれのサイズで世代(バージョン)もあります。
詳細については以下Microsoftのドキュメントを参照してください。
Azure の仮想マシンのサイズ
VMのサイズは設計の段階で要求されるスペックに適したサイズを選択できることが一番ですが、
利用ユーザーの増加や減少など、構築した環境に変化が生じることもあります。
その場合、パフォーマンスが低下してしまいユーザーエクスペリエンスを損ねることや、
逆に過剰なスペックになってしまい必要以上にコストがかさんでしまう事が想定されます。
例えば以下画像の場合、CPU使用率をみると平均0.2021%となっており
過剰なスペックのサイズであると考えられます。
※実際に判断する際はCPU使用率以外の指標も判断に入れるべきですが
そこで利用できるのがサイズの変更です。
例えば[D2s_v3(vCPU数2/RAM8GB)]から[D4s_v3(vCPU数4/RAM16GB)]へ変更する場合はパフォーマンスの向上が見込めます。
また逆に、[D4s_v3]から[D2s_v3]に変更することで月に¥10,000程度コストを削減することが出来ます。
※24h/365d稼働、通常の従量課金制の場合
※最大IOPS、一時ストレージ容量、Premiumディスクのサポート有無なども変更されます
サイズの変更方法
今回は検証の為、以下条件のVMを用意しました。
VM名 :resize-server
サイズ :D4s_v3
OS :Windows (Windows Server 2019 Datacenter)
リージョン :東日本
①Azure Portalからの変更
一番手軽な方法がAzure Protalから変更する方法です。
ここではサイズを[D4s_v3]から[D8s_v3]へと変更します。
手順としては以下となります。
1.Azure Portalを開く
2.サイズを変更したいVMのページを開く
3.左メニューから[サイズ]を選択する
4.サイズの一覧から変更したいサイズを選択
5.[サイズの変更]をクリック
数分後、概要の画面を開くと無事サイズが[D8s_v3]へと変更されていることが確認できました。
なお、Azure Portalからサイズの変更を行う際はVMの起動有無は問われず、
起動したままサイズ変更を行うと自動的に再起動がかかります。
念のため起動中のアプリなどを正常に終了し、VMを停止をしておくことを推奨します。
②Azure Cloud Shellを使用しての変更
別の手段として、Azure Cloud Shellを使用してVMのサイズを変更する方法もあります。
Azure PowerShellでも実行可能ですが今回はAzure Cloud Shellを使用しています。
先ほど、[D8s_v3]へ変更したものを[D4s_v3]へと戻します。
Azure Cloud Shellの基本的な使用方法については以下を参照してください。
Azure Cloud Shell の概要
1.変数を設定する
※赤字の部分はそれぞれ変更してください。$resourceGroup = "KENSYO"
$vmName = "resize-server"
2.使用できる VM のサイズを一覧表示するGet-AzVMSize -ResourceGroupName $resourceGroup -VMName $vmName
3.以下コマンドを実行しVMのサイズを変更する$vm = Get-AzVM -ResourceGroupName $resourceGroup -VMName $vmName
$vm.HardwareProfile.VmSize = "Standard_D4s_v3"
Update-AzVM -VM $vm -ResourceGroupName $resourceGroup
処理が完了後、[最新の情報に更新]するとサイズが変更できていることが確認できます。
Azure Cloud Shellを使用した場合もAzure Portalから実行した場合と同様、
VMを起動したままコマンドを実行すると再起動されますので、VMをあらかじめ停止しておくことを推奨します。
サイズ変更の注意点、Tips
サイズ変更が出来ない、うまくいかない場合、
考えうる原因は複数ありますが、まず疑うべきポイントは以下3つです。
①Aシリーズのみ稼働可能なクラスタでVMがデプロイされている
②可用性セットが構成されている
③[高速ネットワーク]が利用できないサイズへ変更しようとしている
詳細と対策は以下となります。
①Aシリーズのみ稼働可能なクラスタでVMがデプロイされている
Azureデータセンターでは、複数のシリーズのサイズが稼働可能なクラスタと、Aシリーズのみ動作可能なクラスタが共存しています。
以下参考リンク。
Dシリーズの仮想マシンにサイズ変更できない(弊サイト記事)
[Azure失敗と対策]仮想マシンのサイズを変更できないことがある(日経XTECH記事、弊社小田島執筆)
D シリーズの仮想マシンにサイズ変更できない事象について(Microsoftドキュメント、情報が少し古いです)
②可用性セットが構成されている
可用性セットを構成している場合は、すべてのVMの割り当て解除→サイズの変更が必要となります。
実行にはAzure Cloud Shellを使用します。
以下参考リンク。
PowerShell を使用して可用性セット内の VM のサイズを変更する(Microsoftドキュメント)
③[高速ネットワーク]が利用できないサイズへ変更しようとしている
対象のVMで[高速ネットワーク]を有効にしている場合、変更後のVMも[高速ネットワーク]をサポートしている必要があります。
割り当て解除、[高速ネットワーク]の無効化が必要となります。
以下参考リンク。
高速ネットワークが有効な既存の VM のサイズを変更する(Microsoftドキュメント)