🧠

【解説】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以上)

📚 参考リンク


まとめ一言
DTUは「抽象化された安定性能」、
vCoreは「実リソースに近い柔軟性能」。
どちらもAzureの思想を理解する上で重要な概念です。

Discussion