Azure Machine Learning のコストの管理を計画する

この記事では、Azure Machine Learning のコストを計画して管理する方法について説明します。 リソースを追加する前に、まず、コストの計画に役立つ Azure 料金計算ツールを使用しましょう。 次に、Azure リソースを追加しながら推定コストを確認します。

Azure Machine Learning リソースの使用を開始した後は、コスト管理機能を使用して、予算の設定とコストの監視を行いましょう。 また、予想コストを確認し、支出の傾向を明らかにして、対処した方がよい部分を識別します。

Azure Machine Learning のコストは、Azure の月額請求料金の一部でしかないことを理解してください。 Azure の他のサービスを使用している場合は、お使いの Azure サブスクリプションで使用されているすべての Azure サービスとリソース (サードパーティのサービスを含む) に対して課金されます。 この記事では、Azure Machine Learning のコストを計画および管理する方法について説明します。 Azure Machine Learning のコスト管理に慣れたら、同様の方法を適用して、サブスクリプションで使用されているすべての Azure サービスのコストを管理します。

コストの最適化の詳細については、「Azure Machine Learning のコストを管理して最適化する」をご覧ください。

前提条件

Microsoft Cost Management のコスト分析では、ほとんどの種類の Azure アカウントがサポートされますが、すべてではありません。 サポートされているアカウントの種類の完全な一覧については、「Understand Cost Management data (Cost Management データの概要)」を参照してください。

コスト データを表示するには、少なくとも Azure アカウントの "読み取り" アクセスが必要です。 Cost Management データに対するアクセス権の割り当てについては、データに対するアクセス権の割り当てに関するページを参照してください。

Azure Machine Learning を使用する前にコストを見積もる

Azure Machine Learning ワークスペースにリソースを作成する前に、Azure 料金計算ツールを使用してコストを見積もります。 料金計算ツールの左側で、[AI + 機械学習] を選択してから、[Azure Machine Learning] を選択して始めます。

次のスクリーンショットは、料金計算ツールでのコスト見積もりの例を示しています。

Azure 料金計算ツールでの推定コストの例を示すスクリーンショット。

ワークスペースにリソースを追加したら、この計算ツールに戻り、同じリソースをここに追加して、コストの見積もりを更新します。

詳細については、「Azure Machine Learning の価格」を参照してください。

Azure Machine Learning の詳細な課金モデルを理解する

Azure Machine Learning は、新しいリソースをデプロイするときに Azure Machine Learning と共にコストが発生する Azure インフラストラクチャ上で実行されます。 追加のインフラストラクチャでコストが発生する可能性があることを理解しておくことが重要です。 デプロイされたリソースに変更を加える場合は、このコストを管理する必要があります。

Azure Machine Learning で通常発生するコスト

Azure Machine Learning ワークスペースのリソースを作成すると、他の Azure サービスのリソースも作成されます。 これらは次のとおりです。

コンピューティング インスタンスを作成する場合、仮想マシン (VM) はそのまま維持されるため、作業に使用できます。

  • アイドリングからのシャットダウンを有効にして、指定された期間 VM がアイドル状態である場合にコストを削減します。
  • または、コンピューティング インスタンスが自動的に開始および停止されるようにスケジュールを設定して、使用する予定がないときのコストを削減します。

リソースの削除前にコストが発生する可能性がある

Azure portal 内で、または Azure CLI を使用して Azure Machine Learning ワークスペースを削除する前、ワークスペース内でアクティブに作業していない場合でも、次のサブ リソースは一般的なコストとして蓄積されます。 後でご自分の Azure Machine Learning ワークスペースに戻る予定がある場合、これらのリソースには引き続きコストが発生する可能性があります。

  • VM
  • Load Balancer
  • Azure Virtual Network
  • 帯域幅

