コストの異常と予期しない変化を特定する

この記事は、Cost Management and Billing を使用して、クラウド コストの異常や予期しない変化を特定するのに役立ちます。 Azure サブスクリプションに対して Cost Management と請求の機能を使用する場合、料金はかかりません。 まず、コスト分析のサブスクリプションの異常検出から始めて、コストと使用状況の傾向に基づいて、通常とは異なる使用パターンを特定します。 その後、コスト情報を詳しく調べ、コストの急上昇と急降下を見つけて調査する方法について学習します。

異常アラートを作成して、異常が検出された際に自動的に通知を受け取ることもできます。

一般に、調査する必要がある変化には次の 3 つの種類があります。

  • 新しいコスト - たとえば、仮想マシンなど、開始または追加されたリソース。 新しいコストは、多くの場合、ゼロから始まるコストとして表示されます。
  • 削除されたコスト - たとえば、停止または削除されたリソース。 削除されたコストは、多くの場合、ゼロで終わるコストとして表示されます。
  • 変化したコスト (増減) - たとえば、リソースが何らかの方法で変更され、コストが増減する場合があります。 仮想マシンのサイズ変更などの一部の変更は、削除されたメーターを置き換える新しいメーター (両方が同じリソースの下にある) として示される場合があります。

コストの異常を特定する

クラウドを利用すると、オンプレミスのコストと比較して大幅なコスト削減が約束されます。 しかし、クラウド ソリューションを事前に計画、管理、監視する場合は削減に注意が必要です。 事前のプロセスでも、コストに驚くことがあります。 たとえば、何かが変わったことに気付くかもしれませんが、それが何であるかはわかりません。 サブスクリプションに Cost Management の異常検出を使用すると、驚きを最小限に抑えるのに役立つ場合があります。

既存のコストに異常があるかどうかがわかっているかどうかにかかわらず、コスト分析により、分析情報の一部として異常が検出されたかどうかがわかります。 そうでない場合は、コスト分析で異常は検出されませんでしたと示されます。

コスト分析で異常を確認する

サブスクリプション スコープを選択すると、コスト分析スマート ビューで異常検出を使用できます。 異常状態は分析情報の一部として表示されます。

Azure portal の Azure ホームから、Cost Management に移動します。 サブスクリプション スコープを選択してから、左側のメニューで [コスト分析] を選択します。 ビュー リストで、[Smart views] (スマート ビュー) の下にある任意のビューを選択します。 次の例では、[リソース] スマート ビューが選択されています。 コストに異常がある場合は、分析情報が表示されます。

Example screenshot showing an insight.

異常がない場合は、異常は検出されませんでしたという分析情報が表示され、評価された日付を確認できます。

Example screenshot showing No anomalies detected message.

異常を詳しく調べる

変更された内容の基になるデータを詳しく調べるには、分析情報リンクを選択します。 クラシック コスト分析のビューが開き、評価された時間範囲のリソース グループ別の毎日の使用状況を確認できます。

9 月 28 日に毎日の実行速度が 748% 下がっているというラベルの付いた異常の前の例を引き続き使用して、リンクが選択された後のその詳細を確認しましょう。 次の例の画像には異常の詳細が示されています。 一時的な短期リソースのコストの大幅な増加、コストの急上昇、および最終的な急降下に注目してください。

Example screenshot showing a cost increase from a short-lived resource.

コストの異常は毎日、サブスクリプションに対して評価され、その日の合計使用量を過去 60 日間に基づく予測合計と比較し、最近の使用状況の一般的なパターンを考慮します。 たとえば、毎週月曜日に急上昇したとします。 異常検出は、1 日の終わり (UTC) から 36 時間後に実行され、確実に完全なデータ セットを使用できるようにします。

異常検出モデルは、一変量時系列の教師なし予測および再構築ベースのモデルであり、60 日間の過去の使用状況をトレーニングに使用して、その日の使用量を予測します。 異常検出予測では、 WaveNet と呼ばれるディープ ラーニング アルゴリズムを使用します。 これは Cost Management の予測とは異なります。 正規化された使用量の合計は、事前に定義された信頼区間に基づいて予期される範囲を外れた場合に異常であると判断されます。

異常検出は、コスト分析を使用して監視されているすべてのサブスクリプションで使用できます。 サブスクリプションに対して異常検出を有効にするには、コスト分析スマート ビューを開き、ページの上部にあるスコープ セレクターからサブスクリプションを選択します。 サブスクリプションがオンボードされていることを知らせる通知が表示され、24 時間以内に異常検出の状態が表示されます。

異常アラートを作成する

アラートを作成して、異常が検出された際に自動的に通知を受け取ることができます。 異常アラートを作成するには、Cost Management 共同作成者以上のロール、またはカスタム ロールの Microsoft.CostManagement/scheduledActions/write アクセス許可が必要です。 詳細については、「ロールごとの機能の動作」を参照してください。

Note

異常アラートは、メールが送信される時点でのルール作成者の現在のアクセスに基づいて送信されます。 組織に、より高い特権をユーザーに永続的に割り当てることを禁止するポリシーがある場合は、サービス プリンシパルを使用し、Scheduled Actions API を使用してアラートを直接作成できます。

異常アラートのメールには、リソース グループの数とコストの変化の概要が含まれます。 また、過去 60 日間と比較した、その日のリソース グループの最も大きな変化も含まれます。 また、そこには Azure portal への直接リンクが含まれているため、コストを確認してさらに詳しく調査できます。

