5月24~25日に開催した日本マイクロソフトの「de:code 2016」では、ソフトウェア開発者向けに150を超える多くのセッションが行われた。本稿では日本マイクロソフト クラウド&エンタープライズビジネス本部 エグゼクティブプロダクトマネージャーの北川剛氏による「Cloud FirstをリードするAzure SQL Databaseの仕組みと新機能」の内容をご紹介する。
日本マイクロソフト クラウド&エンタープライズビジネス本部 エグゼクティブプロダクトマネージャーの北川剛氏
北川氏はセッション登壇前に受けたメディア取材に首を傾げていた。その内容は「PaaSのデータベースとしての特徴、サーバがフェイルオーバーした場合の対応」といったものだという。
パッケージ製品として今後リリースするMicrosoft SQL Server 2016と、PaaSであるAzure SQL Databaseは似て非なる存在だが、その性格や位置づけは大きく異なる。MicrosoftはAzure SQL Databaseに新機能をプレビューとして提供し、最低6カ月間のテストを経てGA(General Availability)を達成。
その後フィードバックを反映させたコードをSQL Serverに統合させてきた。このように基幹システムの一部のとして動作するSQL Server 2016と、スピーディに物事が進むクラウドソリューションのAzure SQL Databaseは役割が異なる。
あくまでも保守管理やフェイルオーバーした場合の詳細なログが必要な場合、IaaSを構築するコストを支払い、設計を積み上げることを厭わない場合はパッケージ版を選択すればよい。そういったコストを支払わず日本マイクロソフトに任せたい、単にデータの入れ物としてデータベースを利用したいという顧客にこそ、Azure SQL Databaseを選択してほしいと北川氏は説明した。
冒頭から、このような説明を行った理由の1つが「PaaSのデータベースが理解されていない(北川氏)」からである。Azure SQL Databaseはデータ保全やリカバリー方法の提供を重視するソリューションであり、内部動作情報を詳細に提供するパッケージ製品ではない。この「ボタンの掛け違いが生まれると、弊社のサポート対応が悪いという不満に感じてしまう(北川氏)」ため述べたという。
もちろんAzure SQL Databaseに障害が発生した際は、データやサービスの復旧に全力で対応できるサポート体制を用意していることも強調した。
北川氏はAzure SQL Databaseを使ってほしいユーザー層として、「クラウドを前提としたSaaS」「社外ユーザー向け業務アプリケーション」「SaaSに移行するISV」「社内ユーザー向け業務アプリケーション」と4つのポイントを掲げた。
例えばAzure SQL Databaseを業務アプリケーション用バックエンドとして使用しつつ製品やサービスを強化し、ユーザーの要望を迅速に満たすことを求めるユーザーや、データベースの設計よりもサービスを先に提供し、フィードバックを受けながらブラッシュアップするようなアジャイル開発を行うユーザーにAzure SQL Databaseは向いているという。
アプリケーション開発で使用するプラットフォームのサポートも充実し、前者は.NETやPHP、Java、ODBC(Open Database Connectivity)。さらにコミュニティと共同でRubyやPython、Node.jsも用意されている。
Azure SQL Databaseの特徴としては、「学習と適用」「拡張可能」「マルチテナント」「開発に集中」「データの保護」と5つのキーワードでまとめ上げた。1つめの学習と適用は、パッケージ版はデータベースの稼働履歴を蓄積し、それに応じてチューニングする機能を用意していたが、Azure SQL Databaseは管理者の負担を下げるため、どのテーブルにインデックスを加えればいいかなどを、Index AdviceやQuery Performance Insighが判断し、Azure Potalを通じてフィードバックするという。
さらにThreat Detectionで異常なアクセスを検知し、相互的なクエリのパフォーマンス情報を必要な時に利用できるQuery Storeを供える。
「拡張可能」は、スループットの定義を見直すため比較可能な処理性能としてDTU(Database Transaction Units)という単位も新たに設けた。一般的なオンライントランザクション処理を1秒間に完了可能なトランザクション数を測定して算出した値を基に、Basic/Standard/Premiumという3段階のサービス階層を用意(Standardはさらに4段階、Premiumはさらに5段階)。
SQLデータベースサービス階層