VM はそれぞれ、実行時間が 1 時間経過するごとに課金されます。 コストは VM の仕様によって異なります。 実行されているが、データセットに対してアクティブに動作していない VM もロード バランサーを介して課金されます。 コンピューティング インスタンスごとに、1 日あたり 1 つのロード バランサーが課金されます。 コンピューティング クラスターの 50 ノードごとに、1 つの Standard ロード バランサーが課金されます。 ロード バランサーあたりの課金額は 1 日あたり約 0.33 ドルです。 停止しているコンピューティング インスタンスとコンピューティング クラスターに対してロード バランサーのコストが発生するのを回避するには、コンピューティング リソースを削除します。

また、コンピューティング インスタンスでは、停止状態であっても P10 ディスク コストが発生します。これは、そこに保存されたユーザー コンテンツが、Azure VM と同様に停止状態の期間も保持されるためです。 コストをより適切に制御するために、OSディスクのサイズ/タイプを構成できるように取り組んでいます。 Azure Virtual Network については、1 つの仮想ネットワークの課金はサブスクリプションごと、およびリージョンごとに行われます。 仮想ネットワークは、複数のリージョンまたはサブスクリプションにまたがることはできません。 仮想ネットワーク内でプライベート エンドポイントを設定した場合にも、料金が発生することがあります。 仮想ネットワークで Azure Firewall を使用している場合は、これによっても料金が発生する可能性があります。 帯域幅の料金は使用量を反映します。転送されるデータが多いほど、課金額は大きくなります。

ヒント

Azure Machine Learning のマネージド仮想ネットワークの使用は無料です。 ただし、マネージド ネットワークの一部の機能は、Azure Private Link (プライベート エンドポイントのため) と Azure Firewall (FQDN 規則のため) に依存しているので料金が発生します。 詳細については、マネージド仮想ネットワーク分離に関する記事をご覧ください。

リソースの削除後にコストが発生する可能性がある

Azure portal または Azure CLI で Azure Machine Learning ワークスペースを削除した後も、次のリソースは引き続き存在します。 これらを削除するまで、これらのコストは発生し続けます。

  • Azure Container Registry
  • Azure Blob Storage
  • Key Vault
  • Application Insights

これらの依存リソースと共にワークスペースを削除するには、SDK を使用します。

適用対象: Python SDK azure-ai-ml v2 (現行)

from azure.ai.ml.entities import Workspace
ml_client.workspaces.begin_delete(name=ws.name, delete_dependent_resources=True)

ワークスペースに Azure Kubernetes Service (AKS) を作成する場合、またはワークスペースにコンピューティング リソースをアタッチする場合は、Azure portal 内でそれらを個別に削除する必要があります。

Azure Machine Learning で Azure 前払いクレジットを使用する

Azure Machine Learning の料金は、Azure 前払いクレジットを使用して支払うことができます。 ただし、Azure 前払いクレジットを使用して、サードパーティの製品やサービス (Azure Marketplace からのものを含む) の料金を支払うことはできません。

Azure portal で推定料金を検討する

Azure Machine Learning のコンピューティング リソースを作成すると、推定コストが表示されます。

コンピューティング インスタンスを作成し、推定価格を表示するには、次の操作を行います。

  1. Azure Machine Learning スタジオにサインインします。
  2. 左側にある [コンピューティング] を選択します。
  3. 上部のツール バーで、 [+新規] を選択します。
  4. 使用可能な仮想マシンのサイズごとに表示される推定価格を確認します。
  5. リソースの作成を完了します。

コンピューティング インスタンスを作成するための推定コストを示すスクリーンショット。

Azure サブスクリプションに使用制限がある場合は、Azure により、クレジット額を超える支出が防止されます。 Azure リソースを作成して使用するときに、クレジットが使用されます。 クレジットの上限に達すると、その請求期間の残りの期間は、デプロイしたリソースが無効にされます。 クレジットの上限は変更できませんが、上限を取り除くことは可能です。 使用制限の詳細については、「Azure の使用制限」を参照してください。

コストを監視する

Azure Machine Learning で Azure リソースを使用する場合は、コストが発生します。 Azure リソース使用のユニット コストは、期間 (秒、分、時間、日数) やユニット使用量 (バイト、メガバイトなど) によって異なります。Azure Machine Learning の使用が開始されるとすぐにコストが発生し、コスト分析でコストを確認できます。

