セールス: 1-800-867-1380

Azure SQL データベース開発に関する考慮事項

更新日: 2013年12月

Microsoft Microsoft Azure SQL データベース アプリケーションの開発は、SQL Server アプリケーションの開発と非常に似通っています。このトピックでは、Microsoft Azure SQL データベース アプリケーションの開発が従来と異なる点と、いくつかの注意事項について説明します。さらに、開発者が実行する必要のある基本的な手順と、推奨されるコーディング方法についても説明します。

Microsoft Azure SQL データベースを使用するには、まず Azure platform アカウントを作成する必要があります。Azure アカウントは、サブスクリプションの設定と管理、さらに Azure、Azure AppFabric、および Microsoft Azure SQL データベースの使用料金の請求に使用されます。Azure アカウントを作成した後で、Azure Platform Management Portal を使用して Azure SQL データベース サーバーやデータベースを追加または削除できます。Azure SQL Database Management API を使用して、プログラムで Azure SQL データベース サーバーを追加または削除することも、サーバーに関連付けられたファイアウォール ルールを管理することもできます。

Azure SQL データベース サーバーはデータベースの論理的なグループであり、複数のデータベースの一元的な管理ポイントとして機能します。Azure SQL データベース サーバーを作成すると、読み取り専用の master データベースが自動的に作成されます。master データベースによって、データベースや他のログインを作成する権限を持つログインが追跡されます。ログインまたはデータベースの作成 (CREATE)、変更 (ALTER)、または削除 (DROP) を実行する際には常に、master データベースに接続する必要があります。Microsoft Azure SQL データベースにおけるセキュリティ管理の詳細については、「Azure SQL データベースにおけるデータベースとログインの管理」を参照してください。

既定で、Azure SQL データベース サーバーに対するアクセスはすべて Azure SQL データベース ファイアウォールによってブロックされます。Azure SQL データベース サーバーの使用を開始するには、Azure SQL データベース サーバーへのアクセスを有効化するサーバーレベルのファイアウォール ルールを 1 つ以上指定する必要があります。サーバーレベルのファイアウォール ルールは、Management Portal ユーザー インターフェイスで管理することも、Database Management API を使用してプログラムで管理することもできます。Database Management API を使用するには、「Authenticating Azure SQL Database Management API Requests」の説明に従って、認証に使用する証明書を追加しておく必要があります。

サーバーレベルのファイアウォールの設定を作成した後、サーバーレベル プリンシパル ログインと master データベースを使用して、ファイアウォール設定を表示および編集できます。master データベースでは、ファイアウォールの設定をルールと呼びます。sys.firewall_rules ビューに現在のサーバーレベルのファイアウォール設定が表示されます。sp_set_firewall_rule ストアド プロシージャと sp_delete_firewall_rule ストアド プロシージャを使用して、サーバーレベルのファイアウォール ルールを変更できます。

また、Azure SQL データベース サーバー内の特定のデータベースへのアクセスを制御する場合は、それらのデータベースに対するデータベースレベルのファイアウォール ルールを作成できます。データベースレベルのファイアウォール ルールは、master データベースおよびユーザー データベースに対して作成できます。データベースに接続し、sys.database_firewall_rules ビューでデータベースレベルのファイアウォール ルールを表示できます。master データベースおよびユーザー データベースの sp_set_database_firewall_rule ストアド プロシージャと sp_delete_database_firewall_rule ストアド プロシージャを使用して、それぞれのデータベースに対するデータベースレベルのファイアウォール ルールを変更できます。サーバーレベルおよびデータベースレベルのファイアウォール ルールの詳細については、「Azure SQL データベース ファイアウォール」を参照してください。

Azure SQL データベース サーバーの Azure SQL データベース アカウントの詳細な課金情報については、sys.database_usage システム ビューおよび sys.bandwidth_usage システム ビューを使用して確認できます。詳細については、「Azure SQL データベースのアカウントと課金」を参照してください。

Azure SQL データベース を作成するには、次の 2 つの方法があります。

  • Management Portal を使用する。

  • CREATE DATABASE ステートメントを使用する。

内部設置型の SQL Server インスタンスから Azure SQL データベース にデータベースを移行する方法の詳細については、「Azure SQL データベース (以前の SQL Azure) へのデータベース移行」を参照してください。

