1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Amazon SageMaker Unified Studio の複数アカウントを連携してデータ公開

Last updated at Posted at 2025-03-10

この記事は Amazon SageMaker Unified Studio のマルチアカウントでデータ連携をする流れを検証した記事となります。
注意事項として、2025年3月時点で Amazon SageMaker Unified Studio は Public Preview 期間であり、GAに伴い、UIや仕様が変更となる可能性があります。

Amazon SageMaker Unifed Studioとは

データとAIに関わる作業を1つのプラットフォームの中で行えるというのがコンセプトで作られた、新しいSageMakerのサービスになります。Amazon DataZoneをベースとしてデータ共有の仕組みを土台に、Bedrock やGlue などの既存のAnalyticsとAI/MLサービスをまとめて利用できます。

詳細は公式ページをみてください。(もっと気になる方はAWSのSAさんに問い合わせていただくと良いかもです。)
https://aws.amazon.com/jp/sagemaker/unified-studio/


では本題です。

過去書いた記事「Amazon DataZone のアカウント連携してデータ公開」を参考に、Amazon SageMaker でもマルチアカウントでデータ共有できるかを検証していきます!!

イメージは下記です。

Screenshot 2025-03-06 at 16.40.02.png

1. IAM Identity Center でユーザーを作成

IAM Identity Center を有効にします。
Screenshot 2025-03-06 at 16.46.25.png

本来、Organizations での組織インスタンスが好ましいですが、検証なのでアカウントインスタンスで試していきます。

Screenshot 2025-03-06 at 21.05.25.png

作成されました。
Screenshot 2025-03-06 at 21.10.58.png

こちらも本来やるべきですが、検証で一時的の環境であるため、今回はMFAを無効化します。

Screenshot 2025-03-06 at 21.09.23.png

Screenshot 2025-03-06 at 16.55.20.png

ではユーザーを3つ作っていきます。ユーザー作成を3回繰り返します。

  • Admin
  • Producer
  • Consumer
    Screenshot 2025-03-06 at 16.52.32.png
    Screenshot 2025-03-06 at 16.52.45.png
    Screenshot 2025-03-06 at 16.52.57.png

ログインやってみます。
Screenshot 2025-03-06 at 16.57.58.png

もちろん、まだ何のアプリやサービスにも紐づいていません。
Screenshot 2025-03-06 at 16.56.48.png

2. SageMaker Unified Studio のドメインを作成

コンソールで Amazon SageMaker にアクセスして、ドメインを作成します。
Screenshot 2025-03-06 at 17.03.54.png

クイックセットアップを設定します。
Unified Studio 用の VPC が必要そうなので、作成します。
Screenshot 2025-03-06 at 17.04.24.png

CloudFormationに遷移して、そのままスタックを作成し、VPCを作成します。
Screenshot 2025-03-06 at 17.05.32.png

ドメインの名前は「Corporate」にします。
Screenshot 2025-03-06 at 17.06.28.png

先ほどのスタックが完了したら、VPCとサブネットが選択されますので、他すべてはデフォルトのまま、「続行」で次にいきます。
Screenshot 2025-03-06 at 21.13.13.png

ユーザー作成時にadminで設定したメールアドレスを入力して、ドメインを作成します。
Screenshot 2025-03-06 at 21.14.10.png

作成されました。

Screenshot 2025-03-06 at 21.14.53.png

3.ユーザーを追加

ドメインの管理で、画面下部にあるユーザーパートでSSOユーザーを追加します。
Screenshot 2025-03-06 at 21.15.56.png

admin は追加済みなので、consumer とproducer にチェックして、追加します。
Screenshot 2025-03-06 at 17.25.20.png

4. Producer アカウントと Consumer アカウントをドメインに関連付け

ドメインのアカウント関連付けのタブから「関連付けをリクエスト」します。
Screenshot 2025-03-06 at 21.17.15.png

Screenshot 2025-03-06 at 21.18.53.png

それぞれのアカウントのSageMaker 画面で、リクエストが表示されます。

Screenshot 2025-03-06 at 21.19.47.png

Screenshot 2025-03-06 at 21.21.10.png

両方のアカウントで承認します。
Screenshot 2025-03-06 at 21.22.10.png

すると管理アカウントのドメインで、「関連付け済み」にステータスが変わりました。
Screenshot 2025-03-06 at 21.23.08.png

5. Producer と Consumer のプロジェクトプロファイルを作成

デフォルトで有効になっているプロジェクトプロファイルは、管理アカウントに紐づいており、このプロファイルを利用してプロジェクトを作成すると、管理アカウントに紐づいてしまいます。

