次の方法で共有


Azure App Service マネージド インスタンス (プレビュー) を構成する

Azure App Service マネージド インスタンス (プレビュー) は、オペレーティング システム (OS) のカスタマイズ、オプションのプライベート ネットワーク、Azure リソースとの安全な統合が必要な Windows Web アプリ向けの、プランをスコープとするホスティング オプションです。 この記事では、次の主要な領域でマネージド インスタンスを構成する方法について説明します。

  • マネージド ID
  • 構成 (インストール) スクリプト
  • ストレージの取り付け
  • レジストリ キー
  • リモート デスクトップ プロトコル (RDP) アクセス

Important

マネージド インスタンスはプレビュー段階であり、一部のリージョンの Windows Web アプリで使用でき、Pv4 と Pmv4 の価格プランに限定されています。 他のリージョンでは今後利用できるようになります。 Linux とコンテナーはサポートされていません。

マネージド ID を追加する (App Service プランに)

プラン レベルのマネージド ID を使うと、起動時に Azure Storage にアクセスする構成 (インストール) スクリプト、Key Vault からシークレットをプルするレジストリ アダプター、Azure Files への認証を行うストレージ マウントなど、プラットフォーム レイヤーで発生するインフラストラクチャ操作に対する認証が可能になります。 これらのコンポーネントは、プランの複数のアプリが使用する共有リソースです。 たとえば、プラン レベルの ID を使うとマネージド インスタンスはインフラストラクチャ コンポーネントに対する認証を 1 回にすることができ、一方で個々のアプリは、データベースやアプリケーション シークレットなどのアプリ固有のリソースに対して独自の ID を維持します。

次のシナリオでは、App Service プランのマネージド ID が必要です。

  • Azure Storage に安全にアクセスして、そこから構成スクリプトを取得するため。
  • ストレージ マウントとレジストリ キー アダプターの資格情報と値を指定するために Key Vault にアクセスする。

マネージド ID の作成については、ユーザー割り当てマネージド ID の管理に関する記事をご覧ください。

マネージド ID をマネージド インスタンス プランに追加するには:

  1. Azure portal でマネージド インスタンスに移動します。
  2. [ID]>[ユーザー割り当て] を選びます。
  3. [+ 追加] を選択します。
  4. サブスクリプションマネージド ID を選びます。
  5. [追加] を選んで ID をプランに追加します。

構成 (インストール) スクリプトを追加する

構成 (インストール) スクリプトはインスタンスの起動時に実行され、永続的なカスタマイズを適用します。 たとえば、コンポーネント オブジェクト モデル (COM) の登録、Microsoft/Windows インストーラー (MSI) のインストール、インターネット インフォメーション サービス (IIS サーバー) の構成、ACL の変更、Windows の機能の有効化、環境変数の設定などがあります。

構成 (インストール) スクリプトを使うには、次のものが必要です。

  • App Service プランに割り当てられたマネージド ID
  • 構成 (インストール) スクリプト パッケージ (zip) を保持する BLOB コンテナーのあるストレージ アカウント。
  • ルートに Install.ps1 が含まれる 1 つの ZIP ファイル (エントリ ポイント)
  • ストレージ アカウント、コンテナー、またはリソース グループに対する Storage Blob Data Reader ロール

構成スクリプトを追加するには:

  1. Azure portal でマネージド インスタンスの App Service プランに移動します。

  2. [構成]>[一般設定] を選びます。

  3. [構成スクリプト] セクションで、まずスクリプトを構成します。

    Setting 価値
    ストレージ アカウント 使うストレージ アカウントを選ぶ
    コンテナ コンテナーの名前を入力します
    ZIP ファイル ZIP ファイルの名前を入力します
    価値 この値が正しいことを確認します
  4. [適用] を選んで変更を保存します。

構成スクリプトのベスト プラクティス

  • スクリプトをべき等にします (インストールの前に確認します)。
  • 破壊的操作を防ぎます (保護された Windows システム ディレクトリを変更しないようにします)。
  • 大きな負荷がかかるインストールを重ならないように調整して、開始時の待ち時間を短縮します。

最小限の zip 構造の例:

Install.ps1
myInstallerfileNameGoesHere.msi
config.xml

構成スクリプトの例:

# Install Components, for example Crystal Reports, Control Library, Database Driver
$ComponentInstaller = "myInstallerFileNameGoesHere.msi"
try {
    $Component = Join-Path $PSScriptRoot $ComponentInstaller
    Start-Process $Component -ArgumentList "/q" -Wait -ErrorAction Stop
} catch {
    Write-Error "Failed to install ${ComponentInstaller}: $_"
    exit 1
}

ストレージ マウントを構成する

ストレージ マウントは、アプリからアクセスできる永続的な外部ストレージ (Azure Files など) を提供します。 シークレット (Key Vault を使います) ではなく、共有ファイルシステムへのアクセスが必要なレガシ コードに使います。 ローカル (一時) ストレージを使うこともできますが、永続的な変更にはストレージ マウントが必要です。

