Share via


Mesh Cloud スクリプトのインフラストラクチャと管理

概要

この記事では、Cloud Scripting プロジェクトをビルドして発行するときに Azure サブスクリプションにデプロイされるサービスなど、Mesh Clouding のインフラストラクチャと管理のさまざまな側面について説明します。

配置されたリソース

Mesh Cloud Scripting Services は です。クラウドで実行される NET ベースのアプリ。 顧客の Azure サブスクリプションにデプロイされた Mesh Cloud Scripting クラウド インフラストラクチャには、次の Azure リソースが含まれています。

  1. App Serviceプラン: Web アプリを実行できるコンピューティング クラスターを表します。 また、1 つ以上の異なる Web アプリを実行することもできます。

  2. Azure VNet: これは、App Service インスタンスがデプロイされ、相互に通信できるようにする仮想ネットワーク リソースです。

  3. Azure Web App Instance: 特定の VM で実行されている Web アプリのインスタンスを表します。

  4. Azure Storage アカウント: 発行されたコンテンツと Azure Web アプリ インスタンスに関する情報を保持します。 次の 2 つのコンポーネントに分割されます。

    1. Mesh Cloud Scripting Service Blob Storage: Mesh Uploader によってアップロードされた Mesh Cloud Scripting Service BLOB を保持します。
    2. Orleans メンバーシップ テーブル: Orleans Silo インスタンスのライブ性に関する情報を保持します。
  5. Log Analytics ワークスペース: App Serviceで実行されている Mesh Cloud Scripting Service から出力されたログを保持します。

  6. Application Insights: アプリケーション パフォーマンス監視 (APM) 機能を提供します。 APM ツールは、開発、テスト、運用環境のアプリケーションを監視するのに役立ちます。

App Service プラン

App Service プランでは、Web アプリを実行できるようにする一連のコンピューティング リソースを定義します。

特定のリージョン (西ヨーロッパなど) の App Service プランを作成する場合、一連のコンピューティング リソースはそのリージョンで対応するプランに対して作成されます。 この App Service プランに入れたアプリは、App Service プランで定義されたとおりにこれらのコンピューティング リソースで実行されます。 各 App Service プランは以下を定義します。

  • オペレーティング システム (Windows、Linux)
  • リージョン (米国西部、米国東部など)
  • VM インスタンスの数
  • VM インスタンスのサイズ (小、中、大)
  • 価格レベル (Free、Shared、Basic、Standard、Premium、PremiumV2、PremiumV3、Isolated、IsolatedV2)

詳細については、「App Service Plan Docs」を参照してください。

App Service プランの Mesh ツールキットの既定のリソース設定

  • SKU 名: P1v2
  • SKU レベル: PremiumV2
  • SKU 容量: 1
  • 種類: Linux
  • 予約済み: True

Mesh Cloud Scripting Services のコンテキストでは、App Serviceプランはコンピューティング コンポーネントです。 自動的にスケーリングされ、さまざまなインスタンスが相互に通信する方法 (ネットワーク) を処理できます。 Mesh Cloud Scripting Services を実行および管理するアプリケーションである CloudHost は、現在 Docker イメージとして提供されており、そのため Linux ベースのプランを使用しています。 Premium プランは、運用環境のワークロードに適しています。

既定値の詳細については、App Service プラン リソースの Bicep & ARM テンプレート リファレンスを参照してください

App Service

Azure App Service は、Web アプリケーション、REST API、およびモバイル バックエンドをホストするための HTTP ベースのサービスです。 App Service は、セキュリティ、負荷分散、自動スケーリング、自動管理などの Microsoft Azure の機能をアプリケーションに追加します。 App Service では、使用した Azure コンピューティング リソースに応じて課金されます。 使用するコンピューティング リソースは、アプリが実行されている "App Service プラン" によって決まります。

詳細については、App Service Docs を参照してください。