まず、Producer アカウントに紐づくプロジェクトプロファイルを作成します。
Screenshot 2025-03-06 at 17.33.52.png

プロジェクトプロファイル名は「producer」とし、テンプレートではそのまま「Data analytics and AI-ML model development」を選びます。
Screenshot 2025-03-06 at 17.35.56.png

アカウントIDにproducer アカウントのIDを入力します。
Screenshot 2025-03-06 at 21.25.05.png

認可で「producer」ユーザーを選択します。
Screenshot 2025-03-06 at 17.38.41.png

プロジェクトプロファイルを有効にするにチェックし、作成します。
Screenshot 2025-03-06 at 17.39.32.png

consumerも同様にプロジェクトプロファイルを作成します。(consumerのアカウントIDを入力)
Screenshot 2025-03-06 at 17.41.15.png

6.Producer アカウントでのブループリント有効化

関連づけされたドメインにおいて、ブループリントがデフォルトではすべて無効になっています。
これを有効化していきます。対象は下記です。

  • LakeHouseDatabase
  • RedshiftServerless
  • Workflows
  • MLExperiments
  • EmrOnEc2
  • LakehouseCatalog
  • EmrServerless
  • Tooling

Screenshot 2025-03-06 at 17.46.30.png

ロールはデフォルトのままでそのまま有効化していきます。
Screenshot 2025-03-06 at 17.49.49.png

Screenshot 2025-03-06 at 21.41.29.png

その他のピクチャh割愛しますが、唯一 Tooling では VPC の作成が求められるので、管理者アカウントで実施したのと同様にproducer アカウントでもCloudFormationでVPC等を作成し、できたVPCとサブネットを選択し、有効化します。
Screenshot 2025-03-06 at 21.30.17.png

※本来後で作成するドメインユニットで、Producer と Consumer のドメインユニットに紐づかせるべきですが、流れとして、root のCorporateの設定のまま進めています。

7.Consumer アカウントでのブループリント有効化

こちらもさきほどのProducerと同様に有効化しています。

Screenshot 2025-03-06 at 17.56.25.png

(以降のピクチャは割愛します。)

Screenshot 2025-03-06 at 18.00.49.png
Screenshot 2025-03-06 at 18.00.59.png

8. adminアカウントで ドメインユニットを作成

admin ユーザーでポータルにログインします。
Screenshot 2025-03-06 at 18.01.59.png

Screenshot 2025-03-06 at 18.03.17.png

メインページです。
Screenshot 2025-03-06 at 18.04.10.png

Govern タブから、 Domain units をクリックします。
Screenshot 2025-03-06 at 18.04.31.png

Corporateのドメインだけ存在しますが、組織構造に準拠するように、子のドメインユニットとして、producer と consumer のドメインユニットを作ります。
Screenshot 2025-03-06 at 18.05.19.png

Screenshot 2025-03-06 at 18.06.45.png

Screenshot 2025-03-06 at 18.07.12.png

このような組織を体現する構造をドメインユニットで設定できます。
Screenshot 2025-03-06 at 18.07.31.png

9. producer プロジェクトと consumer プロジェクトの作成

producer ユーザーでポータルにログインします。
Screenshot 2025-03-06 at 18.08.32.png

メインページ右側にある Create Project をクリックします。
Screenshot 2025-03-06 at 18.09.12.png

プロジェクト名に「producer_project」を設定し、Domain units でproducer を選択します。Screenshot 2025-03-06 at 18.10.34.png

Project profile の選択において、先ほど作ったproduect のプロファイルを選択します。
ここでどのアカウントのリソースに紐づくかが変わるため、間違わないように気をつけます。
Screenshot 2025-03-06 at 18.11.09.png

step2ではLakehouse Database をproducer_dbと変更します。他はそのままで次に進みます。
Screenshot 2025-03-06 at 18.13.43.png

プロジェクトを作成します。(数分かかります)
Screenshot 2025-03-06 at 18.14.33.png

producer プロジェクトが作られている間に、consumer プロジェクトを作ります。
プロファイル選択に気をつけます。
Screenshot 2025-03-06 at 18.22.42.png

Screenshot 2025-03-06 at 18.22.58.png

Screenshot 2025-03-06 at 18.24.02.png

producer プロジェクト、consumer プロジェクトの両方が作成されました。
Screenshot 2025-03-06 at 18.29.58.png

Screenshot 2025-03-06 at 18.30.27.png

10.producer におけるデータ準備

