AI注目記事のキュレーターページ

← 一覧へ戻る

重要度 高2026-07-15 18:08:50

Amazon SageMaker PipelinesをカスタムAmazon CloudWatchダッシュボードでクロスアカウント監視する方法

サマリー

Amazon SageMaker Pipelinesを複数のAWSアカウントやリージョンにわたって監視するためのカスタムCloudWatchダッシュボードの構築方法を紹介します。サーバーレスでイベント駆動型のアーキテクチャを採用し、リアルタイムでの可視化を実現します。GitHubリポジトリには、必要なインフラのカスタマイズ可能な例も提供されています。

本文

Amazon SageMaker Pipelinesを使用することで、組織は機械学習(ML)ワークロードを自動化し、MLOps戦略の一環として多くのAWSアカウントやAWSリージョンに分散させることができます。しかし、SageMaker Pipelinesを監視することは、多くのAWS環境に分散されている場合、複雑になることがあります。開発者や運用エンジニアは、SageMaker Pipelineの実行を確認するために複数のアカウントやリージョンを手動で切り替える必要があり、運用上の負担が増加します。

Amazon SageMaker Studioは、単一のアカウントとリージョン内でSageMaker Pipelinesの監視を提供しますが、組織はAmazon CloudWatch、AWS Lambda、Amazon DynamoDB、Amazon EventBridgeなどのサービスを利用して、複数のAWS環境にわたるSageMaker Pipelinesの実行を追跡するダッシュボードを構築できます。この投稿では、Amazon CloudWatchのカスタムダッシュボードを使用して、AWSアカウントやリージョンをまたいだSageMaker Pipelinesの監視を集中化するためのソリューションを紹介します。関連するGitHubリポジトリでは、必要なインフラストラクチャのカスタマイズ可能なAWS Cloud Development Kit(AWS CDK)の例が提供されています。

このソリューションは、複数のリージョンやアカウントで実行されているSageMaker Pipelinesの実行状況を単一のインターフェースから詳細に、ほぼリアルタイムで可視化することを目的としています。次のセクションでは、ソリューションのアーキテクチャを詳しく見ていきます。

ソリューションの概要
このソリューションは、複数のAWSアカウントやリージョンで実行されているSageMaker Pipelinesの統一的な可視化を提供するために設計されたインタラクティブなCloudWatchダッシュボードを実装しています。サーバーレスでイベント駆動型のアーキテクチャを選択し、SageMaker Pipelineのイベントにリアルタイムで応答することで、常時稼働の監視システムやポーリングメカニズムのオーバーヘッドを回避しています。管理されたサービスやサーバーレスサービス、ネイティブサービスの統合を使用することで、初期コストやメンテナンスの手間を削減することも可能です。

実装はハブアンドスポークモデルに従い、主要なアカウントとリージョンで監視を集中化することで複雑さを軽減し、各副次的アカウントやリージョンの軽量コンポーネントがSageMaker Pipelinesのデータを追跡し、監視ハブに転送します。ダイアグラムはこのアーキテクチャを示しています。

このダイアグラムで説明されているソリューションは、ダッシュボードスタックとフォワーダースタックの2つの主要なAWS CloudFormationスタックで構成されるモジュール式コンポーネントを提供します。ダッシュボードスタックには、CloudWatchダッシュボード、Amazon DynamoDBストレージテーブル、データ処理と可視化に必要なAWS Lambda関数が含まれ、監視ハブとして機能する主要なアカウントとリージョンにのみデプロイされます。フォワーダースタックは、SageMaker Pipelineデータのソースである監視対象のアカウントにデプロイされます。これらの軽量スタックは、Amazon EventBridgeを使用して、監視ハブに強化されたデータを送信します。

この2つのスタックを組み合わせることで、ユーザーに対して集約された情報を収集、処理、表示するワークフローが実現されます。SageMaker Pipelineのステップのステータスが変更されると、Amazon SageMaker AIがソースイベントを生成します。これらのイベントには、イベントの時間、パイプラインとパイプライン実行のAmazonリソース名(ARN)、ステップのステータスなどのメタデータが含まれます。Amazon EventBridgeルールは、リアルタイムでこれらのイベントをキャッチし、AWS Lambda関数に送信して処理します。Lambda関数はイベントデータを処理し、SageMaker Pipeline実行のステータスや表示名などの追加メタデータで強化し、ローカルEventBridgeバスに送信します。カスタムEventBridgeルールは、強化されたデータをキャッチし、監視ハブアカウントに転送します。AWS Identity and Access Management(IAM)ロールとリソースポリシーは、クロスアカウントイベントの送信を安全にします。監視アカウントの別のEventBridgeルールは、Lambda関数をトリガーし、各SageMaker Pipeline実行に関するデータを取り込み、DynamoDBテーブルに保存します。保存されるデータには、リージョン、アカウントID、作成、開始および停止時間、表示名、各SageMaker Pipeline実行およびその個々のステップのステータスが含まれます。Lambda関数はダッシュボードのバックエンドを支え、DynamoDBテーブルを読み取り、フォーマットされたHTMLを返します。カスタムウィジェットを持つAmazon CloudWatchダッシュボードは、AWS Management Consoleを離れることなくユーザー向けのフロントエンドとして機能します。ダッシュボードは、SageMaker Pipelineの実行状況をそれぞれのアカウントID、リージョン、作成時間、現在のステータスとともに表示します。ユーザーはインタラクティブな要素を使用して、パイプライン名でデータをフィルタリングし、単一の実行のステップに関する詳細情報にアクセスできます。この情報には、ステップ名、タイプ、開始および終了時間、ステータスが含まれます。CloudWatchは、ダッシュボードユーザーからの異常なアクティビティが発生した場合にアラームをトリガーします。Amazon Simple Notification Service(Amazon SNS)は、その後、SNSトピックの購読者にアラートを送信します。このトピックは、顧客が管理するAWS Key Management Service(AWS KMS)キーを使用して暗号化されています。アラームは、ウィジェットがそれぞれのLambda関数への呼び出しがダッシュボードスタックで定義された閾値を超えたときにトリガーされます。