Mesh ツールキットの既定のリソース設定 - App Service

  • httpsOnly: True
  • alwaysOn: True
  • vnetPrivatePorts 数: 2
  • vnetRouteAllEnabled: True
  • vnetName: 既定のVirtual Network名

既定値の詳細については、App Service プラン リソースの Bicep & ARM テンプレート リファレンスを参照してください

Virtual Network

Azure Virtual Network は、Azure 内のプライベート ネットワークの基本的な構成要素です。 仮想ネットワークでは、Azure Virtual Machines (VM) などのさまざまな種類の Azure リソースから、他の Azure リソース、インターネット、オンプレミスのネットワークと安全に通信することができます。 仮想ネットワークは、独自のデータ センターで運用する従来のネットワークに似ています。 Azure Virtual Network によって、スケール、可用性、分離性など、Azure のインフラストラクチャの追加の利点が提供されます。

詳細については、Virtual Network Docs を参照してください。

Mesh ツールキットの既定のリソース設定 - Virtual Network

  • AddressSpace addressPrefixes: 10.0.0.0/16
  • サブネット アドレスPrefix: 10.0.0.0/24
  • サブネット委任名: 委任
  • サブネット委任サービス名: Microsoft.Web/serverFarms

既定値の詳細については、Virtual Network リソースの Bicep & ARM テンプレート リファレンスを参照してください

ストレージ アカウント

Azure ストレージ アカウントには、すべての Azure Storage データ オブジェクト (BLOB、ファイル、キュー、テーブル) が含まれます。 このストレージ アカウントでは、世界中のどこからでも HTTP または HTTPS 経由でアクセスできる Azure Storage データ用の一意の名前空間が提供されます。 ストレージ アカウント内のデータは、持続性があり、高可用性で、セキュリティ保護されており、非常にスケーラブルです。

詳細については、 ストレージ アカウントに関するドキュメントを参照してください。

Mesh ツールキットの既定のリソース設定 - ストレージ アカウント

  • SKU 名: Standard_LRS
  • 種類: StorageV2

既定値の詳細については、ストレージ アカウント リソースの Bicep & ARM テンプレート リファレンスを参照してください

Log Analytics ワークスペース

Log Analytics ワークスペースは、Azure Monitor、および Microsoft Sentinel や Microsoft Defender for Cloud などの他の Azure サービスからのログ データ用の固有の環境です。 これは、Azure Monitor ログ ストア内のデータに対してログ クエリを編集および実行するために使用される、Azure portalのツールです。

詳細については、 Log Analytics ワークスペースのドキュメントを参照してください。

Mesh ツールキットの既定のリソース設定 - Log Analytics ワークスペース

  • forceCmkForQuery: false
  • retentionInDays: 30
  • SKU 名: PerGB2018
  • dailyQuotaGb: 2 GB

既定値の詳細については、ワークスペース リソースの Bicep & ARM テンプレート リファレンスを参照してください

Application Insights

Application Insights は Azure Monitor の拡張機能であり、アプリケーション パフォーマンス監視 (APM) 機能を提供します。 APM ツールは、次の方法で、開発、テスト、運用環境からアプリケーションを監視するのに役立ちます。

アプリケーションのパフォーマンスを事前に理解します。 アプリケーション実行データを事後に確認して、インシデントの原因を特定します。 アプリケーションのアクティビティと正常性を記述するメトリックとアプリケーション テレメトリ データの収集に加えて、Application Insights を使用してアプリケーション トレース ログ データを収集して格納することができます。

詳細については、 Application Insights ドキュメントを参照してください。

Mesh ツールキットの既定のリソース設定 - Application Insights

  • 種類: Web
  • Request_Source: rest
  • WorkspaceResourceId: 既定の Log Analytics ワークスペース ID。

既定値の詳細については、Virtual Network リソースの Bicep & ARM テンプレート リファレンスを参照してください

Mesh Cloud Scripting Services クラウド インフラストラクチャの図

Mesh Cloud Scripting Service インフラストラクチャの図

