アプリケーション開発の概要 - Azure SQL データベース および Azure SQL Managed Instance
適用対象: Azure SQL データベース Azure SQL Managed Instance
この記事では、Azure 内のデータベースに接続するコードを記述するときの基本的な考慮事項について説明します。 この記事は、Azure SQL Database と Azure SQL Managed Instance に当てはまります。
言語とプラットフォーム
さまざまなプログラミング言語とプラットフォームを使用して、Azure SQL Database に対する接続とクエリを実行することができます。 データベースに接続するために使用できるサンプル アプリケーションを見つけることができます。
cheetah、sql-cli、VS コードなどのオープン ソース ツールを活用できます。 さらに、Azure SQL Database は、Visual Studio や SQL Server Management Studio などの Microsoft ツールと連携しています。 また、Azure portal、PowerShell、REST API も使用でき、生産性向上に役立ちます。
認証
Azure SQL Database へのアクセスは、ログインとファイアウォールで保護されます。 Azure SQL Database と SQL Managed Instance では、SQL 認証と Microsoft Entra ID (旧称 Azure Active Directory) を使用した認証 両方のユーザーとログインをサポートしています。 Microsoft Entra ログインは、SQL Managed Instance で一般提供されており、Azure SQL Database 用パブリック プレビュー段階にあります。
詳細については、データベース アクセスとログインの管理に関するページを参照してください。
クライアント接続
クライアント接続ロジックの中で、タイムアウトが 30 秒になるように既定値をオーバーライドします。 既定では 15 秒ですが、インターネットに依存する接続の場合、それでは短すぎます。
接続プールを使用している場合は、プログラムで接続をアクティブに使用しておらず、再使用の準備をしていない時間は、接続を必ず閉じてください。
実行時間の長いトランザクションは避けてください。インフラストラクチャまたは接続のエラーにより、トランザクションがロールバックされる可能性があるためです。 可能であれば、トランザクションを複数のより小さなトランザクションに分割し、バッチ処理を使用してパフォーマンスを向上させます。
次の言語を使用して、アプリケーションを Azure SQL リソースに接続できます。
Azure SQL リソースに対する Microsoft Entra 認証を構成できます。 詳しくは、次の記事をご覧ください。
- Microsoft Entra 認証と SqlClient を使用して Azure SQL に接続する
- Azure SQL 用 Microsoft Entra ID でマネージド ID を使用する
- マネージド ID を使用してシークレットなしで .NET App Service から SQL Database に接続する
回復性
Azure SQL Database はクラウド サービスであり、基になるインフラストラクチャで、またはクラウド エンティティ間の通信で発生する一時エラーが想定される場合があります。 Azure SQL Database は推移的なインフラストラクチャ エラーに対する回復性がありますが、これらのエラーが接続に影響する場合があります。 SQL Database への接続中に一時エラーが発生した場合は、コードで呼び出しを再試行する必要があります。 再試行ロジックでは、複数のクライアントが同時に再試行することでサービスに過大な負荷がかかるのを防ぐために、バックオフ ロジックを使用することをお勧めします。 再試行ロジックは、SQL Database クライアント プログラムのエラー メッセージによって異なります。
Azure SQL Database の計画メンテナンス イベントに備える方法の詳細については、「Azure SQL Database での Azure メンテナンス イベントの計画」を参照してください。
ネットワークに関する考慮事項
- クライアント プログラムをホストするコンピューターのファイアウォールで、ポート 1433 での発信 TCP が許可されていることを確認します。 詳細情報: Azure SQL Database ファイアウォールの構成。
- クライアントが Azure 仮想マシン (VM) で実行されているときに、クライアント プログラムが SQL Database に接続する場合、VM で特定のポートの範囲を開く必要があります。 詳細情報: 「ADO.NET 4.5 用の 1433 以外のポート」を参照してください。
- Azure SQL Database へのクライアント接続はプロキシを使用せずに、データベースに直接やり取りする場合があります。 1433 以外のポートが重要になります。 詳細については、「Azure SQL Database connectivity architecture」 (Azure SQL Database 接続アーキテクチャ) および「ADO.NET 4.5 用の 1433 以外のポート」を参照してください。
- SQL Managed Instance のインスタンスに対するネットワーク構成については、SQL Managed Instance のネットワーク構成に関する記事を参照してください。
次のステップ
SQL Database と SQL Managed Instance の機能すべてを確認します。
作業を開始するには、Azure SQL Database および Azure SQL Managed Instance のガイドを参照してください。