Amazon DataZone とはどんなサービスか



この記事は [**AWS Advent Calendar 2022**](https://qiita.com/advent-calendar/2022/aws) 12日目の記事です。

## はじめに
先日開催された AWS re:Invent 2022 で新しいデータ管理サービスである Amazon DataZone が発表されました。 

https://www.youtube.com/watch?v=Xus8C2s5K9A&t=2517s

Amazon DataZone を使用すると AWS やオンプレミス、サードパーティのソースに保存されているデータのカタログ化、発見、共有、および管理が簡単に行えるようになります。

本記事では 2022/12/11 時点の公開情報と re:Invent 2022 のセッション内容 (ANT344: Democratize data with governance: Bring together people, data, and tools) をもとに Amazon DataZone が提供する機能について掘り下げていきたいと思います。

### セッション資料
ブレイクアウトセッションの録画は以下です。

https://www.youtube.com/watch?v=t3LTunhYys4

2022/12/12 時点ではスライドはまだアップロードされていません。
確認でき次第、こちらに更新します。

## ユーザーの課題
### データの共有と発見
データの能力や価値を最大限に引き出すためには適切な人が必要なデータを簡単に見つけてアクセスし、共有できるようにする必要があります。しかし複数の AWS アカウントやリージョン、オンプレミスに散在するデータに対し、そのような仕組みを自前で構築するのは容易ではありません。また誰しもデータレイクの維持・管理ではなく、データによるイノベーションに注力したいと考えています。

### ガバナンス
データ共有の安全性を確保するにはガバナンスが必要ですが、適切なバランスをとることが重要です。一方で組織には様々なデータソース、部門、ユースケースがあるため、そのバランスは組織ごとに異なり、すべてを考慮したガバナンス ポリシーを実装することは困難です。

アクセスを簡単に共有、管理し、エンジニア、サイエンティスト、ビジネスユーザーなどあらゆる立場の人がコラボレーションできるプラットフォームを提供し、これらの課題を解決するサービスが Amaazon DataZone です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/125105/c22334b7-fa1a-0640-12c3-af71384653db.png)

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

1. Data portal 
1. Business data catalog
1. Data project
1. Pub/Sub workflow with access management

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/125105/1c4b6bf2-f735-3966-5cf8-fb67529a7bb1.png)

### 1. Data portal
AWS コンソールの外で提供されるビジュアルインターフェースです。セルフサービスでデータおよび分析ツールへの簡単なアクセス提供し、組織内のコラボレーションを可能にします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/125105/b29ab0db-1117-3f1d-4ab0-48a82bdc50b1.png)

データ消費者 (Consumers) は利用可能になったデータに対し、Data portal から直接 Athena または Redshift の Query Editor に接続し、クエリをなげることもできます。(Deep Links)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/125105/798053bf-c08a-095c-81ff-18cbf870f7d4.png)

### 2. Business data catalog
組織全体のデータを豊富なメタデータとともに「ビジネスコンテキスト」でカタログ化し、データを検索、共有可能にします。

ビジネスコンテキストというのが重要です。データカタログならこれまでも AWS Glue Data Catalog があったじゃないかと思う人もいるかもしれません。Glue Data Catalog はデータのロケーションやスキーマ情報などのメタ情報を保管するための Apache Hive メタストア互換のマネージドサービスです。AWS の分析サービスが Glue Data Catalog を参照してデータソースに接続する (e.g., Athena が S3 にクエリする) など、システム的な使われ方をします。

Amazon DataZone でもデータソースとの接続には Glue Data Catalog が使用されます (Redshift は直接接続も可能)。データを同期する頻度や、特定のテーブルや列などの公開範囲を設定し、ビジネスメタデータともに Data Portal 上に公開、検索可能にする機能が Bussiness data catalog です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/125105/99d58187-c480-60c6-a993-15a8bbf1847e.png)

データの詳細などのメタデータは Data potal 上で手動で登録することもできますが、一方で大規模データを扱う場合はそれが現実的でないケースもあります。Amazon DataZone は機械学習モデルにより、データをカタログ化する際にスキーマ情報などからビジネス用語を自動的に提案します。これにより検索可能なビジネス用語をカタログに追加する作業が削減され、データ消費者は必要なデータをより発見しやすくなります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/125105/b5b57a70-78cd-c64c-e5b2-72801602d42e.png)

### 3. Data project
Data project はビジネスユースケースベースでデータ交換、成果物を共有できるワークスペースを提供します。データ、分析ツールとユーザーのためのコンテナと言い換えることもできます。プロジェクトに明示的に追加されたユーザーのみがプロジェクト内のデータと分析ツールにアクセスできます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/125105/08eb9d51-4cfc-2883-72d0-a37dbc90dc92.png)


### 4. Pub/Sub workflow with access management
自動化されたワークフローによりデータ生産者 (Producer) が公開したデータをデータ消費者が安全にアクセスできるようになります。これは誰がどのようなユースケースでデータを利用しているかの監査プロセスが合理化されることも意味します。

データを公開したいプロジェクトは、まず Publishing agreements を結ぶ必要があります。Publishing agreements とは、データ生産者とドメイン間の契約であり、誰がどのようなアセットを Publish できるのか、誰がサブスクライブできるのか、承認は必要なのか、必要な場合は誰が承認するのかといった条件を定義します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/125105/937809e9-79a0-2904-ca05-194f12feda3e.png)