リソース プロバイダーの登録

登録するサービスは次のとおりです。

  1. Microsoft.Web
  2. Microsoft.Storage
  3. Microsoft.Network
  4. Microsoft.Insights
  5. Microsoft.OperationalInsights

ノート

  • エラーに関するヘルプが必要な場合は、「 リソース プロバイダーの登録エラー」を参照してください。

  • Azure ドキュメントで説明されているように、サービスの登録はサブスクリプション レベルで行われます。 つまり、さまざまなリソース グループにサービスを登録する必要はありません。

Mesh Cloud Scripting Service デプロイのアクセス制御

  1. 開発者は、デプロイに使用できる電子メール アカウントを持っている必要があります。 新規または既存のアカウントを指定できます。

  2. Azure セキュリティ グループを使用してアクセス制御を管理する場合は、このグループ ("Mesh Cloud Scripting Services 開発者" など) を作成します。 Microsoft 365 グループの種類と比較した Azure セキュリティ グループの詳細については、「 グループとグループ メンバーシップについて」を参照してください。

  3. 開発者が Azure サブスクリプションにアクセスする方法を決定します。 これは、開発者がディレクトリのネイティブ メンバーであるか、ゲスト ユーザーであるかによって決まります。

    1. アクセス制御を簡単に管理する場合は、上記の手順 2 で作成した Azure セキュリティ グループにネイティブ メンバーを追加できます。
    2. ゲスト ユーザーを Azure サブスクリプションに追加することも、Azure セキュリティ グループに追加することもできます (上記の手順 2 を参照)。

    ゲスト ユーザーの詳細については、「Azure portal での B2B コラボレーション ユーザーの追加」を参照してください。

アクセス制御に関する推奨事項

Azure で Mesh Cloud Scripting Services クラウド インフラストラクチャをプロビジョニングするためのアクセス権を開発者に付与する方法に関するいくつかの推奨事項を次に示します。 これらは、アクセス制御ポリシーの制限によって異なります。

  1. Mesh Cloud Scripting Services 用にプロビジョニングされたサブスクリプション全体に対する 共同作成者ロール を開発者に付与します。

  2. Mesh Cloud Scripting Services クラウド インフラストラクチャデプロイ用の専用リソース グループを作成し、開発者にこのリソース グループの共同作成者ロールを付与します。 これは、2 番目の前提条件 (つまり、"Mesh Cloud Scripting Services 開発者") で作成した Azure セキュリティ グループを使用して行うことができます。 これにより、すべてのリソースを管理するためのフル アクセス権が付与されますが、Azure RBAC でのロールの割り当て、Azure Blueprints での割り当ての管理、イメージ ギャラリーの共有は許可されません。

  3. Mesh Cloud Scripting Services クラウド インフラストラクチャの作成と管理に必要な最小限のアクセス許可を持つ カスタム ロールを Azure に作成します。

    このロールは、2 番目の前提条件 ("Mesh Cloud Scripting Services 開発者") で作成した Azure セキュリティ グループに直接割り当てることができます。

    作成するカスタム ロールに推奨されるアクセス許可を次に示します。

    Mesh Cloud Scripting Service インフラストラクチャの図

    アップロードする JSON ファイルは次のようになります**:

    {
    "id": "88888-8888-8888-888-8888888",
        "properties": {
            "roleName": "MeshCloudScriptingServiceDeployer",
            "description": "Grants access to Mesh Cloud Scripting Services resources",
            "assignableScopes": [
                "/subscriptions/{subscriptionID}"
            ],
            "permissions": [
                {
                    "actions": [
                        "*/read",
                        "Microsoft.Authorization/*/read",
                        "Microsoft.ClassicCompute/virtualMachines/extensions/*",
                        "Microsoft.ClassicStorage/storageAccounts/listKeys/action",
                        "Microsoft.Compute/virtualMachines/extensions/*",
                        "Microsoft.HybridCompute/machines/extensions/write",
                        "Microsoft.Insights/alertRules/*",
                        "Microsoft.Insights/autoscalesettings/*",
                        "Microsoft.Insights/components/*",
                        "Microsoft.Insights/diagnosticSettings/*",
                        "Microsoft.Insights/generateLiveToken/read",
                        "Microsoft.Insights/metricAlerts/*",
                        "Microsoft.Insights/scheduledqueryrules/*",
                        "Microsoft.Insights/topology/read",
                        "Microsoft.Insights/transactions/read",
                        "Microsoft.Insights/webtests/*",
                        "Microsoft.Network/*",
                        "Microsoft.OperationalInsights/*",
                        "Microsoft.OperationsManagement/*",
                        "Microsoft.ResourceHealth/availabilityStatuses/read",
                        "Microsoft.Resources/deployments/*",
                        "Microsoft.Resources/subscriptions/resourcegroups/deployments/*",
                        "Microsoft.Resources/subscriptions/resourceGroups/read",
                        "Microsoft.Storage/storageAccounts/*",
                        "Microsoft.Support/*",
                        "Microsoft.Web/certificates/*",
                        "Microsoft.Web/hostingEnvironments/Join/Action",
                        "Microsoft.Web/listSitesAssignedToHostName/read",
                        "Microsoft.Web/serverFarms/join/action",
                        "Microsoft.Web/serverFarms/*",
                        "Microsoft.Web/sites/*"
                    ],
                    "notActions": [],
                    "dataActions": [],
                    "notDataActions": []
                }
            ]
        }
    }
    

    注意

    MeshCloudScriptingServiceDeployer カスタム ロールでは、ユーザーはリソース グループを作成できません。 ユーザーにリソース グループを作成させる場合は、 Microsoft.Resources/subscriptions/resourcegroups/write アクセス許可 も必要です。

