原典:Announcing Great New SQL Database Capabilities in Azure
はじめに
現在、より優れたクラウドアプリケーションが構築できるSQLデータベースについての新機能をいくつかAzureに追加しています。具体的には以下のものになります。
- Elastic Database Pool機能に対して2つの新しい料金層を導入します。Elastic Database Poolでは、自分のアプリ専用リソースのプライベートプール上で、複数の分離独立したデータベースが実行できます。これにより、SaaS開発者はそれぞれのお客様を経済的な方法でより上手く隔離できるようになります。
- 計算、ストレージ、ネットワークリソースが大幅に追加された、さらに大きなデータベースが実行できるSQLデータベースの新しいハイエンドなスケールオプションも導入します。
これらの追加はどちらもすぐに利用可能です。
Elastic Database Pool機能
数十、数百、さらには数千ものデータベースを扱うSaaS開発者の場合、Elastic Database Poolにより、コントロールできる予算範囲で、データベース間における作成、メンテナンス、パフォーマンス管理のプロセスが劇的に簡素化されます。
![](http://cz-cdn.shoeisha.jp/static/images/article/8931/8931_001.gif)
一般的なSaaSアプリケーションパターン(特にB2BのSaaSアプリケーション)は、各お客様のデータ保存に異なるデータベースを使用します。これは、お客様ごとにデータを分離するところに利点があります(また各お客様のデータを、個別で暗号化したりバックアップできます)。このパターンは、分離やセキュリティの観点で優れている一方、各データベースのリソース消費(CPU/IO/メモリパターン)が変化する予測不可能なものとなってしまったり、お客様ごとのピークや谷の予測が難しいため、リソースをどれだけ準備しておけばいいかの判断も難しかったりします。開発者は、これまで、ピーク使用時に基づいたオーバープロビジョニングデータベースリソースにして余分な費用を支払う、もしくはピーク時のパフォーマンスと顧客満足度を犠牲にしてアンダープロビジョニングで費用を節約するという、2つの選択肢に直面していました。
Microsoftは、特に開発者のこの問題が解決できるように、Elastic Database Poolを作成しました。Elastic Database Poolでは、データベースリソースの共有プール(CPU/IO/メモリ)を割り当てられるので、このプール上で複数の分離データベースを作成/実行できます。プールに追加する各データベースには、最小と最大のパフォーマンスSLA制限が設定できます(プール内の他のデータベースへ不当な影響がないようにします)。管理APIにより、これら複数データベースのスクリプト作成や同時管理、またオプションで複数にわたるクエリ実行がはるかに簡単になります(様々な操作で便利)。中でも最高なのは、Elastic Database Poolに複数のデータベースを追加した時、典型的な利用負荷を平均化でき(通常お客様のピークと谷の時間帯は異なります)、個別にデータベースを実行した場合に比べ、結果的にはるかに少ないデータベースリソースで(支払も少なく)済むことになります。
以下のグラフは、SaaS開発者がElastic Database Pool機能を利用するときの典型的な例を示しています。個々のデータベースは利用において異なるピークと谷があります。Elastic Database Poolでこれら複数のデータベースを組み合わせると、データベースが個々でリソースを利用する時に比べ必要な全体のリソースがはるかに少なくなり、ピークと谷が(通常、異なる時間に発生するもの)正常化する傾向があります。
Elastic Database Poolは、SQLデータベースサービスを使用して構築されているため、そこに組み込まれているサービス機能である、99.99%のSLA、追加費用なしの複数高可用性レプリカサポート、ダウンタイムなしのパッチ適用、GEOレプリケーション、ポイントインタイムリカバリ、データのTDE暗号化、行レベルセキュリティ、フルテキスト検索なども、すべて利用できます。結果として、高い柔軟性の提供だけでなく、費用節約も可能な非常に素晴らしいデータベースプラットフォームになりました。