アイドルアプリの自動シャットダウンを使用して、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つのアプローチがあります:
- スケジュールに基づくアプリケーションのシャットダウン(毎日19:00または毎週金曜日の18:00)
- 自動的にアイドル状態のアプリケーションをシャットダウン(アプリケーションが2時間使用されていない場合)
スケジュールに基づくアプリケーションのシャットダウン
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リポジトリから取得できます:
自動的にアイドルアプリケーションをシャットダウンする
本日より、Amazon SageMaker Canvasは、アプリの使用状況とアイドル状態に関する情報を提供するCloudWatchメトリクスを発行します。これにより、管理者はアイドルメトリクスを読み取り、閾値と比較し、自動シャットダウンのための特定のロジックを定義するソリューションを作成できます。SageMaker Canvasから発行されるアイドルメトリクスのより詳細な概要は、以下の段落で示されています。
アイドルメトリクスに基づいてSageMaker Canvasアプリケーションを自動的にシャットダウンするために、AWS CloudFormationテンプレートを提供しています。このテンプレートには、次の3つの主要なコンポーネントが含まれています:
- Amazon CloudWatchアラーム:
TimeSinceLastActive
メトリクスの最大値をクエリでチェックするアラームです。この値がCloudFormationテンプレートに入力された閾値よりも大きい場合、それ以降の自動化がトリガーされます。このクエリは、単一のユーザープロファイル、単一のドメイン、またはすべてのドメインで実行できます。制御レベルに応じて、以下のいずれかを使用できます:all-domains-all-users
テンプレート:テンプレートが展開されているリージョンのすべてのユーザーおよびすべてのドメインでチェックしますone-domain-all-users
テンプレート:テンプレートが展開されているリージョンの1つのドメインのすべてのユーザーでチェックしますone-domain-one-user
テンプレート:テンプレートが展開されているリージョンの1つのドメインの1つのユーザープロファイルでチェックします
- アラームの状態変更により、Amazon EventBridgeのデフォルトのイベントバスにイベントが作成され、それによってAWS Lambda関数がトリガーされるように設定されたAmazon EventBridgeルールがトリガーされます
- 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
、特にDomainID
とUserProfileName
は、管理者がすべてのドメインとユーザーを跨いでアイドル状態のアプリケーションを特定するのに役立ちます- メトリクスの
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に関連する名前空間からDomainID
とUserProfileName
でこれらの値をグループ化した後のTimeSinceLastActive
のMAX
値を抽出します。
自動シャットダウンソリューションの展開とテスト
自動シャットダウンスタックを展開するには、次の手順に従ってください:
- 上記のGitHubリポジトリから実装したいソリューションを参照するAWS CloudFormationテンプレートをダウンロードします。すべてのSageMakerドメイン、単一のSageMakerドメイン、単一のユーザーのどのソリューションを実装するかを選択します。
- テンプレートパラメータを更新します:
- アイドルタイムアウト – SageMaker Canvasアプリがアイドル状態になる前に許可される時間(秒);デフォルト値は2時間です
- アラーム期間 – CloudWatch Alarmがアイドルタイムアウトを計算するために使用する集約時間(秒);デフォルト値は20分です
- (オプション)SageMakerドメインIDとユーザープロファイル名
- リソースを作成するためにCloudFormationスタックをデプロイします
展開後(2分未満で完了するはず)、AWS Lambda関数とAmazon CloudWatchアラームは、Canvasアプリがアイドル状態になったときに自動的にシャットダウンするように設定されています。自動シャットダウンスクリプトをテストするには、次の手順を実行します:
- 正しいドメインと正しいユーザープロファイル(設定している場合)内でSageMaker Canvasアプリが実行されていることを確認してください。
- SageMaker Canvasアプリの使用を停止し、アイドルタイムアウト期間(デフォルト、2時間)を待ちます。
- アプリがしきい値時間の間アイドル状態であることを確認するために、CloudWatchアラームがトリガーされ、オートメーションがトリガーされた後に通常の状態に戻ったことを確認します。
私たちのテストでは、アイドルタイムアウト期間を2時間(7200秒)に設定しました。Amazon CloudWatch Metricsによってプロットされた以下のグラフで、SageMaker Canvasアプリがしきい値を満たすまでTimeSinceLastActive
メトリックを送信していることがわかります(1)、これがアラームをトリガーしました。アラームがトリガーされると、AWS Lambda関数が実行され、アプリが削除され、メトリックがしきい値以下に戻ります(2)。
結論
この投稿では、AWS LambdaとCloudWatchアラーム、およびSageMaker Canvasから新たに発行されたアイドルメトリックを使用して、アイドル状態のSageMaker Canvasアプリの自動シャットダウンソリューションを実装しました。このソリューションにより、お客様はMLワークロードのコストを最適化するだけでなく、SageMakerドメインで実行しているアプリケーションに意図しない料金がかかるのを防ぐことができます。
このソリューションによってもたらされる安心感を持って、お客様がどのような新たなユースケースやワークロードを解決できるかを楽しみにしています。SageMaker Canvasがビジネスのゴールを達成するためのさまざまな例については、次の投稿を参照してください:
- Amazon SageMaker Canvasを使用したノーコードマシンラーニングによる顧客の離脱予測
- Amazon QuickSightでML予測を使用した予測ダッシュボードを公開する
- Amazon SageMaker Canvasを使用したノーコードマシンラーニングによる製造品質の欠陥検出
- Amazon SageMaker Canvas sentiment analysisとtext analysisモデルを使用した製品レビューからの洞察を抽出するノーコードマシンラーニングの活用
- Amazon SageMaker Canvas Generative AIを使用して企業ドキュメントから洞察を抽出する
Amazon SageMaker Canvasで本番レベルのワークロードを実行する方法については、次の投稿を参照してください:
- ノーコードMLとAmazon SageMaker Canvasを使用したビジネスアナリストとデータサイエンティストの高速なタイムツーマーケット達成
- 更新されたデータセットを使用してAmazon SageMaker CanvasでMLモデルを再学習し、バッチ予測を自動化する
- Amazon SageMaker Canvasで構築したMLモデルをAmazon SageMakerモデルレジストリを使用して本番環境に展開
- AWS CDKとAWS Service Catalogを使用してAmazon SageMaker CanvasでML環境を提供・管理
We will continue to update VoAGI; if you have any questions or suggestions, please contact us!
Was this article helpful?
93 out of 132 found this helpful
Related articles
- 「AI/MLツールとフレームワーク:包括的な比較ガイド」
- 私の記事を読むと、あなた方は私がどれだけ美容とファッションについての知識を持っているかがわかるでしょう私は美容とファッションの分野において豊富な知識を持ち、それについて生き生きとした記事を書くことができます
- ソフトウェアエンジニアリングの未来 生成AIによる変革
- 自動チケットトライアジによる顧客サポート効率の向上
- このAI論文は、オープンソースライブラリの既存の機能を最大限に活用するために開発された新しい人工知能アプローチ、ML-BENCHを提案しています
- このAI論文は、効率的な水素燃焼予測のための画期的な機械学習モデルを紹介しています:「ネガティブデザイン」および反応化学におけるメタダイナミクスを活用しています
- 機械学習をマスターするための無料の5つのコース