SE の雑記

SQL Server の情報をメインに Microsoft 製品の勉強内容を日々投稿

Elastic Pool Preview を触ってみる その 1

leave a comment

SQL Database Elastic Pool (Preview) が使用できるようになっていますので、軽く触ってみたいと思います。
詳細な情報は以下から確認できます。

SQL Database elastic database reference (preview)
SQL Database elastic pools (preview)
Elastic database jobs overview
Create and manage a SQL Database elastic pool (preview)

料金についても確認できます。
http://azure.microsoft.com/ja-jp/pricing/details/sql-database/

あと、Elasctic Scale API (Elastic Scale Client API) は Elastic Database Tool になったようです。
Azure SQL Database elastic database tools topics

■料金について


Elastic Pool の料金については以下のようになります。

image

料金としては、

  • Elastic Database Pool
  • Elastic Databases

の 2 つで構成されています。
Pool の DTU のサイズと、Pool に含めるデータベースの個数を考慮する必要がありますね。

■Elastic Database Pool の課金

Elastic Database Pool の課金は、「eDTU 単位」 (Elastic Pool の DTU のサイズ) となります。
# eDTU はプールの作成時に指定 / プールの作成後に変更をすることができます。
eDTU 単位の課金は、プールで指定している DTU に対しての課金となり、その DTU を実際に使用しているかどうかに限らずに発生する感じでしょうか。

西日本で Standard のプールを 200 DTU で利用した場合、eDTU 単位の料金が「0.31円/時間」ですので、

  • (0.31 ×  24 × 31) × 200 = 46,128 円 (プレビュー終了後は、92,256円)

が Elastic Database Pool で発生する課金となるかと。

Elastic Database Pool の eDTU については、プールで使用できる DTU の上限だけでなく、データベースのストレージサイズにも利用されます。
詳細については、Create and manage a SQL Database elastic pool (preview) に記載されています。

image

1DTU = 1GB のストレージが割り当てられますので、200 DTU にした場合は、ストレージの上限が 200GB となりますので、性能だけでなく、プールに含めるデータベース全体として、どの程度のストレージを利用するかも考慮をして、eDTU のサイズは検討する必要が出てきそうです。
# 現状の Preview では、Standard のみが利用できますので、データベース単位の最大は 250GB となります。

 

■Elastic Databases の課金

Elastic Pool では、Pool のサイズに応じた課金だけでなく、プール内に作成したデータベース単位でも課金が発生します。
Elastic Databases の Standard での、課金では、1 データベースにつき

  • (0.18 × 24 × 31) = 133.92 円 (プレビュー終了後には 267.84 円)

の課金となっています。Pool の eDTU の課金と比較したら誤差の範囲かも知れないですね。

Standard の場合は最大 100DB までは配置できるようですので、13,392 円 (2,6784 円) がデータベースで必要となる課金の最大値となりそうですね。

ホストできるデータベースの数は、DTU の最小値によって変わり、「プールの DTU / プールの最小値」がホストできるデータベースの上限の個数となるようです。 
そのため、 プールの DTU が 200 で、データベースの DTU の最小値を 100 にした場合は、2 個、20 にした場合は 10 個となります。

DTU の最小値は、プールに含まれるデータベースで最小限確保しておく必要のある、DTU となりますので、プールの eDTU の最大を超えないようにこのような仕様となっているようですね。

なお、プール内に含めるデータベースの DTU の最大値は、Standard の S0 ~ S3 までの DTU の刻みと同じ設定となっているようです。

image

Elastic Pool は選択した、パフォーマンスレベルのデータベースの集合だと思いますので、DTU も選択したレベルに合わせられるのでしょうね。

 

■シングルデータベースとの比較

Elastic Pool が追加されたことで、今までのデータベースは「シングルデータベース」と呼ばれるようになりました。
# Elastic Pool のデータベースは「Elastic データベース」と呼ばれます。

シングルデータベースを Standard レベルで使用した場合の課金は以下のようになります。

image

