Azure App Service 上の Managed Instance は、サービスとしてのプラットフォームのシンプルさと、インフラストラクチャ レベルの制御の柔軟性を組み合わせたものです。 マネージド インスタンスは、プランレベルの分離、カスタマイズ、セキュリティで保護されたネットワーク統合を必要とするアプリケーション向けに設計されています。
Important
マネージド インスタンスはプレビュー段階です。使用できるのは一部のリージョンの Windows Web アプリであり、Pv4 と Pmv4 の価格プランに限定されています。 今後、さらにリージョンが追加される予定です。 Linux とコンテナーはサポートされていません。
このクイックスタートでは、次の手順を実行します。
- Azure Developer CLI を使用してサンプル リソースをデプロイします。
- Azure App Service マネージド インスタンス (プレビュー) を作成します。
- サンプル アプリをデプロイします。
- デプロイを検証する。
[前提条件]
Azure アカウント: アクティブなサブスクリプションを持つ Azure アカウントが必要です。 まだアカウントがない場合は、無料でアカウントを作成することができます。
承認済みリージョンへのアクセス: プレビュー段階でマネージド インスタンスを使用できるリージョンには、"東アジア"、"米国東部"、"北ヨーロッパ"、"米国中西部" などがあります。 今後、さらにリージョンが追加される予定です。
圧縮された .zip ファイル内の構成 (インストール) スクリプト (
Install.ps1という PowerShell スクリプト)
サンプル リソースをデプロイする
このクイックスタートでは、Azure Developer CLI (AZD) を使用して、必要なすべてのリソースを簡単にデプロイできます。 このクイックスタートで使用される AZD テンプレートは、Azure サンプルのものです。 Azure Cloud Shell で次のコマンドを実行し、プロンプトに従うだけです。
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) には、Microsoft Aptos フォント ファイルを C:\Windows\Fonts にコピーする Install.ps1 が含まれています。 後でデプロイするこのサンプル アプリでは、これらのフォントを使用してテキストを画像にレンダリングします。 このプロセスは、アプリ コードの実行前に、マネージド インスタンス構成 (インストール) スクリプトを使用して OS レベルまたはフレームワークの依存関係をどのように構成できるかを示しています。
次の 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 アプリ (マネージド インスタンス用) (プレビュー)] を選択します。
- [作成] を選択して作成プロセスを始めます。
- [基本] タブで、以下の詳細を指定します。
プロジェクトの詳細
| 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」と入力して、[削除] を選びます。
- [削除] を選んでもう一度確認します。