次の方法で共有


Azure 最適化エンジンをカスタマイズする

Azure 最適化エンジン (AOE) は、Azure の消費量とパフォーマンス データを収集、取り込み、分析してコスト最適化の推奨事項を提供する Azure Automation Runbook のセットです。 エンジンは柔軟でカスタマイズ可能に設計されており、組織のニーズに合わせて動作を調整できます。 この記事では、エンジンの設定をカスタマイズする方法に関するガイダンスを提供します。 これには、しきい値の調整、スケジュールの変更、エンジンのスコープの拡張が含まれます。


エンジンのスコープを広げる

既定では、Azure Automation マネージド ID には、それぞれのサブスクリプションに対してのみ閲覧者ロールが割り当てられます。 ただし、同じ閲覧者ロールを他のサブスクリプションに付与するか、さらに簡単に最上位の管理グループに付与するだけで、推奨事項の範囲を広げることもできます。

拡張仮想マシン (VM) の適切なサイズの推奨事項のコンテキストでは、VM が複数のワークスペースに報告されている可能性があります。 他のワークスペースを含める必要がある場合 (AOE が使用しているメインワークスペース以外に)、推奨事項のスコープにワークスペース ID を追加するだけで AzureOptimization_RightSizeAdditionalPerfWorkspaces 変数に追加できます ( ワークスペースの構成の詳細を参照してください)。

