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

完了

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

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

従来、SaaS プロバイダーは、コストが増えることになる過剰プロビジョニングを行ってピーク時の需要に対応する容量を確実に確保するか、需要が高い時期にパフォーマンスに影響を及ぼす可能性がある過小プロビジョニングを行う必要がありました。

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

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

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

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

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

ここで取り上げたフィットネス会社のシナリオでは、個々の店舗で、一年のそれぞれ異なる時期にキャンペーンが展開されたり、地域の休日に需要の急増が見られたりします。

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

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

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

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

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

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

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

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

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

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

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

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

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

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