アイドルアプリの自動シャットダウンを使用して、Amazon SageMaker Canvasのコストを最適化する

「アイドルアプリの自動シャットダウンを活用して、Amazon SageMaker Canvasのコストを最適化する方法」

Amazon SageMaker Canvasは、豊富なコードが不要な機械学習(ML)および生成AIの作業スペースであり、視覚的なコードが不要なインターフェースによって、世界中の顧客がML技術をより簡単に古い課題や新しい課題を解決するために採用できるようにしています。これは、強力なデータの準備とAutoML、管理されたエンドポイントの展開、簡素化されたMLOpsの機能、AWS AIサービスと生成AIによって提供される使用可能なモデルをカバーし、SageMaker Canvasは目標達成に役立ちます。

あらゆるサイズの企業がSageMaker Canvasを採用するにつれて、顧客からコスト最適化の方法を求められました。 AWSウェルアーキテクチャフレームワークで定義されているように、コスト最適化されたワークロードは、すべてのリソースを最大限に活用し、機能要件を満たし、可能な最低価格で結果を達成します。

本日は、SageMaker Canvasアプリケーションのコストをさらに最適化する方法を紹介します。SageMaker Canvasは、アプリの使用状況やアイドリングに関する洞察を提供するAmazon CloudWatchメトリクスを収集するようになりました。顧客はこの情報を利用して、予期しないコストを発生させずにSageMaker Canvasアプリケーションを自動的にアイドル状態でシャットダウンすることができます。

この記事では、シンプルなサーバーレスアーキテクチャを使用して、アイドル状態のSageMaker Canvasアプリを自動的にシャットダウンしてコストを制御する方法を説明します。この記事で使用されるテンプレートはGitHubで利用できます。

コストの理解とトラッキング

コストを理解し、コントロールするためには、教育が常に最初のステップです。オンプレミスまたはクラウド上の任意のワークロードに対して、まずSageMaker Canvasの価格設定モデルを確認しましょう。要するに、SageMaker Canvasは、次の2つの次元に基づく従量制の料金モデルを持っています:

  • ワークスペースインスタンス:かつてのセッションタイムとして知られ、SageMaker Canvasアプリの実行に関連するコスト
  • AWSサービス料金:モデルのトレーニング、エンドポイントの展開、推論の生成に関連するコスト(SageMaker Canvasの設定に対するリソース)

SageMaker Canvasが起動するリソースに常に完全な制御権を持っており、AWSの請求とコスト管理サービスを使用してSageMaker Canvasアプリに関連するコストを追跡することができます。詳細については、SageMaker Canvasでの請求およびコストの管理を参照してください。

ワークスペースインスタンスに関連するコストを制限するために、ベストプラクティスとして、ブラウザタブを閉じずにログアウトする必要があります。ログアウトするには、SageMaker Canvasアプリの左パネルでログアウトボタンを選択します。

SageMaker Canvasアプリケーションの自動シャットダウン

コストを制御し、SageMaker Canvasアプリケーションをシャットダウンしてコストを抑えたいIT管理者向けに、2つのアプローチがあります:

  1. スケジュールに基づくアプリケーションのシャットダウン(毎日19:00または毎週金曜日の18:00)
  2. 自動的にアイドル状態のアプリケーションをシャットダウン(アプリケーションが2時間使用されていない場合)

スケジュールに基づくアプリケーションのシャットダウン

Canvas Scheduled Shutdown Architecture

SageMakerキャンバスアプリケーションのスケジュールされたシャットダウンは、Amazon EventBridge Cron Ruleを使用したクロン式と、Amazon SageMaker API DeleteAppを呼び出すコンピュータコンポーネント(AWS Lambda関数)を使用することで、非常に簡単に実現できます。このアプローチは、AWS CDKおよびAWS Service Catalogを使用してAmazon SageMaker CanvasでML環境をプロビジョニングおよび管理するポストで議論され、関連するGitHubリポジトリで実装されています。

上記のアーキテクチャの利点の1つは、それを複製してSageMaker Canvasアプリのスケジュールされた作成を実現するのが非常に簡単であることです。スケジュールされた作成とスケジュールされた削除の組み合わせを使用することで、クラウド管理者はユーザーがビジネスデイを開始する際にSageMaker Canvasアプリが使用できるようにし(例:平日の朝9時)、またアプリがビジネスデイの終わりに自動的にシャットダウンされるようにします(例:平日の午後7時に常にシャットダウン、週末は常にシャットダウン)。必要なのは、DeleteApp APIを呼び出すコードの行をCreateAppに変更し、望ましいアプリの作成時間を反映するためにクロン式を更新するだけです。