マルチテナント顧客の場合は、AOE のリーチを、デプロイされたテナント以外のテナントに拡張できます。 この拡張機能を実現するには、次の前提条件を満たす必要があります。

  • セカンダリ テナントにサービス プリンシパル (アプリの登録) とシークレットを作成します。
  • セカンダリ テナントのサービス プリンシパル (Azure サブスクリプション/管理グループの場合は Reader 、Microsoft Entra ID では Global Reader に必要なアクセス許可を付与します。
  • AOE の Automation アカウントで Automation 資格情報 を作成します。 サービス プリンシパルのクライアント ID をユーザー名として、シークレットをパスワードとして設定します。
  • AOE がデプロイされたサブスクリプションのコンテキストで、 Register-MultitenantAutomationSchedules.ps1 スクリプト ( AOE ルート フォルダーで使用可能) を実行します。 このスクリプトは、エクスポート Runbook ごとに新しいジョブ スケジュールを作成し、セカンダリ テナントにクエリを実行するように構成します。 次の構文を使用してスクリプトを呼び出す必要があります。
./Register-MultitenantAutomationSchedules.ps1 -AutomationAccountName <AOE automation account> -ResourceGroupName <AOE resource group> -TargetSchedulesSuffix <suffix to append to every new job schedules, e.g., Tenant2> -TargetTenantId <secondary tenant GUID> -TargetTenantCredentialName <name of the Automation credential created in the previous step> [-TargetSchedulesOffsetMinutes <offset in minutes relative to original schedules, defaults to 0>] [-TargetAzureEnvironment <AzureUSGovernment|AzureGermanCloud|AzureCloud>] [-ExcludedRunbooks <An array of runbook names to exclude from the process>] [-IncludedRunbooks <An array of runbook names to include in the process>]

スケジュールを調整する

既定では、AOE Automation スケジュールの基本時間はデプロイ時刻として設定されます。 初期デプロイが完了するとすぐに、エクスポート、取り込み、および推奨事項の Runbook は、エンジンの既定のスケジュールに従って実行されます。 たとえば、月曜日の午前 11 時に AOE をデプロイすると、毎週月曜日の午後 2 時 30 分に新しい推奨事項が表示されます。 何らかの理由でこのスケジュールがニーズに合わない場合は、 Reset-AutomationSchedules.ps1 スクリプト ( AOE ルート フォルダーで使用可能) を使用して、適切な時刻にリセットできます。 次のスクリプトを呼び出す必要があります。 構文に従い、入力要求に応答します。

./Reset-AutomationSchedules.ps1 -AutomationAccountName <AOE automation account> -ResourceGroupName <AOE resource group> [-AzureEnvironment <AzureUSGovernment|AzureGermanCloud|AzureCloud>]

選択する基準時間は UTC である必要があり、推奨事項を生成する曜日と時間に従って定義する必要があります。 選択した時刻から 3h30m を推測する必要があります。 これは、基準時間によって、推奨事項が生成される前に実行する必要があるすべての依存 Automation Runbook のスケジュールが定義されるためです。 たとえば、毎週月曜日の午前 8 時 30 分に推奨事項を生成するとします。基本時刻は、月曜日の午前 5 時に次のカレンダー日付になります。 選択する日付の形式は、YYYY-MM-dd HH:mm:ss である必要があります (例: 2022-01-03 05:00:00)。

また、このスクリプトでは、Runbook を実行するハイブリッド Worker グループ 必要な場合入力するように求められます (次のサブセクションを参照)。


ハイブリッド Worker を使用して AOE Runbook をスケーリングする

既定では、AOE Automation Runbook は Azure Automation サンドボックスのコンテキストで実行されます。 Automation サンドボックスのメモリ制限により、パフォーマンスの問題が発生する可能性があります。 または、AOE のセキュリティを強化するために、ストレージ アカウントまたは SQL Database のプライベート エンドポイントを実装することもできます。 どちらの場合も、ハイブリッド Worker から Runbook を実行する必要があります。 これは、Automation Hybrid Worker 拡張機能を備えた Azure またはオンプレミスの仮想マシンです。 AOE Runbook の実行コンテキストを変更するには、 Reset-AutomationSchedules.ps1 スクリプトを使用する必要があります。 前のサブセクションのスクリプトの使用方法を参照してください。 Runbook の実行基準時間を設定した後、Runbook を実行するハイブリッド Worker グループ名を入力します。

重要

  • Hybrid Worker マシンには、必要な PowerShell モジュールがインストールされている必要があります。 upgrade-manifest.json ファイルには、必要なモジュールの一覧が含まれています。
  • Runbook の実行コンテキストを Hybrid Worker に変更したら、AOE をアップグレードするたびに常に DoPartialUpgrade フラグを使用する必要があります。そうしないと、Runbook スケジュール設定が失われ、既定のサンドボックス構成に戻ります。
  • Azure、Microsoft Entra ID、課金アカウントのスコープに対する認証に使用されるマネージド ID は、引き続き Azure Automation で使用されます。 Hybrid Worker マシンにマネージド ID が割り当てられている場合でも使用されます (詳細参照)。 ユーザー割り当てマネージド ID は、次の場合にのみハイブリッド Worker のコンテキストでサポートされます。
    • Automation アカウントにはマネージド ID は関連付けられません。つまり、ユーザー割り当てマネージド ID を持てるのはハイブリッド Worker マシンだけです。
    • すべての Runbook は、ハイブリッド Worker のコンテキストで実行されます。 この場合は、ユーザー割り当てマネージド ID クライアント ID を値として使用して、 AzureOptimization_UAMIClientID Automation 変数を作成する必要があります。
    • AzureOptimization_AuthenticationOption Automation 変数の値がUserAssignedManagedIdentityに更新されます。

しきい値を調整する

Advisor のコストに関する推奨事項の場合、AOE の既定の構成では百分位数の 99 番目の VM メトリックの集計が生成されますが、あまり保守的に調整することはできません。 適合スコアの計算に使用される調整可能なメトリックしきい値もあります。 既定のしきい値は、CPU の場合は 30% (シャットダウンの推奨事項では 5%)、メモリの場合は 50% (シャットダウンの場合は 100%) 、ネットワーク帯域幅の場合は 750 Mbps (シャットダウンの場合は 10 Mbps) です。 すべての調整可能な構成は、Azure Automation 変数として使用できます。 次の表の情報では、最も関連性の高い構成変数が強調表示されています。 それらにアクセスするには、Automation アカウント 共有リソース - 変数 メニュー オプションに移動します。

変数 説明
AzureOptimization_AdvisorFilter Cost Advisor 以外のすべての柱に関する推奨事項を取得することに関心がない場合は、柱レベルのフィルター (コンマ区切りの一覧に次の値の少なくとも 1 つを指定できます: HighAvailability,Security,Performance,OperationalExcellence) を指定できます。 既定値は、すべての柱です。
AzureOptimization_AuthenticationOption Automation Runbook の既定の認証方法は RunAsAccount。 ただし、Azure VM でハイブリッド Worker を使用している場合は、 ManagedIdentity に変更できます。
AzureOptimization_ConsumptionOffsetDays Azure Consumption データ収集 Runbook は、7 日前に発生した課金イベント (既定) について毎日クエリを実行します。 より近いオフセットに変更できますが、一部のサブスクリプションの種類 (MSDN など) では、より小さい値がサポートされないことに注意してください。
AzureOptimization_PerfPercentileCpu CPU メトリック集計の既定のパーセンタイルは 99 です。 百分位数が小さいほど、VM の適切なサイズ適合スコア アルゴリズムの調整は控えめになります。
AzureOptimization_PerfPercentileDisk ディスク IO/スループット メトリックの集計の既定のパーセンタイルは 99 です。 百分位数が小さいほど、VM の適切なサイズ適合スコア アルゴリズムの調整は控えめになります。
AzureOptimization_PerfPercentileMemory メモリ メトリック集計の既定のパーセンタイルは 99 です。 百分位数が小さいほど、VM の適切なサイズ適合スコア アルゴリズムの調整は控えめになります。
AzureOptimization_PerfPercentileNetwork ネットワーク メトリック集計の既定のパーセンタイルは 99 です。 百分位数が小さいほど、VM の適切なサイズ適合スコア アルゴリズムの調整は控えめになります。
AzureOptimization_PerfPercentileSqlDtu SQL DB DTU メトリックに使用される既定のパーセンタイル。 パーセンタイルが小さいほど、SQL Database の適切なサイズアルゴリズムの調整は控えめになります。
AzureOptimization_PerfThresholdCpuPercentage CPU しきい値 (プロセッサ時間 % 単位)。 その上で、VM の適切なサイズの適合スコアが低下します。 その下に、Azure Virtual Machine Scale Set (スケール セット) の適切なサイズのコスト推奨トリガーがあります。
AzureOptimization_PerfThresholdCpuShutdownPercentage CPU しきい値 (プロセッサ時間 % 単位)。 その上で、VM の適切なサイズの適合スコアが減少します (シャットダウンの推奨事項のみ)。
AzureOptimization_PerfThresholdCpuDegradedMaxPercentage CPU しきい値 (% プロセッサ時間で観測された最大値)。 その上に、スケール セットの適切なサイズのパフォーマンスに関する推奨事項がトリガーされます。
AzureOptimization_PerfThresholdCpuDegradedAvgPercentage CPU しきい値 (プロセッサ時間 % で観測された平均)。 その上に、スケール セットの適切なサイズのパフォーマンスに関する推奨事項がトリガーされます。
AzureOptimization_PerfThresholdMemoryPercentage メモリのしきい値 (使用率メモリ単位)。 その上で、VM の適切なサイズの適合スコアが低下します。 その下に、スケール セットの適切なサイズのコスト推奨トリガーがあります。
AzureOptimization_PerfThresholdMemoryShutdownPercentage メモリのしきい値 (使用率メモリ単位)。 その上で、VM の適切なサイズの適合スコアが減少します (シャットダウンの推奨事項のみ)。
AzureOptimization_PerfThresholdMemoryDegradedPercentage メモリのしきい値 (使用率メモリ単位)。 その上に、スケール セットの適切なサイズのパフォーマンスに関する推奨事項がトリガーされます。
AzureOptimization_PerfThresholdNetworkMbps ネットワークのしきい値 (合計 Mbps 単位)。 その上で、VM の適切なサイズの適合スコアが低下します。
AzureOptimization_PerfThresholdNetworkShutdownMbps ネットワークのしきい値 (合計 Mbps 単位)。 その上で、VM の適切なサイズの適合スコアが減少します (シャットダウンの推奨事項のみ)。
AzureOptimization_PerfThresholdDtuPercentage DTU 使用率のしきい値。 その下では、SQL Database インスタンスは使用率が低いと見なされます。
AzureOptimization_RecommendAdvisorPeriodInDays Log Analytics リポジトリで Advisor の推奨事項を検索する間隔 (日数) です。Advisor の推奨事項は週に 1 回収集されるため、既定値は 7 です。
AzureOptimization_RecommendationAADMaxCredValidityYears サービス プリンシパルの資格情報/証明書の有効期間の最大年数です。この間隔を超える有効期間では、セキュリティに関する推奨事項が生成されます。 既定値は 2 です。
AzureOptimization_RecommendationAADMinCredValidityDays サービス プリンシパルの資格情報/証明書の有効期限が切れるまでの最小日数 。この間隔を下回る有効期間では、オペレーショナル エクセレンスの推奨事項が生成されます。 既定値は 30。
AzureOptimization_RecommendationLongDeallocatedVmsIntervalDays VM が削除を推奨されるまでに割り当てが解除された連続した日数 (ディスクの割り当てが長い間、仮想マシンが割り当て解除されました。 既定値は 30。
AzureOptimization_RecommendationVNetSubnetMaxUsedPercentageThreshold サブネット IP 領域の使用に許容される最大パーセンテージ。 既定値は 80 です。
AzureOptimization_RecommendationVNetSubnetMinUsedPercentageThreshold サブネットの IP 空間使用量の最小パーセンテージ - この値を下回る使用量は、それぞれのサブネットに低い IP 領域を使用するようにフラグを設定します。 既定値は 5 です。
AzureOptimization_RecommendationVNetSubnetEmptyMinAgeInDays 空のサブネットにフラグを設定するための最小有効期間 (日数) です。これにより、新しく作成されたサブネットにフラグが設定されるのを回避できます。 既定値は 30。
AzureOptimization_RecommendationVNetSubnetUsedPercentageExclusions サブネットの使用率の推奨事項から除外する必要があるサブネット名のコンマ区切りの一重引用符で囲まれた一覧 (例: 'gatewaysubnet','azurebastionsubnet')。 既定値は 'gatewaysubnet' です。
AzureOptimization_RecommendationRBACAssignmentsPercentageThreshold RBAC 割り当ての最大割合では、使用量が制限されます。 既定値は 80 です。
AzureOptimization_RecommendationResourceGroupsPerSubPercentageThreshold サブスクリプションあたりのリソース グループ数の最大割合は、使用量を制限します。 既定値は 80 です。
AzureOptimization_RecommendationRBACSubscriptionsAssignmentsLimit サブスクリプションあたりの RBAC 割り当ての上限。 現在、2000 ( documented として) に設定されています。
AzureOptimization_RecommendationRBACMgmtGroupsAssignmentsLimit 管理グループごとの RBAC 割り当ての上限。 現在、500 ( documented として) に設定されています。
AzureOptimization_RecommendationResourceGroupsPerSubLimit サブスクリプションあたりのリソース グループ数の上限。 現在、980 ( documented として) に設定されています。
AzureOptimization_RecommendationStorageAcountGrowthThresholdPercentage ストレージに保持ポリシーが設定されていないことにフラグを設定するために必要なストレージ アカウントの最小増加率。
AzureOptimization_RecommendationStorageAcountGrowthMonthlyCostThreshold ストレージにアイテム保持ポリシーが設定されていないというフラグを設定するために必要な最小月額コスト (EA/MCA 通貨)。
AzureOptimization_RecommendationStorageAcountGrowthLookbackDays ストレージ アカウントの増加を分析するためのルックバック期間 (日数)。
AzureOptimization_ReferenceRegion 使用可能な SKU の一覧を取得するための参照として使用される Azure リージョン (既定値は westeurope)。
AzureOptimization_RemediateRightSizeMinFitScore 修復を実行するには、VM の適切なサイズの推奨事項に必要な最小適合スコア。
AzureOptimization_RemediateRightSizeMinWeeksInARow 修復を行うには、VM の適切なサイズの推奨事項が完了する必要がある行の最小週数。
AzureOptimization_RemediateRightSizeTagsFilter 修復を行うには、VM の適切なサイズの推奨事項が持つタグ名と値のペアが必要です。 例: [ { "tagName": "a", "tagValue": "b" }, { "tagName": "c", "tagValue": "d" } ]
AzureOptimization_RemediateLongDeallocatedVMsMinFitScore 修復を実行するには、割り当て解除された VM に関する推奨事項の最小適合スコアが必要です。
AzureOptimization_RemediateLongDeallocatedVMsMinWeeksInARow 修復を実行するには、長時間割り当て解除された VM に関する推奨事項が完了している必要があります。
AzureOptimization_RemediateLongDeallocatedVMsTagsFilter タグ名と値のペアは、修復を実行するために、割り当て解除された VM の長い推奨事項が必要です。 例: [ { "tagName": "a", "tagValue": "b" }, { "tagName": "c", "tagValue": "d" } ]
AzureOptimization_RemediateUnattachedDisksMinFitScore 修復を実行するには、接続されていないディスクの推奨事項に対する最小適合スコアが必要です。
AzureOptimization_RemediateUnattachedDisksMinWeeksInARow 修復を行うには、接続されていないディスクの推奨事項が完了している必要がある行の最小週数。
AzureOptimization_RemediateUnattachedDisksAction 接続されていないディスクの推奨事項の修復 (Delete または Downsize) に適用するアクション。
AzureOptimization_RemediateUnattachedDisksTagsFilter タグ名と値のペアは、修復を実行するために接続されていないディスクの推奨事項が必要です。 例: [ { "tagName": "a", "tagValue": "b" }, { "tagName": "c", "tagValue": "d" } ]
AzureOptimization_RightSizeAdditionalPerfWorkspaces VM メトリックを検索する他の Log Analytics ワークスペース ID のコンマ区切りの一覧 (ワークスペースの構成 参照)。
AzureOptimization_PerfThresholdDiskIOPSPercentage ディスク IOPS 使用率のしきい値。 その下には、使用率が低い Premium SSD ディスクの推奨事項がトリガーされます。
AzureOptimization_PerfThresholdDiskMBsPercentage ディスク スループット使用率のしきい値。 その下には、使用率が低い Premium SSD ディスクの推奨事項がトリガーされます。
AzureOptimization_RecommendationsMaxAgeInDays SQL データベースに保持する推奨事項の最大有効期間 (日数)。 既定値: 365。
AzureOptimization_RetailPricesCurrencyCode 予約小売価格の収集に使用される通貨コード (EUR、USD など)。
AzureOptimization_PriceSheetMeterCategories 不要なデータの取り込みを回避するために、Price シートのフィルター処理に使用されるコンマ区切りのメーター カテゴリ。 既定値は "Virtual Machines,Storage" です。
AzureOptimization_ConsumptionScope 消費エクスポートのスコープ: Subscription (既定)、 BillingProfile (MCA のみ)、または BillingAccount (MCA の場合は、課金アカウント閲覧者ロールを AOE マネージド ID に追加する必要があります)。 詳細をご確認ください。

関連製品:

関連するソリューション: