オンプレミス環境上の SQL Server を使用したシステムを Azure へ移行することを検討する場合、Azure上で選択可能なSQL Server関連リソースの種類が多く、どのデータベース リソースを選択すべきか、悩まれる方がいるのではないかと思います。
今回、ありそうであまり見かけない、Azure移行に向けた「SQL Server マイグレーション フローチャート」を作成してみました。
Azureで選択可能なデータベース
Azureで選択可能なSQL Server関連リソース一覧をまとめてみます。
※ 今回のブログでは、オンプレミス環境で SQL Server を使用している想定で記載しているため、NoSQLリソースである Azure Cosmos DB、Azure Database for PostgreSQL などのデータベース リソースおよびOCI (Oracle Cloud Infrastructure) 相互接続については考慮していません。
種類 | モデル | サービスレベル | 簡易説明 |
---|---|---|---|
SQL Server on Azure 仮想マシン | - | - | Azure 仮想マシン上に SQL Server をインストールする構成。ゾーン冗長を考慮した構成にするためには、SQL Server AlwaysOn 可用性グループを構成する Azure 仮想マシンを各アベイラビリティ ゾーンに配置し、また、Active Directoryについても冗長化するなどの考慮が必要となる。また、障害発生時のリカバリプランをオンプレミス環境と同様に考慮する必要がある。 |
Azure SQL Database | 単一データベース | DTU |
CPU、メモリ、読み取り/書き取りを組み合わせた測定値から求められた データベース トランザクション ユニット (DTU) により、サービスレベルが定められている。「Premium」では、SQL Server AlwaysOn 可用性グループ機能を使用したゾーン冗長がサポートされている。 |
Azure SQL Database | 単一データベース | 仮想コア |
使用可能なCPUリソースを予約。「Business Critical」では、SQL Server AlwaysOn 可用性グループ機能を使用したゾーン冗長がサポートされている。 ※ 現在はプレビュー機能であり、日本リージョンでは使用することができないが、一部のリージョンで「汎用目的」によるゾーン冗長が構成できるように機能拡張されている。 (2022年3月時点) |
Azure SQL Database | 単一データベース | 仮想コア(汎用目的:サーバーレス) | 「汎用目的」でのみサポートされており、仮想コアのオートスケーリング機能により、ワークロードにより利用可能な仮想コア数を自動的に増減させることが可能。長期に渡ってワークロードが発生しない場合、自動的に一時停止させることが可能であり、コストを削減することが可能となっている。 |
Azure SQL Database | 単一データベース | 仮想コア(ハイパースケール) | 迅速なスケールアップ/スケールアウトが可能な分散機能アーキテクチャを採用しており、最大データベース サイズが100TBと、大規模データベースでかつ、高パフォーマンスが求められる場合に最適なサービスレベルとなっている。 |
Azure SQL Database | エラスティック プール | DTU/仮想コア |
リソース プールを予約し、プールされたリソースをデータベースに割り当てることが可能なリソース。特定の時間帯のみワークロードが発生する単体データベースが複数存在し、ワークロードが発生する時間帯が異なっている場合、複数データベースで最大ワークロード考慮したリソースの総容量と比較し、リソース プールを複数データベースで使いまわすことで、予約する必要のあるリソース プールの総容量を削減できることが期待でき、コストを削減することが可能となる。 「Premium」および 「Business Critical」では、SQL Server AlwaysOn 可用性グループ機能を使用したゾーン冗長がサポートされている。 ※ 現在はプレビュー機能であり、日本リージョンでは使用することができないが、一部のリージョンで「汎用目的」によるゾーン冗長が構成できるように機能拡張されている。 (2022年3月時点) |
Azure SQL Managed Instance | 単一インスタンス | - | SQL Server エンジンと100%に近い互換性をもつリソース。CLR統合機能(CLR関数)などの特殊な機能を使用している場合や、Azure上にリフトする際に、オンプレミス上の SQL Server データベースをそのまま移行(完全バックアップなどを使用)したい場合に最適なリソース。 |
Azure Synapse Analytics | SQL プール/オンデマンド | - | エンタープライズ データウェアハウスとビッグデータ分析がまとめられた分析サービスであり、超並列処理 (MPP) を活用してペタバイト単位のデータに対して複雑なクエリを迅速に実行することが可能。SQL プール/オンデマンドは、Azure SQL Data Warehouse の後継機能となるが、Azure Synapse Analyticsでは Apache Spark、Power BI、Azure Machine Learningと緊密に統合することが可能な機能が備わっている。 |
※ Azure SQL Database、Azure SQL Managed Instance、Azure Synapse Analytics の何れのリソースも内部的に冗長化されており、SQL Server on Azure 仮想マシンのように冗長化を考慮する必要はない。しかしながら、ゾーン冗長を考慮する必要が場合は、特定のモデル/サービスレベルのみ対応しているため、ゾーン冗長をサポートしたモデル/サービスレベルを選択する必要がある。
SQL Server マイグレーション フローチャート
まとめ
今回、SQL Server マイグレーション フローチャート (2020年11月更新) を作成してみました。 新しい機能などが追加された場合は、今回作成しましたフローチャートを修正していきたいと思います。
参考情報
サービス レベル アグリーメント - ホーム | Microsoft Azure
Azure SQL Database サービスとは - Azure SQL Database | Microsoft Docs
サーバーレス コンピューティング レベル - Azure SQL Database | Microsoft Docs
エラスティック プールを使用して複数のデータベースを管理する - Azure SQL Database | Microsoft Docs
Hyperscale サービス レベルとは - Azure SQL Database | Microsoft Docs
Azure SQL Managed Instance とは - Azure SQL Managed Instance | Microsoft Docs
専用 SQL プール (以前の SQL DW) とは - Azure Synapse Analytics | Microsoft Docs
Azure VM 上の SQL Server のドキュメント - SQL Server on Azure VM | Microsoft Docs
※ 2022年3月現在