Amazon SageMaker Lakehouse とはどのようなサービスか

本記事は [**Japan AWS Ambassadors Advent Calendar 2024**](https://qiita.com/advent-calendar/2024/japan-aws-ambassador) 12 日目の記事です。

## はじめに
先日開催された AWS re:Invent 2024 で Amazon SageMaker Lakehouse が発表されました。 

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/125105/b419a9dc-9133-8e40-5bfe-db45819886e2.png)

https://aws.amazon.com/jp/sagemaker/lakehouse/

Amazon SageMaker Lakehouse により Amazon S3 のデータレイクと、Amazon Redshift のデータウェアハウスを統合し、Apache Iceberg の API を使用してデータソースに横断的にアクセスできるようになります。

本記事では 2024/12/12 時点の公開情報と re:Invent 2024 のセッション内容をもとに Amazon SageMaker Lakehouse が提供する機能について掘り下げていきたいと思います。

## The next generation of SageMaker についておさらい
SageMaker Lakehouse について深堀する前に、同じく AWS re:Invent 2024 の基調講演で発表された The next generation of SageMaker (次世代の SageMaker) に触れておきます。

次世代の SageMaker はデータの分析、変換、AI 活用を一カ所で実現するプラットフォームへ進化しました。これまで SageMaker として呼ばれていた機能は新しい SageMaker プラットフォームの一部として、SageMaker AI という呼称になっています。

次世代の SageMaker は 3 つのコンポートネントで構成されます。

* SageMaker Unified Studio (Preview)
* SageMaker Data and AI Governance (SageMaker Catalog)
* SageMaker Lakehouse

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/125105/1c68f28b-63ce-801d-6bfc-2e33d12f66c9.png)
https://aws.amazon.com/sagemaker/ より引用

### SageMaker Unified Studio (Preview)
SageMaker Uniﬁed Studio は、データ、分析、AI 向けの統合開発環境 (IDE) です。Redshift による SQL 分析、Glue や Athena、EMR によるデータ処理、SageMakaer AI による AI/ML モデル開発、Bedrock Studio で提供されていた生成 AI アプリケーションの開発を単一の場所で実行することができます。今後、Kinesis/MSK によるストリーミング、QuickSight による BI、OpenSearch Service による検索も Unified Studio 上で利用可能になる予定です。

Unified Studio 内のデータブラウザを通して、SageMaker Lakehouse で提供されるデータを参照することができます。

### SageMaker Data & AI Governance (SageMaker Catalog)
プロジェクトやドメインの設定、データの公開、購読など DataZone のガバナンス機能が Unified Studio の一部として統合されています。またビジネスデータカタログ機能が SageMaker Catalog として組み込まれています。また Amazon Bedrock Guardrails や SageMaker Clarify といったガバナンス系機能も SageMaker Unified Studio を通して利用できます。

