Azureで利用可能なPaaSのSQL Serverの特徴を学ぼう[後編]――Azure SQL DatabaseとAzure SQL Database Managed Instanceの違い:クラウドのSQL Serverを最大限に活用するために(2/2 ページ)
前編では、Microsoft Azureで利用可能なPaaSのSQL Serverの種類と、AzureのPaaS「Azure SQL Database」と「Azure SQL Database Managed Instance」に共通する特徴を解説しました。後編では、SQL DatabaseとManaged Instanceには、それぞれどのような特徴があるのかを紹介します。
Managed Instanceの特徴
Managed Instanceは、SQL Serverのデータベースエンジンと高い互換性のある、最新のPaaSです。SQL DatabaseもSQL Serverと同一のデータベースエンジンを使用していますが、さらにSQL Serverに近い操作性を備えているのがManaged Instanceです。「既存のSQL Serverのデータベースを、シンプルな操作で、PaaSにリフト&シフトできる環境」として利用できます。
SQL Databaseの場合、SQL Serverのネイティブバックアップ(BACKUPステートメントで取得したバックアップ)をリストアできないため、既存のSQL Serverのデータベースを移行するには、BACPACファイルを活用するなどの方法を検討する必要がありました。
Managed Instanceでは、SQL Serverのネイティブバックアップを直接リストアできるので、既存のデータベースの移行容易性が大幅に向上しています。
Managed Instanceは移行先の環境としてだけではなく、「クラウドのSQL Serverを新規利用するための環境」としても活用できます。今までは、SQL Serverとの互換性を検討した結果、SQL Databaseでは要件を満たすことができず、IaaSにSQL Serverをインストールして利用していたという場合も、Managed InstanceにSQL Serverのデータベースエンジンとの高い互換性があれば、機能の違いを解消できる可能性もあります。
それでは、Managed Instanceの特徴を見ていきましょう。
●SQL Serverとの機能の違い
Managed InstanceはSQL Serverと高い互換性があるPaaSです。SQL Databaseでは実行できなかった、次のような機能を利用できます。
- ネイティブバックアップを使用して、既存SQL Serverのデータベースの移行が可能
- インスタンス内のデータベースをまたいだクエリの実行が、SQL Serverと同等の方法で可能
- SQL Serverエージェントによるジョブスケジューラーの利用が可能
- SQL Serverプロファイラーでクエリ情報の取得が可能
- レプリケーションのディストリビューター/パブリッシャーとしての利用が可能
SQL Databaseと比較して、“機能の違いが緩和されている”ことを感じていただけるのではないでしょうか。「ネイティブバックアップの使用」は、SQL Serverからデータベースを移行する際に重要な機能になります。「データベースをまたいだクエリ」についても、「SQL Serverと同一の操作感でデータを利用する」という観点では重要です。
しかし、Managed InstanceでもSQL Serverとは一部機能の違いがあります。本稿執筆時点では、表4のような違いがあります。
SQL Serverとの機能の違い | 代替案 |
---|---|
リンクサーバはSQL Server/SQL Databaseのみをサポート | Azure BLOBストレージを介したデータアクセスやAzure Data Factorなどの外部連携で、データ連携が代替可能かどうかを検討 |
Windows認証をサポートしていない | Azure Active Directory認証で認証管理が代替可能かどうかを検討 |
SQL ServerエージェントはT-SQLの定期実行のみをサポート | T-SQL以外の実行は、Azure Automationなどの機能で代替可能かどうかを検討 |
データベースのファイルレイアウトに制約がある ・インスタンスで280のデータファイルが上限 ・データベース内に複数のログファイルはサポートされない ・FileStreamはサポートされない |
サポートされていないファイルレイアウトのデータベースはリストアできないため、リストアでデータベースを移行する場合には、Managed Instanceがサポートするファイルレイアウトに変更する必要がある |
表4 Managed InstanceとSQL Serverの代表的な機能の違い |
SQL Databaseでは、タイムゾーンはUTC固定となっていましたが、Managed Instanceでは、インスタンス作成時に任意のタイムゾーンを指定できるようになりました。
これにより、GETDATE関数のような日付関数の値を日本時間で取得することが可能になるので、データベースの移行を実施した後は、アプリケーションは接続文字列の変更だけで、PaaSへの切り替えを完了するということも可能になるのではないでしょうか。
SQL Databaseで紹介したDatabase Migration Assistantは、Managed Instanceへの移行アセスメントもサポートしていますので、SQL Databaseだけでなく、Managed Instanceへの移行でもこのツールを活用してください(画面4)。
Managed Instanceの機能の違いについては、SQL Databaseの項で記載した機能の違いの他に、T-SQLの違いでも情報が公開されていますので、これらの情報も参照してください。
●リソースの利用形態
Managed Instanceは、インスタンスに対してリソースのサイズを設定し、そのリソース内で各データベースが動作します(図5)。SQL Serverのインスタンスを利用するときと同じ構成をイメージすると、分かりやすいのではないでしょうか。
Managed Instanceでは「リソースガバナー」がサポートされているので、データベース単位でリソースの使用状況を制御したい場合は、この機能を活用してください。
●購入モデル
SQL Databaseでは、DTUと仮想コアという2つの購入モデルがありました。Managed Instanceでは、仮想コアだけが購入モデルとして提供されています。次の画面5が、Managed Instanceのサイズの設定画面です。
選択する必要がある項目は次の通りです。
- 第4世代/第5世代のコンピューティング世代
- 仮想コア数(仮想コア数に応じて利用可能なメモリが決まる)
- データの最大サイズ
SQL Databaseの仮想コアと同様、ハードウェアについては第4世代/第5世代の2種類、サービスレベルについては汎用目的/ビジネスクリティカルの2種類が提供されており、これらの組み合わせにより、リソース制限が異なります(表5)。
サービスレベル | 汎用目的 | ビジネスクリティカル | |
---|---|---|---|
CPU | 第4世代 | 8〜24仮想コア | 8〜32仮想コア |
第5世代 | 8〜80仮想コア | 8〜80仮想コア | |
メモリ | 第4世代 | コア当たり 7GB 56〜156GB |
コア当たり 7GB 56〜156GB |
第5世代 | コア当たり 5.1GB 44〜440GB |
コア当たり 5.1GB 41〜408GB |
|
最大ストレージサイズ | 8TB | 4TB | |
利用ストレージ | Azure Premiumストレージ | ローカルSSDストレージ | |
IOスループット | ファイル当たり 500〜7500 IOPS ファイル当たり 100〜250MB/秒 5〜10msのIO待機時間 |
インスタンス当たり 22MB/秒 仮想コア当たり 24〜48MB/秒 1〜2msのIO待機時間 |
|
バックアップ保有期間 | 7〜35日 | 7〜35日 | |
読み取り可能レプリカ | なし | あり | |
利用可能な機能 | 列ストアインデックス | 利用可能 | 利用可能 |
インメモリOLTP | 不可 | 利用可能 | |
表5 Managed Instanceの仮想コアのサービスレベルとリソース制限 |
SQL Databaseの仮想コアモデルと同様に予約/Azureハイブリッド特典を利用できるので、これらの活用によるコスト削減も検討してください。
●ネットワーク構成
Managed Instanceは、SQL Databaseとネットワーク構成が異なり、パブリックなエンドポイント(アクセスポイント)を持っていません。
Managed Instanceも接続のための「サーバ名」が付与されますが、このサーバ名で解決されるのは「プライベートIPアドレス」で、ネットワークは「Azureの仮想ネットワーク内に閉じられた環境」が基本的な構成になります(フィードバックサイトでは、パブリックなエンドポイントについては開発中となっているので、今後、パブリックエンドポイント経由での接続がオプションとして提供される可能性があります)。
●2019年4月12日追記
パブリックエンドポイントを有効にする機能が利用可能になりました。既定では無効になっていますが、「Public endpoint for SQL Database Managed Instance is available as of today」で解説されている対応を行うことで、パブリックIP経由でのアクセスが可能になります。
Managed Instanceにアクセスが可能な環境は「Managed Instanceを配置している仮想ネットワークにアクセス可能な環境のみ」となり、Managed Instanceを配置している仮想ネットワークにアクセスできる環境以外は、データベースにアクセスすることはできませんので、初期状態からセキュリティの強化されたネットワーク構成となっています。
SQL Databaseでは、ファイアウォール機能を接続元の制限に使用していましたが、Managed Instanceの場合は、仮想ネットワークに統合されているサービスとなるので、接続元の制御は「ネットワークセキュリティグループ(NSG)」を使用して設定できます。
Managed Instanceを配置した仮想ネットワーク内のサブネット内の環境であれば、データベースへのアクセスは容易に許可できます。それ以外のネットワークからのアクセスを許可する場合には、ネットワークの構成を考慮する必要があります。
他の仮想ネットワークから接続する場合には、仮想ネットワークピアリグを使用した接続、社内のネットワークから接続する場合には、VPN接続の実施というようなネットワーク構成をとる必要があります。
詳細についてはこちらの情報を参照してください。
おわりに
前編ではPaaSのSQL Serverの特徴を、後編ではSQL DatabaseとManaged Instanceの特徴を紹介しました。
PaaSの利用により「データを格納し、データを活用する」ことに集中できる環境をすぐに手に入れられること、PaaSのSQL Serverを利用した際のさまざまなメリットを感じていただけたのではないでしょうか。
本記事では紹介し切れなかった情報もたくさんあります。さらに特徴を知りたいと思った方は、Cloud Platform関連コンテンツと、Microsoft Learnで、ステップバイステップで学習するためのドキュメントが公開されていますので、ぜひこちらの情報も活用してください。
●お知らせ
本稿のSQL Serverマイグレーションや、最新のSQL Serverとなる「SQL Server 2019」の最新情報については、毎月、東京・品川の日本マイクロソフトで開催されている『SQL Server丸わかり1日セミナー』でも解説しています。セミナーでは、デモを交えながら詳しく説明していますので、SQL Serverの最新情報に興味がある方はぜひご参加ください。
上記の日程以外にも開催予定がありますので、最新情報については以下のサイトでご確認ください。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- Azureで利用可能なPaaSのSQL Serverの特徴を学ぼう[前編]
本稿では、Microsoft Azureで利用可能なPaaSとして提供されている「SQL Server」の特徴やメリットを紹介します。最新機能ではなく、これからAzureのSQL Serverを利用しようと考えている方に、全体的な特徴をつかんでもらえる内容です。前編では、Azureで提供されているPaaSのSQL Serverの種類と特徴を紹介します。 - SQL Serverマイグレーションの歩き方[後編]――マイグレーションに活用できるツール
2019年7月のSQL Server 2008/2008 R2の延長サポート終了に伴い、EOS対応としてアップグレードやマイグレーションを準備/実施している方も多いでしょう。「後編」となる今回は、SQL Serverのマイグレーションを効果的に実施するための情報とツールを紹介します。 - SQL Serverマイグレーションの歩き方[前編]――マイグレーションの作業ステップ
2019年7月のSQL Server 2008/2008 R2の延長サポート終了に伴い、EOS対応としてアップグレードやマイグレーションを準備/実施している方も多いでしょう。「前編」となる今回は、SQL Serverのマイグレーションに必要な作業ステップについて解説します。