Microsoft Azureの仮想マシンはCPUやメモリの使用量を定義するサイズの概念があります。このページでは「サイズ」の説明と、動作確認を目的とした安価で使用頻度の高いサイズの紹介をします。
公式見解
この記事は、筆者の独自の考え方を示しています。Microsoftの公式記事は自社の売上を最大化するようなポジショントークが含まれていますので、公式が言いづらい事をまとめたのが本記事になります。しかしながら、大規模プロジェクトで公式見解に刃向かうのは難しい事かと思いますので、公式の見解も併せて理解ください。以下に公式見解のURLをまとめます。
- Azure の仮想マシンのサイズ
- 負荷の急増に対応できる B シリーズ仮想マシンのサイズ
- Dv2 および DSv2 シリーズ
- Dv5 および Dsv5 シリーズ
- Azure 仮想マシンのサイズの名前付け規則
汎用仮想マシンのサイズ
価格一覧
Azureで提供される仮想マシンは「汎用」「コンピューティング最適」「メモリ最適」など用途に応じたサイズが提供されています。商用目的ではなく動作確認目的ならば「汎用」が最も安上がりになりますので、以下「汎用」の価格をまとめます。
2022年3月時点の価格です。価格は変動するリスクがある事をご理解ください。
サイズ | メモリ | CPU | 価格($/時間) |
---|---|---|---|
Standard_B1s | 1 | 1 | 0.0104 |
Standard_B1ms | 2 | 1 | 0.0207 |
Standard_B2s | 4 | 2 | 0.0416 |
Standard_D1_v2 | 3.5 | 1 | 0.057 |
Standard_DS1_v2 | 3.5 | 1 | 0.057 |
Standard_D2_v2 | 7 | 2 | 0.114 |
Standard_DS2_v2 | 7 | 2 | 0.114 |
Standard_D2_v5 | 8 | 2 | 0.096 |
Standard_D2sv_v5 | 8 | 2 | 0.096 |
Bシリーズ
公式見解では「Bシリーズはburst可能な仮想マシン」と謳われており、使っていない時はクレジットが蓄積され、使っている時はクレジットが消費されます。ですので、概念検証、小規模データベース、開発ビルド環境などの常日頃使わない用途が最適です。
というのが、公式の見解ですが、Bシリーズの最大のメリットはメモリ1G, CPU1コアのような極小仮想マシンが作成できる事です。後述のDシリーズをスポット仮想マシンとして使用するよりも費用削減になります。
「Bシリーズ」はスポット仮想マシンをサポートしていません。
難点は、余りに極小過ぎるスペックなので、動作確認したい内容によってはサポート対象外どころかvalidationエラーとなり検証すら出来ません。例えば、「高速ネットワーク」や「ホストでの暗号化」はStandard_B2sでは動作しません。
「Bシリーズ」の使用可能な仮想マシンのサイズはロケーションによって異なります。ロケーションを指定して使用可能なサイズ一覧を出力するazコマンドの例は以下の通りです。
az vm list-sizes \ --location japaneast \ --query "[?starts_with(name,'Standard_B')].{Name:name, Mem:memoryInMb, Cpu:numberOfCores}" \ --output table
azコマンドの実行結果は以下のようになります。
Name Mem Cpu -------------- ----- ----- Standard_B1ls 512 1 Standard_B1ms 2048 1 Standard_B1s 1024 1 Standard_B2ms 8192 2 Standard_B2s 4096 2 Standard_B4ms 16384 4 Standard_B8ms 32768 8 Standard_B12ms 49152 12 Standard_B16ms 65536 16 Standard_B20ms 81920 20
D_v2シリーズ(Dファミリ 第2世代)
最も使用実績が多い「無難な」仮想マシンです。後述の「DS_v2シリーズ」との違いは、Standard SSDかPremium SSDかの違いです。ディスク費用を削減したいならば「D_v2シリーズ」を指定しましょう。
なお、「D_v2シリーズ」でストレージに関するパラメタを指定せず、デフォルト設定で作成された仮想マシンの設定は以下の通りです。storageAccountTypeがStandard_LRSになっています。
$ az vm show \ --resource-group MyResourceGroup \ --name linux020 \ --query "storageProfile.osDisk" { "caching": "ReadWrite", "createOption": "FromImage", "deleteOption": "Detach", "diffDiskSettings": null, "diskSizeGb": 30, "encryptionSettings": null, "image": null, "managedDisk": { "diskEncryptionSet": null, "id": "/subscriptions/2e2f81a9-b030-410f-9784-c582580c932e/resourceGroups/MyResourceGroup/providers/Microsoft.Compute/disks/linux020_OsDisk_1_816a7c1626bc4b4a80f9c51e25713fe5", "resourceGroup": "MyResourceGroup", "storageAccountType": "Standard_LRS" }, "name": "linux020_OsDisk_1_816a7c1626bc4b4a80f9c51e25713fe5", "osType": "Linux", "vhd": null, "writeAcceleratorEnabled": null }
「D_v2シリーズ」の使用可能な仮想マシンのサイズはロケーションによって異なります。ロケーションを指定して使用可能なサイズ一覧を出力するazコマンドの例は以下の通りです。
az vm list-sizes \ --location japaneast \ --query "[?starts_with(name,'Standard_D') && contains(name, '_v2') && \!contains(name, 'DS')].{Name:name, Mem:memoryInMb, Cpu:numberOfCores}" \ --output table
azコマンドの実行結果は以下のようになります。
Name Mem Cpu --------------------- ------ ----- Standard_D1_v2 3584 1 Standard_D2_v2 7168 2 Standard_D3_v2 14336 4 Standard_D4_v2 28672 8 Standard_D5_v2 57344 16 Standard_D11_v2 14336 2 Standard_D12_v2 28672 4 Standard_D13_v2 57344 8 Standard_D14_v2 114688 16 Standard_D15_v2 143360 20 Standard_D2_v2_Promo 7168 2 Standard_D3_v2_Promo 14336 4 Standard_D4_v2_Promo 28672 8 Standard_D5_v2_Promo 57344 16 Standard_D11_v2_Promo 14336 2 Standard_D12_v2_Promo 28672 4 Standard_D13_v2_Promo 57344 8 Standard_D14_v2_Promo 114688 16
DS_v2シリーズ(Dファミリ Sサブファミリ 第2世代)
「DS_v2シリーズ」はPremium SSDをサポートした仮想マシンです。「DS_v2シリーズ」の「S」はストレージを意味します。
なお、「DS_v2シリーズ」でストレージに関するパラメタを指定せず、デフォルト設定で作成された仮想マシンの設定は以下の通りです。storageAccountTypeがPremium_LRSになっています。
「DS_v2シリーズ」でもストレージを明示指定すれば、Standard SSDを使う事ができます。ストレージ指定をするのが面倒な人は「D_v2シリーズ」を使用するような癖をつけておけば費用削減ができます。
$ az vm show \ --resource-group MyResourceGroup \ --name linux030 \ --query "storageProfile.osDisk" { "caching": "ReadWrite", "createOption": "FromImage", "deleteOption": "Detach", "diffDiskSettings": null, "diskSizeGb": 30, "encryptionSettings": null, "image": null, "managedDisk": { "diskEncryptionSet": null, "id": "/subscriptions/2e2f81a9-b030-410f-9784-c582580c932e/resourceGroups/MyResourceGroup/providers/Microsoft.Compute/disks/linux030_OsDisk_1_a553aa19e2de42f4b104fe9f0622624f", "resourceGroup": "MyResourceGroup", "storageAccountType": "Premium_LRS" }, "name": "linux030_OsDisk_1_a553aa19e2de42f4b104fe9f0622624f", "osType": "Linux", "vhd": null, "writeAcceleratorEnabled": null }
「DS_v2シリーズ」の使用可能な仮想マシンのサイズはロケーションによって異なります。ロケーションを指定して使用可能なサイズ一覧を出力するazコマンドの例は以下の通りです。
az vm list-sizes \ --location japaneast \ --query "[?starts_with(name,'Standard_D') && contains(name, '_v2') && \!contains(name, 'DS')].{Name:name, Mem:memoryInMb, Cpu:numberOfCores}" \ --output table
azコマンドの実行結果は以下のようになります。
Name Mem Cpu --------------------- ------ ----- Standard_D1_v2 3584 1 Standard_D2_v2 7168 2 Standard_D3_v2 14336 4 Standard_D4_v2 28672 8 Standard_D5_v2 57344 16 Standard_D11_v2 14336 2 Standard_D12_v2 28672 4 Standard_D13_v2 57344 8 Standard_D14_v2 114688 16 Standard_D15_v2 143360 20 Standard_D2_v2_Promo 7168 2 Standard_D3_v2_Promo 14336 4 Standard_D4_v2_Promo 28672 8 Standard_D5_v2_Promo 57344 16 Standard_D11_v2_Promo 14336 2 Standard_D12_v2_Promo 28672 4 Standard_D13_v2_Promo 57344 8 Standard_D14_v2_Promo 114688 16
D_v5シリーズ(Dファミリ 第5世代)
「D_v5シリーズ」は第5世代の仮想マシンです。第2世代よりも若干安価ではありますが、1コアの仮想マシンが販売されていないのが難点です。1コアで十分な場合は「D_v2シリーズ」を購入した方が安上がりでしょう。
「D_v5シリーズ」の使用可能な仮想マシンのサイズはロケーションによって異なります。ロケーションを指定して使用可能なサイズ一覧を出力するazコマンドの例は以下の通りです。
az vm list-sizes \ --location japaneast \ --query "[?starts_with(name,'Standard_D') && contains(name, '_v5')].{Name:name, Mem:memoryInMb, Cpu:numberOfCores}" \ --output table
azコマンドの実行結果は以下のようになります。
query句で指定するJMESPathは正規表現を指定する事ができないため、「D_v5シリーズ」のみに検索結果を絞り込むのは困難です。「D_v5シリーズ」以外も混在している事をご理解ください。
Name Mem Cpu ----------------- ------ ----- Standard_D2ds_v5 8192 2 Standard_D4ds_v5 16384 4 Standard_D8ds_v5 32768 8 Standard_D16ds_v5 65536 16 Standard_D32ds_v5 131072 32 Standard_D48ds_v5 196608 48 Standard_D64ds_v5 262144 64 Standard_D96ds_v5 393216 96 Standard_D2d_v5 8192 2 Standard_D4d_v5 16384 4 Standard_D8d_v5 32768 8 Standard_D16d_v5 65536 16 Standard_D32d_v5 131072 32 Standard_D48d_v5 196608 48 Standard_D64d_v5 262144 64 Standard_D96d_v5 393216 96 Standard_D2s_v5 8192 2 Standard_D4s_v5 16384 4 Standard_D8s_v5 32768 8 Standard_D16s_v5 65536 16 Standard_D32s_v5 131072 32 Standard_D48s_v5 196608 48 Standard_D64s_v5 262144 64 Standard_D96s_v5 393216 96 Standard_D2_v5 8192 2 Standard_D4_v5 16384 4 Standard_D8_v5 32768 8 Standard_D16_v5 65536 16 Standard_D32_v5 131072 32 Standard_D48_v5 196608 48 Standard_D64_v5 262144 64 Standard_D96_v5 393216 96
Dsv_v5シリーズ(Dファミリ sv追加機能 第5世代)
「Dsv_v5シリーズ」は第5世代の仮想マシンでPremium SSDをサポートします。
「Dsv_v5シリーズ」の使用可能な仮想マシンのサイズはロケーションによって異なります。ロケーションを指定して使用可能なサイズ一覧を出力するazコマンドの例は以下の通りです。
az vm list-sizes \ --location japaneast \ --query "[?starts_with(name,'Standard_D') && contains(name, 's_v5')].{Name:name, Mem:memoryInMb, Cpu:numberOfCores}" \ --output table
azコマンドの実行結果は以下のようになります。
query句で指定するJMESPathは正規表現を指定する事ができないため、「D_v5シリーズ」のみに検索結果を絞り込むのは困難です。「D_v5シリーズ」以外も混在している事をご理解ください。
Name Mem Cpu ----------------- ------ ----- Standard_D2ds_v5 8192 2 Standard_D4ds_v5 16384 4 Standard_D8ds_v5 32768 8 Standard_D16ds_v5 65536 16 Standard_D32ds_v5 131072 32 Standard_D48ds_v5 196608 48 Standard_D64ds_v5 262144 64 Standard_D96ds_v5 393216 96 Standard_D2s_v5 8192 2 Standard_D4s_v5 16384 4 Standard_D8s_v5 32768 8 Standard_D16s_v5 65536 16 Standard_D32s_v5 131072 32 Standard_D48s_v5 196608 48 Standard_D64s_v5 262144 64 Standard_D96s_v5 393216 96
仮想マシンサイズの命名規則
使用頻度の高いところのみの説明
書式
比較的使用頻度の高いのみに着目した命名規則は以下の通りです。正確には「制約付き vCPU」「アクセラレータの種類」という概念もありますが、これらは使用頻度が低いため、説明を後回しにします。
[ファミリ][サブファミリ]* + [vCPU の数] + [追加機能] + [バージョン]
ファミリ
先頭の1文字はVMファミリのシリーズを表します。Standard_B1sやStandard_B2sならば、バースト性があるBシリーズを意味します。Standard_D2_v2やStandard_DS2_v1ならば、汎用的なDシリーズを意味します。
サブファミリ
ファミリが2文字以上の名前ならば、2文字目以降はサブファミリを意味します。Standard_DS1_v2やStandard_DS2_v2ならば、ストレージ(Premium SSD)を意味するSサブファミリを意味します。
vCPU数
サブファミリの後の数字はvCPUを表します。Standard_B1sやStandard_D1_v2ならばvCPUが1個を意味します。Standard_D2_v2やStandard_DS2_v2ならばvCPUが2個を意味します。
追加機能
vCPU数の後の小文字英数字は追加機能を意味します。Standard_D2s_v5やStandard_D8s_v5ならば、ストレージ(Premium SSD)を意味するsの追加機能を意味します。
バージョン
原則として、末尾の数字は仮想マシンのバージョンを意味します。ただし、例外的にBシリーズのようにバージョンの概念がない命名規則の仮想マシンも存在します。
Standard_D1_v2やStandard_D2_v2ならば第2世代を意味します。Standard_D2_v5やStandard_D4_v5ならば第5世代を意味します。
正確な説明
仮想マシンの正確な命名規則は以下の通りです。
[ファミリ][サブファミリ]* + [vCPU の数][制約付き vCPU]* + [追加機能][アクセラレータの種類]* + [バージョン]
制約付きvCPU
ソフトウェアライセンスによっては、物理的なCPUに比例した料金体型になるものもあります。このようなソフトウェアを使う場合に備え、実際に使用する物理的なCPUを明記したのが、この命名規則です。SQL ServerやOracle Databaseなどを使用する場合は、この制約付きvCPUを検討しましょう。詳細は「制約付き vCPU 対応の VM サイズ
」を参照ください。
アクセラレータの種類
GPUの一部の仮想マシンはアクセラレータの種類を明記したものもあります。2020年第3四半期以降に公開された特殊な仮想マシンのみが該当します。