TL

Cloud Service

Azure SQL Managed Instance

SQL Server インスタンスにほぼ完全互換なフルマネージド DB。オンプレからのリフト&シフトに強く、AWS の RDS for SQL Server に相当する。

中級信頼性運用上の優秀性
最終更新: 2026-06-14公式ドキュメント ↗
TL;DR要点だけ先に
  • 1.SQL Server インスタンス互換を保ったまま運用を任せられる PaaS。
  • 2.SQL Agent やクロス DB クエリなど DB 単位の PaaS では使えない機能に対応。
  • 3.仮想ネットワーク内に配置され、オンプレからの移行先として有力。

解決する課題

  • オンプレの SQL Server をほぼ無改修で移行したいが、DB 単位の PaaS では機能が足りない → インスタンス互換のマネージド DB が欲しい
  • OS パッチ・バックアップ・高可用性の運用が重い → クラウド側に任せたい
  • SQL Agent ジョブ・クロス DB クエリ・CLR・リンクサーバーなどインスタンスレベルの機能を使い続けたい
  • DB をプライベートネットワーク内に閉じて配置したい

主要概念と用語

  • マネージドインスタンス(Managed Instance): SQL Server のインスタンスにほぼ完全互換なデプロイ単位。複数のユーザーデータベースを 1 つのインスタンスに収容できる
  • インスタンスレベル機能: SQL Server Agent、クロスデータベースクエリ、CLR、リンクサーバー、Service Broker、共通ログインなど、DB 単位の PaaS では制限される機能に対応
  • サービスレベル: 汎用の General Purpose(計算とストレージを分離)と、高 IOPS・低遅延でローカル SSD と可用性グループを使う Business Critical の 2 種類
  • インスタンスプール(Instance Pool): 小規模なインスタンスを共有プールにまとめ、リソースを効率的に使う仕組み
  • 委任サブネット(delegated subnet): マネージドインスタンスは必ず仮想ネットワークの専用サブネットに配置され、そのサブネットはインスタンス専用に委任される
  • マネージドインスタンスリンク(MI link): オンプレや別環境の SQL Server とインスタンスをレプリケーションで結び、移行やハイブリッド運用を支援する機能
SQL Database との使い分け

Azure SQL Database は DB 単位の PaaS で、運用は最も軽い一方、インスタンスレベル機能の一部が使えません。Azure SQL Managed Instance はインスタンスにほぼ完全互換で、SQL Agent やクロス DB クエリを含むオンプレ資産をそのまま移行しやすいのが利点です。AWS で言えば前者が Aurora 寄り、後者が RDS for SQL Server に近い位置づけです。

仕様・制限・クォータ

  • 互換性: SQL Server のインスタンスレベル機能の大半に対応するが、ファイルストリームや一部の物理パス依存機能など非対応の機能も残るため、移行前にアセスメントが必要
  • 配置: 必ず仮想ネットワークの専用サブネットに配置する。サブネットはインスタンスに委任され、他リソースと共有できない
  • 自動バックアップ: フル/差分/トランザクションログを自動取得。**ポイントインタイムリストア(PITR)に対応し、保持期間は設定可能。さらに長期保持(LTR)**で長期保管できる
  • 暗号化: Transparent Data Encryption(TDE)は既定で有効。Microsoft 管理鍵のほか、Key Vault による顧客管理鍵(BYOK)も選択可
  • ストレージとインスタンスサイズ: vCore 数・メモリ・最大ストレージはサービスレベルと選択した構成に比例する。General Purpose と Business Critical で上限が異なる
  • リージョン/サブスクリプションごとに vCore 数などのクォータがあり、引き上げ申請が可能

内部の仕組み

  • General Purpose: 計算層とリモートのストレージを分離した構成。計算ノードに障害が起きると別ノードへ再配置して可用性を確保する。可用性とコストのバランスを重視する汎用ワークロード向け
  • Business Critical: Always On 可用性グループで複数レプリカを持ち、ローカル SSD で動作する。1 つは読み取り専用レプリカとして利用でき、低遅延・高 IOPS を必要とするワークロードに向く
  • ネットワーク分離: インスタンスは委任サブネット内に閉じて動作し、内部の管理トラフィックとユーザートラフィックが分離される。アプリは仮想ネットワーク内またはプライベート接続経由でアクセスする
  • フェイルオーバー: 計画外フェイルオーバーが起きうるため、アプリ側には接続の再試行(リトライ)ロジックを実装しておくのが前提
サービスレベルの取り違え注意

General Purpose はコスト重視の汎用Business Critical は低遅延・高 IOPS・読み取りレプリカ付きです。I/O 遅延が問題になる、または読み取りレプリカが欲しい場合は Business Critical を選びます。後から両者を変更することは可能ですが、ストレージ方式が変わるため移行に時間がかかる点に注意します。

設計パターン / ベストプラクティス

  • 移行前にアセスメントツールで互換性を確認し、非対応機能を洗い出す
  • 本番はゾーン冗長を有効化し、可用性ゾーン間で冗長化する(対応するサービスレベルで)
  • 災害対策には自動フェイルオーバーグループで別リージョンへ複製し、読み取りスケールにも活用する
  • 接続は仮想ネットワーク内に閉じ、必要に応じてプライベート接続でアプリと結ぶ
  • 認証は Microsoft Entra ID 認証を優先し、SQL 認証のパスワード管理を避ける
  • オンプレからの移行は MI link や Azure Database Migration Service を使い、ダウンタイムを抑える

運用・監視

  • Azure Monitor / メトリクスで CPU・メモリ・ストレージ・IO・接続数を監視する
  • SQL Server Agent ジョブをそのまま運用できるため、既存の定期メンテナンスジョブを移行しやすい
  • スロークエリは Query Store の実行プラン履歴とインデックス推奨を見直す
  • 接続不可時はサブネットのネットワークセキュリティグループ・ルートテーブル・DNS 設定を確認する
  • バックアップは自動取得されるが、復元手順の検証を定期的に行う

コスト

  • 課金は vCore 数 × 時間 + ストレージ + バックアップストレージが基本
  • 定常稼働は**予約容量(1〜3 年)**や Azure Hybrid Benefit(SQL Server ライセンス持ち込み)で割引できる
  • 小規模インスタンスを多数使う場合はインスタンスプールでリソースを共有しコストを平準化する
  • 具体的な料金は構成・リージョン・期間で変動するため、公式の料金計算ツールで見積もる
コスト最適化の手段考え方向いている用途
プロビジョニング(vCore)確保した vCore × 時間で課金安定稼働の本番
予約容量(1〜3年)前払いコミットで割引長期に動かす本番
Azure Hybrid Benefit既存 SQL ライセンスを持ち込みオンプレ SQL 資産の活用
インスタンスプール小規模インスタンスで容量を共有多数の小規模インスタンス

セキュリティ

  • TDE(保存時暗号化)は既定で有効。鍵は Key Vault による顧客管理鍵(BYOK)も選択可
  • 転送時は TLS を強制する
  • Microsoft Entra ID 認証 + RBAC で権限を制御し、SQL 認証のパスワード運用を避ける
  • 仮想ネットワーク分離でパブリック露出を排除し、サブネットのネットワークセキュリティグループで最小化する
  • Microsoft Defender for SQL で脆弱性評価・異常検知を有効化する
  • 機微データは Always Encrypted(クライアント側暗号化)や動的データマスクで保護する
アンチパターン

パブリックエンドポイントを安易に有効化し、ネットワークセキュリティグループを緩く設定するのは NG です。マネージドインスタンスは仮想ネットワーク分離が前提であり、公開面を絞ったうえで Entra ID 認証を使い、接続文字列にパスワードを直書きしないことが重要です。

Well-Architected の観点

  • 信頼性(Reliability): ゾーン冗長と自動フェイルオーバーグループで可用性を高め、自動バックアップと PITR で復旧性を確保する。アプリにリトライロジックを実装する
  • オペレーショナルエクセレンス(Operational Excellence): パッチ・バックアップ・高可用性をプラットフォームに任せ、SQL Agent ジョブで既存運用を継続できる。監視は Azure Monitor と Query Store に集約する
  • セキュリティ: 仮想ネットワーク分離、TDE、Entra ID 認証、Defender for SQL を組み合わせて多層防御を構成する
  • コスト最適化: 予約容量と Azure Hybrid Benefit、インスタンスプールで定常コストを抑える

試験で問われるポイント