シングルデータベースと Elastic Database の金額を比較するとそれなりにがありますので、Elastic Pool を使用する場合には、ある程度の数を集約できないと金額的なメリットを享受するのは難しそうですね。

Elastic Pool の 200eDTU の場合、最大で S3 の DB (100DTU) が二つ作成できることになります。

  • S3 を 2 個作成した場合 : 34,680 円
  • 200 eDTU で最小 DTU 100 の DB を 2 個作成した場合 : 46,128 円 + 267.84 円 = 46,395.84 円
    (プレビュー終了後は、92,256円 + 535.68 円 = 92,791.68 円)

となるかと思いますので、このような使用方法をした場合は、金額的なメリットが出ないかと思います。
Elastic Pool を使用する場合、常に最大の DTU を必要とするのではなく、平準化された性能でどれだけプールにデータベースを含めるかを考慮するのがポイントとなってきそうですね。

 

■Elastic Pool の作成


Elastic Pool はクラシックではないポータル (以前、プレビューポータルといわれていたもの) から作成することができます。

まずは、普通に SQL Database v12 でシングルデータベースを持つ、サーバーを作成します。 
なお、 Elastic Pool は v12 を使用する必要がありますので、v11 では利用することができません。

v12 のサーバ作成語に、サーバーをポータルから開くと「Add pool」が表示されていますので、ここから Elastic Pool を作成することができます。
image

 

現状はプレビューですので使用条件に合意する必要がありますが、ここから、どのデータベースを Elastic Pool に含めるかを選択することができます。
Basic のデータベースも選択ができましたので、Standard 以外のシングルデータベースでも選択はできるようですね。
# DB で使用されているサイズによっては、プールに追加できない可能性があるかと思いますが。
image

次に Pool のサイズを決定します。
この画面では、Pool に含めるデータベースの DTU の最大と最小を設定することができます。
imageimage

これで、Elastic Pool の作成は完了です。
Elastic Pool に追加されたデータベースについては、パフォーマンスレベルが、「Standard : ElasticPool」として設定されます。
image

Elastic Pool には、同一のサーバーに作成されているデータベースを追加することができますので、プールにデータベースを追加したい場合は、任意のタイミングで追加することができます。
image

プールからの削除もこの画面から行うことができます。
Elastic データベースの「データベースの削除」からであれば、プールからエントリを外す動作になりますが、単体のデータベースを削除してしまうとそちらは「DROP DATABASE」となり、データベース自体が削除されてしまいますので、「プールから外す」操作となっていることを必ず確認したほうがよいかと。(最初勘違いしていて、データベース削除しないといけないものだと思っていましたが、そんなことはありませんでした…。)
# プールから削除したら、Standard S3 のスタンドアロンデータベースとして解放されていました。
なお、プールの削除は全データベースのエントリをプールから外した状態でないと実施することができません。

接続については通常の SQL Database と同じでサーバーに対して接続を行います。
image

ジョブを使う場合は、プール内の DB に対して同一のクエリ実行等ができるようですが、SSMS で使用する場合には、単一の DB と変わらないようですね。

プール全体としての DTU の使用状況と、データベース単位での DTU の使用状況がわかるようですので、全体的に負荷が高い場合には、プールの DTU を上げるというような考慮が必要になってくるようです。
ピーク時間がずれるような特性や、負荷が低いものと高いものを複数混合して配置するのであれば平準化されていいのかもしれないですね。
image

如何にして集約をするか、如何にしてプール内のデータベースの管理コストを抑えるかが Elastic Pool を使用する際に注意しなくてはいけない点かもしれないですね。
特定のデータベースのみを優先して DTU を高いものにするということはできないようで、プールに含まれるデータベースのすべてで DUT の最大値は同一となりますので、複数のデータベースで高い負荷が発生した場合に、他のデータベースの DTU にもある程度余裕があるような形でのサイジングを意識する必要が出てきそうです。

Share

Written by Masayuki.Ozawa

5月 1st, 2015 at 1:42 am

Posted in SQL Database

Tagged with

Leave a Reply