このソリューションは、サーバーレスでイベント駆動型のハブアンドスポークアーキテクチャを使用して、クロスアカウントおよびクロスリージョンのSageMaker Pipelinesの可視化を提供することを目的としています。データはSageMaker AIイベントとAPI呼び出しから発生し、パイプライン実行のステータスを包括的に表示するために変換されます。このデータは中央集権的なDynamoDBテーブルに保存され、その後カスタムCloudWatchダッシュボードに表示されます。ダッシュボードを拡張するために、Lambda関数を使用して追加情報を読み取り、処理してからDynamoDBテーブルに保存することができます。次のセクションでは、ソリューションのデプロイ方法を示します。

前提条件
次の前提条件を満たす必要があります:

1つのAWSアカウントに、AWS CDK用にブートストラップされた2つのリージョンが必要です。1つのリージョンは監視ダッシュボードをホストし、もう1つのリージョンはダッシュボードに表示されるクロスリージョンのSageMaker Pipelinesイベントを生成します。
2つ目のAWSアカウントには、ダッシュボードに表示されるクロスアカウントイベントを生成するために、少なくとも1つのブートストラップされたリージョンが必要です。
ソリューションをデプロイするための十分な権限を持つAWS資格情報をシェル環境変数として設定します。
Python(バージョン3.14以降)。
AWS CDKがインストールされていること(バージョン2.1100.1以降)。
AWS Command Line Interface(AWS CLI)がインストールされていること(バージョン2.32.12以降)。
Lambda関数のパッケージングに必要なDocker。
各アカウントとリージョンの組み合わせに少なくとも1つのSageMaker Pipelineが必要です。既存のSageMaker Pipelinesがない場合は、Amazon SageMaker AIドメインのSageMaker StudioからSageMaker AIプロジェクトを使用して作成できます。

ソリューションのデプロイ
前提条件を満たしたら、次の手順を実行してソリューションをデプロイします。

1. GitHubリポジトリをクローンします。
2. READMEファイルの詳細なデプロイ手順に従って、AWS CDKとAWS CLIを使用してスタックをデプロイします。
3. 各アカウントとリージョンのAWS CloudFormationコンソールに移動し、DashboardStackまたはForwarderStackスタックのいずれかを選択して、デプロイメントと作成されたリソースに関する詳細情報を確認します。

ソリューションがデプロイされたら、その機能をテストできます。次のセクションでは、その機能を検証する方法を説明します。

ソリューションのテスト
ソリューションをデプロイした後、ダッシュボードの機能をテストするために次の手順を実行します。SageMaker Pipelinesを作成し、SageMaker Studioから実行を開始できます。

1. Amazon CloudWatchコンソールで、ナビゲーションペインからダッシュボードを選択します。
2. PipelineMonitoringDashboardダッシュボードを選択します。
3. Lambda関数の実行を許可するように求められたら、名前にcustomWidgetが含まれていることを確認します。ダッシュボードが次の画像のように更新されるはずです。
4. 最近のSageMaker Pipeline実行がない場合は、監視対象のアカウントとリージョンで新しい実行を開始します。簡単のために、監視ダッシュボードと同じアカウントとリージョンから開始します。
5. ダッシュボードに戻り、ウィジェットの右上隅にあるリフレッシュボタンを使用して結果を再読み込みします。新しいSageMaker Pipeline実行のステータス更新が表示されるはずです。ダッシュボードの上部にあるバーを使用して、SageMaker Pipeline実行が含まれる時間範囲を選択してください。

6. ステップ詳細ボタンを選択します。前のステップで説明したように、カスタムウィジェットLambda関数の実行を許可します。ポップアップには、個々のSageMaker Pipelineステップに関する詳細情報が表示されます。

