IT ProのためのWindows Azure Platform運用管理ガイド――[3]機能概要|データベース|トピックス|Computerworld

CW_Welcomeバナー

header_cwr_head_mid_fl_logo

CW_ADJUST_ウルトラバナー

CW_ウルトラバナー_Topics02

CW_ウルトラバナー_Topics04

CW_ウルトラバナー_Topics05

CW_ウルトラバナー_Topics06

CW_ウルトラバナー_Topics07

CW_ウルトラバナー_Topics08

データベース

RSS
【解説】

IT ProのためのWindows Azure Platform運用管理ガイド――[3]機能概要

第2章:Windows Azure Platformの機能概要――(2)SQL Azure
(2011年06月24日)

 「Windows Azure Platform」とは、「Windows Azure」「SQL Azure」「Windows Azure AppFabric」「Windows Azure Marketplace」の総称である。前回はアプリケーションサービスのプラットフォームとなるWindows Azureを解説した。今回はクラウド用のリレーショナルデータベースサービスであるSQL AzureをIT Proの視点から詳細に解説する。

【Windows Azure Platform運用管理ガイドについて】

 本ガイドでは、対象読者をインフラの設計、導入および運用管理を担当するIT Pro(IT担当者)に絞り、マイクロソフトが提供するパブリッククラウドのプラットフォームである「Windows Azure Platform」について、その位置づけとWindows Serverとの違い、そしてIT Proに求められる作業項目について解説しています。本ガイドにより、IT ProがWindows Azure Platformを使用したインフラストラクチャーの設計方針を理解するとともに、具体的な管理手法を身に着けることを目的としています。

[2.2]SQL Azure

 マイクロソフトがWindows Azure構想を発表した際、多くのフィードバックに書かれていたのが「クラウドでのリレーショナルデータベースのサポート」だった。確かに、クラウド内のDBMSは、アプリケーション移行などの多くの理由から利用価値に優れている。専門のサービスプロバイダーに信頼性の確保と基本的な管理業務の実施を依頼することは、自社で行うことが難しい組織にとっては、理にかなった対応といえる。

 また、クラウドにデータを保存すれば、モバイルデバイスを含む、あらゆる場所で実行されるアプリケーションからアクセスできる。サービスプロバイダーがもたらすスケールメリットを考えれば、オンプレミスデータベースよりもクラウドデータベースを利用するほうが、コストを抑えられる可能性があるだろう。

