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

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

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

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

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

コストの異常を特定する

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

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

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

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

Note

Azure Government のお客様は、コスト異常アラートを使用できません。

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

分析情報を示す例のスクリーンショット。

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

異常は検出されませんでしたというメッセージを示す例のスクリーンショット。

異常を詳しく調べる

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

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

短期リソースのコストの増加を示す例のスクリーンショット。

コストの異常は毎日、サブスクリプションに対して評価され、その日の合計使用量を過去 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. 必要な情報をすべて入力して、[作成] を選択します。
    [アラート ルールを作成する] ページを示すスクリーンショット。ここにアラートの通知情報を入力する。 異常の警告ルールを表示および管理するには、左のナビゲーション メニューの [警告ルール] に移動します。

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

異常アラートの電子メールの例を示すスクリーンショット。

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

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

[累積コスト] ビューを示す例のスクリーンショット。

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

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

毎月のコストの増加を示す例のスクリーンショット。

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

1 日のコストの増加を示す例のスクリーン ショット。

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

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

リソースの種類の増加したコストを示す例のスクリーン ショット。

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

特定のリソースの増加したコストを示す例のスクリーン ショット。

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

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

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

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

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

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

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

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

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

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

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

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

予期しない料金を特定するためのその他の戦略

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

異常アラートからメールを受信しないのはなぜですか?

アラート メールを受信しない理由はいくつかあります。 次のアクションを試してください。

  • スケジュールの作成者に引き続き閲覧者ロールが割り当てられているか、カスタム ロールの場合は Microsoft.CostManagement/scheduledActions/read アクセス許可があることを確認します。
  • メール アドレスが受信者として表示され、正しいことを確認します。
  • microsoft-noreply@microsoft.com をブロックするメール ルールがないことを確認します。
  • 迷惑メール フォルダーで microsoft-noreply@microsoft.com からのメールを確認します。
  • アラートの有効期限が切れているか、削除されているかを確認します。 問題を修正するために、新しい異常アラート ルールを拡張または作成できます。
  • 管理者と協力して、Azure portal の請求金額の表示ポリシーを再有効化します。 このポリシーは、間接エンタープライズ契約と、Microsoft パートナーとの Microsoft 顧客契約に適用されます。

Note

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

異常アラート ルールを作成できないのはなぜですか?

次の手順を試してみてください。

  • 異常アラート ルールは、サブスクリプション スコープでのみ作成できます。 正しいスコープが選択されていることを確認します。

  • サブスクリプションの所有者、共同作成者、または Cost Management 共同作成者ロールがあることを確認します。

  • サブスクリプションあたり 5 つのアラートの制限に達したことを示すエラー メッセージが表示された場合は、既存の異常アラート ルールを編集することを検討してください。 制限を使い果たした場合に備えて、新しいルールを作成するのではなく、自分を受信者として追加します。

  • 異常アラートは現在、Azure パブリック クラウドでのみ利用できます。 政府機関向けクラウドやソブリン クラウドのいずれかを使用している場合、このサービスはまだ利用できません。

異常アラート ルールの作成を自動化するにはどうすればよいですか?

異常アラートの作成は、Scheduled Action API を使用し、スケジュールされたアクションの種類を InsightAlert. に指定することで自動化できます。

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

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