【解説】Azure SQLのDTUモデルとvCoreモデル ─ ハードウェア抽象化と性能保証の違いを理解する
はじめに
Azure SQL Databaseを利用するとき、最初に直面するのが「DTUモデル」と「vCoreモデル」のどちらを選ぶかという問題です。
単に「DTUは簡単」「vCoreは柔軟」といった説明はよくありますが、
実際には 両者の設計思想(特にハードウェア抽象化と性能保証の考え方) に大きな違いがあります。
この記事では、
「DTUとは何か?」「vCoreとは何が違うのか?」を、
クラウド基盤のマイグレーションの視点から整理して解説します。
1. DTUモデルとは?
DTU(Database Transaction Unit)は、Microsoftが定義したAzure SQL Databaseの総合性能スコアです。
構成要素
DTUは次の3つのリソースの複合指標です:
| リソース | 内容 |
|---|---|
| CPU | クエリの計算処理能力 |
| メモリ | 実行プランやキャッシュの保持領域 |
| ストレージIOPS | データ読み書きの速度 |
DTUモデルでは、これらを個別に指定せず、
「20 DTU」「100 DTU」などのスコア単位で性能を選択します。
2. DTUモデルの本質:Microsoftによる“性能抽象化”
DTUモデルの最大の特徴は、Microsoftが性能を完全に抽象化・管理している点です。
たとえば、MicrosoftがAzureのデータセンター内部で
ハードウェア(CPU・ノード・ストレージ)を刷新したとしても、
ユーザーが契約している「50 DTU」の性能が変化しないように調整されます。
つまり:
❇ DTUはMicrosoftが内部的に定義したベンチマーク性能を保証する「ブラックボックス」モデル
利用者は基盤の変更を意識する必要がありません。
3. vCoreモデルとは?
vCoreモデル(Virtual Core model)は、
DTUよりもリアルなハードウェア構成を反映したモデルです。
構成要素
ユーザーが明示的に以下を指定します:
- vCore数(CPU)
- メモリ容量
- ストレージ容量・IOPS
- ハードウェア世代(例:Gen5、Premium Seriesなど)
これにより、オンプレミスと近い感覚でリソースを設計できます。
4. ハードウェアマイグレーション時の違い
Azureの内部では、定期的にハードウェアの世代交代(マイグレーション)が行われます。
その際、DTUモデルとvCoreモデルでは、性能保証のアプローチが異なります。
| 観点 | DTUモデル | vCoreモデル |
|---|---|---|
| 性能保証の単位 | 抽象スコア(DTU) | ハードウェア+構成値 |
| ハードウェア変更の影響 | ほぼ無し(Microsoftが吸収) | わずかな差異が発生する可能性 |
| 利用者が意識する項目 | DTU値のみ | vCore数・世代(Gen5等) |
| 抽象度 | 高い(S/M/Lのような単位) | 低い(実リソースに近い) |
5. 実際に起きること
DTUモデルの場合
Microsoftが裏側でノードを移行しても、
そのプラン(例:S3=100 DTU)の性能が保たれるように最適化される。
→ ユーザーから見れば「何も変わらない」。
vCoreモデルの場合
たとえば、Gen5 → Premium Series へ移行した場合、
同じ 4 vCore でも CPUクロックやキャッシュ構成が異なるため、
クエリ性能に数%程度の違いが出ることがあります。
ただしMicrosoftは下位互換性を維持するため、
性能劣化が生じないよう慎重に管理しています。
6. まとめ:どちらのモデルを選ぶべきか
| 要件 | 向いているモデル |
|---|---|
| シンプルに使いたい・性能調整は任せたい | DTUモデル |
| CPU・メモリを明確に設計したい | vCoreモデル |
| 性能の一貫性を絶対重視 | DTUモデル |
| ハードウェア世代や構成を意識して最適化したい | vCoreモデル |
7. おわりに
DTUモデルは「Microsoftに任せる抽象化モデル」、
vCoreモデルは「自分で設計するインフラモデル」と言えます。
Azure SQL Databaseが裏で進化しても、
DTUモデルではその変化が吸収され、
vCoreモデルではその違いを直接感じられる──。
どちらを選ぶかは、「管理の簡便さ」か「制御性」かの選択です。
✍️ 余談:筆者のおすすめ
- 小規模〜中規模アプリ:DTUモデル(Standard S2〜S3)
- 明確な性能要件やSLAがある業務システム:vCoreモデル(Business Critical / Gen5以上)
📚 参考リンク
- [Azure SQL Database]
https://learn.microsoft.com/ja-jp/azure/azure-sql/database/?view=azuresql - [Azure SQL Database 仮想コア購入モデル]
https://learn.microsoft.com/ja-jp/azure/azure-sql/database/service-tiers-sql-database-vcore?view=azuresql - [Azure SQL Database DTU ベースの購入モデル]
https://learn.microsoft.com/ja-jp/azure/azure-sql/database/service-tiers-dtu?view=azuresql
まとめ一言
DTUは「抽象化された安定性能」、
vCoreは「実リソースに近い柔軟性能」。
どちらもAzureの思想を理解する上で重要な概念です。
Discussion