SQL エラスティック プールの作成

完了

サービスとしてのソフトウェア (SaaS) プロバイダーは、このフィットネス会社のように、顧客ごとに (ここでは、場所ごとに) SQL データベースをプロビジョニングする必要が多々あります。 サービス プロバイダーとしては、予測できないワークロードに対処する必要があります (特に顧客データを保存する場合)。 各クライアントが拡大する速さや需要が急増するタイミングについて見通しが立たない場合もあります。

データベース リソースはこれまでどのようにプロビジョニングされていましたか?

従来、SaaS プロバイダーは、ピーク時の需要に対応する容量を確実に確保するためにリソースの過剰プロビジョニングを行うか (これにはコストがかかります)、過小プロビジョニングを行う (これは需要が高いときのパフォーマンスに影響を及ぼす可能性があります) しかありませんでした。

SQL エラスティック プールとは?

SQL エラスティック プールとは、Azure SQL データベースのグループのパフォーマンスおよびコストをスケーリングして管理するために使用するリソース割り当てサービスです。 エラスティック プールを使用すると、グループに合わせてリソースを購入できます。 プールに使用できるリソースの量を設定し、プールにデータベースを追加し、プール内のデータベースに対するリソースの最大限度と最小限度を設定します。

プール リソースの要件は、グループのニーズ全体に基づいて設定します。 プールを使用すると、割り当てられたリソースを、プール内のデータベースで共有することができます。 SQL エラスティック プールは、複数の SQL データベースの予算とパフォーマンスを管理するために使用されます。

エラスティック プールはどのような場合に使用しますか?

平均使用率は低いが、低頻度で使用率が急激に高くなるいくつかの SQL データベースを備えている場合に、SQL エラスティック プールは最適です。 このシナリオでは、グループ対する急増を管理するのに十分な容量をプールに割り当てることができますが、リソースの合計は、すべてのデータベースのピーク時の需要の全合計より小さくなる場合があります。 スパイクが発生する頻度は低いため、1 つのデータベースのスパイクがプール内の他のデータベースの容量に影響する可能性はほとんどありません。

ここで取り上げるフィットネス会社のシナリオでは、個々の場所で一年のそれぞれ異なる時期にキャンペーンを展開したり、地域の祝日の間や一日のそれぞれ異なる時間に需要のスパイクが発生する可能性があります。

プールにはどれだけの数のデータベースを追加しますか?

一般的なガイダンスとして、個々のデータベースが容量のスパイクに対応するために必要なリソースをすべて合わせたものが、エラスティック プールに必要な容量の 1.5 倍を超える場合、プールはコスト効果が高いと言えます。

コスト削減効果を得るには、1 つのプールに少なくとも S3 データベースを 2 個、または S0 データベースを 15 個追加することをお勧めします。

パフォーマンス レベルによっては、最大で 500 個のデータベースを 1 つのプールに追加できます。

エラスティック プールの作成

SQL エラスティック プールは、SQL サーバーでホストする必要があります。 既存のサーバーを指定するか、エラスティック プールを作成するときに新しいサーバーを作成します。

多くの Azure リソースと同様に、エラスティック プールは、Azure portal を使用するか、Azure CLI を使用して az sql elastic-pools create コマンドを実行するか、PowerShell を使用して New-AzSqlElasticPool コマンドを実行することで作成できます。

次のユニットでは、SQL エラスティック プールを作成するための演習を完了します。

エラスティック プールへのデータベースの追加

データベースは、Azure portal、Azure CLI、または PowerShell を使用して追加できます。

Azure portal を使用する場合は、既存の SQL サーバーに新しいプールを追加することも、新しい SQL エラスティック プール リソースを作成してサーバーを指定することもできます。

CLI を使用する場合は、az sql db create を呼び出し、--elastic-pool-name パラメーターを使用してプール名を指定します。 このコマンドでは、既存のデータベースをプールに移動することができ、既存のものが存在しない場合は、新しいデータベースを作成することができます。

PowerShell を使用する場合は、New-AzSqlDatabase を使用してプールに新しいデータベースを割り当てたり、Set-AzSqlDatabase を使用して既存のデータベースを移動したりできます。

ご利用の Azure SQL サーバーから既存の Azure SQL データベースをプールに追加することも、新しいデータベースを作成することもできます。 同じプール内にサービス レベルを混在させることができます。