Azure SQL の機能
- 15 分
Azure SQL 製品を使用すると、SQL Database エンジンに含まれるすべての機能に加えて、管理の自動化、データのセキュリティ保護、パフォーマンスの監視、リソースのスケーリング、障害発生時のデータベースの可用性の確保に役立つ Azure 固有の機能も多数提供されます。
このユニットでは、Azure SQL ファミリの製品で使用できる機能の一部について詳しく説明します。
ビジネス継続性
Azure SQL 製品は、ローカルの冗長性を通じて組み込みの可用性を提供することで、中断が発生した場合でもビジネスが継続して動作することを保証します。 既定の可用性ソリューションは、障害が原因でコミットされたデータが失われないようにし、メンテナンス操作によってワークロードへの影響を最小限に抑え、データベースがソフトウェア アーキテクチャの単一障害点にならないように設計されています。
既定では、Azure SQL 製品では、次のような中断がデータベース、インスタンス、または仮想マシンによって確実に処理されます。
- 顧客が開始した管理操作によって発生する短時間のダウンタイム
- サービスのメンテナンス操作
- 次に関する問題:
- サービスを支えるマシンが稼働しているラック
- SQL データベース エンジンをホストする物理マシン
- SQL データベース エンジンに関するその他の問題
- その他の、発生する可能性がある計画外のローカル障害
これらの操作中に発生する可能性がある一時的なエラーを処理するには、アプリケーションで再試行ロジックを使用してください。
可用性メカニズムは、Azure SQL Database と Azure SQL Managed Instance のサービス レベルによって異なります。 たとえば、Business Critical サービス レベルは、基になる Always On 可用性グループ テクノロジに依存して、障害が発生した場合にフェールオーバーに使用できるレプリカを提供し、General Purpose サービス レベルではリモート ストレージの冗長性を使用して可用性を提供します。
PaaS サービスの可用性は組み込まれていますが、Azure VM で同じ可用性を実現するには、仮想マシンを可用性セットにデプロイする必要があります。 また、Always On 可用性グループなどの既存の SQL Server 高可用性およびディザスター リカバリー (HADR) ソリューションを使用して、Azure VM で実行されている SQL Server インスタンスをさらに保護することもできます。
高可用性
また、サービスのゾーン冗長性を有効にして高可用性を実現することもできます。これにより、リージョン全体の障害に対するデータの回復性が向上します。 ゾーンの冗長性がない場合、フェールオーバーは同じデータ センター内でローカルに実行されるため、障害が解決されるまでデータベース、インスタンス、または仮想マシンが使用できなくなる可能性があります。 ゾーン冗長可用性により、プライマリ リージョンの 3 つの Azure 可用性ゾーンにデータが分散されます。 各可用性ゾーンは、独立した電源、冷却装置、ネットワークを備えた独立した物理的な場所です。
Azure SQL Database と Azure SQL Managed Instance では、任意の時点でゾーン冗長を有効にできますが、ゾーン冗長性を実現するには、Azure VM を可用性ゾーンにデプロイするか、Azure Site Recovery を使用して可用性ゾーンに移行する必要があります。
ゾーン冗長では、3 つの製品で可用性とサポート性が異なります。そのため、選択したソリューションがニーズを満たしていることを確認するために、デプロイのゾーン冗長仕様を確認してください。
自動バックアップ
データベース Backup は、データの破損や削除からの保護に役立つため、事業継続とディザスター リカバリー戦略の最も重要な部分です。
Azure SQL Database と Azure SQL Managed Instance は PaaS サービスであるため、サービスをデプロイするとすぐにバックアップが自動的に管理されます。 完全バックアップは毎週実行され、差分バックアップは 12 時間ごとに作成され、トランザクション ログ バックアップは約 10 分ごとに作成されます。 これらのバックアップは、既定で読み取りアクセス geo 冗長ストレージ (RA-GRS) に格納されます。つまり、バックアップはセカンダリ リージョンにレプリケートされます。 このレプリケーションにより、プライマリ リージョンが使用できなくなった場合でも、バックアップを使用できるようになります。
その後、バックアップを使用して、過去 35 日以内の特定の時点にデータベースを復元できます。 また、長期的なバックアップリテンション期間を使用して、バックアップを最大 10 年間別のストレージ アカウントに格納することもできます。
自動バックアップは、SQL IaaS Agent 拡張機能に登録されている SQL Server VM 用に構成できます。これにより、Azure portal での SQL VM の管理が可能になります。 Azure Backup または自動バックアップのどちらを使用するかを選択できます。どちらの場合も、バックアップの頻度と保有期間を構成できます。
自動修正
Azure SQL Database と Azure SQL Managed Instance は、基になるオペレーティング システムと SQL Database エンジンにパッチを自動的に適用します。 これにより、最新バージョンの SQL Server がデータベースで常に実行され、最新のセキュリティ更新プログラムとパフォーマンスが向上します。 自動修正プログラムは、Azure SQL Database と Azure SQL Managed Instance で自動的に使用できますが、SQL IaaS Agent 拡張機能に登録されている Azure VM 上の SQL Server に対して有効にする必要があります。
SQL Server 2022 更新ポリシーで構成された SQL マネージド インスタンスは、SQL Server 2022 の最新のパッチと更新プログラムを取得します。一方、Always-up-to-date 更新ポリシーで構成されたインスタンスは、最新バージョンの SQL Server の修正プログラムと更新プログラムを受け取ります。
安全
Azure SQL には、データを保護し、業界標準に準拠するための包括的なセキュリティとデータ ガバナンス機能のスイートが用意されています。
Azure SQL では、データベースへのセキュリティで保護されたアクセスを確保するための先進認証が提供されます。 Microsoft Entra Identity Management を使用すると、組織の ID を一元的に管理し、ユーザー アクセスを制御できるため、ユーザーを認証するためのシームレスで安全な方法が提供されます。 この機能は、Microsoft Entra の堅牢な ID 管理機能を使用してセキュリティを強化します。
データの保護と整合性は、機密情報を保護する上で重要です。 Azure SQL には Transparent Data Encryption (TDE) が用意されています。これは保存データを暗号化し、最新バージョンの トランスポート層セキュリティ (TLS) を使用して移動中のデータを保護します。 Azure Key Vault 統合を使用すると、暗号化キーへのアクセスを管理および制御でき、機密データが確実に保護されます。 また、 Always Encrypted では、機密データの暗号化が維持され、使用中、移動中、保存中の選択列のデータが保護されます。 これらの機能は、データの機密性を維持するのに役立ちます。 整合性保護のために、Azure SQL には 台帳 機能が含まれています。この機能により、データの改ざんの証拠が顧客に提供されます。
Azure SQL のネットワーク セキュリティは、さまざまなメカニズムによって実現されます。 Virtual Network (VNet) 統合 では、プライベート IP アドレスと、他のテナントからの完全な分離が提供されます。 ネットワーク セキュリティ グループ (NSG) と Azure Firewall を 使用すると、高度なフィルター処理を実装し、ネットワーク トラフィックを制御できます。 これらの機能により、データベースが未承認のアクセスや潜在的な脅威から保護されます。
Azure SQL では、 SQL データ分類 や Microsoft Information Protection (MIP) ベースのデータの検出と分類 (プレビュー段階) などの機能を通じて、包括的なデータ ガバナンスがサポートされています。 機密データの分類とラベル付けにより、データ所有者は必要な保護対策を適用し、それらが確実に適用されます。
Azure SQL では、Microsoft Defender for SQL との統合により、高度な脅威防止と検出機能が提供されます。 Microsoft Defender の 脅威検出 コンポーネントは、異常なデータベース アクティビティを識別し、管理者にリアルタイムのアラートを提供します。 Microsoft Defender の 脆弱性評価 コンポーネントは、悪用につながる可能性のある脆弱性を検出し、追跡し、セキュリティ保護の潜在的な構成ミスやギャップを修正するのに役立ちます。 SQL 監査は 、データベース アクティビティを追跡し、コンプライアンスとフォレンジック分析の詳細なログを提供します。
ジオレプリケーション
Azure SQL 製品を使用すると、ディザスター リカバリーのためにデータを別のリージョンに簡単にレプリケートしたり、読み取り専用ワークロード (読み取りスケールアウトと呼ばれる) をオフロードすることでパフォーマンスを向上させることができます。 geo レプリケーションを使用すると、データベースまたはインスタンスの読み取り可能なレプリカを同じデータセンター (リージョン) または別のレプリカに作成できます。
Azure SQL Database では、アクティブ geo レプリケーション機能またはフェールオーバー グループ機能を選択できます。 アクティブ geo レプリケーションを使用すると、異なるリージョンにデータベースの最大 4 つの読み取り可能なレプリカを作成できます。一方、フェールオーバー グループはアクティブ geo レプリケーション機能に基づく抽象化であり、データベースのグループのフェールオーバー、エンドポイント リダイレクトの提供、フェールオーバー管理の簡略化を可能にします。
フェールオーバー グループは Azure SQL Managed Instance でも使用できます。これにより、プライマリ インスタンスのセカンダリ レプリカを作成できます。
自動フェールオーバーは、Microsoft マネージド フェールオーバー ポリシーで構成されたフェールオーバー グループで使用できますが、お客様のマネージド フェールオーバー ポリシーを使用してフェールオーバー動作をより適切に制御し、Microsoft が使用するフェールオーバー条件に基づく拡張停止を回避することをお勧めします。これは、ビジネスに適していない可能性があります。
Azure VM 上の SQL Server を使用して geo レプリケーションを実現するには、異なるリージョンの仮想マシン間で Always On 可用性グループを構成します。
これらの各ソリューションでは、プライマリ データベースに加えられた変更がセカンダリ レプリカにリアルタイムでレプリケートされます。 つまり、プライマリが使用できなくなった場合は、セカンダリ レプリカにフェールオーバーして、最小限のダウンタイムで作業を続けることができます。 セカンダリ レプリカを使用して、読み取り専用ワークロードとレポートをオフロードすることもできます。
スケーラビリティ
Azure SQL 製品は、アプリケーションの要求に合わせて簡単かつ迅速にスケーリングできるように設計されています。 PaaS サービスを使用すると、プロビジョニング時間が長くなくても、リソース (CPU、メモリ、ストレージ) を簡単に追加できます。 つまり、ワークロードの要件に応じて、必要に応じてスケールアップまたはスケールダウンできます。 リソースを追加すると、データベースが現在のリソース制限に達し、受信ワークロードの処理にいっそうのパワーが必要なときに、迅速に対応できます。 同様に、アクティビティが少ない期間中にリソースを減らすと、コストを節約できます。
スケーリング アクティビティは手動で開始されますが、Azure SQL Database のサーバーレス コンピューティング レベルのデータベースは、ワークロードの需要に基づいて自動的にスケーリングできます。
また、Azure SQL Database のエラスティック プール内のリソースと Azure SQL Managed Instance のインスタンス プールをプールして、複数のデータベースまたはマネージド インスタンス間でリソースを共有することもできます。 これにより、パフォーマンスのピーク期間中に必要なときにデータベースまたはインスタンスにリソースを割り当てることで、リソース使用率を最適化できます。
Azure VM 上の SQL Server では、VM サイズを変更することで、必要に応じて仮想マシンをスケールアップまたはスケールダウンすることもできます。 ただし、これには PaaS サービスよりも多くの計画と管理が必要です。 仮想マシンのサイズ、使用しているストレージの種類、ネットワーク構成を考慮する必要があります。 場合によっては、先に VM の割り当てを解除する必要があります。 現在 VM をホストしているのと同じハードウェア クラスターで新しいサイズを使用できない場合は、割り当て解除が必要になる場合があります。 割り当てを解除する必要がない場合でも、仮想マシンが現在実行中の場合、そのサイズを変更すると再起動することを理解しておくことが重要です。 このため、VM サイズの変更は中断を伴う手順として検討する必要があります。特に、VM でホストされているステートフル ワークロード (SQL Server など) の場合です。
自動チューニング
自動チューニングは、データベースで実行されるクエリを継続的に監視し、パフォーマンスを自動的に向上させる、フル マネージドのインテリジェントなパフォーマンス サービスです。 これは変動するワークロードに対してデータベースを適応させること、およびチューニングの推奨事項を適用することを動的に実施することで実現しています。 自動チューニングでは、AI と機械学習に基づく継続的なパフォーマンス チューニングによって、ピーク時のパフォーマンスと安定したワークロードが提供されます。
自動チューニングの推奨事項は、CPU、データ I/O、およびログ I/O の使用率が低い場合にのみ適用されます。 システムは、ワークロードのパフォーマンスを損なわないように、自動チューニング操作を一時的に無効にすることもできます。
自動チューニングは、Azure SQL Database と Azure SQL Managed Instance で使用できますが、Azure VM 上の SQL Server では使用できません。
組み込みの監視とインテリジェンス
Azure SQL 製品には、データベースとワークロードのパフォーマンスを理解するのに役立つ組み込みの監視機能が用意されています。
Azure Monitor では、定義済みのメトリックを使用して、リソースの消費量と正常性を監視します。 Azure Monitor を使用して、これらのメトリックに基づいてアラートを作成することもできます。 Azure Monitor は、3 つの Azure SQL 製品すべてに対して使用できます。
両方の PaaS サービスで使用できる Database Watcher は、詳細なワークロード監視データを収集して、データベースのパフォーマンス、構成、正常性の詳細なビューを提供します。 Azure portal のダッシュボードでは、Azure SQL 環境に対する包括的なビューと、各監視対象リソースの詳細ビューが提供されます。 データベース ウォッチャーは現在、Azure VM 上の SQL Server では使用できません。
現在、Azure SQL Database でのみ使用できる Query Performance Insights は、単一データベースとプールされたデータベースに対してインテリジェントなクエリ分析を提供します。 これは、ワークロードで最もリソースを消費し、長時間実行されるクエリを特定するのに役立ちます。
SQL IaaS Agent 拡張機能に登録されている SQL Server VM の場合は、Azure portal を使用して、不足しているベスト プラクティス、VM または I/O 調整を特定できます。
Azure への移行
Azure Migrate を使用して、SQL データ資産を大規模に検出して評価できます。 Azure Migrate では、ターゲットのサイズ設定と毎月の見積もりを使用して、評価されたワークロードに最適な Azure SQL 製品をお勧めします。 Azure Arc によって有効になっている SQL Server インスタンスには、移行の準備に役立つ評価機能もあります。
Azure Database Migration Service (DMS) は、データベースを Azure に移行するのに役立つフル マネージド サービスです。 オンラインとオフラインの両方の移行がサポートされており、オンプレミスの SQL Server、他のクラウド プロバイダー、またはその他のデータベース プラットフォームからデータベースを移行するために使用できます。 Azure Database Migration Service を使用して、Azure SQL Database、Azure SQL Managed Instance、または Azure VM 上の SQL Server にデータベースを移行できます。
Azure SQL Database と Azure SQL Managed Instance では、データベース スキーマとデータを .dacpac ファイルにエクスポートしてインポートできる dacpac を介したデータの移行がサポートされています。 これは、小規模なデータベースや、データではなくスキーマのみを移行する場合に適したオプションです。
Azure SQL Managed Instance では、DMS に加えて、次の方法による移行もサポートされています。
- ログリプレイ サービス。ログ配布テクノロジを使用してデータをクラウドに移行します。
- Managed Instance リンク。Always On 可用性グループ テクノロジを使用して、SQL Server と Azure SQL Managed Instance の間でデータを同期します。
- ネイティブのバックアップと復元。これにより、オンプレミスの SQL Server データベースのバックアップを Azure Storage に直接取得し、Azure SQL Managed Instance に復元できます。
Azure VM 上の SQL Server では、ネイティブ バックアップによる移行と、Azure Storage を介した復元もサポートされます。 データを移行するために、オンプレミスと SQL VM インスタンスの間で分散型可用性グループを構成することもできます。