コスト分析を使用すると、さまざまな期間について、Azure Machine Learning のコストがグラフや表で表示されます。 たとえば、日単位、現在の月、以前の月、年単位などがあります。 予算や予想コストを基準としてコストを表示することもできます。 時間経過を示す、より長い期間のビューに切り替えると、支出の傾向を特定するのに役立ちます。 超過出費が発生した可能性のある時期を確認できます。 予算を作成したら、それを超過する部分を簡単に確認することもできます。

Azure Machine Learning のコストをコスト分析で表示するには、次の操作を行います。

  1. Azure portal にサインインします。
  2. Azure portal でスコープを開き、メニューから [コスト分析] を選択します。 たとえば、 [サブスクリプション] に移動し、一覧からサブスクリプションを選択して、メニューから [コスト分析] を選択します。 コスト分析で別のスコープに切り替えるには、 [スコープ] を選択します。
  3. 既定では、最初のドーナツ グラフにサービスのコストが表示されます。 グラフの [Azure Machine Learning] というラベルが付いた領域を選択します。

最初にコスト分析を開いたときに、実際の月額コストが表示されます。 月単位のすべての使用コストを表示する例を次に示します。

サブスクリプションの累積コストを示すスクリーンショット。

Azure Machine Learning などの 1 つのサービスのコストに絞り込むには、 [フィルターの追加] を選択してから、 [サービス名] を選択します。 次に、[仮想マシン] を選択します。

Azure Machine Learning のみのコストを表示する例を次に示します。

ServiceName の累積コストを示すスクリーンショット。

前の例では、サービスの現在のコストが表示されます。 Azure リージョン (場所) 別およびリソース グループ別の Azure Machine Learning のコストも表示されます。 ここでは、コストを自分で調べることができます。

予算を作成する

予算を作成して、コストを管理し、異常な支出や浪費のリスクについて、関係者に自動的に通知するアラートを作成できます。 アラートは、予算とコストのしきい値と比較した支出に基づきます。 予算とアラートは、Azure サブスクリプションとリソース グループに対して作成されるため、全体的なコスト監視戦略の一環として役立ちます。

監視の粒度をさらに細かく示す必要がある場合は、Azure の特定のリソースまたはサービスに対するフィルターを使用して予算を作成できます。 フィルターを使用すると、追加のコストがかかる新しいリソースが誤って作成されないようにすることができます。 予算を作成するときのフィルター オプションの詳細については、グループとフィルターのオプションに関する記事を参照してください。

コスト データのエクスポート

また、ストレージ アカウントにコスト データをエクスポートすることもできます。 これは、自分や他のユーザーがコストに関する追加のデータ分析を行う必要がある場合に便利です。 たとえば、財務チームは、Excel や Power BI を使用してデータを分析できます。 日単位、週単位、または月単位のスケジュールでコストをエクスポートし、カスタムの日付範囲を設定することができます。 コスト データのエクスポートは、推奨されるコスト データセット取得方法です。

Azure Machine Learning のコストを管理および削減するその他の方法

次のヒントを使用して、コンピューティング リソースのコストを管理して最適化します。

  • 自動スケーリングされるようにトレーニング クラスターを構成する。
  • サブスクリプションとワークスペースにクォータを設定する。
  • トレーニング ジョブに終了ポリシーを設定する。
  • 優先順位の低い仮想マシンを使用する。
  • 自動的にシャットダウンおよび起動するようにコンピューティング インスタンスのスケジュールを設定する。
  • Azure 予約 VM インスタンスを使用する。
  • ローカルでトレーニングする。
  • トレーニングを並列化する。
  • データ保持と削除のポリシーを設定する。
  • リソースを同じリージョンにデプロイする。
  • インスタンスとクラスターを当面使用する予定がない場合は削除してください。

詳細については、「Azure Machine Learning のコストを管理して最適化する」を参照してください。

次のステップ