Amazon Web Services ブログ

Amazon SageMaker Catalog を利用するガバナンスチーム向けメール通知の自動化

本記事は 2025 年 10 月 21 日 に公開された「Automate email notifications for governance teams working with Amazon SageMaker Catalog」を翻訳したものです。

Amazon SageMaker Catalog は、データレイクハウス、AI モデル、アプリケーション全体でのデータと AI の検出、ガバナンス、コラボレーションをシンプルにします。Amazon SageMaker Catalog を使えば、生成 AI で作成されたメタデータによるセマンティック検索で、承認済みのデータとモデルを安全に発見・アクセスでき、Amazon Q Developer に自然言語で尋ねてデータを見つけることもできます。

大規模エンタープライズのお客様は、複数の事業部門が中央の SageMaker Data Catalog を使ってデータを生成・利用しています。多くのお客様には、全社のデータガバナンス標準とベストプラクティスを作成・公開・維持する中央のデータガバナンスチームがいます。データプラットフォームが拡大するにつれ、中央ガバナンスチームがすべてのデータプロデューサーと利用者の間で標準を維持することが難しくなります。そのため多くのガバナンスチームは、データアセットが組織のガバナンス標準とベストプラクティスに沿って公開されているか確認するため、Amazon SageMaker Catalog 上のユーザーアクティビティを監視する必要があります。Amazon SageMaker Catalog で重要なイベントが発生した際に中央ガバナンスチームへ通知できる自動化の仕組みが求められます。

本記事では、Amazon EventBridgeAWS LambdaAmazon Simple Notification Service (Amazon SNS) を使って、SageMaker Catalog で発生するイベントに対するカスタム通知を作成する方法を紹介します。ServiceNow や Helix などの社内エンタープライズワークフローツールと SageMaker Catalog を自動連携させる形にも拡張できます。

ソリューション概要

以下のアーキテクチャは、SageMaker Catalog が AWS IAM Identity Center、Amazon EventBridge、Amazon SQS、AWS Lambda、Amazon SNS などの AWS サービスと連携し、エンタープライズカタログで重要なイベントを捕捉して自動通知を生成する仕組みを示しています。

  1. SageMaker Catalog ユーザーが IAM Identity Center を使って Amazon SageMaker Unified Studio にログインします。データサイエンティスト、機械学習エンジニア、アナリストなどが、社内に公開されたデータセットを探す場面が想定されます。AWS IAM Identity Center により、認可された担当者だけがカタログ化されたアセットと ML リソースにアクセスできます。
  2. ユーザーが SageMaker Catalog 内で何らかのアクティビティを行います。例として、新しいプロジェクトの作成や、データアセットを検索してアクセス用のサブスクリプションリクエストを作成するケースなどです。
  3. SageMaker Catalog のユーザーイベントが Amazon EventBridge に捕捉されます。Amazon EventBridge はフルマネージド型のサーバーレスイベントバスサービスで、AWS、SaaS、カスタムアプリケーションにまたがるスケーラブルなイベント駆動型アプリケーションの構築を支援します。EventBridge はイベントをフィルタリングする機能を備え、特定のイベントに対してアクションを取れます。以下の EventBridge イベントパターン例は、DataZone のプロジェクト作成イベントをフィルタリングします。
    {
      "source": [
        "aws.datazone"
      ],
      "detail": {
        "eventSource": [
          "datazone.amazonaws.com"
        ],
        "eventName": [
          "CreateProject"
        ]
      }
    }
  4. Amazon EventBridge はフィルタリングされたイベントを Amazon SQS に送信します。イベントを SQS キューにルーティングすることで、信頼性と永続性が高まります。Amazon SQS は Amazon EventBridge と AWS Lambda の間のバッファとして機能し、イベントのプロデューサーとコンシューマーを疎結合にします。Lambda 関数は自身のペースでメッセージを処理でき、トラフィック急増時や下流リソースの一時的な遅延・停止時の過負荷を防げます。Amazon SQS はイベントの耐久性のある永続ストレージを提供します。Lambda サービスが利用できない場合やスロットリングされた場合でも、メッセージは処理できるまでキューに残るため、データ損失のリスクを減らせます。メインの SQS キューには Dead Letter Queue (DLQ) が接続されています。DLQ を接続しておくと、複数回試行しても処理できないメッセージが検査とトラブルシューティング用に安全に保管され、メインキューのブロックやメッセージの無限循環を防げます。
  5. AWS Lambda 関数が SQS キューからメッセージを読み取り、ニーズに応じて通知をフォーマットします。
  6. AWS Lambda が Amazon SNS にメッセージを発行します。エンドユーザーと中央ガバナンスチームは SNS トピックにサブスクライブしておくと、SageMaker Catalog でイベントが発生した際にメールアラートを受け取れます。
  7. Amazon CloudWatch が AWS Lambda と連携し、パフォーマンスの監視、イベントのログ記録、不具合発生時のアラーム発報を行います。

