Azure SQL のサービスと機能について説明する
Azure SQL は、Azure の Microsoft SQL Server ベースのデータベース サービス ファミリの総称です。 具体的な Azure SQL サービスには次のようなものがあります。
- Azure Virtual Machines (VM) 上の SQL Server - SQL Server がインストールされた Azure で実行されている仮想マシン。 VM を使用すると、このオプションはサービスとしてのインフラストラクチャ (IaaS) ソリューションとなり、Azure のコンピューティング、ストレージ、およびネットワークのハードウェア インフラストラクチャを仮想化します。つまり、既存のオンプレミス SQL Server インストールをクラウドに "リフト アンド シフト" 移行するための優れたオプションになります。
- Azure SQL Managed Instance - 基盤となるハードウェアとオペレーティング システムを抽象化しながら、オンプレミスの SQL Server インスタンスとほぼ 100% の互換性を提供するサービスとしてのプラットフォーム (PaaS) オプション。 サービスには、自動化されたソフトウェアの更新管理、バックアップ、およびその他のメンテナンス タスクが含まれており、データベース サーバー インスタンスをサポートする管理負担が軽減されます。
- Azure SQL Database - クラウド向けに設計された、フル マネージドの拡張性の高い PaaS データベース サービス。 このサービスには、オンプレミスの SQL Server のデータベースレベルのコア機能が含まれており、クラウドに新しいアプリケーションを作成する必要がある場合に適したオプションです。
- Azure SQL Edge - 時系列データのストリーミングを操作する必要のある、モノのインターネット (IoT) シナリオ向けに最適化された SQL エンジン。
Note
このリストには、完全を期すために Azure SQL Edge が含まれています。 このモジュールでは、より一般的なリレーショナル データベース シナリオに関するその他のオプションに注目します。
Azure SQL サービスを比較する
-- | Azure VM での SQL Server | Azure SQL Managed Instance | Azure SQL データベース |
---|---|---|---|
クラウド サービスの種類 | IaaS | PaaS | PaaS |
SQL Server の互換性 | オンプレミスの物理および仮想化されたインストールと完全に互換性があります。 アプリケーションとデータベースは、変更せずに簡単に "リフト アンド シフト" 移行することができます。 | SQL Server とのほぼ 100% の互換性。 ほとんどのオンプレミス データベースは、Azure Database Migration Service を使用して最小限のコード変更で移行できます | SQL Server のデータベースレベルのほとんどのコア機能がサポートされます。 オンプレミス アプリケーションが依存している一部の機能は使用できない可能性があります。 |
アーキテクチャ | SQL Server インスタンスは、仮想マシンにインストールされます。 各インスタンスで複数のデータベースをサポートできます。 | 各マネージド インスタンスで複数のデータベースをサポートできます。 さらに、''インスタンス プール'' を使用すると、より小さなインスタンス間でリソースを効率的に共有できます。 | 専用の管理対象 (論理) サーバーで ''単一データベース'' をプロビジョニングできます。または、''エラスティック プール'' を使用して複数のデータベース間でリソースを共有し、オンデマンドのスケーラビリティを利用できます。 |
可用性 | 99.99% | 99.99% | 99.995% |
管理 | オペレーティング システムと SQL Server の更新、構成、バックアップ、およびその他のメンテナンス タスクを含む、サーバーのすべての側面を管理する必要があります。 | 完全に自動化された更新、バックアップ、および回復。 | 完全に自動化された更新、バックアップ、および回復。 |
ユース ケース | このオプションは、オンプレミスの SQL Server ソリューションを移行または拡張し、サーバーとデータベースの構成のすべての側面の完全な制御を保持する必要がある場合に使用します。 | 特に既存のアプリケーションに対して最小限の変更が必要な場合は、ほとんどのクラウド移行シナリオでこのオプションを使用します。 | このオプションは、新しいクラウド ソリューションで、またはインスタンスレベルの依存関係が最小限のアプリケーションを移行する場合に使用します。 |
SQL Server on Azure Virtual Machines
SQL Server on Virtual Machines を使用すると、お客様はオンプレミスのハードウェアを管理する必要なく、クラウド内で完全なバージョンの SQL Server を使用できます。 これは IaaS アプローチの一例です。
Azure 仮想マシン上で実行されている SQL Server は、実際のオンプレミス ハードウェア上で実行されているデータベースを効率的にレプリケートします。 オンプレミスで実行されているシステムから Azure 仮想マシンへの移行は、オンプレミスのサーバーから別のサーバーへのデータベースの移動とまったく変わりません。
このアプローチが最適となるのは、PaaS レベルにサポートされない可能性があるオペレーティング システム機能へのアクセスを必要とする、移行およびアプリケーションです。 SQL 仮想マシンは、最小限の変更でクラウドに迅速に移行する必要がある既存のアプリケーションに対して、"リフトアンドシフト" の準備ができています。 また、Azure VM で SQL Server を使用して、ハイブリッド デプロイで既存のオンプレミス アプリケーションをクラウドに拡張することもできます。
注意
"ハイブリッド デプロイ" とは、業務の一部がオンプレミスで実行され、一部がクラウドで実行されるシステムです。 データベース要素がクラウドでホストされていても、データベースをオンプレミスで実行される大規模なシステムの一部に含めることができます。
仮想マシン内の SQL Server を、従来の SQL Server アプリケーションを開発およびテストするために使用できます。 仮想マシンでは、DBMS とオペレーティング システムに対する完全な管理者権限はユーザーが持っています。 仮想マシンの保守に使用できる IT リソースが組織に既にある場合、これは最適な選択肢となります。
これらの機能により、次のことが可能になります。
- オンプレミスの非運用 SQL Server ハードウェアを購入しない場合の迅速な開発およびテスト シナリオを作成できます。
- 最小限の変更または変更なしでクラウドに迅速に移行する必要がある既存のアプリケーションに対して、リフトアンドシフトの準備ができます。
- 仮想マシンに追加のメモリ、CPU、およびディスク領域を割り当てることにより、SQL Server が実行されているプラットフォームをスケールアップできます。 Azure 仮想マシンのサイズを迅速に変更できます。マシン上で実行されているソフトウェアを再インストールする必要はありません。
ビジネス上のメリット
仮想マシン上で SQL Server を実行すると、オンプレミスとクラウドでホストされたデプロイの組み合わせによって、さまざまなビジネス ニーズを満たします。その際、これらの環境全体で、同じサーバー製品、開発ツール、専門知識のセットを使用できるようになります。
企業にとって、DBMS をフル マネージド サービスに切り替えるのは必ずしも簡単ではありません。 データベースとそれを使用するアプリケーションへの変更が必要なマネージド サービスに移行するために、特定の要件を満たす必要がある場合もあります。 このため、仮想マシンを使用するとソリューションを提供できますが、それらを使用しても、オンプレミスの場合と同様に、ユーザーが引き続き DBMS を注意深く管理する必要があります。
Azure SQL Managed Instance
Azure SQL Managed Instance では、完全に制御可能な SQL Server のインスタンスがクラウド内で効率的に実行されます。 同じインスタンス上に複数のデータベースをインストールできます。 オンプレミス サーバーの場合と同様に、ユーザーはこのインスタンスを完全に制御できます。 バックアップ、ソフトウェア修正プログラムの適用、データベース監視、およびその他の一般的なタスクは、SQL Managed Instance によって自動化されますが、データベースのセキュリティとリソース割り当ては、ユーザーが完全に制御できます。 詳細については、「Azure SQL Managed Instance とは」を参照してください。
マネージド インスタンスは、バックアップでは Azure Storage、テレメトリでは Azure Event Hubs、認証では Microsoft Entra ID、Transparent Data Encryption (TDE) では Azure Key Vault、およびセキュリティとサポート機能を提供するいくつかの Azure プラットフォーム サービスなど、他の Azure サービスに依存します。 マネージド インスタンスは、これらのサービスへの接続を行います。
通信はすべて暗号化され、証明書を使って署名されます。 通信相手の信頼性を確認するために、マネージド インスタンスでは、証明書失効一覧を介してこれらの証明書が確認されます。 証明書が失効している場合、マネージド インスタンスではデータを保護するために接続が終了します。
ユース ケース
仮想マシン上での SQL Server の実行による管理オーバーヘッドを発生させることなく、オンプレミスの SQL Server インスタンスとそのすべてのデータベースをクラウドに "リフト アンド シフト" したい場合は、Azure SQL Managed Instance を検討してください。
Azure SQL Managed Instance には、以下の説明のとおり、Azure SQL Database では利用できない機能が用意されています。 リンク サーバー、Service Broker (サーバー間で作業を分散するために使用できるメッセージ処理システム)、データベース メール (データベースからユーザーに電子メール メッセージを送信できる) などの機能をシステムで使用する場合は、マネージド インスタンスを使用する必要があります。 既存のオンプレミス システムとの互換性を確認するには、Data Migration Assistant (DMA) をインストールします。 このツールは、SQL Server 上のデータベースを分析し、マネージド インスタンスへの移行を妨げる可能性のある問題があれば報告します。
ビジネス上のメリット
Azure SQL Managed Instance を使用すると、システム管理者は管理タスクに費やす時間を短縮できます。それらのタスクがサービスによって実行されるか、大幅に簡素化されるからです。 自動化されるタスクには、オペレーティング システムとデータベース管理システム ソフトウェアのインストールおよび修正プログラムの適用、動的インスタンスのサイズ変更および構成、バックアップ、データベース レプリケーション (システム データベースを含む)、高可用性の構成、正常性およびパフォーマンスの監視データ ストリームの構成などがあります。
Azure SQL Managed Instance は、オンプレミスで実行されている SQL Server Enterprise Edition とほぼ 100% の互換性があります。
Azure SQL Managed Instance では、SQL Server Database エンジンのログインと、Microsoft Entra ID に統合されたログインがサポートされています。 SQL Server Database エンジンのログインには、ユーザー名とパスワードが含まれます。 サーバーに接続するたびに資格情報を入力する必要があります。 Microsoft Entra ログインでは、現在のコンピューターのサインインに関連付けられている資格情報が使用されるため、サーバーに接続するたびに資格情報を入力する必要はありません。
Azure SQL データベース
Azure SQL Database は、Microsoft によって提供されている PaaS オファリングです。 クラウドにマネージド データベース サーバーを作成し、そのサーバー上にデータベースをデプロイします。
注意
SQL Database サーバーは、さまざまな単一データベースまたはプールされたデータベース、ログイン、ファイアウォール規則、監査規則、脅威検出ポリシー、フェールオーバー グループの一元的な管理ポイントとして機能する論理コンストラクトです。
Azure SQL Database は、Single Database または Elastic Pool として使用できます。
Single Database
このオプションを使用すると、単一の SQL Server データベースを迅速に設定および実行できます。 クラウドでデータベース サーバーを作成して実行し、このサーバーを通じてデータベースにアクセスします。 サーバーは Microsoft によって管理されるため、ユーザーはデータベースを構成し、テーブルを作成し、そこにデータを設定するだけです。 さらに記憶領域、メモリ、または処理能力が必要な場合は、データベースをスケーリングできます。 既定では、リソースは事前に割り当てられ、要求したリソースに対して時間単位で課金されます。 "サーバーレス" 構成を指定することもできます。 この構成では、Microsoft によって独自のサーバーが作成され、他の Azure サブスクライバーに属するデータベースによって共有される可能性があります。 データベースのプライバシーは Microsoft によって確保されます。 データベースは自動的にスケーリングされ、必要に応じてリソースが割り当てまたは割り当て解除されます。
Elastic Pool
このオプションは Single Database に似ていますが、既定で複数のデータベースが同じリソース (メモリ、データ ストレージ領域、処理能力など) をマルチテナントで共有できるという点が異なります。 これらのリソースは "プール" と呼ばれます。 プールを作成し、データベースのみがそのプールを使用できます。 このモデルは、時間の経過と共に変化するリソース要件を持つデータベースがある場合に役立ち、コストを削減できる可能性があります。 たとえば、給与支払データベースでは、毎月末に給与支払処理を行うときには大量の CPU パワーが必要になりますが、それ以外のときにはデータベースの使用頻度が大幅に低下する可能性があります。 レポートの実行に別のデータベースを使用している場合もあります。 このデータベースは、月半ばに管理レポートが生成されるときには使用頻度が高くなりますが、それ以外のときには負荷が軽くなる可能性があります。 Elastic Pool を使用すると、プール内の利用可能なリソースを使用し、処理の完了後にそのリソースを解放することができます。
ユース ケース
Azure SQL Database は、低コストと管理の最小化を実現するための最適な選択肢となります。 オンプレミスの SQL Server インストールとの完全な互換性はありません。 アプリケーションに必要なすべての変更にアプリケーションの設計で対応できる、新しいクラウド プロジェクトでよく使用されます。
注意
Data Migration Assistant を使用すると、Azure SQL Database のデータベース機能に影響する可能性があるデータベースとの互換性の問題を検出できます。 詳細については、「Data Migration Assistant の概要」を参照してください。
Azure SQL Database は、次に対して使用されます。
- 最新の安定した SQL Server 機能の使用を必要とする先進的なクラウド アプリケーション。
- 高可用性を必要とするアプリケーション。
- データベース サーバーをすばやくスケール アップおよびスケール ダウンする必要がある、負荷が変動するシステム。
ビジネス上のメリット
常に最新かつ最も安全なバージョンのサービスを確実に実行するために、Azure SQL Database によって自動的に SQL Server ソフトウェアを更新し、修正プログラムを適用します。
Azure SQL Database のスケーラビリティ機能により、コストのかかる手動アップグレードを実行しなくても、データの格納と処理に使用できるリソースを増やすことができます。
サービスでは、99.995% 以上の時間においてデータベースが確実に利用可能である、高可用性の保証が提供されます。 Azure SQL Database では、データベースを過去の任意の時点の状態に復旧できるポイントインタイム リストアがサポートされています。 データベースを別のリージョンにレプリケートして、さらに回復性とディザスター リカバリーを提供できます。
Advanced Threat Protection により、データベースの潜在的なセキュリティの問題の検出と修復に役立つ、脆弱性評価などの高度なセキュリティ機能が提供されます。 Threat Protection では異常なアクティビティも検出します。データベースへのアクセスや、データベースを悪用するための、異常で潜在的に有害な試行を示します。 データベースでの不審なアクティビティを継続的に監視し、潜在的な脆弱性、SQL インジェクション攻撃、および異常なデータベース アクセス パターンが見つかるとすぐにセキュリティ通知を提供します。 脅威の検出によるアラートでは、不審なアクティビティの詳細と、脅威の調査や危険性の軽減のために推奨される対処方法が提供されます。
監査では、データベース イベントが追跡され、Azure ストレージ アカウントの監査ログに書き込まれます。 監査により、規定遵守の維持、データベース活動の理解、およびビジネス上の懸念やセキュリティ違犯の疑いを示す差異や異常に対する洞察が容易になります。
SQL Database は、データベースに格納されている (保存中の) データと、ネットワーク経由で転送される (移動中の) データを保護する暗号化を提供することで、データをセキュリティで保護するのに役立ちます。