InfoQは今回、Microsoft Azure SQL Database Engineeringチームのメンバがプレゼンテーションを行なう、PASS Summit 2017のメディアイベントに参加する機会を得た。プレゼンテーションでは、DBAとアプリケーション開発者双方にとってデータベース管理を簡単にするようデザインされた、Azure SQL Databaseの新機能に重点が置かれた。Microsoftはこれらの機能を、Azure SQL Serverプラットフォーム上に構築されたオペレーションとの対比から、“ビルトイン・インテリジェンス”と呼んでいる。
プレゼンテーションでは、パフォーマンス管理インテリジェンス(Performance Management Intelligence)、アダプティブクエリ処理(Adaptive Query Processing)、セキュリティインテリジェンス(Security Intelligence)という3つの機能カテゴリが紹介された。いずれもデータベースの運用効率の向上を目的としたものだ。今回の記事ではこれらを順に検討していくが、サービスの中には公開プレビュー版や、まだ一般向けに公開されていないものもある点に注意してほしい。
パフォーマンス管理インテリジェンス
- インテリジェントインサイト
- 自動チューニング
- サービス層アドバイザ(関連)
インテリジェントインサイト(Intelligent Insights)は、Azure SQLがクエリ操作の障害発生を監視するプロセスである。クエリのレグレッションが確認された場合は、問題の修正方法に関する提案と合わせて報告される。プレゼンテーションで示された例では、アドホッククエリAが、既存のクエリBの発生させたリソース制限によってパフォーマンス上の影響を受けていた。これに対してAzure SQLは、アドホッククエリをオフにするか、あるいはより多くのリソースが利用可能にするためにAzureの料金レベル(pricing tier)を上げることを提案した。(インテリジェントインサイトは公開プレビュー中)
自動チューニング(Automatic Tuning)を有効にすると、Azure SQLによるデータベースパフォーマンスの監視が可能になり、不足しているインデックスの追加や、未使用ないし重複するインデックスの削除によるパフォーマンス向上が試みられる。このメリットを活用する上で、アプリケーションレベルの変更は不要である。
サービス層アドバイザ(Service Tear Advisor)はアプリケーションワークロード用のダッシュボードを備えた管理ツールで、現在使用しているAzure料金レベルを最適化する方法についてアドバイスを提供する。例えば、データベースが使用しているリソース量に対して料金が高過ぎる場合、STAはより低価格でパフォーマンスの低い料金レベルを推奨する。逆にデータベースのリソースが枯渇していて、より高価格なプランを選択するメリットのある場合もある。データベース管理者がこのツールを使うことによって、ビジネスニーズを満たしつつ、データベース予算をより効率的に使用することが可能になる。
アダプティブクエリ
アダプティブクエリは、学習(Learn) - 適用(Adapt) - 検証(Verify)という原則に基づいて動作する。クエリの最適化では、カーディナリティ推定(CE)プロセスを使用することで、最高のクエリパフォーマンスのために使用する操作順序(order-of-operations)と物理的アルゴリズムに関して、インテリジェントな判断が行なわれる。ここでの推定に誤りがあると、クエリ応答時間の低下やリソースの過度な使用、スループットの低下など、さまざまな悪影響が顕在化する。これは当然回避するべきであるため、これらの推定値に基づいて、どのようなタイプのクエリを実行するかが決定される。
セキュリティインテリジェンス
頻発するデータ漏洩やWebハッキングを考えるならば、データベースの保護が極めて重要であることは明らかだ。このような懸念事項に加えて、さまざまな政府機関や業界組織による規制もある。データベースのセキュリティを無視することはできない。
脆弱性評価(Vulnerability Assessment、現在は公開プレビュー中)は、DBAによるデータベースの監視およびセキュリティ向上を支援する目的で開発された。これを実行すると、運用中のデータベースから保護されていないデータや設定ミスをスキャンした上で、コンプライアンスの指定要件を満足するために使用可能な詳細なレポートを提供する。このツールはオンプレミスのSQL ServerでもAzure SQL Databaseでも使用できるため、両方の環境を保護することが可能だ。
VAはいくつかの面でDBAにメリットを提供する。第1に、セキュリティ保護されていない重要データ(SSNなど)をスキャンして、それを保護する方法について推奨する。第2に、さまざまなベストプラクティス(ファイアウォール、監査、格納時の暗号化など)が適用されているかをチェックする。最後に、データベースの変更を追跡することにより、セキュリティのベースラインが確立していれば、将来的にシステムがその設定から逸脱しないように監視することが可能である。(VAは現在公開プレビュー中)
脅威検出(Threat Detection)は、データベースへのSQLインジェクション攻撃や異常な動作、セキュリティ脆弱性をリアルタイムに監視する、常時オン(可能であれば)のツールである。問題が検出されるとDBAに警告を発して、是正措置の実施を可能にする。脆弱性評価(Vulnerability Assessment)のように静的ではないため、脅威が発生した時点で検出することが可能だ。
この記事を評価
- 編集者評
- 編集長アクション