[2.2.1]データベースエンジン

 SQL AzureデータベースエンジンはSQL Serverテクノロジー上に構築された、クラウドベースのリレーショナルデータベースサービスである。このデータベースにより、可用性の高い、スケーラブルでマルチテナントなデータベースサービスを実現することができる。

 Windows Azureがアプリケーションサービスのプラットフォームを提供するPaaSであるのと同様に、SQL Azureはデータ層アプリケーションのプラットフォームを提供するPaaSであると言える。

 2011年5月現在、SQL Azureでは最大50GBのデータベースを保持することができる。これは多くの場合制約として捉えられるが、今後、この制約が緩和される予定があるとともに「フェデレーション」と呼ばれるテクノロジーの実装が予定されている。フェデレーションが実現されると、大規模なデータベースを「シャーディング(Sharding)」と呼ばれるテクノロジーによって分散することができるため、大量データの集約と負荷分散を同時に実現することができるようになる。

 SQL Azureの安全性の“かなめ”となるのは「TDS Gateway」とmasterデータベース、そしてFirewallサービスである。

 TDS Gatewayは、利用者がSQL Azureにアクセスする際に必ず通過しなければならないサービスで、利用者固有のmasterデータベースへの中継を行う。利用者はTDS Gatewayを介してmasterデータベースに格納されているユーザーIDとパスワードで認証を行う。正しく認証されると、masterデータベースの情報から利用者データベースの位置を割り出し、はじめてターゲットとなるデータベースにアクセスすることができる。

 

 SQL Azureには簡易的なIPアドレスベースのFirewallも実装されており、接続可能なコンピューターをIPアドレスのレンジで制限することができる。Firewallの設定はWindows Azureの管理ポータルから行うか、SQL Azureのmasterデータベースに接続して「sys.firewall_rules」ルールを編集する。いずれの方法を実施した場合であっても設定はmasterデータベースに書き込まれるため、SQL Azureのターゲットとなるサーバーに接続するに先立って接続元のIPアドレスがチェックされる。

 

 SQL Azureの可用性はWindows Azureストレージ同様、オリジナルのデータベースの他に2か所のサーバーに自動複製を行うことで維持される。このとき、元のデータベースを「プライマリ」、複製先の2か所を「セカンダリ」と呼ぶ。これら3つのデータベースへのアクセスには、かならずTDS Gatewayと呼ばれるサーバーを通過しなければならない。TDS Gatewayはサーバーの正常性を監視しており、いずれかのサーバーがダウンしたときには、常に1台のプライマリと2台のセカンダリの3台構成を維持しようとする。例えば、プライマリがダウンした場合には、セカンダリのうちの優先度の高いサーバーをプライマリに昇格させ、新たなサーバーをセカンダリとして組み入れる。

 UpdateやInsertされたデータをコミットする際は、かならずプライマリに対して行われ、結果のみを2台のセカンダリに複製することで整合性を維持する。

 

 これら3台のサーバーはロードバランスにも使用される。SQL Azureに接続するためのロードバランサーは、それぞれのサーバーの正常性や負荷状況から定期的にアクセスの優先度を決定している。こうした機構により、オンプレミスで1台のSQL Serverを構築するよりも安価に信頼性の高いデータベースシステムを構築することができる。

 

 SQL Azureは「表形式データストリーム」(TDS、Port 1433)を使用してどこからでもアクセスが可能であるため、SQL Azureデータベースを使用するアプリケーションは、企業内は当然のこと、Windows Azure上、企業のデータセンター内、モバイルデバイス上などで実行できる。また、「SQL Server Management Studio」「SQL Server Integration Services」、およびデータの一括コピーを行う「BCP」コマンドといった各種の標準ツールの多くがそのままSQL Azureに対して利用できるため、管理プロセスの大幅な変更が必要ないというメリットもある。

 

 また、SQL AzureからSQL Azureへデータベースを直接コピーするコマンドも用意されており、スナップショット的なバックアップとして活用することもできる。今後は時刻を指定したバックアップやリストアサービスの提供が予定されており(現時点で時期は未定)、オンプレミスを介さずにSQL Azure上のデータベース保全の設計が可能になるだろう。

 

 なお、今後アプリケーションの移行を検討する場合には、SQL AzureとSQL Serverの互換性について少し慎重になる必要がある。完全にSQL Serverとの互換性が保たれているかといえば、残念ながらそうではないからだ。代表的な例としては、認証方式があげられる。SQL Azureの認証方式は「SQL Server認証」のみであり、アプリケーションがWindows統合認証を使用している場合には修正する必要がある。

 このほか、SQL Azureでは使用することができないデータタイプや機能が存在するので、採用の前に十分なチェックが必要であることを認識しておかなければならない。詳細は以下のWebサイトを参照していただきたい。

■SQL AzureでサポートされているT-SQL [URL]http://msdn.microsoft.com/ja-jp/library/ee336281.aspx

  • 【IT ProのためのWindows Azure Platform運用管理ガイド】
    [1.Windows Azure Platformの概要]
    第1章:Windows Azure Platformの位置づけ
    第2章:Windows Azure Platformの機能概要
     (1)Windows Azure
     (2)SQL Azure
     (3)Windows Azure AppFabricとWindows Azure Marketplace
    第3章:Windows Azure Platformの料金体系
    [2.Windows Serverとの違いとIT Proに求められる作業]
    第4章:Windows Serverとの違い
    第5章:IT Proと開発者の作業分担
    第6章:Windows Azure Platformの契約手順
    [3.Windows Azure Platformの監視と管理]
    第7章:管理ポータルを使用した基本的な管理作業
    第8章:高度な管理
    第9章:PowerShellによる管理の自動化
    第10章:便利なツール

記事詳細テキストバナー

ページの先頭へ戻る