データ生産者は Producer プロジェクト内でデータソースに接続し、アセットを Bussiness data catalog に Publish することができます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/125105/d92eeb38-17ad-e788-a820-c2e0742ec714.png)

同様にデータ消費者の Consumer プロジェクトがデータにアクセスし、プロジェクトが許可した分析サービスで分析できるようにすることで、サブスクリプションを実現しています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/125105/12dddafc-88b9-b31e-b28e-c4b5bd247939.png)

この時点で Consumer に実データのアクセス権が与えられます。データは Producer から Consumer に直接共有されるため、別の DWH や Datalake にステージングする必要なくアクセスできます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/125105/aede941e-10b1-c62b-1df5-5451be1d3e05.png)

これらのコアコンポーネントを理解したうえで、Swami Sivasubramanian 氏の Keynote で行われたデモを再度ご覧ください。サービスへの理解が深まるかと思います。

https://www.youtube.com/watch?v=TL2HtX-FmiQ&t=4014s

## アクセス許可の仕組み
では実際にどのようにアクセスの許可が行われているのでしょうか。Amazon DataZone は、Preview 時点で AWS Lake Formation が管理する AWS Glue テーブルと Amazon Redshift のテーブルおよびビューのアクセス管理をサポートしています。

### Glue tables
データソースが Glue の場合、LakeFormation は AWS アカウント間でデータカタログを共有することができるため、この機能が活用されています。

https://docs.aws.amazon.com/lake-formation/latest/dg/sharing-catalog-resources.html

Data portal 上での Subscribe 後、内部では Data Catalog の共有が行われ、Consumer からアクセス可能になります。Consumer が共有されたリソースに対してアクセスを行うと、一時クレデンシャルを取得して、元データへのアクセスがおこなれるため、データの移動は必要ありません。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/125105/56a63586-85e1-914a-58f0-7c4035c938bf.png)

### Redshift
データソースが Redshift の場合、Data Sharing 機能により、クラスター間でのデータ共有が行われます。

https://docs.aws.amazon.com/ja_jp/redshift/latest/dg/datashare-overview.html

Data portal 上での Subscribe 後、内部では Producer の Redshift Cluster から Consumer の Redshift cluster へデータ共有が行われます。Consumer は Cluster に共有されたデータからビューを作成し、プリンシパルにアクセスを許可します

![PXL_20221130_230347526.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/125105/e742af89-cb1b-3c48-981d-1620f4553609.jpeg)


もっとも重要なのは、どちらのケースでも Producer と Consumer は全く別の AWS アカウント、さらにはリージョンであっても問題ないということです。

## データメッシュとドメイン
企業が成長し、データの民主化を進むと、何百、何千という Data Producer、Consumer を抱えることになるかもしれません。このような場合、アーキテクチャを拡張する必要があります。データメッシュは、その機能を提供する最新のデータ・アーキテクチャーの1つです。

> **データメッシュとは？**
> データメッシュ事業ドメイン毎にオーナーを建て、データ所有者、データ作成者、データ利用者を直接つなぐことで、ビジネスユーザーがよりアクセスしやすく、より利用しやすくすることを目的としています。

https://blog.cloudera.jp/whtat-is-data-mesh/

Amazon DataZone では対応する任意のリージョンにルートドメインをプロビジョニングし、複数のドメインを接続します。

![PXL_20221130_225555204.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/125105/19089dc8-b02b-61ee-b7d6-36ea842e9fa9.jpeg)

Amazon DataZone におけるドメインは複数のData projects を含む更に上位のコンテナとなり、組織の階層を柔軟に反映できます。ドメインにアクセスできる関連付けられた AWS アカウントとリソースへのアクセスを制御できます。

![PXL_20221130_224245243.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/125105/290061b5-fd6d-c41f-efb1-e34f8d71490c.jpeg)


## 今後のロードマップ
現状アクセスコントロールに対応しているのは Glue と Redshift だけだが、今後は DataZone が公開する Public API を通して、パートナーデータソースにも対応する予定とのことです。
 
## 現時点で判明している制限
### 文字コード
AWSJ シニアエバンジェリスト亀田さんの re:Cap 資料によれば、アナウンス時点で UTF-8 に対応していないとあります。つまりリリース時点では Data portal の Bussiness data catalog や機械学習モデルなどで日本語を扱えない可能性が高いです。

https://youtu.be/z80RVfbJ1no?t=2344

### リージョン
Preview 時点では ルートドメインは、米国東部 (バージニア北部)、米国西部 (オレゴン)、または欧州 (アイルランド) の AWS リージョンでのみプロビジョニングできます。
また Data portal へのログインを提供する AWS IAM Identity Center はルートドメインと同じリージョンに設定されている必要があります。

## Preview はいつから？
**2023/3/30 追記**
Amazon DataZone のパブリックプレビューが開始されました！

https://aws.amazon.com/about-aws/whats-new/2023/03/aws-amazon-datazone-preview/

プレビュー期間中は無料で利用できます。(終了後はユーザー数とメタデータのストレージ容量に対して課金)

https://aws.amazon.com/datazone/pricing/

**追記終わり**

Amazon DataZone の Preview は 2023 年初頭予定とアナウンスされています。
以下の URL から登録を行うと、Preview オープン時に通知を受け取ることができるようです。

https://amazondatazone.splashthat.com/

## 参考
https://aws.amazon.com/jp/datazone/

https://press.aboutamazon.com/2022/11/aws-announces-amazon-datazone

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