Azure App Service 上の Managed Instance は、サービスとしてのプラットフォームのシンプルさと、インフラストラクチャ レベルの制御の柔軟性を組み合わせたものです。 Managed Instanceは、OSのカスタマイズ、プライベートネットワーキング、Azureサービスとの安全な統合が必要なアプリケーション向けに設計されています。
Important
Managed Instanceは、特定の地域でWindowsのウェブアプリ向けに一般的に利用可能で、Pv4およびPmv4の料金プランに限定されています。 Microsoftは今後さらに多くの地域を導入していく予定です。 Managed InstanceはLinuxやコンテナをサポートしていません。
このクイックスタートでは、次の手順を実行します。
- Azure Developer CLI を使用してサンプル リソースをデプロイします。
- Azure App Service で Managed Instance を作成する
- サンプル アプリをデプロイします。
- デプロイを検証する。
[前提条件]
Azure アカウント: アクティブなサブスクリプションを持つ Azure アカウントが必要です。 まだアカウントがない場合は、無料でアカウントを作成することができます。
オプション設定(インストール)スクリプト:このクイックスタートは、圧縮された .zip ファイル内の
Install.ps1という名前のPowerShellスクリプトを使ってフォントをインストールします。 Managed Instanceでは設定スクリプトは必須ではありません。 アプリケーションが依存関係、オペレーティングシステムレベルの役割、機能、設定、またはインスタンス再起動後に失われるはずの永続的な変更を必要とする場合は、設定スクリプトを使用してください。 診断には永続的な設定ではなくRDPを使いましょう。
サンプル リソースをデプロイする
このクイックスタートでは、Azure Developer CLI(AZD)を使えば、必要なリソースをすべて迅速に展開できます。 このクイックスタートで使用される AZD テンプレートは、Azure サンプルのものです。
mkdir managed-instance-quickstart
cd managed-instance-quickstart
azd init --template https://github.com/Azure-Samples/managed-instance-azure-app-service-quickstart.git .
azd env set AZURE_LOCATION northeurope
azd up
azd up コマンドは、次の処理を実行します。
- ユーザー割り当てマネージド ID を作成します。
- Azure Storage BLOB を作成します。
- マネージド ID をストレージ コンテナーとマネージド インスタンス プランに割り当てます。
- ストレージ コンテナーに対する Storage-Blob-Data-Contributor アクセス権を付与します。
- 含まれているフォントと Install.ps1 を scripts.zip に圧縮します。
- scripts.zip をストレージ コンテナーにアップロードします。
注
サンプルリソースとともにデプロイされる設定スクリプトパッケージ(scripts.zip)にはInstall.ps1が含まれており、Microsoft AptosフォントファイルをC:\Windows\Fontsにコピーします。 あなたが展開するサンプルアプリはこれらのフォントを使っています。
次の PowerShell コードは、テンプレートで使用されている構成 (インストール) スクリプトです。
# Install.ps1 - Copy and register fonts on Managed Instance
Write-Host "Installing custom fonts on Managed Instance..." -ForegroundColor Green
# Copy all TTF and OTF fonts to Windows Fonts folder and register them
Get-ChildItem -Recurse -Include *.ttf, *.otf | ForEach-Object {
$FontFullName = $_.FullName
$FontName = $_.BaseName + " (TrueType)"
$Destination = "$env:windir\Fonts\$($_.Name)"
Write-Host "Installing font: $($_.Name)"
Copy-Item $FontFullName -Destination $Destination -Force
New-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts" -Name $FontName -PropertyType String -Value $_.Name -Force | Out-Null
}
Write-Host "Font installation completed." -ForegroundColor Green
azd up の最終的な出力は次の例のようになります。
=== Deployment Complete ===
Storage Account: stgpjqep6fdlfv6
Container Name: scripts
Managed Identity Client name: id-gpjqep6fdlfv6
Resource Group: rg-managed-instance
Storage Account、Container Name、Managed Identity Client name、Resource Group、Script URI の値は後で使用されます。
マネージド インスタンス プランをデプロイする
次の手順に従ってマネージド インスタンス プランを作成し、そこにアプリをデプロイします。
- Azure portal にサインインします。
- [+ リソースの作成] を選択します。
- マネージド インスタンスを検索します
- 結果で「Web App(Managed Instance)」を選択してください。
- [作成] を選択して作成プロセスを始めます。
- [基本] タブで、以下の詳細を指定します。
プロジェクトの詳細
| Setting | 価値 |
|---|---|
| Subscription | お使いの Azure サブスクリプション |
| リソース グループ | rg-managed-instance |
アプリの詳細
| Setting | 価値 |
|---|---|
| 名前 | contoso-mi-app |
| ランタイム スタック (実行時スタック) | ASPNET V4.8 |
| リージョン | 近くの地域 |
価格プラン
| Setting | 価値 |
|---|---|
| Windows プラン | 既定のプランを使用するか、新しく作成します (たとえば、'contoso-mi-plan') |
| 価格プラン* | 料金プランを選択します。 "価格プラン" に Pv4 または Pmv4 が表示されない場合は、リージョンの使用可否を確認するか、クォータの追加を依頼してください。 |
[詳細設定] タブで、以下の詳細を指定します。
構成 (インストール) スクリプト
| Setting | 価値 |
|---|---|
| ストレージ アカウント | 既定のプランを使用するか、新しく作成します (たとえば、'contoso-mi-plan') |
| コンテナ | scripts |
| ZIP ファイル | scripts.zip |
| 価値 | .zip の URL が正しいことを確認する |
| アイデンティティ | 先ほど作成したマネージド ID を選択します |
- [確認と作成]、[作成] の順に選択します。
サンプル アプリをマネージド インスタンスにデプロイする
この手順では、Cloud Shell を使用して、AZD テンプレートに含まれていたサンプル アプリをマネージド インスタンスにデプロイします。
- 次のコマンドでは、Web アプリをマネージド インスタンス プランにデプロイします。
<app-name>と<resource-group>は実際の値を使用して更新します。
az webapp deploy \
--resource-group "<resource-group-name>" \
--name "<app-name>" \
--src-path app.zip \
--type zip
アプリの参照
作成したアプリを参照するには、[概要] ページで既定のドメインを選択します。
.NET アプリは、マネージド インスタンス プランで実行されています。 このアプリは C:\Windows\Fonts ディレクトリのフォントを使用しています。
マネージド インスタンス プランを管理する
Web アプリを管理するには、Azure portal に移動し、 [App Services] を検索して選択します。
[App Services] ページで、Web アプリの名前を選択します。
[概要] ページで、App Service プランの名前を選択します。 [現在の App Service プラン] でプラン名を選択します。
左側のメニューの [設定] にある [構成] を選択して、構成の詳細を表示します。
リソースをクリーンアップする
前の手順では、リソース グループ内に Azure リソースを作成しました。 これらのリソースが将来必要になると思わない場合は、リソース グループを削除してリソースを削除できます。
- Azure Portal の Web アプリの [概要] ページで、[リソース グループ] の下の myResourceGroup リンクを選択します。
- リソース グループ ページで、リストされたリソースが削除対象であることを確認します。
- [リソース グループの削除] を選び、テキスト ボックスに「myResourceGroup」と入力して、[削除] を選びます。
- [削除] を選んでもう一度確認します。