Azure SQL Databaseは、Microsoftのサービスとしてのデータベースであり、非常に高い柔軟性を提供します。これは、Platform-as-a-Service環境の一部として構築されており、製品の追加の監視とセキュリティを顧客に提供します。
Microsoftは継続的に製品の改善に取り組んでおり、AzureSQLDatabaseも例外ではありません。 SQL Serverにある新しい機能の多くは、Always Encrypted、Dynamic Data Masking、Row Level Security、Query Storeなど(ただしこれらに限定されません)、最初はAzureSQLDatabaseで起動されました。
DTU価格帯
Azure SQL Databaseが最初に起動されたとき、「DTU」またはデータベーストランザクションユニットと呼ばれる単一の価格設定オプションがありました。 (Andy Mallon、@ AMtwoは、「DTUとは一体何ですか?」でDTUについて説明しています)DTUモデルは、基本、標準、およびプレミアムの3つのサービス層を提供します。基本層は、標準ストレージで最大5つのDTUを提供します。標準層は、標準ストレージで10〜3000 DTUをサポートし、プレミアム層は、標準ストレージよりも桁違いに高速なプレミアムストレージで125〜4000DTUをサポートします。
vCore価格帯
Azure SQL Databaseがリリースされてから数年後、Azure SQLマネージドインスタンスがパブリックプレビューになり、Azure SQL Databaseの「vCores」(仮想コア)が発表されるまで早送りします。これらは、Gen4およびGen5プロセッサを備えた汎用およびビジネスクリティカルな層を導入しました。 Gen 4は古くなっているため、Gen5は現在ほとんどの地域で主要なハードウェアオプションです。
Gen 5は、最小2つのvCoreと最大80のvCoreをサポートし、RAMはvCoreあたり5.1GBで割り当てられます。汎用層は、2vCoreデータベースの640から80vCoreデータベースの25,600までの範囲の最大データIOPSを備えたリモートストレージを提供します。ビジネスクリティカルな層にはローカルSSDがあり、最大データIOPSは2vCoreデータベースの8000から80vCoreデータベースの204,800までの範囲ではるかに優れたIOパフォーマンスを提供します。汎用層とビジネスクリティカル層の両方で、ストレージの最大容量は4,096 GBであり、これが多くのお客様にとって制限となっていました。
HyperScaleデータベース
Azure SQL Databaseの4TBの制限を解決するために、Microsoftはハイパースケール層を作成しました。ハイパースケールを使用すると、読み取り専用ノードの迅速なスケールアウトに加えて、最大100TBのデータベースサイズにスケールアップできます。 vCoreモデル内で簡単にスケールアップおよびスケールダウンすることもできます。ハイパースケールデータベースは、vCoresを使用してプロビジョニングされます。 Gen 5では、Hyperscaleデータベースは2〜80のvCoreと500〜204,800のIOPSを使用できます。 Hyperscaleは、SSDベースのキャッシュを備えた各計算ノードから高いパフォーマンスを実現し、データをフェッチするためのネットワークラウンドトリップを最小限に抑えます。 SSDベースのキャッシュとページサーバーを使用するように設計されているHyperscaleには、すばらしいテクノロジーがたくさんあります。この記事では、アーキテクチャの内訳とそのすべてがどのように機能するかを示す図を確認することを強くお勧めします。
サーバーレスデータベース
お客様から非常に一般的なもう1つの要求は、ワークロードの増減に応じてAzureSQLデータベースを自動的にスケールアップおよびスケールダウンする機能でした。従来、お客様は、PowerShell、Azure Automation、およびその他の方法を使用して、プログラムでスケールアップおよびスケールダウンすることができました。 Microsoftはそのアイデアを採用し、Azure SQL Databaseサーバーレスと呼ばれる新しいコンピューティング層を構築しました。これは2019年11月に一般提供されました。これにより、お客様はvCoreの最小数と最大数を設定できます。このようにして、利用可能な最小の計算レベルが常にあることを知ることができ、指定された計算レベルに常に自動的にスケーリングできます。自動一時停止遅延を構成する機能もあります。この設定により、データベースが非アクティブになっている特定の時間が経過すると、データベースを自動的に一時停止できます。データベースが自動一時停止段階に入ると、計算コストはゼロになり、ストレージコストのみが発生します。サーバーレスの全体的なコストは、コンピューティングコストとストレージコストの合計です。コンピューティング使用量が最小制限と最大制限の間にある場合、コンピューティングコストは使用されるvCoreとメモリに基づきます。実際の使用量が最小値を下回っている場合、計算コストは構成されている最小vCoreと最小メモリに基づいています。
サーバーレス層は、顧客に多大な費用を節約すると同時に、需要に応じてデータベースを拡張できる一貫したデータベースユーザーエクスペリエンスを提供する機能を提供する可能性があります。
弾性プール
Azure SQL Databaseには、お客様がより高いリソース使用率を持つことができる共有リソースモデルがあります。顧客はエラスティックプールを作成し、データベースをそのプールに移動できます。その後、各データベースは、そのプール内で事前定義されたリソースの共有を開始できます。エラスティックプールは、DTU価格設定モデルまたはvCoreモデルを使用して構成できます。顧客は、エラスティックプールがすべてのデータベースのワークロードを処理するために必要なリソースの量を決定します。 1つのデータベースがプール全体を消費できないように、データベースごとにリソース制限を構成できます。エラスティックプールは、多数のデータベースまたはマルチテナントシナリオを管理する必要があるお客様に最適です。
プロビジョニングされたコンピューティング層の新しいハードウェア構成
Gen4 / Gen5ハードウェア構成は、「バランスの取れたメモリとコンピューティング」と見なされます。これは多くのSQLServerワークロードでうまく機能しますが、CPUの待ち時間が短く、CPUの負荷が高いワークロードのクロック速度が高く、vCoreあたりのメモリを増やす必要があるというユースケースがあります。マイクロソフトは、コンピューティング最適化およびメモリ最適化のハードウェア構成を再度提供および作成しました。これらは現在プレビュー中であり、特定の地域でのみ利用可能です。
汎用のプロビジョニングされた層では、Gen5ハードウェアよりもvCoreあたりのCPUパフォーマンスを向上させることができるFsv2シリーズを選択できます。全体として、72 vCoreサイズは、より低いCPUレイテンシとより高いクロック速度を提供することにより、80 vCoreGen5よりも高いCPUパフォーマンスを提供できます。 Fsv2シリーズはGen5よりもvCoreあたりのメモリとtempdbが少ないため、考慮する必要があります。
ビジネスクリティカルなプロビジョニング層では、メモリが最適化されたMシリーズにアクセスできます。 Mシリーズは、「バランスメモリとコンピューティング」構成のvCoreあたり5.1GBと比較して、vCoreあたり29GBを提供します。 Mシリーズを使用すると、vCoreを最大128まで拡張でき、最大3.7TBのメモリを提供します。 Mシリーズを有効にするには、現在、従量課金制またはエンタープライズ契約を結んでおり、サポートリクエストを開く必要があります。それでも、Mシリーズは現在、米国東部、北ヨーロッパ、西ヨーロッパ、米国西2でのみ利用可能であり、追加の地域では利用が制限されている可能性があります。
結論
Azure SQL Databaseは、コンピューティングとスケーリングのための幅広いオプションを提供する機能豊富なデータベースプラットフォームです。お客様は、DTUまたはvCoreを使用して、単一のデータベースまたはエラスティックプールのコンピューティングを構成できます。大規模なストレージ要件または読み取りスケールアウトのあるデータベースの場合、Hyperscaleを利用できます。さまざまなワークロード要件を持つお客様の場合、サーバーレスを使用して、ワークロードの要求の変化に応じて自動的にスケールアップおよびスケールダウンできます。 Azure SQL Databaseの新機能は、低レイテンシのCPUを必要とするお客様、またはメモリからCPUへの要件が高いお客様向けの、コンピューティング最適化およびメモリ最適化ハードウェア構成のプレビュー機能です。
Azureリソースの詳細については、以前の記事をご覧ください:
- AzureSQLデータベースのパフォーマンス調整オプション
- AzureSQLマネージドインスタンスのパフォーマンスに関する考慮事項
- 新しいAzureSQLデータベースの標準階層サイズ
- Azureのギャップを埋める:マネージドインスタンス
- データベースのAzureSQLデータベースへの移行