SQL Azureを徹底活用

第1回SQL Azureとは何か[その1]

Windows Azure Platformから見たSQL Azure

Windows Azure Platformにおいて、データの永続化を担うのがWindows Azure Storage ServiceとSQL Azureです。Windows Azure Platformの構想が発表された当初は、リレーショナルデータベースではないSQL Servicesが一角を占めていました。しかし、顧客からのフィードバックを受け、SQL Servicesを撤回し、リレーショナルデータベースであるSQL Azureが発表されました。

SQL Azureを構成する機能

SQL Azureには、発表されている機能としてデータベース、Data Sync、Reportingの3つがあります。データベースエンジンは2010年1月から正式提供されていますが、Data SyncとReportingはCTP(Community Technology Preview)版で提供されています。

図1 SQL Azureの構成機能と現状
図1 SQL Azureの構成機能と現状

SQL Azureデータベース(以後、SQL Azureと表記します)は、SQL Server 2008をもとに開発されたクラウドで提供されるリレーショナルデータベースです。そのため、SQL Serverとの互換性が高くSQL Serverを対象に作成されたプログラムからの移行が容易です。

SQL AzureとSQL Serverデータベースは、今後も相互補完をしながら開発が進められることが発表されています。データベース共通基盤である次世代データベースプラットフォームアーキテクチャで相互の互換性を維持されます。現在提供されているSQL Azureエンジンは、開発が進められているコード名Denaliと呼ばれる次期SQL Serverエンジンです。

図2 SQL AzureとSQL Server
図2 SQL AzureとSQL Server

SQL Azure Data Syncは、画面上で操作をしてデータベースの同期設定をすることができるノーコーディングデータ同期サービスです。SQL AzureとSQL Azure、SQL AzureとオンプレミスのSQL Server データベースのデータを一方向、もしくは双方向で同期することができます。

SQL Azure Reportingは、SQL Server Reporting Servicesで開発したレポートプロジェクトをそのままホストすることができるサービスです。現時点では、レポートのデータソースはSQL Azureのみを使用することができます。今後はパフォーマンスの改善とアクセス権限制御の強化などが予定されています。

SQL Azureのすぐれた点

SQL Azureのすぐれた点は、早い、安い、簡単の三点です。

SQL Azureの使用を開始するまでが早いです。SQL Azureのサーバを用意し、データベースを作成するまでに必要な時間は、Windows Azureサブスクリプションを契約後、数分です。数分でSQL Azureサーバを作成し、データベースを作成することができます。オンプレミスのSQL Serverの場合は、物理サーバを手配し、RAIDを組んで、OSのインストール、SQL Serverのインストール、データベースの物理設計、クラスタリングまでをするには、時間と工数が必要になります。

SQL Azureの使用量が安いです。料金は、判断基準や前提条件に応じて受け止め方が変わるため一概に断言できないのですが、それでも安いと言えるかと思います。

SQL Serverを運用するには、物理マシン、Windows Server OSライセンス費、SQL Serverライセンス費が必要になります。それに対して、SQL Azureは最大使用量に応じた課金です。

Business Editionのデータベース1個を40GB程度で使用した場合、5年間で250万円程度になります。一方で、Web Editionのデータベース1個を4GB程度で使用した場合、5年間で31万円程度になります。

SQL Azureは簡単です。SQL Serverは、使用するだけであればインストールウィザードに従えばインストールできます。しかし、パフォーマンスや可用性を考慮すると、物理設計やデータベースの設定変更などが必要になります。SQL Azureの場合は、それらを考慮した最適な状態のデータベースを提供します。SQL Serverのインストールや設定に不慣れな方や開発に専念したい方であれば、SQL Azureのほうが適していると思います。

SQL Azureの留意点

SQL Azureの留意点としては、性能、容量、可用性の三点が挙げられます。

SQL Azureは、共有リソースで提供されるサービスの為、性能に上限があります。現状では、リソースの占有ができないため、一定以上の性能が必要な場合にはSQL Azureは適していません。ハードウェア増強によるスケールアップをすることができないため、アプリケーションに性能問題が発生した場合でも、アプリケーションのチューニングでしか対応することができません。

SQL Azureは、現時点では最大サイズ50GBまでしか使用することができません。50GB以上必要な場合は、プログラム側で複数データベースを結合する対応が必要です。この制限を緩和するために、最大サイズを50GB以上に、最少サイズを1GB未満に拡張することが予定されています。SQL Azure側で分割、結合することができるSQL Azure Federationの提供が予定されています。

SQL AzureのSLA(サービスレベル契約)は、月間稼働率99.9%です。月間稼働率99.9%は、月に40分必ず止まるというわけではありません。基本的には、24時間1か月間無停止稼働を前提としたサービスです。SLAは最低保障でも、最大保障でもないことに留意してください。SLA99.9%の良し悪しについては各プロジェクト特性に応じて判断すべきものですが、許容できない場合はオンプレミスを選択する必要があります。

SQL Azureのプロビジョニング

SQL Azureは、Windows Live IDアカウントとサブスクリプション契約が紐づきます。サブスクリプションの下に複数のSQL Azureサーバを作成することができます。SQL Azureサーバの下に、SQL Azureデータベースを作成します。

現時点では、1つのサブスクリプションの下に6個のSQL Azureサーバ、1つのSQL Azureサーバの下に149個のデータベースを作成することができます。それ以上必要な場合は、マイクロソフトに電話し与信に通れば、作成できるようになります。

図3 Windows Live IDアカウント/サブスクリプションとSQL Azure
図3 Windows Live IDアカウント/サブスクリプションとSQL Azure

SQL Azureのサーバは、SQL ServerのHTTPエンドポイントに相当するもので、物理マシンを意味していません。SQL Azureサーバは論理的な括りです。SQL Azureサーバの下に2つのデータベースを作成すると、同じ物理マシン上にホストされるかもしれませんし、まったく別の物理マシン上にホストされるかもしれません。

1つのSQL Azureデータベースを作成すると、3つの物理マシン上に3重化されます。データベースを作成すると、1つのプライマリレプリカと2つのセカンダリレプリカが作成されます。

図4 SQL Azureの3重化構成
図4 SQL Azureの3重化構成

常に3重化されており、プライマリレプリカが使用できなくなった場合、自動的にセカンダリレプリカに切り替わります。データをコミットする際には、プライマリレプリカと1つのセカンダリレプリカ両方がコミットされて初めてコミットが成功する仕組みとなっています。この3重化の仕組みは、SQL Azure独自の実装がされており、クラスター化インデックスを使用して実現しています。


まずは、Windows Azure Platformを無料で試すためのアカウントを取得しましょう。

さらに詳しい技術情報はこちらから。

おすすめ記事

記事・ニュース一覧