7. ダッシュボードの上部にある日付範囲を使用して、カスタム日付範囲内のSageMaker Pipeline実行をフィルタリングします。選択した時間範囲内の実行のみが表示されるはずです。
8. ウィジェットの左上隅にあるパイプライン名でフィルタリングします。1つのSageMaker Pipelineの名前を入力し、ウィジェットをリフレッシュします。検索した名前に一致するSageMaker Pipelinesの実行のみが表示されるはずです。

ベストプラクティスと考慮事項
このような監視ソリューションを実装する際には、信頼性、セキュリティ、運用効率を向上させるための推奨事項や、組織のニーズに合わせてカスタマイズするための考慮事項を検討してください。

1. 柔軟性とカスタマイズ:Lambda関数に新しいデータを追加してDynamoDBテーブルを充実させたり、可視化ロジックを追加したりすることで、カスタムダッシュボードをさらに強化できます。また、フィルタ、メトリクス、インタラクティブなポップアップ、またはCloudWatchウィジェットを追加して、MLワークロードの監視を統合および拡張することもできます。さらに、AWS Step Functionsのステートマシン実行、AWS BatchやAWS Glueのジョブ、またはMLワークロードをサポートするAmazon EMRクラスターの監視にソリューションを拡張することも検討してください。この場合、他のイベントから監視トラフィックを隔離するために専用のEventBridgeイベントバスを作成することを検討してください。
2. メトリクスとアラーム:EventBridgeルールを使用してサービスイベントを監視し、MLジョブ実行ログに対してCloudWatchログ異常検出を使用し、リソース利用状況に対してCloudWatchメトリクスを使用して、SageMaker Pipelineを多層的に監視します。ログやメトリクスに追加のアラームを設定したり、イベント通知を直接送信して、チームにAmazon SNSアラートを送信することもできます。
3. ダッシュボードのアクセシビリティとカスタマイズ:AWS Management Consoleを経由せずにCloudWatchダッシュボードを迅速に共有するためのさまざまな方法を検討してください。また、データ可視化の代替手段として、Amazon管理のGrafanaを使用することも検討してください。
4. プライベートネットワーキング:厳格なセキュリティ要件を持つ組織の場合、Amazon仮想プライベートクラウド(VPC)内にソリューションをデプロイして、より高い隔離を実現することを検討してください。VPCピアリング接続やAWS Transit Gatewayを使用して、リージョンやアカウント間でVPCを接続できます。
5. 継続的インテグレーションとデリバリー(CI/CD)との統合:信頼性を高めるために、MLワークロードを実行している環境全体でCI/CDパイプラインを使用してソリューションをデプロイします。たとえば、AWS OrganizationsやAWS Deployment Framework(ADF)を使用して、環境全体で一貫して繰り返しデプロイすることができます。

クリーンアップ
リソースをクリーンアップするには、デプロイした各アカウントとリージョンの組み合わせについて、CloudFormationサービスコンソールに移動し、DashboardStackまたはForwarderStackのインスタンスを削除します。あるいは、以前に実行したAWS CDKコマンドを同じAWS資格情報とCLI引数で繰り返し実行し、cdk deployをcdk destroyに置き換えることもできます。また、ソリューションをテストするために作成した場合は、各アカウントとリージョンでSageMakerプロジェクト、リソース、およびSageMaker AIドメインのインスタンスを削除することを忘れないでください。

結論
私たちは、インタラクティブなCloudWatchダッシュボードを使用して、AWSアカウントやリージョンをまたいでSageMaker Pipelinesを監視するソリューションのセットアップ方法を示しました。これは、運用効率を向上させるために設計されており、リアルタイムの更新を提供し、AWS Management Consoleに直接統合され、より高いスケーラビリティを実現するために完全にサーバーレスでイベント駆動型のアーキテクチャを使用しています。組織の基準に合わせてこのソリューションをさらに適応させる方法を見つけるために、AWS Professional Servicesのサポートを受けてクラウドへの移行を加速する方法を探ってみてください。

MLOpsのベストプラクティスについてさらに学ぶためのリソースを参照してください:
- TerraformとGitHubに基づく安全なMLOpsプラットフォームの実装
- AIOpsモジュール
- 大規模なMLライフサイクルの管理:Amazon SageMakerを使用したMLワークロードのアーキテクチャフレームワーク
- Amazon SageMaker Pipelines、GitHub、GitHub Actionsを使用したエンドツーエンドのMLOpsパイプラインの構築
- Amazon CloudWatchを使用したAmazon SageMakerの集中監視および報告ソリューションの構築

CloudWatchダッシュボードのカスタムウィジェットのさらなる例を見て、環境の可視性を強化してください。

Contact us

ご質問・ご相談等ございましたらお気軽にご相談ください。

  • フォームでのご相談
    フォームでのご相談

    ホームページ制作、運用・更新における
    ご相談はお気軽にご連絡ください。

    お問い合わせ・ご相談
  • お電話でのお問い合わせ
    お電話でのお問い合わせ

    お電話でのご相談も随時受け付けております。
    見積依頼などもお気軽にご連絡ください。

    052-700-8712 平日 10:00~19:00