はじめに
AZ-305の問題集を解いていたのですが、Azure SQL Databaseの選択肢が多くいつ何を選択すればよいのか全く理解できていないことに気づいたので、調査・整理することを目的に記載します。
大まかな選択肢
まずは大きく三つの選択肢
- Azure SQL Database
- Azure SQL Managed Instance
- Azure VM上に構築したSQL Server
選択ポイント
まず何が違うのか。ですが、
1番、2番はPaaS、3番はIaaSです。
MSが管理している範囲が違います。
3>2>1 の順にユーザが自由にできる範囲が広いです。
※ユーザが管理すべき範囲大きいということになります。
例えば既に利用しているSQLデータベースで細かい制御を行っている場合、PaaSでは制御できないことがあります。そうすると必然的に3番を選択することになります。
単純に物理的なサーバをAzureに移動させたいだけ。という要望があった際も3番となるかと思います。(オンプレミスとほぼ変わりなくVMへアクセスしてメンテナンス)
可能な限り管理をMSへ任せたい場合は2,3を検討します。
オンプレミス移行でなるべく管理工数を減らしたいが、ある程度互換性のあるサービスを選びたい場合は2、移行等でなく新規であれば3などの使い分けになるのではと思います。
コストはAzure SQL Managed Instance > Azure SQL Database
公式ドキュメント
Azure SQL Database
5つの選択肢があります。
- 仮想コアベース
- General Purpose
- Business Critical
- Hyperscale
サーバレス(従量課金)か、プロビジョニング済み(固定料金)
- DTU
- Standard
- Premium
選択ポイント
仮想コアかDTUか
仮想コアベースではコア数、メモリ、ストレージ サイズなどを選択可能
DTUモデルは仮想コアほどきっちり性能を定義せず、DTUという指標を使って性能を決めます。(DTUモデルは抽象的)
問題の選択肢をここで絞るのは難しい印象ですが、ざっくり記憶。
公式ドキュメント一部抜粋ヒント
MSとしては仮想コア推し。仮想コアだけのメリットは下記
・Azure SQL Database 仮想コアベース Hyperscaleのストレージサイズは「10 GB – 128 TB」とずば抜けている。
・サーバレスを利用できる
・予約インスタンス・ハイブリッド得点が利用できる
・コンピューティング、メモリ、I/O、ストレージの上限が高い
・オンプレミスのデプロイからの移行の計画が容易
細かい部分
問題集にも少しでてきたので抜粋
I/Oレイテンシ:ビジネスクリティカルは超高速SSD、Premiumも251IOPSと高い
公式ドキュメント
スケーリング
Azure SQL Database
仮想コア、DTUどちらを選んでも下記2つのスケーリングから選択可能
- 単一データベース
- エラスティックプール
エラスティックプールは複数のデータベースをプール全体のリソース(複数の単一データベース)で自動スケーリングしてくれる。
最後に
見づらい部分もあるので、気づいた時に修正します。
間違えている点があれば優しく教えていただけると嬉しいです。