Amazon SageMaker PlatoBlockchain Data Intelligence でリソースのタグ付けを使用して、ML 環境とワークロードのエンタープライズレベルのコスト割り当てを設定します。 垂直検索。 あい。

Amazon SageMaker でリソースのタグ付けを使用して、ML 環境とワークロードのエンタープライズレベルのコスト割り当てを設定する

企業や IT リーダーが機械学習 (ML) の採用を加速しようとしているため、企業の要件を満たすために ML 環境の支出とコストの割り当てを理解する必要性が高まっています。 適切なコスト管理とガバナンスがなければ、ML の支出によって毎月の AWS 請求書が驚くほど増える可能性があります。 アマゾンセージメーカー クラウド内の完全に管理された ML プラットフォームであり、企業のお客様にツールとリソースを提供して、コスト配分手段を確立し、チーム、ビジネス ユニット、製品などによる詳細なコストと使用状況の可視性を向上させます。

この投稿では、SageMaker 環境とワークロードのコスト配分に関するヒントとベスト プラクティスを共有します。 SageMaker を含むほぼすべての AWS サービスで、リソースにタグを適用することは、コストを追跡する標準的な方法です。 これらのタグは、次のようなすぐに使用できるソリューションを通じて、ML 支出を追跡、レポート、および監視するのに役立ちます。 AWSコストエクスプローラー & AWS 予算、およびからのデータに基づいて構築されたカスタム ソリューション AWS のコストと使用状況レポート (CUR)。

コスト配分のタグ付け

AWS でのコスト配分は、次の XNUMX ステップのプロセスです。

  1. 添付する コスト配分タグ あなたのリソースに。
  2. でタグを有効化 コスト配分タグ AWS 請求コンソールのセクション。
  3. タグを使用して、コスト配分レポートの追跡とフィルタリングを行います。

タグを作成してリソースにアタッチすると、AWS 請求コンソールの コスト配分タグ 下のセクション ユーザー定義のコスト配分タグ. タグが作成されてから表示されるまでに最大 24 時間かかる場合があります。 次に、AWS のこれらのタグをアクティブにして、リソースの追跡を開始する必要があります。 通常、タグがアクティブ化された後、タグが Cost Explorer に表示されるまでに約 24 ~ 48 時間かかります。 タグが機能しているかどうかを確認する最も簡単な方法は、Cost Explorer のタグ フィルターで新しいタグを探すことです。 そこにある場合は、タグをコスト配分レポートに使用する準備ができています。 次に、次のスクリーンショットに示すように、タグ キーで結果をグループ化するか、タグ値でフィルター処理するかを選択できます。

Amazon SageMaker PlatoBlockchain Data Intelligence でリソースのタグ付けを使用して、ML 環境とワークロードのエンタープライズレベルのコスト割り当てを設定します。 垂直検索。 あい。

注意すべきこと:使用する場合 AWS組織 AWS アカウントがリンクされている場合、タグは主な支払者アカウントでのみ有効化できます。 必要に応じて、AWS アカウントの CUR をアクティブにすることもできます。これにより、アクティブなタグによってグループ化された使用量とコストを含む CSV ファイルとしてのコスト配分レポートが有効になります。 これにより、コストをより詳細に追跡できるようになり、独自のカスタム レポート ソリューションを簡単に設定できるようになります。

SageMaker でのタグ付け

大まかに言うと、SageMaker リソースのタグ付けは、次の XNUMX つのバケットにグループ化できます。

  • SageMaker ノートブック環境にタグを付ける。 Amazon SageMakerスタジオ ドメインとドメイン ユーザー、または SageMaker ノートブック インスタンス
  • SageMaker が管理するジョブ (ラベル付け、処理、トレーニング、ハイパーパラメータ調整、バッチ変換など) とリソース (モデル、作業チーム、エンドポイント構成、エンドポイントなど) のタグ付け

この投稿ではこれらについて詳しく説明し、ガバナンス コントロールを適用して適切なタグ付けの衛生状態を確保する方法についていくつかのソリューションを提供します。

SageMaker Studio ドメインとユーザーのタグ付け