前提条件

以下のリソースをセットアップする必要があります。

  • Amazon Virtual Private Cloud (Amazon VPC) とベースネットワークが設定済みの AWS アカウント
  • 既存の SageMaker Unified Studio ドメイン (Amazon SageMaker Unified Studio のセットアップ の手順に従ってセットアップ)
  • SageMaker Unified Studio で Lambda のアクセスを許可する (アセット公開に必要)
    • SageMaker Unified Studio に Lambda 実行ロールを IAM ロールとして追加します。
    • SageMaker Unified Studio ポータル内のプロジェクトに Lambda 実行ロールを割り当てます。

この設定で、Lambda 関数は DataZone リソースにアクセスし、SageMaker Unified Studio プロジェクトからアセットを正常に公開できます。

コードのデプロイ

AWS CDK を使って AWS アカウントにデプロイする手順は、GitHub リポジトリを参照してください。CDK により、Amazon SageMaker Unified Studio のプロジェクト作成およびアセット公開イベントにフォーカスしたイベント駆動型の通知アーキテクチャがプロビジョニングされます。

デプロイされる主要な AWS リソース – デプロイされる主要な AWS リソースは以下のとおりです。

  1. EventBridge ルール
    • DataZoneCreateProjectRule: DataZone のプロジェクト作成イベント (CreateProject) を捕捉します。
    • DataZonePublishAssetRule: DataZone のアセット公開イベント (ASSET エンティティタイプに対する PUBLISH アクション付きの CreateListingChangeSet) を捕捉します。
  2. SQS キュー
    • DataZoneEventQueue: EventBridge からの DataZone イベントを処理前にバッファリングします。
    • キューポリシー: EventBridge が SQS キューにメッセージを送信できるようにします。
  3. Lambda 関数
    • ProjectNotificationLambda: SQS キューからメッセージを処理し、DataZone からイベント詳細を取得して SNS トピックに通知を送信します。
      • IAM ロール: SQS、SNS、CloudWatch Logs、DataZone サービスへのアクセス権限を付与します。
      • イベントソースマッピング: 各 SQS メッセージに対して Lambda 関数をトリガーします。
  4. SNS トピック
    • LambdaSNSTopic: Lambda 関数からの通知を受信します。
      • メールサブスクリプション: 通知を受け取るため 2 つのメールエンドポイントがサブスクライブされています。
    • SNS トピックにメール ID を追加します。サブスクリプション確認のメールが届くので、「Confirm Subscription」を選択します。
  5. 権限
    • Amazon EventBridge が SQS にイベントを送信 (SQS 権限が必要)、Lambda のポーリングが Amazon SQS からメッセージを読み取り (SQS 権限内の Lambda ロールが必要)、Lambda が Amazon SNS に発行 (SNS 権限が必要) します。
    • IAM ポリシー: Lambda 実行ロールに SQS、SNS、ロギング、DataZone 操作に必要な権限が付与されています。

提供される出力 (CloudFormation 出力)

  • Amazon SNS トピック ARN: 通知発行用
  • Amazon SQS キュー ARN: イベントのバッファリング用
  • AWS Lambda 関数 ARN: イベント処理用
  • Amazon EventBridge ルール ARN: アセット公開とプロジェクト作成のイベント用

プロジェクト作成の通知

以下の手順で SageMaker Unified Studio にログインしてプロジェクトを作成します。

  1. SageMaker Unified Studio コンソールにログインします。Amazon SageMaker Unified Studio ドメインのログイン画面 (SSO および IAM サインインオプション) が表示されます。SageMaker Unified Studio Login
  2. SageMaker Unified Studio のログインページで Create Project を選択します。Create Project
  3. 任意のプロジェクト名 (たとえば「My_Demo_Project」) を指定します。Project profile で「All-Capabilities」を選択します。Demo Project
  4. Continue を選択します。その他はデフォルトのままにします。
  5. Continue を選択します。次のページで「Create project」を選択します。
  6. プロジェクト作成の最終画面
  7. メール通知。プロジェクト作成が成功すると、デプロイした自動化の仕組みからメール通知が届きます。

アセット公開の通知