異常アラートの電子メールは、検出されたときに 1 回だけ送信されます。

  1. Azure ホームで、[ツール][コスト管理] を選択します。
  2. ページの上部にあるスコープで正しいサブスクリプションが選択されていることを確認します。
  3. 左側のメニューで、[コストのアラート] を選択します。
  4. ツールバーの [追加] を選択します。
  5. [アラート ルールを作成する] ページで、[アラートの種類] として [異常] を選択します。
  6. 必要な情報をすべて入力して、[作成] を選択します。
    Screenshot showing the Create alert rule page where you enter notification information for an alert. 異常の警告ルールを表示および管理するには、左のナビゲーション メニューの [警告ルール] に移動します。

異常アラートに対して生成されたメールの例を次に示します。

Screenshot showing an example anomaly alert email.

予期しないコストの変化を手動で見つける

コストの変化を見つけるより詳細な例を見てみましょう。 [コスト分析] に移動し、サブスクリプション スコープを選択すると、まず [累積コスト] ビューが表示されます。 次のスクリーンショットは、表示される可能性のある内容の例を示しています。

Example screenshot showing the accumulated costs view.

既定のビューと現在の月 (2022 年 3 月) では、例の画像に急降下や急上昇は示されていません。

ビューを [日次コスト] に変更し、日付範囲を昨年 (2021) まで広げます。 その後、[細分性] を [月単位] に設定します。 次の画像では、7 月から arcticmustang リソース グループのコストが大幅に増加していることに注目してください。

Example screenshot showing an increase in monthly costs.

リソース グループのコストの増加をより詳しく調べてみましょう。 変化の期間を詳しく調べるには、日付範囲を変更します。 次の例では、2021 年 6 月から 7 月までのカスタム日付範囲を設定し、[細分性] を [日次] に設定しています。 この例では、リソース グループの 1 日あたりのコストは約 4.56 ドルでした。 6 月 30 日に、コストが 20.68 ドルに増加しました。 7 月 1 日以降、1 日のコストは 30.22 ドルに達しました。

Example screenshot showing an increase in daily costs.

今のところ、articmustang リソース グループのコストが 6 月末と 7 月初めに増加していることがわかっています。 コストの増加が 2 日間にわたっていることにお気付きかもしれません。 1 日の途中の変化では、次の丸 1 日までその変化の完全な影響が見られないため、2 日間で変化したことになります。

引き続きデータを詳しく調べ、コストの増加に関する詳細を確認しましょう。 コストが増加した項目 (articmustang) を選択し、リソース グループ名のフィルターが自動的に設定されるようにします。 その後、[グループ化] リストを [リソース] に変更します。 その後、日付範囲をより短い期間に設定します。 たとえば、6 月 28 日から 7 月 4 日です。 次の例の画像では、コストの増加が明確に示されています。 リソースの種類は microsoft.network/virtualnetworkgateways として示されています。

Example screenshot showing increased cost for a resource type.

次に、コスト articring が増加したグラフ内のリソースを選択して、リソースの別のフィルターを設定します。 これで、そのリソースのコストだけが表示されるようになりました。 その後、[グループ化] リストを [メーター] に設定します。

Example screenshot showing increased cost for a specific resource.

上記の例では、VpnGw1 という名前の仮想プライベート ネットワーク リソースが 6 月 30 日に使用されなくなったことがわかります。 6 月 30 日に、VpnGw3 という名前のよりコストがかかる仮想プライベート ネットワーク リソースの使用が開始されました。

この時点で、何が変わったかと、コストの変化値がわかります。 しかし、変わった ''理由'' がわからない場合があります。 この時点で、リソースの作成者または使用者に連絡する必要があります。 さらに学習するには、次のセクションに進んでください。

変更されたリソースの使用に関する担当者を見つける

コスト分析を使用して、使用量が急激に変化したリソースを見つけた可能性があります。 しかし、リソースの担当者や変化した理由は明白でない場合があります。 リソースに対して行われた変更については、特定のリソースを担当するチームが把握していることは少なくありません。 料金が発生した理由を特定する際には、そうしたチームに協力を促すことが効果的です。 たとえば、所有チームが最近、リソースを作成したり、その SKU を更新 (それによってリソースのレートが変化) したり、コードの変更によってリソースに対する負荷を増やしたりした可能性があります。

Azure Resource Graph の「リソースの変更の取得」記事は、リソースの構成変更に関する追加情報を見つけるのに役立つ場合があります。

リソースの所有者を特定する詳しい方法については、引き続き以降のセクションをお読みください。

リソースの監査ログを分析する

リソースを表示するアクセス許可があれば、その監査ログにアクセスできるはずです。 そのログを確認して、リソースへの直近の変更を担当したユーザーを見つけてください。 詳細については、「Azure アクティビティ ログ イベントを表示して取得する」を参照してください。

リソースの親スコープに対するユーザーのアクセス許可を分析する

通常、サブスクリプションまたはリソース グループへの書き込みアクセス権限を持つ人物は、作成または更新されたリソースについての情報を把握しています。 その人物ならリソースの目的を説明したり、事情を知っている担当者を紹介したりできるはずです。 サブスクリプション スコープのアクセス許可を持つ人物を特定する場合は、Azure リソースに対するユーザーのアクセス権の確認に関するページを参照してください。 課金スコープ、リソース グループ、管理グループにも同様のプロセスを使用できます。

タグ付けされたリソースを確認する

リソースへのタグ付けに関する既存のポリシーがある場合は、リソースに識別情報がタグ付けされている可能性があります。 たとえば、リソースに所有者、コスト センター、開発環境の情報がタグ付けされている場合があります。 リソースのタグ付けポリシーをまだ設定していない場合は、将来リソースを特定するのに役立つものを採用することを検討してください。

料金を特定するためにサポートを要請する

前述の戦略を使用しても、料金を請求された理由がわからない場合や、課金の問題について別途サポートが必要な場合は、サポート リクエストを作成してください。

次のステップ