頻出
  • SQL Database と Managed Instance の違い: 前者は DB 単位の PaaS、後者はインスタンス互換でオンプレからのリフト&シフト向き。SQL Agent やクロス DB クエリが必要なら Managed Instance
  • AWS との対応: Managed Instance は RDS for SQL Server に最も近い。インスタンス互換でオンプレ移行を重視する点が鍵
  • ネットワーク: マネージドインスタンスは必ず仮想ネットワークの専用(委任)サブネットに配置する
  • サービスレベルの選択: 低遅延・高 IOPS・読み取りレプリカが要るなら Business Critical、汎用でコスト重視なら General Purpose
  • 可用性と DR: ゾーン冗長と自動フェイルオーバーグループの役割を区別する

関連サービス・比較

観点Azure SQL Managed InstanceAmazon RDS for SQL Server
位置づけSQL Server インスタンス互換のマネージド DBSQL Server エンジンのマネージド RDB
互換性インスタンスレベル機能の大半に対応SQL Server 機能に幅広く対応
配置仮想ネットワークの専用サブネットVPC 内に配置
高可用性ゾーン冗長 / Business Critical の可用性グループMulti-AZ(同期スタンバイ)
読み取りスケールBusiness Critical の読み取りレプリカリードレプリカ
地理冗長/DR自動フェイルオーバーグループクロスリージョン リードレプリカ
権限/認証Microsoft Entra ID + RBACIAM データベース認証 + Secrets Manager
ライセンス割引Azure Hybrid BenefitBYOL / ライセンス込みの両対応
どちらを選ぶか

インスタンスレベルの機能を温存したまま運用を任せたいなら Managed Instance、運用を最小化して DB 単位で使いたいなら SQL Database を検討します。最も軽い PaaS を望み、独自機能への依存が小さいワークロードでは SQL Database が向きます。

ハンズオン / CLI例

# リソースグループを作成
az group create --name demo-rg --location japaneast

# 仮想ネットワークと専用サブネットを作成
az network vnet create \
  --name demo-vnet \
  --resource-group demo-rg \
  --location japaneast \
  --address-prefix 10.0.0.0/16 \
  --subnet-name mi-subnet \
  --subnet-prefix 10.0.0.0/24

# サブネットをマネージドインスタンスに委任
az network vnet subnet update \
  --name mi-subnet \
  --resource-group demo-rg \
  --vnet-name demo-vnet \
  --delegations Microsoft.Sql/managedInstances

# マネージドインスタンスを作成(General Purpose / Gen5)
az sql mi create \
  --name demo-mi-0614 \
  --resource-group demo-rg \
  --location japaneast \
  --subnet mi-subnet \
  --vnet-name demo-vnet \
  --admin-user miadmin \
  --admin-password 'StrongP@ssw0rd!' \
  --edition GeneralPurpose \
  --family Gen5 \
  --capacity 4 \
  --storage 256

# インスタンス内にデータベースを作成
az sql midb create \
  --resource-group demo-rg \
  --managed-instance demo-mi-0614 \
  --name appdb

Azure Service

Azure SQL Managed Instanceを実務で読む

TL;DRは入口です。実際に選ぶ・使う段階では、何を解決するか、何と比較するか、導入後にどこで詰まるかまで見る必要があります。

解決すること

データベース

比較で見る軸

クラウド: Azure / カテゴリ: データベース / 難易度: intermediate

導入後に効く点

SQL Agent やクロス DB クエリなど DB 単位の PaaS では使えない機能に対応。

先に潰すリスク

サービス単体ではなく、権限、ネットワーク、監視、課金、バックアップを含めて設計する必要がある。

数字・仕様の読み方
クラウド
Azure
カテゴリ
データベース
難易度
intermediate
関連資格
設計柱
reliability / operational

判断チェックリスト

  • 自社の用途が「データベース / reliability」に近いか確認する。
  • 強みである「SQL Server インスタンス互換を保ったまま運用を任せられる PaaS。」が本当に評価軸になるか確認する。
  • 注意点の「サービス単体ではなく、権限、ネットワーク、監視、課金、バックアップを含めて設計する必要がある。」を運用で吸収できるか確認する。
  • 公開値や仕様値は、対象プラン・対象機種・対象リージョンまで確認する。
  • 既存システム、ID、ネットワーク、監視、バックアップとの接続方法を先に洗い出す。
  • 小さく試してから、本番移行、権限設計、障害時手順、コスト監視を決める。

次に確認する観点

データベースreliabilityoperational