Mesh Cloud Scripting Services のクォータ制限

Mesh Cloud Scripting Services インフラストラクチャでは、Premium App Service Linux プラン (P1V2) が利用されます。 Mesh Cloud Scripting Service のデプロイ中に発生する可能性があるApp Serviceの制限は次のとおりです。

リソース Premium (P1V2)
Azure App Service プランごとの Web、モバイル、または API アプリ 無制限
App Service プラン リソース グループあたり 100

注意

特に明記されていない限り、アプリとストレージのクォータはApp Serviceプランごとに行われます。

注意

これらのマシンでホストできるアプリの実際の数は、アプリのアクティビティ、マシン インスタンスのサイズ、対応するリソース使用率によって異なります。

次のエラーが表示される場合: "このリージョンには、サブスクリプションの PremiumV2 インスタンスが 0 個のクォータがあります。 別のリージョンまたは SKU を選択してみてください。 「Azure サブスクリプションの制限とクォータ」を参照してください。

古い Mesh クラウド スクリプト サービスをクリーンアップする

古い Mesh Cloud Scripting サービスまたは未使用の Mesh Cloud Scripting サービスがある場合は、次の手順に従って Mesh Cloud Scripting リソースを見つけて削除します。

  1. Azure Portal にログインします。

  2. [すべてのリソース] タブに移動します。

    Azure portal内のすべてのリソースを選択する

  3. [すべてのリソース] ページで、次の手順を実行します。

    a. 適切なサブスクリプションを選択します。

    Azure でサブスクリプションを選択する

    b. タグ EnvironmentName を使用してフィルターを追加します。

    Azure での EnvironmentName フィルター

    c. 削除する環境に一致するリソースを見つけます。

    Azure でのリソース フィルター

  4. 手順 3C で見つかった各リソースの名前の横にある省略記号をクリックし、ドロップダウンで [削除] をクリックして、古い Mesh Cloud Scripting サービスをクリーンアップします。 または、この リソースの削除 に関する記事の説明に従って Azure CLI を使用して、リソースを名前で削除することもできます。

次の手順