Studio は、ML モデルの構築、トレーニング、デバッグ、デプロイ、および監視を可能にする ML 用の Web ベースの統合開発環境 (IDE) です。 Studio ノートブックをすばやく起動し、作業を中断することなく、基盤となるコンピューティング リソースを動的にダイヤルアップまたはダイヤルダウンできます。

これらの動的リソースに自動的にタグを付けるには、それらのリソースへのアクセスがプロビジョニングされている SageMaker ドメインおよびドメイン ユーザーにタグを割り当てる必要があります。 これらのタグは、の tags パラメータで指定できます。 ドメインの作成 or ユーザープロファイルの作成 プロファイルまたはドメインの作成中、または後で タグを追加する API。 Studio は、これらのタグをドメイン内または特定のユーザーによって作成された Studio ノートブックに自動的にコピーして割り当てます。 Studio コントロールパネルでドメイン設定を編集して、SageMaker ドメインにタグを追加することもできます。

以下は、作成時にプロファイルにタグを割り当てる例です。

aws sagemaker create-user-profile --domain-id  --user-profile-name data-scientist-full --tags Key=studiouserid,Value= --user-settings ExecutionRole=arn:aws:iam:::role/SageMakerStudioExecutionRole_datascientist-full

既存のドメインとユーザーにタグを付けるには、 add-tags API。 その後、タグは新しいノートブックに適用されます。 これらのタグを既存のノートブックに適用するには、そのユーザー プロファイルに属する Studio アプリ (カーネル ゲートウェイと Jupyter サーバー) を再起動する必要があります。 これにより、ノートブックのデータが失われることはありません。 これを参照してください SageMaker Studio および Studio アプリのシャットダウンと更新 Studio アプリを削除して再起動する方法については、こちらをご覧ください。

Amazon SageMaker PlatoBlockchain Data Intelligence でリソースのタグ付けを使用して、ML 環境とワークロードのエンタープライズレベルのコスト割り当てを設定します。 垂直検索。 あい。

SageMaker ノートブック インスタンスのタグ付け

SageMaker ノートブック インスタンスの場合、タグ付けはインスタンス自体に適用されます。 タグは、同じインスタンスで実行されているすべてのリソースに割り当てられます。 の tags パラメータを使用して、プログラムでタグを指定できます。 ノートブック インスタンスの作成 API を使用するか、インスタンスの作成中に SageMaker コンソールを介してそれらを追加します。 を使用して、いつでもタグを追加または更新することもできます。 タグを追加する API または SageMaker コンソール経由。

SageMaker が管理するジョブと、トレーニングや処理ジョブなどのリソースは、インスタンスではなくサービス環境にあるため、これには含まれないことに注意してください。 次のセクションでは、これらのリソースにタグ付けを適用する方法について詳しく説明します。

SageMaker が管理するジョブとリソースのタグ付け

SageMaker が管理するジョブとリソースの場合、タグ付けを tags 属性を各 API リクエストの一部として使用します。 アン SKLearnProcessor 例を次のコードに示します。 タグを他の SageMaker 管理ジョブおよびリソースに割り当てる方法の例は、次のサイトで見つけることができます。 GitHubレポ.

from sagemaker import get_execution_role
from sagemaker.sklearn.processing import SKLearnProcessor