このアプローチは非常に簡単に実装およびテストできますが、提案されたアーキテクチャの欠点は、アプリケーションが現在使用中かどうかに関係なくシャットダウンするため、現在のアクティビティステータスに関係なくシャットダウンされることです。異なる状況によっては、アクティブなユーザーとの摩擦を引き起こす可能性があり、ユーザーは突然セッションが終了することがあります。

このアーキテクチャに関連するテンプレートは、以下のGitHubリポジトリから取得できます:

自動的にアイドルアプリケーションをシャットダウンする

アイドル時のCanvasシャットダウンアーキテクチャ

本日より、Amazon SageMaker Canvasは、アプリの使用状況とアイドル状態に関する情報を提供するCloudWatchメトリクスを発行します。これにより、管理者はアイドルメトリクスを読み取り、閾値と比較し、自動シャットダウンのための特定のロジックを定義するソリューションを作成できます。SageMaker Canvasから発行されるアイドルメトリクスのより詳細な概要は、以下の段落で示されています。

アイドルメトリクスに基づいてSageMaker Canvasアプリケーションを自動的にシャットダウンするために、AWS CloudFormationテンプレートを提供しています。このテンプレートには、次の3つの主要なコンポーネントが含まれています:

  1. Amazon CloudWatchアラームTimeSinceLastActiveメトリクスの最大値をクエリでチェックするアラームです。この値がCloudFormationテンプレートに入力された閾値よりも大きい場合、それ以降の自動化がトリガーされます。このクエリは、単一のユーザープロファイル、単一のドメイン、またはすべてのドメインで実行できます。制御レベルに応じて、以下のいずれかを使用できます:
    1. all-domains-all-usersテンプレート:テンプレートが展開されているリージョンのすべてのユーザーおよびすべてのドメインでチェックします
    2. one-domain-all-usersテンプレート:テンプレートが展開されているリージョンの1つのドメインのすべてのユーザーでチェックします
    3. one-domain-one-userテンプレート:テンプレートが展開されているリージョンの1つのドメインの1つのユーザープロファイルでチェックします
  2. アラームの状態変更により、Amazon EventBridgeのデフォルトのイベントバスにイベントが作成され、それによってAWS Lambda関数がトリガーされるように設定されたAmazon EventBridgeルールがトリガーされます
  3. AWS Lambda関数は、指定された閾値を超えてアイドル状態が続いているSageMaker Canvasアプリを特定し、DeleteApp APIでそれを削除します。

このアーキテクチャに関連するAWS CloudFormationテンプレートを以下のGitHubリポジトリから取得できます:

SageMaker Canvasアイドルメトリクスの機能

SageMaker Canvasは、/aws/sagemaker/Canvas/AppActivity名前空間でTimeSinceLastActiveメトリクスを発行し、アプリがユーザーのアクティビティなしでアイドル状態となっている秒数を示します。この新しいメトリクスを使用して、SageMaker Canvasアプリが定義された期間アイドル状態になった場合に自動的にシャットダウンをトリガーすることができます。SageMaker Canvasは、次のスキーマでTimeSinceLastActiveを公開します:

{    "Namespace": "/aws/sagemaker/Canvas/AppActivity",    "Dimensions": [        [            "DomainId",            "UserProfileName"        ]    ],    "Metrics": [        {            "Name": "TimeSinceLastActive",            "Unit": "Seconds",            "Value": 12345        }    ]}

このメトリクスの主要なコンポーネントは次のとおりです:

  • Dimensions、特にDomainIDUserProfileNameは、管理者がすべてのドメインとユーザーを跨いでアイドル状態のアプリケーションを特定するのに役立ちます
  • メトリクスのValueは、SageMaker Canvasアプリケーションの最後のアクティビティからの経過秒数を示します。SageMaker Canvasは以下をアクティビティとみなします:
    • SageMaker Canvasアプリケーションで実行された操作(ボタンをクリックする、データセットを変換する、アプリ内の推論を生成する、モデルをデプロイするなど)
    • 使用可能なモデルを使用するか、チャットインターフェースを使用してGenerative AIモデルとやりとりする
    • 特定の時間に実行されるバッチ推論。詳細についてはManage automationsを参照してください。

このメトリクスは、Amazon CloudWatch API(get_metric_dataなど)を介して読み取ることができます。たとえば、PythonのAWS SDK(boto3)を使用する場合は、以下のようになります:

import boto3, datetimecw = boto3.client('cloudwatch')metric_data_results = cw.get_metric_data(    MetricDataQueries=[        {            "Id": "q1",            "Expression": 'SELECT MAX(TimeSinceLastActive) FROM "/aws/sagemaker/Canvas/AppActivity" GROUP BY DomainId, UserProfileName',            "Period": 900        }    ],    StartTime=datetime.datetime(2023, 1, 1),    EndTime=datetime.datetime.now(),    ScanBy='TimestampAscending')

このPythonのクエリは、SageMaker Canvasに関連する名前空間からDomainIDUserProfileNameでこれらの値をグループ化した後のTimeSinceLastActiveMAX値を抽出します。

自動シャットダウンソリューションの展開とテスト

自動シャットダウンスタックを展開するには、次の手順に従ってください:

  1. 上記のGitHubリポジトリから実装したいソリューションを参照するAWS CloudFormationテンプレートをダウンロードします。すべてのSageMakerドメイン、単一のSageMakerドメイン、単一のユーザーのどのソリューションを実装するかを選択します。
  2. テンプレートパラメータを更新します:
    1. アイドルタイムアウト – SageMaker Canvasアプリがアイドル状態になる前に許可される時間(秒);デフォルト値は2時間です
    2. アラーム期間 – CloudWatch Alarmがアイドルタイムアウトを計算するために使用する集約時間(秒);デフォルト値は20分です
    3. (オプション)SageMakerドメインIDとユーザープロファイル名
  3. リソースを作成するためにCloudFormationスタックをデプロイします

展開後(2分未満で完了するはず)、AWS Lambda関数とAmazon CloudWatchアラームは、Canvasアプリがアイドル状態になったときに自動的にシャットダウンするように設定されています。自動シャットダウンスクリプトをテストするには、次の手順を実行します:

  1. 正しいドメインと正しいユーザープロファイル(設定している場合)内でSageMaker Canvasアプリが実行されていることを確認してください。
  2. SageMaker Canvasアプリの使用を停止し、アイドルタイムアウト期間(デフォルト、2時間)を待ちます。
  3. アプリがしきい値時間の間アイドル状態であることを確認するために、CloudWatchアラームがトリガーされ、オートメーションがトリガーされた後に通常の状態に戻ったことを確認します。

私たちのテストでは、アイドルタイムアウト期間を2時間(7200秒)に設定しました。Amazon CloudWatch Metricsによってプロットされた以下のグラフで、SageMaker Canvasアプリがしきい値を満たすまでTimeSinceLastActiveメトリックを送信していることがわかります(1)、これがアラームをトリガーしました。アラームがトリガーされると、AWS Lambda関数が実行され、アプリが削除され、メトリックがしきい値以下に戻ります(2)。

Canvas Auto-shutdown Metrics Plot

結論

この投稿では、AWS LambdaとCloudWatchアラーム、およびSageMaker Canvasから新たに発行されたアイドルメトリックを使用して、アイドル状態のSageMaker Canvasアプリの自動シャットダウンソリューションを実装しました。このソリューションにより、お客様はMLワークロードのコストを最適化するだけでなく、SageMakerドメインで実行しているアプリケーションに意図しない料金がかかるのを防ぐことができます。

このソリューションによってもたらされる安心感を持って、お客様がどのような新たなユースケースやワークロードを解決できるかを楽しみにしています。SageMaker Canvasがビジネスのゴールを達成するためのさまざまな例については、次の投稿を参照してください:

Amazon SageMaker Canvasで本番レベルのワークロードを実行する方法については、次の投稿を参照してください:

We will continue to update VoAGI; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more

人工知能

サイバーセキュリティにおける生成AIの約束と危険性

セキュリティにおける生成型AIの利点と欠点を探求してくださいヒント:セキュリティにおける自動化とスケーリングの必要性を...

AIテクノロジー

「生成AIに関する一般的な迷信を解明する 網羅的な探求」

イントロダクション テクノロジーは常に変化しており、生成的人工知能は近年の最も革命的な進展の一つです。この革新的な技術...

データサイエンス

「機械学習入門:その多様な形式を探索する」

最近、機械学習はどこにでもありますねもしもあなたがここにいるなら、機械学習が一体何なのかに興味を持ったのかもしれませ...

AIニュース

Googleがコンテンツを評価する方法:最新の更新

グーグルは、世界をリードする検索エンジンであり、人工知能(AI)技術の理解と適応において重要な進展を遂げています。最近...

データサイエンス

拡散モデルの利点と制約

拡散モデルは、非常にリアルな映像を通じて生成型AIを進化させますが、計算ニーズと倫理面に制約がありますその能力と課題を...

データサイエンス

「データ統合とAIによる洞察力」

業界全般において意思決定と自動化の向上のためのデータ統合とAIの変革的な相乗効果を探求する