また、「方法: ADO.NET を使用して Azure SQL データベースに接続する」のコード例で、クライアント アプリケーション コード内で CREATE DATABASE ステートメントを使用する方法を示しています。

noteメモ
データベースのエディションと名前を、作成後に変更するには、ALTER DATABASE ステートメントを使用します。

Microsoft Azure SQL データベース アプリケーションのビルドとホストには、次の 2 つの方法があります。

  • アプリケーション コードは自社データ センターに内部設置型でホストするが、データベースは Azure SQL データベース でホストする。アプリケーション コードからは、クライアント ライブラリを使用して Azure SQL データベース 内のデータベースにアクセスします。使用可能なクライアント ライブラリの詳細については、「Azure SQL データベースのガイドラインと制限事項」を参照してください。コード例は、「方法: ADO.NET を使用して Azure SQL データベースに接続する」で紹介しています。

  • アプリケーション コードを Azure でホストし、データベースを Azure SQL データベース でホストする。アプリケーションから同じクライアント ライブラリを使用して Azure SQL データベース 内のデータベースにアクセスできます。この場合、クライアント アプリケーションは、Entity Data Model および WCF Data Services クライアントを利用して、Azure SQL データベース でホストされているデータにアクセスするデスクトップ アプリケーションまたは Silverlight アプリケーションになることがあります。コード例は、「方法: WCF Data Services で Azure SQL データベースに接続する」で紹介しています。

アプリケーションを Azure platform でホストすることで、Azure SQL データベース に対する要求のネットワーク待機時間を最小限にできます。アプリケーションを Azure に配置した場合、Azure の外にアプリケーションを配置する場合よりも、アプリケーションと Azure SQL データベース の間でのトランザクションの効率が高まります。クラウド上でのアプリケーションおよびデータのホストの詳細については、「Azure SQL Database Data Access」を参照してください。

同じ地区内またはデータ センター内では、Azure または Azure AppFabric と Azure SQL データベース の間で使用される帯域幅は無料となります。Azure アプリケーションを配置する際には、帯域幅のコストが発生しないように、アプリケーションと Azure SQL データベース を同じ地区内に配置してください。詳細については、「Azure SQL データベースのアカウントと課金」を参照してください。

Microsoft Azure SQL データベース アプリケーションの開発は、SQL Server アプリケーションの開発と非常に似通っています。Microsoft Azure SQL データベースにアクセスするアプリケーションを開発する際には、さまざまなタイプのアプリケーションやテクノロジを選択することができます。Microsoft Azure SQL データベースは、サードパーティのアプリケーションや PHP、さらに ADO.NET、Microsoft、Entity Framework、ODBC など、数多くの WCF Data Services アプリケーションと組み合わせて利用できます。

Microsoft Azure SQL データベースでは、共有リソース上で大規模なマルチテナント データベース サービスが提供されます。Microsoft Azure SQL データベースを利用するすべてのお客様に良好なエクスペリエンスを提供するために、次の状態が発生した場合、サービスへの接続を切断することがあります。

  • リソースの過度の使用

  • 実行時間の長いクエリ

  • BEGIN TRAN ステートメントと END TRAN ステートメントの間で、1 回の実行時間が長いトランザクション

  • 接続のアイドル状態

これは、内部設置型の SQL Server インスタンスの場合とは異なります。

接続が切断されたときにシームレスなユーザー エクスペリエンスを実現するために、接続の切断を検出し、中断された処理の実行を試みる再試行ロジックをアプリケーションに実装してください。Microsoft Azure SQL データベースにおける接続の制限については、「Azure SQL データベースの一般的なガイドラインと制限事項」を参照してください。

クライアント アプリケーションが Microsoft Azure SQL データベースに接続する際に、CONTEXT_INFO (Transact-SQL) に、セッション別の固有 GUID 値が自動的に設定されます。接続の問題をトレースするには、この GUID 値を取得して、アプリケーションで使用します。

次の C# コード ステートメントで、アプリケーションを変更して接続をトレースする方法を示します。

関連項目

この情報は役に立ちましたか。
(残り 1500 文字)
フィードバックをいただき、ありがとうございました
表示:
© 2014 Microsoft