ストレージ マウントを構成するには、次のものが必要です。

  • マネージド ID (Key Vault アクセス用)
  • Key Vault シークレット (資格情報ソース)

ストレージ マウントを構成するには:

  1. Azure portal でマネージド インスタンスに移動します。
  2. [構成]>[マウント] を選びます。
  3. [+ 新しいストレージ マウント] を選びます。

次の詳細を指定して、ストレージ マウントを構成します。

Setting 価値
名前 マウント名を入力します
ストレージの種類 Azure Files、カスタム、またはローカル (一時ストレージ)
ストレージ アカウント ストレージ アカウントを選択または入力します
ファイル共有 ファイル共有を選択します
価値 キー コンテナーを選択します
Secret キー コンテナー シークレットを選択します
ドライブ文字をマウントする ドライブ文字のパスを選択します

外部ストレージをマネージド インスタンスにマウントできます。 マウントされたストレージは再起動後も永続的であり、アプリのファイル システムからアクセスできます。

Azure Files を使用してストレージ マウントを構成する

Azure Files のストレージ マウントを構成するには:

  1. Azure ストレージ アカウントと Azure Files 共有を作成します。
  2. 接続資格情報をシークレットとして Key Vault に格納します。 サポートされているシークレットの内容: (例: DefaultEndpointsProtocol=...;AccountName=...;AccountKey=...;EndpointSuffix=core.windows.net)
  3. マウントをマネージド インスタンスに追加します (Azure portal または ARM/Bicep/Terraform)。

ヒント

セキュリティを強化するために、Azure RBAC と共有 ACL を使って共有レベルのアクセス許可を適用します。

カスタム UNC を使用してストレージ マウントを構成する

他の場所 (オンプレミス、VM、または Microsoft 以外) でホストされている SMB 共有へのマウントを使います。 ネットワークに確実に接続します (仮想ネットワーク統合、プライベート エンドポイント、ファイアウォール)。

  1. 資格情報が必要な場合は、次の形式で Key Vault シークレットにそれを格納します: username=<user>,password=<password>
    • ドメイン管理者アカウントは使わず、最小限の特権を持つサービス ID を使います。
  2. マウントをマネージド インスタンスに追加します。

レジストリ キーを構成する

アプリケーションの中には、Windows レジストリから読み取られた値に依存するものがあります。 レジストリ キー アダプターを使うと、レジストリ キーを作成し、Azure Key Vault のシークレットを値として使用できます。

レジストリ キーを構成するには、次のものが必要です。

  • マネージド ID (Key Vault アクセス用)
  • Key Vault シークレット (資格情報ソース)

レジストリ キーを構成するには:

  1. [構成]>[レジストリ キー] に移動します。

  2. [+ 追加] を選択します。

    Setting 価値
    経路 レジストリ パスを入力します
    Vault 既存のコンテナー名を入力します
    Secret キー コンテナー シークレットを選択または入力します
    タイプ 文字列または DWORD
  3. [追加] を選んでレジストリ キーを追加します。

注意事項

システムにとって重要なレジストリ パスを変更するときは注意してください。 誤って変更すると、インスタンスの安定性に影響する可能性があります。

RDP (Bastion) アクセスを構成する

クイック スタート: Azure Bastion を自動的にデプロイ すると、リモート デスクトップ プロトコル (RDP) を使用して VM インスタンスに安全に接続できます。 Azure Bastion 経由の RDP は、一時的な診断 (ログの検査、迅速な検証) 用です。 ポータルから Bastion を使う場合は、Bastion リソースを Standard 価格レベルにアップグレードして、[ネイティブ クライアント サポートと IP ベースの接続] を選びます。

Bastion と RDP のアクセスには、次のリソースが必要です。

  • マネージド インスタンスは仮想ネットワークに統合されている必要があります
  • ターゲット仮想ネットワーク上の Azure Bastion ホスト
  • Bastion サブネットの NSG から App Service プラン サブネットの NSG へのポート 3389 を許可する必要があります

Bastion を構成するには:

  1. [構成]>[Bastion/RDP] に移動します。
  2. 仮想ネットワークが接続されていることを確認します。
  3. [リモート デスクトップを許可する (Bastion 経由)] を選びます。

注意事項

RDP 経由のみで、手動インストーラーや構成の変更を適用しないでください。 リサイクル時または構成ドリフトの作成時に変更が失われます。

よく寄せられる質問 (FAQ)

Azure App Service マネージド インスタンスで実行されているオペレーティング システム (OS) は何ですか?

Windows Server 2022。

その他の Windows の役割と機能を有効にすることはできますか?

はい。構成スクリプトを使用します。 ただし、Windows Server の今後のリリースから削除された機能は、マネージド インスタンスでは使用できません。

Azure App Service マネージド インスタンスは、プラットフォームとアプリケーションの定期的なスタック更新プログラムを受け取りますか?

はい。インスタンスは、定期的なプラットフォームの更新プログラムとメンテナンスを受け取ります。 プレインストールされているアプリケーション スタックも定期的に更新されます。 構成 (インストール) スクリプトを介してインストールされたコンポーネントは、ユーザーが維持する必要があります。