プロジェクトの左側メニューより「Data」をクリックし、Lakehouseセクションを開きます。すると、producer_db_XXX が表示されるので、Upload data をクリックします。

Screenshot 2025-03-06 at 18.42.41.png

下記から拝借したデータcsvファイルをローカルにダウンロードし、ドラッグ&ドロップでアップロードします。

Screenshot 2025-03-06 at 18.46.04.png

アップロードされたことを確認できます。
Screenshot 2025-03-06 at 21.33.05.png

次に左のData Sources メニューから、「producer」で検索して出てきた source をクリックします。
Screenshot 2025-03-06 at 21.34.09.png

右上のRUNボタンをクリックします。
Screenshot 2025-03-06 at 21.35.11.png

すると、さきほどアップロードしたcsvファイルのデータが、データアセットとして登録されるので、クリックします。
Screenshot 2025-03-06 at 21.36.19.png

データアセットとして、メタデータの付与などできますが、この検証ではそのまま、右上「PUBLISH ASSET」を押下します。
Screenshot 2025-03-06 at 18.57.54.png

Screenshot 2025-03-06 at 18.59.08.png

これでデータ公開ができました。

ちなみに、Producer のプロジェクトプロファイルをもとに作成されているので、さきほどアップロードしたcsvファイルは、ちゃんと producer アカウントの S3 内にアップロードされています。

Screenshot 2025-03-06 at 21.38.01.png

11. consumer プロジェクトで公開されたデータのサブスクライブ

Consumer プロジェクトにおいて、Discover のタブから、Data Catalog をクリックします。
Screenshot 2025-03-06 at 20.30.29.png

検索バーに「sales」と打ち込むと先ほど公開されたデータカタログが確認できるので、クリックします。
Screenshot 2025-03-06 at 20.31.54.png

右上の「SUBSCRIBE」を押下します。
Screenshot 2025-03-06 at 20.32.44.png

consumer project としてサブスクライブリクエストを行います。(理由は今回適当に入れています。)
Screenshot 2025-03-06 at 20.33.29.png

12.producer プロジェクトでサブスクライブ承認

もう1度、producer 側のプロジェクトに戻り、「Subscription requests」を見るてみると、consumer プロジェクトからのリクエストが確認できます。
Screenshot 2025-03-06 at 20.35.30.png

view request から詳細を確認します。承認アクセスとしては今回 Full access を選択し、APPROVEをクリックします。
Screenshot 2025-03-06 at 20.36.56.png

13.サブスクライブできたデータの確認

再び、consumer プロジェクトに移り、Assets メニューから、SUBSCRIBED を確認すると、「Assest accessible」となっていることが確認できます。
Screenshot 2025-03-06 at 20.38.58.png

画面上部のBuildタブから、Query Editor をクリックします。
Screenshot 2025-03-06 at 20.41.26.png

左のLakehouseセクションから、AwsDataCatalog → consumer_db_XXX → retail_sales_perormance を選択し、Query with Athena を実行します。
Screenshot 2025-03-06 at 20.45.36.png

サブスクライブしたデータが確認できました。
Screenshot 2025-03-06 at 20.46.07.png

注意すべき点

今回データはcsvを直接アップロードしましたが、多くの場合、すでに S3 や Redshift にあるデータをやり取りすることになると思います。その際、producer 側のデータソースを SageMaker が操作できるようにLake Formation での権限付与設定や、Data Lake Locationsの登録が必要になるケースがあります。
また、そのような権限設定をする際、自身のロールが、Lake Formation の Administrative roles and tasks として登録されていないと、Databases や Tables に非表示となり認識できないといったこともあるので、注意してください。

  • Administrative roles and taskes : Manage administrators
    Screenshot 2025-03-06 at 20.54.58.png

  • Data lake locations : Register location
    Screenshot 2025-03-06 at 20.56.07.png

  • Data permissions : Grant (データカタログに対してプロジェクトロールへ)
    Screenshot 2025-03-06 at 20.57.27.png

※プロジェクトロールは各プロジェクトのOverview画面右下で確認できます。

参考として下記のハンズオン workshop のLakehouse パートを行うと、LakeFormationの権限の設定方法など体系的に理解できると思います。
https://catalog.us-east-1.prod.workshops.aws/workshops/06dbe60c-3a94-463e-8ac2-18c7f85788d4/en-US/03lakehouse

まとめ

Amazon SageMaker Unified Studio 上でマルチアカウントのデータのやり取りを実施してみました。
どこかの誰かの参考になりましたら、幸いです。

※本記事は所属組織と関係なく、個人の備忘録メモです。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?