processing_tags = [{' Key':"cost-center','Value':'TF2WorkflowProcessing'}]
sklearn_processorl = SKLearnProcessor(framework_version='0.23-1' ,
									 role=get_execution_role(),
									 instance_type='ml.m5.xlarge',
									 instance_count=2,
									 tags=processing_tags)

SageMaker パイプラインのタグ付け

SageMaker パイプラインの場合、個々のステップではなく、パイプライン全体をまとめてタグ付けできます。 SageMaker パイプラインは、タグを各パイプライン ステップに自動的に伝達します。 必要に応じて、個々のステップに個別のタグを追加するオプションが引き続きあります。 Studio UI では、パイプライン タグがメタデータ セクションに表示されます。

Amazon SageMaker PlatoBlockchain Data Intelligence でリソースのタグ付けを使用して、ML 環境とワークロードのエンタープライズレベルのコスト割り当てを設定します。 垂直検索。 あい。

タグをパイプラインに適用するには、SageMaker Python SDK を使用します。

pipeline_tags = [ {'Key': 'pipeline-type', 'Value': 'TF2WorkflowPipeline'}]
pipeline.upsert(role_arn=role, tags=pipeline_tags)
execution = pipeline.start()

IAM ポリシーを使用してタグ付けを適用する

タグ付けは、クラウド管理およびガバナンス戦略を実装するための効果的なメカニズムですが、エンドユーザーに任せるだけでは、適切なタグ付け動作を強制するのは難しい場合があります. 特定のタグが欠落している場合に ML リソースが作成されないようにする方法、正しいタグが適用されていることを確認する方法、およびユーザーが既存のタグを削除できないようにする方法を教えてください。

あなたはこれを使用して達成することができます AWS IDおよびアクセス管理 (IAM) ポリシー。 次のコードは、次のような SageMaker アクションを防止するポリシーの例です。 CreateDomain or CreateNotebookInstance リクエストに環境キーとリスト値の XNUMX つが含まれていない場合。 の ForAllValues 修飾子 aws:TagKeys 条件キーは、キーのみであることを示します environment リクエストで許可されています。 これにより、誤って使用するなど、ユーザーが他のキーを含めることがなくなります。 Environment environment.

"sagemaker:CreateTrainingJob"
      ],
      "{
      "Sid": "SageMakerEnforceEnvtOnCreate",
      "Action": [
        "sagemaker:CreateDomain",
        "sagemaker:CreateEndpoint",
        "sagemaker:CreateNotebookInstance",
        Effect": "Allow",
      "Resource": "*",
  "Condition": {
            "StringEquals": {
                "aws:RequestTag/environment": [
                    "dev","staging","production"
                ]
            },
            "ForAllValues:StringEquals": {"aws:TagKeys": "environment"}
        }
      }

タグ ポリシー & サービス制御ポリシー (SCP) は、ML リソースの作成とラベル付けを標準化するための良い方法にもなります。 組織レベルでタグ付けを強制および検証するタグ付け戦略を実装する方法の詳細については、次を参照してください。 コスト配分ブログ シリーズ #3: AWS リソース タグの適用と検証.

コスト配分レポート

Cost Explorer でビューをフィルタリングすることで、タグを表示できます。 毎月のコスト配分レポート、またはCURを調べることによって。

Cost Explorer でのタグの視覚化

Cost Explorer は、コストと使用状況を表示および分析できるツールです。 メイン グラフである Cost Explorer のコストと使用状況レポートを使用して、使用状況とコストを調べることができます。 Cost Explorer の使用方法に関する簡単なビデオについては、こちらをご覧ください。 Cost Explorer を使用して支出と使用状況を分析するにはどうすればよいですか?

Cost Explorer を使用すると、AWS コストの表示方法をタグでフィルタリングできます。 グループ化する 次のようなタグキーで結果をフィルタリングできます Environment, Deploymentまたは Cost Center. タグ フィルターは、キーに関係なく必要な値を選択するのに役立ちます。 例としては Production & Staging. タグを追加してアクティブ化した後、リソースを実行する必要があることに注意してください。 そうしないと、Cost Explorer に使用状況データがなく、タグ値がフィルターまたはグループ化オプションとして表示されません。

Amazon SageMaker PlatoBlockchain Data Intelligence でリソースのタグ付けを使用して、ML 環境とワークロードのエンタープライズレベルのコスト割り当てを設定します。 垂直検索。 あい。

次のスクリーンショットは、 BusinessUnit タグ。

Amazon SageMaker PlatoBlockchain Data Intelligence でリソースのタグ付けを使用して、ML 環境とワークロードのエンタープライズレベルのコスト割り当てを設定します。 垂直検索。 あい。

CUR でタグを調べる

コストと使用状況レポートには、利用可能なコストと使用状況データの最も包括的なセットが含まれています。 このレポートには、AWS アカウントが使用する AWS 製品、使用タイプ、および操作の一意の組み合わせごとに項目が含まれます。 CUR をカスタマイズして、時間単位または日単位で情報を集計できます。 月次コスト配分レポートは、コスト配分レポートを設定する XNUMX つの方法です。 設定できます 毎月のコスト配分レポート これは、製品カテゴリおよびリンクされたアカウント ユーザーごとにアカウントの AWS 使用状況を一覧表示します。 レポートには、 詳細請求レポート タグキー用の追加の列。 の手順に従って設定し、レポートをダウンロードできます。 月次コスト配分レポート.

次のスクリーンショットは、ユーザー定義のタグ キーが CUR にどのように表示されるかを示しています。 ユーザー定義のタグ キーにはプレフィックスがあります user、 といった user:Department & user:CostCenter. AWS で生成されたタグ キーにはプレフィックスがあります aws.

Amazon SageMaker PlatoBlockchain Data Intelligence でリソースのタグ付けを使用して、ML 環境とワークロードのエンタープライズレベルのコスト割り当てを設定します。 垂直検索。 あい。

Amazon Athena と Amazon QuickSight を使用して CUR を視覚化する

アマゾンアテナ は、標準 SQL を使用して Amazon S3 のデータを簡単に分析できるインタラクティブなクエリ サービスです。 Athena はサーバーレスであるため、管理するインフラストラクチャはなく、実行したクエリに対してのみ料金が発生します。 Athena を CUR と統合するには、以下を参照してください。 Amazon Athena を使用したコストと使用状況レポートのクエリ. その後、カスタム クエリを作成して、標準 SQL を使用して CUR データをクエリできます。 次のスクリーンショットは、値 TF2WorkflowTraining を持つすべてのリソースをフィルター処理するクエリの例です。 cost-center タグ。

select * from {$table_name} where resource_tags_user_cost-center= 'TF2WorkflowTraining'

次の例では、どのリソースが値を欠落しているかを把握しようとしています。 cost-center タグ。

SELECT
 bill_payer_account_id, line_item_usage_account_id, DATE_FORMAT((line_item_usage_start_date), '%Y-%m-%d') AS day_line_item_usage_start_date, line_item_resource_id, line_item_usage_type, resource_tags_user_cost-center
FROM
{$table_name} 
WHERE
 resource_tags_user_cost-center IS NULL
AND line_item_product_code = 'AmazonSageMaker'

詳細とクエリの例については、 AWS CUR クエリ ライブラリ.

CUR データを アマゾンクイックサイト、レポートまたは視覚化の目的で、好きなようにスライスしてさいの目に切ることができます。 CUR データを QuickSight に取り込む手順については、次を参照してください。 AWS のコストと使用状況レポート (CUR) を Amazon QuickSight に取り込んで視覚化する方法.

タグを使用した予算の監視

AWS Budgets は、支出が予期せず急増した場合に早期警告を提供する優れた方法です。 ML のコストと使用量がユーザー定義のしきい値を超えた (または超えると予測される) 場合に警告するカスタム予算を作成できます。 AWS Budgets を使用すると、毎月の合計 ML コストをモニタリングしたり、予算をフィルタリングして、特定の使用ディメンションに関連するコストを追跡したりできます。 たとえば、次のようにタグ付けされた SageMaker リソースコストを含めるように予算範囲を設定できます。 cost-center: ML-Marketing、次のスクリーンショットに示すように。 追加のディメンションと AWS Budgets の設定方法の詳細な手順については、次を参照してください。 こちら.

Amazon SageMaker PlatoBlockchain Data Intelligence でリソースのタグ付けを使用して、ML 環境とワークロードのエンタープライズレベルのコスト割り当てを設定します。 垂直検索。 あい。

予算アラート、予算の上限を超えた (または超えようとしている) ときに通知を送信できます。 これらのアラートは、 Amazon シンプル通知サービス (Amazon SNS) トピック。 アン AWSラムダ 次に、SNS トピックをサブスクライブする関数が呼び出され、プログラムで実装可能なアクションを実行できます。

AWS Budgets を設定することもできます 予算措置これは、予算のしきい値 (実際の金額または予測金額) を超えたときに実行できる手順です。 このレベルの制御により、アカウントでの意図しない過剰支出を減らすことができます。 予算目標を超えた場合に、自動的に、またはワークフロー承認プロセスを通じて適用される、アカウントのコストと使用量に対する特定の応答を構成できます。 これは、ML 支出がビジネスの目標と一致していることを確認するための非常に強力なソリューションです。 実行するアクションのタイプを選択できます。 たとえば、予算のしきい値を超えた場合、特定の IAM ユーザーを管理者権限から読み取り専用に移動できます。 組織を使用しているお客様は、組織単位を管理者から読み取り専用に移動することで、組織単位全体にアクションを適用できます。 予算アクションを使用してコストを管理する方法の詳細については、次を参照してください。 AWS マルチアカウント環境でコスト超過を管理する方法 – パート 1.

また、レポートを設定して、既存の予算のパフォーマンスを毎日、毎週、または毎月の頻度で監視し、そのレポートを最大 50 の電子メール アドレスに配信することもできます。 と AWS 予算レポート、SageMaker 関連のすべての予算を XNUMX つのレポートにまとめることができます。 この機能により、次のスクリーンショットに示すように、単一の場所から SageMaker フットプリントを追跡できます。 これらのレポートは、日次、週次、月次のいずれかで受け取ることができます (私が選択したのは 毎週 この例では)、受け取りたい曜日を選択します。

この機能は、SageMaker のコストと使用状況を関係者に最新の状態に保ち、支出が予想どおりの傾向にない場合に関係者が確認できるようにするのに役立ちます。

Amazon SageMaker PlatoBlockchain Data Intelligence でリソースのタグ付けを使用して、ML 環境とワークロードのエンタープライズレベルのコスト割り当てを設定します。 垂直検索。 あい。

この構成を設定すると、次のような電子メールが届きます。

Amazon SageMaker PlatoBlockchain Data Intelligence でリソースのタグ付けを使用して、ML 環境とワークロードのエンタープライズレベルのコスト割り当てを設定します。 垂直検索。 あい。

まとめ

この投稿では、SageMaker のコスト配分タグ付けを設定する方法を示し、SageMaker 環境とワークロードのタグ付けのベスト プラクティスに関するヒントを共有しました。 次に、Cost Explorer や CUR などのさまざまなレポート オプションについて説明し、ML 支出の可視性を向上させました。 最後に、組織の ML 支出を監視するのに役立つ AWS Budgets と予算概要レポートのデモを行いました。

コスト配分タグの適用とアクティブ化の詳細については、次を参照してください。 ユーザー定義のコスト配分タグ.


著者について

ショーン・モーガンショーン・モーガン AWSのAI / MLソリューションアーキテクトです。 彼は半導体および学術研究の分野での経験があり、その経験を利用して、お客様がAWSで目標を達成できるように支援しています。 余暇には、Seanはアクティブなオープンソースの寄稿者およびメンテナーであり、TensorFlowアドオンの分科会リーダーです。

Amazon SageMaker PlatoBlockchain Data Intelligence でリソースのタグ付けを使用して、ML 環境とワークロードのエンタープライズレベルのコスト割り当てを設定します。 垂直検索。 あい。ブレント・ラボウスキー AWSでのデータサイエンスに焦点を当て、彼の専門知識を活用してAWSのお客様が独自のデータサイエンスプロジェクトを手助けできるように支援します。

Amazon SageMaker PlatoBlockchain Data Intelligence でリソースのタグ付けを使用して、ML 環境とワークロードのエンタープライズレベルのコスト割り当てを設定します。 垂直検索。 あい。ニレッシュ・シェティ AWS のシニア テクニカル アカウント マネージャーとして、エンタープライズ サポートの顧客が AWS でのクラウド運用を合理化するのを支援しています。 彼は機械学習に情熱を傾けており、コンサルタント、アーキテクト、および開発者として働いた経験があります。 仕事以外では、音楽を聴いたり、スポーツ観戦を楽しんでいます。

Amazon SageMaker PlatoBlockchain Data Intelligence でリソースのタグ付けを使用して、ML 環境とワークロードのエンタープライズレベルのコスト割り当てを設定します。 垂直検索。 あい。ジェームズ・ウー AWSのシニアAI/MLスペシャリストソリューションアーキテクトです。 お客様がAI/MLソリューションを設計および構築するのを支援します。 Jamesの仕事は、コンピュータビジョン、ディープラーニング、企業全体でのMLのスケーリングに主な関心を持って、幅広いMLユースケースをカバーしています。 AWSに入社する前、Jamesは、エンジニアリングで10年間、マーケティングおよび広告業界で6年間を含む、4年以上にわたってアーキテクト、開発者、およびテクノロジーのリーダーでした。

タイムスタンプ:

より多くの AWS機械学習