Azure App Service マネージド インスタンスにインストールされているプログラミング言語は何ですか?

Microsoft .NET Framework 3.5 と 4.8、および Microsoft .NET 8.0 です。 他のランタイムが必要な場合は、構成スクリプトを使ってインストールできます。 これらはプラットフォームによって管理されないため、手動で更新する必要があります。

構成 (インストール) スクリプトにはどのような制限がありますか?

構成 (インストール) スクリプトを使うと、依存関係のインストール、役割と機能の有効化、オペレーティング システムのカスタマイズを行うことができます。 ただし、破壊的操作 (Windows\System32 の削除など) はサポートされておらず、インスタンスが不安定になる可能性があります。

構成 (インストール) スクリプトはどのアクセス許可レベルで実行されますか?

システムレベルのコンポーネントをインストールして構成できるよう、構成 (インストール) スクリプトは管理者のアクセス許可で実行されます。

Bastion を使用してインスタンスに接続するとき、オペレーターはどのようなロールのアクセス許可を持っていますか?

Bastion 経由で接続するオペレーターは、セッション中に管理者特権を使用します。

構成 (インストール) スクリプトまたはレジストリやストレージ アダプターでのエラーのトラブルシューティングを行うにはどうすればよいですか?

トラブルシューティングを行うには、構成 (インストール) スクリプトのログを確認します。 これらは、(Web アプリではなく) インスタンス上の C:\InstallScripts\Script\Install.log にあります。 または、App Service コンソールのログを Azure Monitor と Log Analytics に配布することもできます。

アダプター ログは、マシンのルートで見つかります。または、App Service のプラットフォーム ログにログされます。

Azure App Service マネージド インスタンスのワーカー インスタンスのアドレス指定可能なメモリは何ですか?

Azure App Service マネージド インスタンスのワーカー インスタンスのアドレス指定可能なメモリは、選んだ価格プランによって異なります。 次の表は、Azure App Service マネージド インスタンスのワーカー インスタンスでアドレス指定可能なメモリの一覧です。 他のコンポーネントやサービスなどをインストールする構成スクリプトがあるかどうかを検討することが重要です。これらのリソースは、Web アプリで使用できるメモリの量に影響します。

料金プラン コア メモリ (MB)
P0v4 1 2048
P1v4 2 5952
P2v4 4 13440
P3v4 28672
P1Mv4 2 13440
P2Mv4 4 28672
P3Mv4 60160
P4Mv4 16 121088
P5Mv4 32 246016

構成 (インストール) スクリプトをアップロードするには、どの Azure Storage サービスを使用する必要がありますか?

スクリプトと必要な依存関係のアップロードには Azure Storage Blob サービスを使います。

構成 (インストール) スクリプトの名前付けと形式に制限はありますか?

はい。スクリプトの名前は Install.ps1 にする必要があります。 PowerShell のみがサポートされています。 構成 (インストール) スクリプトと依存関係を 1 つの .zip ファイルとしてアップロードしてください。

ZIP ファイルの一部としてアップロードできる依存関係のサイズに制限はありますか?

サイズ制限は適用されません。 依存関係の全体的なサイズは、インスタンスのプロビジョニング時間に影響することに注意してください。

App Service プランのアダプターでマネージド インスタンスを追加または編集すると、プランのインスタンスが再起動されますか?

はい。マネージド インスタンスのプランのアダプター (構成スクリプト、ストレージ、レジストリ) を追加または編集すると、基になるインスタンスが再起動され、プランにデプロイされているすべての Web アプリに影響します。 インスタンスが再起動すると、RDP セッションで行われたすべての変更が削除されることにご注意ください。 依存関係のインストールまたは必要な他の構成変更を保持するには、常に構成 (インストール) スクリプトをお使いください。

マネージド インスタンスのプランに複数のインスタンスがある場合、1 つのインスタンスを再起動できますか?

はい。マネージド インスタンスを参照し、左側のメニューで [インスタンス] を選びます。 次に、インスタンス名の横にある [再起動] を選びます。

App Service プランのマネージド インスタンスに複数の Web アプリケーションがある場合、1 つの Web アプリケーションを再起動できますか?

はい。アプリの [概要] ページに移動して、[再起動] を選びます。

App Service プランのマネージド インスタンス内の Web アプリケーションにマネージド ID を割り当てることができますか?

はい。マネージド インスタンス内の Web アプリケーションに "異なる" マネージド ID を割り当てることができます。 マネージド ID のガイダンスに関する記事に従ってください

App Service プランのマネージド インスタンスに作成できるアダプターの数に制限はありますか?

いいえ。ストレージまたはレジストリのアダプターの数に制限はありません。 App Service プランのマネージド インスタンスでは、構成 (インストール) スクリプト アダプターを 1 つだけ作成できます。 アダプターの数を増やすと、マネージド インスタンスのプロビジョニング時間に影響する可能性があります。