SageMaker Unified Studio でサンプルアセットを公開する手順です。

  1. Lambda 権限CDK スタックが Lambda 実行ロール「DatazoneStack-LambdaExecutionRole」を作成したあと、以下の手順でロールを SageMaker Studio プロジェクトに統合します。SageMaker Unified Studio プロジェクト内で Lambda 関数が DataZone API とやり取りできるようになります。
    1. SSO で SageMaker Unified Studio にログインし、Members、Add members を選択します。
    2. 「DatazoneStack-LambdaExecutionRole」というロールを探し、「Contributor」として追加します。

      LambdaExecutionRole (<cf-stack-name>-LambdaExecutionRole) が SageMaker Unified Studio のプロジェクトメンバーとして追加されました。

  2. アセットの作成
    1. プロジェクト「My_Demo_Project」で、Data を選択します。プラス記号を選択してデータセットを追加します。
    2. 「sample-sagemaker-unified-studio-governance-notifications」GitHub リポジトリの checkout フォルダにあるサンプル「Product_v6.csv」を使って CSV ファイルをアップロードします。
    3. テーブル種別として S3 / external table を使用します。
    4. アップロードした CSV ファイルの列 / 属性名を確認します。
    5. Glue データベース (glue_db_<unique_id>) をチェックし、テーブルが作成され正しくインポートされていることを確認します。
  3. アセットの公開
    1. アセットを選択し、Actions、Publish to Catalog を選択します。
    2. 公開されたアセットを確認します。
    3. Project Catalog の Assets セクションで、ハイライトされたエントリを見つけ、公開されたテーブル名を確認します。
    4. アセット名を選択すると、テーブル / アセットの追加詳細とプロパティが表示されます。
  4. メールアラート
    1. アセットが SageMaker Unified Studio に公開されると、公開されたアセットの詳細を含むメールアラートが送信されます。中央ガバナンスチームはアラートを使って、公開されたアセットがエンタープライズ標準に沿っているか確認できます。アセットが公開されると、メールアラートでユーザーに通知されます。

クリーンアップ

リソースをクリーンアップするには、以下の手順を実施します。

cdk destroy --profile <PIPELINE-PROFILE>

まとめ

本記事では、AWS サービスを使って Amazon SageMaker Unified Studio 向けの自動通知システムを構築する方法を紹介しました。具体的には以下の内容を取り上げました。

  • Amazon EventBridge、AWS Lambda、Amazon SNS を活用した Amazon SageMaker Unified Studio からのイベント駆動型通知のセットアップ方法
  • AWS CDK を使ったデプロイ手順
  • プロジェクト作成やアセット公開などの重要なイベントを監視する実践的な例
  • 安全な運用のため AWS Lambda の権限を SageMaker Unified Studio と統合する方法
  • 自動通知でガバナンス統制を実装するベストプラクティス

Amazon SageMaker Catalog は、ガバナンスチームがカタログ活動をリアルタイムで把握し、データおよび ML プラットフォームがスケールしても組織標準を維持できるよう支援します。アーキテクチャは柔軟で、ServiceNow などのエンタープライズワークフローツールとの統合や、組織のニーズに合わせた追加のイベントタイプ監視にも拡張できます。

ソリューションを組織のガバナンスニーズに合わせてどのように応用したか、ぜひお聞かせください。リポジトリから CDK コードを fork し、実装体験を本記事のコメント欄で共有してください。

著者について

Himanshu Sahni

Himanshu Sahni

Himanshu は、AWS プロフェッショナルサービスのシニアデータ&AI アーキテクトです。エンタープライズのお客様向けに、AWS のツールとサービスを使ったデータ / 分析ソリューションの構築を専門としています。Spark、AWS Glue、Amazon EMR などの AI/ML およびビッグデータツールに精通しています。仕事以外ではチェスとテニスを楽しんでいます。

Rajiv Upadhyay

Rajiv Upadhyay

Rajiv は、AWS の顧客ソリューションマネージャーで、組織がクラウドテクノロジーを活用できるよう支援しています。技術知見とお客様第一の姿勢を組み合わせて、エンタープライズのクラウド変革を導き、ビジネス成果につなげます。

Jitesh Kumar

Jitesh Kumar

Jitesh は、AWS のデータアーキテクトで、AWS のツールとサービスを使ったエンタープライズのお客様向けのデータ / 分析ソリューション構築を専門としています。データレイク、データガバナンス、AI/ML ソリューションの知見を活かし、デジタル変革のジャーニーを支援しています。


この記事は Kiro が翻訳を担当し、Solutions Architect の Woosuk Choi がレビューしました。