Azure App Service 上の Managed Instance (プレビュー) は、オペレーティング システム (OS) のカスタマイズ、オプションのプライベート ネットワーク、Azure リソースとの安全な統合を必要とする Windows Web アプリ向けのプラン スコープのホスティング オプションです。 App Service のマネージド パッチ適用、スケーリング、診断、ID 機能を保持しながら、レガシまたはインフラストラクチャに依存するワークロード (コンポーネント オブジェクト モデル (COM)、レジストリ、Microsoft/Windows インストーラー (MSI)) を対象としています。
Important
Managed Instance はプレビュー段階であり、一部のリージョンの Windows Web アプリで使用でき、Pv4 と Pmv4 の 価格プランに限定されています。 他の地域は今後追加されます。 Linux とコンテナーはサポートされていません。
主な機能
次の表は、Managed Instance が提供する主な機能をまとめたものです。
| カテゴリ | 能力 |
|---|---|
| ネットワークの分離 | プラン レベルの仮想ネットワーク統合 (省略可能、作成後に追加できます): プライベート エンドポイントとカスタム ルーティング ネットワーク セキュリティ グループ (NSG) のサポート、NAT ゲートウェイ、ルート テーブル • 内部名前解決のためのプライベート ドメイン ネーム サーバー (DNS) |
| コンピューティングの分離 | プランに基づくネットワーク境界の完全制御による隔離 • 予測可能なパフォーマンスのための専用コンピューティング |
| カスタム コンポーネントのサポート | PowerShell のインストールスクリプト: • COM コンポーネント • レジストリと永続的なレジストリ値 インターネット インフォメーション サービス (IIS サーバー) の構成と ACL • MSI インストーラー • Microsoft 以外のコンポーネントと Windows サービス グローバル アセンブリ キャッシュ (GAC) のインストール • Windows 機能 (MSMQ クライアント、サーバー ロール) • カスタム フレームワーク (カスタマー マネージド パッチ適用) |
| レジストリ アダプター | セキュリティで保護された構成のための Azure Key Vault でサポートされるレジストリ キー |
| ストレージの柔軟性 | • Azure Files と Key Vault の統合 UNC パスとネットワーク共有アクセス • スクリプト化されたドライブ マッピング • ローカル一時ストレージ (2 GB、非永続的) |
| マネージド ID | • プラン レベルでのシステム割り当て ID とユーザー割り当て ID • Azure リソースへのキーレス認証 |
| 業務効率 | プラットフォームで管理される負荷分散、修正プログラムの適用、スケーリング: • 水平自動スケーリング (すべてのインスタンス) • 垂直スケール (Pv4/Pmv4 のみ) |
| リモート デスクトップ プロトコル | • Azure Bastion 経由の Just-In-Time RDP (仮想ネットワークが必要) • ログ、イベント ビューアー、IIS マネージャーへのアクセス |
| セキュリティと認証 | 証明書バインドを使用した TLS とカスタム ドメイン • Microsoft Entra ID を使用した App Service 認証 |
| ランタイムのサポート | • プレインストール済み: .NET Framework 3.5、4.8、および .NET 8 • インストール スクリプトを使用したカスタム ランタイム |
| CI/CD 統合 | GitHub Actions, Azure DevOps, zip デプロイ, パッケージのデプロイ, パッケージから実行 |
構成オプション
Managed Instance では、次の方法でプラン レベルの構成が提供されます。
構成 (インストール) スクリプト: Zip 形式の PowerShell スクリプトを Azure Storage にアップロードします (マネージド ID 経由でアクセス)。 スクリプトは、永続的な構成のために起動時に実行されます。
- RDP セッションの変更は一時的であり、再起動またはプラットフォームのメンテナンス後に失われます。
- スクリプト実行ログは App Service コンソール ログに表示され、Azure Monitor にストリーミングできます。
Windows レジストリ アダプター: Azure Key Vault に格納されているシークレット値を使用して、プラン レベルでレジストリ キーを定義します。
ストレージ マウント: Azure Files またはカスタム UNC パスでカスタム ドライブ文字を使用してストレージをマップします。 ローカル ストレージも使用できますが、2 GB に制限され、再起動後は永続化されません。
RDP アクセス: Azure Bastion 経由の Just-In-Time リモート デスクトップ (仮想ネットワーク統合が必要)。
ロギングおよびトラブルシューティング
- Managed Instance のログは、アプリ レベルではなく App Service プラン レベルで作成されます。
- ストレージ マウントとレジストリ アダプターのイベントは、App Service プラットフォーム ログにキャプチャされます。 これらのログは、Logstream 経由でストリーミングすることも、Azure Monitor と統合することもできます。
- 構成 (インストール) スクリプト ログは、App Service コンソール のログとインスタンス (C:\InstallScripts<scriptName>\Install.log など) で使用できます。 一元化されたアクセスには、Logstream または Azure Monitor を使用します。
- RDP アクセスには、Azure Bastion と仮想ネットワークの統合が必要です。 IIS マネージャーとイベント ビューアーは、診断に推奨されます。
適切なホスティング オプションの選択
必要な場合は、Managed Instance を使用します。
従来の Windows の互換性
- COM コンポーネント、レジストリの変更、MSI インストーラー
- 診断用の IIS マネージャーアクセスと RDP
- UNC パスまたはドライブ マッピングを使用したネットワーク共有
最小限のリファクタリングによる移行
- レガシー .NET Framework アプリの "リフト アンド インプルーブ"
- 完全な書き換えを行わない段階的な最新化
- コンプライアンス要件の計画レベルのネットワーク分離
Windows 固有のカスタマイズ
- スタートアップ構成用の PowerShell インストール スクリプト
- MSMQ やサーバー ロールなどの Windows 機能
- GAC の Microsoft 以外のカスタムコンポーネント
必要な場合は、Standard App Service を使用します。
最新のクラウドネイティブ開発
- 複数言語アプリのサポート (Python、Node.js、Java、PHP など)
- Linux またはコンテナー化されたワークロード
- OS カスタマイズを使用しないプラットフォームで管理されるインフラストラクチャ
- より広範なランタイムとフレームワークのオプション
必要な場合は、App Service Environment (ASE) を使用します。
エンタープライズ規模の隔離
- 完全に分離された専用インフラストラクチャ
- 100 以上のアプリケーションをサポートするデプロイ
- 完全なネットワーク境界制御
現在の制限事項 (プレビュー)
| 制限事項 | 詳細 |
|---|---|
| プラットフォーム | • Windows のみ (Linux/コンテナーなし) • ASE では使用できません |
| SKU | Pv4 と Pmv4 のみ |
| Regions | 東アジア、米国中西部、北ヨーロッパ、米国東部 |
| 認証 | Entra ID とマネージド ID のみ (ドメイン参加/NTLM/Kerberos なし) |
| ワークロード | Web アプリのみ (WebJobs、TCP/NetPipes なし) |
| Configuration | 永続的な変更にはスクリプトが必要です (RDP は診断のみ) |
ベスト プラクティス
- 永続的な構成には、構成スクリプト (スクリプトのインストール) を使用します。
- Key Vault を使用してシークレットを一元化する。
- プレビュー環境でのログ記録のセットアップを検証します。
- 運用環境のロールアウト前にステージングで構成 (インストール) スクリプトをテストします。
- ネットワーク ルールを依存関係インベントリに合わせます。
- 脅威の検出については、Microsoft Defender for Cloud を使用して監視します。