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の特徴を見ていきましょう。
Managed InstanceはSQL Serverと高い互換性があるPaaSです。SQL Databaseでは実行できなかった、次のような機能を利用できます。
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のサイズの設定画面です。
選択する必要がある項目は次の通りです。
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の仮想ネットワーク内に閉じられた環境」が基本的な構成になります(フィードバックサイトでは、パブリックなエンドポイントについては開発中となっているので、今後、パブリックエンドポイント経由での接続がオプションとして提供される可能性があります)。
パブリックエンドポイントを有効にする機能が利用可能になりました。既定では無効になっていますが、「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.