連載
» 2019年04月12日 05時00分 公開

Azureで利用可能なPaaSのSQL Serverの特徴を学ぼう[後編]――Azure SQL DatabaseとAzure SQL Database Managed Instanceの違いクラウドのSQL Serverを最大限に活用するために(2/2 ページ)

[小澤真之/Microsoft MVP for Data Platform,@IT]
前のページへ 1|2       

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)。

画面4 画面4 Database Migration Assistantを使用したManaged Instanceとの互換性のアセスメント

 Managed Instanceの機能の違いについては、SQL Databaseの項で記載した機能の違いの他に、T-SQLの違いでも情報が公開されていますので、これらの情報も参照してください。

●リソースの利用形態

 Managed Instanceは、インスタンスに対してリソースのサイズを設定し、そのリソース内で各データベースが動作します(図5)。SQL Serverのインスタンスを利用するときと同じ構成をイメージすると、分かりやすいのではないでしょうか。

図5 図5 Managed Instanceのリソースの利用形態

 Managed Instanceでは「リソースガバナー」がサポートされているので、データベース単位でリソースの使用状況を制御したい場合は、この機能を活用してください。

●購入モデル

 SQL Databaseでは、DTUと仮想コアという2つの購入モデルがありました。Managed Instanceでは、仮想コアだけが購入モデルとして提供されています。次の画面5が、Managed Instanceのサイズの設定画面です。

画面5 画面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の最新情報に興味がある方はぜひご参加ください。

 上記の日程以外にも開催予定がありますので、最新情報については以下のサイトでご確認ください。


前のページへ 1|2       

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。