### SageMaker Lakehouse
SageMaker Lakehouse は AWS Glue Data Catalog と AWS Lake Formation 上に構築されており、Amazon S3 のデータレイクと Amazon Redshift のデータウェアハウスを統合し、データの一元管理を実現します。Iceberg REST API を通じて AWS サービスだけではなく、サードパーティのサービスからデータにアクセスできます。また zero-ETL によりエンタープライズアプリケーションとの統合や様々なDBサービスにクエリフェデレーションが可能です。これらすべてのデータに Iceberg APIを通じてアクセスできます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/125105/0dd98fd1-0174-f631-fdef-d7cfb363d5dc.png)
[ANT354: Amazon SageMaker Lakehouse: Accelerate analytics & AI](https://reinvent.awsevents.com/content/dam/reinvent/2024/slides/ant/ANT354-NEW_Amazon-SageMaker-Lakehouse-Accelerate-analytics-and-AI.pdf) より引用

## SageMaker Lakehouse の主要コンポートネント
4 つのコアとなるコンポーネントがあります。

* ストレージの選択肢
* 統合されたテクニカルカタログ
* 統合された権限管理
* Iceberg 互換 API

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/125105/13c231c2-e86b-bcd7-7cda-18e68a79858e.png)
[ANT354: Amazon SageMaker Lakehouse: Accelerate analytics & AI](https://reinvent.awsevents.com/content/dam/reinvent/2024/slides/ant/ANT354-NEW_Amazon-SageMaker-Lakehouse-Accelerate-analytics-and-AI.pdf) より引用

### ストレージの選択肢
汎用の S3 バケット、S3 Tables、Redshift Managed Storage (RMS) をサポートし、既存の S3 上のデータレイクや Redshift Managed Storage (RMS) 上に保管されたデータウェアハウスのデータは、SageMaker Lakehouseを通じてシームレスに利用できます。

### 統合されたテクニカルカタログ
前述のストレージタイプをサポートするために Glue Data Catalog が拡張され、Managed Catalog で S3 および RMS がサポートされています。もう一つの Federated Catalog は既存の Amazon Redshift、Amazon DynamoDB や Snowflakeなどのフェデレーテッドソースを取り込むために使用されます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/125105/3fdf5388-4020-0ac9-633b-449049749bc1.png)
[ANT354: Amazon SageMaker Lakehouse: Accelerate analytics & AI](https://reinvent.awsevents.com/content/dam/reinvent/2024/slides/ant/ANT354-NEW_Amazon-SageMaker-Lakehouse-Accelerate-analytics-and-AI.pdf) より引用

### 統合された権限管理
カタログに登録されたデータに対し、行レベル、列レベル、あるいは両方 (セルレベル) でアクセスコントロールを設定することができます。またデータセットにタグをつけ、そのタグに基づいてアクセス権を定義することも可能です。例えば個人情報を含むデータセットは特定のメンバーのみアクセスを許可するといった使い方ができます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/125105/1ee9aef5-0ba1-0289-6461-553f8ad1ea65.png)
[ANT354: Amazon SageMaker Lakehouse: Accelerate analytics & AI](https://reinvent.awsevents.com/content/dam/reinvent/2024/slides/ant/ANT354-NEW_Amazon-SageMaker-Lakehouse-Accelerate-analytics-and-AI.pdf) より引用

また Amazon DataZoneによって実現されるガバナンス機能により、データを物理的に移動せずに他のアカウントや組織とデータを共有できます。

### Iceberg 互換 API
SageMaker Lakehouse では Iceberg 互換 API を通じてデータにアクセスできます。データレイクストレージを超えて機能するため、汎用 S3 バケットだけではなく、S3 Tables や RMS に保存されたデータにもアクセスできます。

これによって 既存の Redhisft クラスターのデータを Lakehouse に登録し、複数のクエリエンジンからアクセスしたり、Iceberg API を通じてアクセス可能な RMS を使用した新しいデータベースを作成したりすることもできます。

## zero-ETL 統合
zero-ETL 統合を通じて 様々なデータソースから SageMaker Lakehouseへのデータを取り込むこともできます。

現在 AWS が提供する zero-ETL には 2 つのアプローチがあります。1 つは Redshift と Aurora の zero-ETL に代表される Data Ingestion とデータの移動なしにデータソースへのアクセスを可能にする Data Federation です。

### Data Ingestion 
Aurora MySQL/PostgreSQL、RDS for MySQL と Redshift との zero-ETL 統合を通じて Lakehouse にデータをロードできます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/125105/91d8d88b-7d38-1ce8-0070-6819c2f2bd55.png)
[ANT348: Innovations in AWS analytics: Zero-ETL and data integrations](https://reinvent.awsevents.com/content/dam/reinvent/2024/slides/ant/ANT348_Innovations-in-AWS-analytics-Zero-ETL-and-data-integrations.pdf) より引用

また 同じく re:Invent 基調講演で Salesforce、Zendesk などの SaaS アプリケーションから、Redshift/SageMaker Lakehouse への zero-ETL 統合が発表されました。また DynamoDB と SageMaker Lakehouse の zero-ETL もサポートされており、ストレージフォーマット (RMS/S3) を選択してSageMaker Lakehouse にデータをロードできます。

https://aws.amazon.com/blogs/aws/introducing-amazon-sagemaker-lakehouse-support-for-zero-etl-integrations-from-applications/

https://aws.amazon.com/blogs/aws/new-amazon-dynamodb-zero-etl-integration-with-amazon-sagemaker-lakehouse/

これらの統合は AWS Glue コンソールに追加された Zero-ETL integrations から設定できます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/125105/767eda56-ecad-8fd1-d8e2-e92ce7518880.png)

### Data Federation
外部データソースとの接続の実体は Athena による Federated Queryです。リリース時点で Amazon DynamoDB (Preview)、Amazon Redshift、Google BigQuery、MySQL、PostgreSQL、Snowflake (Preview) をサポートしています。Unified Studio で接続を追加すると、Federated Catalog が作成され、Athena で異なるデータストアに保存されたデータへクエリできるようになります。

https://aws.amazon.com/jp/blogs/news/amazon-sagemaker-lakehouse-integrated-access-controls-now-available-in-amazon-athena-federated-queries/

## 料金
SageMaker Lakehouse 自体の使用量は無料です。AWS Glue Data Catalog の メタデータストレージ、データ保存先の S3、RMS、使用に伴う新しい価格モデルは導入されません。使用するコンポーネントに基づいて料金が発生します。Glue Data Catalogのメタデータストレージ、S3ストレージ、Redshiftマネージドストレージ、Lake Formation などサービス内部で使用されるリソースに対しそれぞれ料金が発生します。

## 参考
### re:Invent 2024 関連セッション
* [ANT346: Innovations in AWS analytics: Data processing](https://www.youtube.com/watch?v=Rh9drjWqTwI)
* [ANT348: Innovations in AWS analytics: Zero-ETL and data integrations](https://www.youtube.com/watch?v=lYE8CLF63no)
* [ANT354: Amazon SageMaker Lakehouse: Accelerate analytics & AI](https://www.youtube.com/watch?v=LkH6ZzzA9dM)

### AWS Blog
https://aws.amazon.com/jp/blogs/big-data/an-integrated-experience-for-all-your-data-and-ai-with-amazon-sagemaker-unified-studio-preview/

https://aws.amazon.com/jp/blogs/big-data/simplify-data-access-for-your-enterprise-using-amazon-sagemaker-lakehouse/

https://aws.amazon.com/blogs/big-data/catalog-and-govern-amazon-athena-federated-queries-with-amazon-sagemaker-lakehouse/

https://aws.amazon.com/blogs/big-data/read-and-write-s3-iceberg-table-using-aws-glue-iceberg-rest-catalog-from-open-source-apache-spark/

以上です。
参考になれば幸いです。