

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# Amazon DataZone を使用してエンタープライズデータメッシュを構築する AWS CDK AWS CloudFormation
<a name="build-enterprise-data-mesh-amazon-data-zone"></a>

*Dhrubajyoti Mukherjee、Ravi Kumar、Weizhou Sun、Adjoa Taylor (Amazon Web Services)*

## 概要
<a name="build-enterprise-data-mesh-amazon-data-zone-summary"></a>

Amazon Web Services (AWS) のお客様は、イノベーションを加速し、企業のビジネス価値を推進するための鍵がデータであることを理解しています。この膨大なデータを管理するには、データメッシュなどの分散アーキテクチャを採用します。データメッシュアーキテクチャはプロダクト思考を促進します。これは、お客様、目標、市場を考慮に入れる考え方です。データメッシュは、データへの高速で安全なアクセスを提供するフェデレーテッドガバナンスモデルを確立するのにも役立ちます。

「[Strategies for building a data mesh-based enterprise solution on AWS](https://docs.aws.amazon.com/prescriptive-guidance/latest/strategy-data-mesh/introduction.html)」では、Data Mesh Strategy Framework を使用して、組織のデータメッシュ戦略を策定および実装する方法について説明します。Data Mesh Strategy Framework を使用すると、チーム編成とそのやり取りを最適化して、データメッシュジャーニーを加速できます。

このドキュメントでは、[Amazon DataZone](https://docs.aws.amazon.com/datazone/latest/userguide/what-is-datazone.html) でエンタープライズデータメッシュを構築する方法に関するガイダンスを提供します。Amazon DataZone は、、オンプレミス、およびサードパーティーのソースに保存されたデータをカタログ化、検出 AWS、共有、管理するためのデータ管理サービスです。このパターンには、 AWS Cloud Development Kit (AWS CDK) と を使用してデータメッシュベースのデータソリューションインフラストラクチャをデプロイするのに役立つコードアーティファクトが含まれています AWS CloudFormation。このパターンは、クラウドアーキテクトと DevOps エンジニアを対象としています。

このパターンの目的とソリューションの範囲については、「[追加情報](#build-enterprise-data-mesh-amazon-data-zone-additional)」セクションを参照してください。

## 前提条件と制限
<a name="build-enterprise-data-mesh-amazon-data-zone-prereqs"></a>

**前提条件**
+ 少なくとも 2 つのアクティブな AWS アカウント: 1 つは中央ガバナンスアカウント用、もう 1 つはメンバーアカウント用
+ AWS 開発環境の中央ガバナンスアカウントの管理者認証情報
+ AWS Command Line Interface コマンドライン AWS のサービス から を管理するために[インストール](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html)された (AWS CLI)
+  AWS CDK アプリケーションを管理するために[インストール](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm)された Node.js と Node Package Manager (npm)
+ AWS CDK npm を使用して開発環境にグローバルに[インストール](https://docs.aws.amazon.com/cdk/v2/guide/getting_started.html#getting_started_install)され、 AWS CDK アプリケーションを合成してデプロイするツールキット

  ```
  npm install -g aws-cdk
  ```
+ 開発環境にインストールされた Python バージョン 3.12
+ 開発環境にインストールされるか、または npm コンパイラを使用してグローバルにインストールされた TypeScript

  ```
  npm install -g typescript
  ```
+ 開発環境にインストールされた Docker
+ ソリューションのソースコードを維持するための、Git などのバージョン管理システム (推奨)
+ Python と TypeScript をサポートする統合開発環境 (IDE) またはテキストエディタ (強く推奨)

**制限事項**
+ このソリューションは、Linux または macOS を実行しているマシンでのみテストされています。
+ 現在のバージョンでは、ソリューションは AWS IAM アイデンティティセンター デフォルトで Amazon DataZone と の統合をサポートしていません。ただし、この統合をサポートするように設定できます。

**製品バージョン**
+ Python バージョン 3.12

## アーキテクチャ
<a name="build-enterprise-data-mesh-amazon-data-zone-architecture"></a>

次の図は、データメッシュリファレンスアーキテクチャを示しています。このアーキテクチャは Amazon DataZone に基づいており、Amazon Simple Storage Service (Amazon S3) と をデータソース AWS Glue Data Catalog として使用します。データメッシュの実装で Amazon DataZone AWS のサービス で使用する は、組織の要件によって異なる場合があります。

![メンバーアカウントと中央ガバナンスアカウントの 5 ステップワークフロー。](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/images/pattern-img/79056dd9-e669-4302-afb8-21e3e0e8a136/images/eacbffca-4f25-405a-a7c8-f89d0fee5682.png)


1. プロデューサーアカウントでは、raw データは現在の形式での消費に適しているか、 を使用して消費のために変換されます AWS Glue。データの技術メタデータは Amazon S3 に保存され、 AWS Glue データクローラーを使用して評価されます。データ品質は、[AWS Glue Data Quality](https://docs.aws.amazon.com/glue/latest/dg/glue-data-quality.html) を使用して測定されます。データカタログのソースデータベースは、Amazon DataZone カタログにアセットとして登録されます。Amazon DataZone カタログは、Amazon DataZone データソースジョブを使用して中央ガバナンスアカウントでホストされます。

1. 中央ガバナンスアカウントは、Amazon DataZone ドメインと Amazon DataZone データポータルをホストします。データプロデューサーとコンシューマー AWS アカウント の は、Amazon DataZone ドメインに関連付けられています。データプロデューサーとコンシューマーの Amazon DataZone プロジェクトは、対応する Amazon DataZone ドメインユニットで編成されます。

1. データアセットのエンドユーザーは、 AWS Identity and Access Management (IAM) 認証情報またはシングルサインオン (IAM Identity Center を介した統合) を使用して Amazon DataZone データポータルにログインします。エンドユーザーは、Amazon DataZone データカタログ内のアセット情報 (データ品質情報、ビジネスメタデータ、技術メタデータなど) を検索、フィルタリング、表示します。

1. 目的のデータアセットを見つけたエンドユーザーは、Amazon DataZone サブスクリプション機能を使用してアクセスをリクエストします。プロデューサーチームのデータ所有者は通知を受け取り、Amazon DataZone データポータルでサブスクリプションリクエストを評価します。データ所有者は、その有効性に基づいてサブスクリプションリクエストを承認または拒否します。

1. サブスクリプションリクエストが付与および受理されると、以下のアクティビティのために、コンシューマーアカウントでアセットがアクセスされます。
   + Amazon SageMaker AI を使用した AI/ML モデル開発
   + Amazon Athena と Amazon Quick を使用した分析とレポート

## ツール
<a name="build-enterprise-data-mesh-amazon-data-zone-tools"></a>

**AWS のサービス**
+ [Amazon Athena](https://docs.aws.amazon.com/athena/latest/ug/what-is.html)は、標準 SQL を使用して Amazon Simple Storage Service (Amazon S3) 内のデータを直接分析できるようにするインタラクティブなクエリサービスです。
+ [AWS Cloud Development Kit (AWS CDK)](https://docs.aws.amazon.com/cdk/v2/guide/home.html) は、コードで AWS クラウド インフラストラクチャを定義およびプロビジョニングするのに役立つソフトウェア開発フレームワークです。
+ [AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html) は、 AWS リソースをセットアップし、迅速かつ一貫してプロビジョニングし、 AWS アカウント および 全体のライフサイクルを通じてリソースを管理するのに役立ちます AWS リージョン。
+ [Amazon DataZone](https://docs.aws.amazon.com/datazone/latest/userguide/what-is-datazone.html) は、、オンプレミス、およびサードパーティーソースに保存されたデータのカタログ化、検出 AWS、共有、管理を支援するデータ管理サービスです。
+ [Amazon Quick](https://docs.aws.amazon.com/quicksight/latest/user/welcome.html) は、単一のダッシュボードでデータを視覚化、分析、レポートするのに役立つクラウドスケールのビジネスインテリジェンス (BI) サービスです。
+ [Amazon SageMaker AI](https://docs.aws.amazon.com/sagemaker/?id=docs_gateway) はマネージド型の機械学習 (ML) サービスで、ML モデルの構築とトレーニングを行い、それらを本番稼働環境に対応したホスティング環境にデプロイします。
+ [Amazon Simple Storage Service (Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) は、あらゆる量のデータを保存、保護、取得できるクラウドベースのオブジェクトストレージサービスです。
+ 「[Amazon Simple Queue Service (Amazon SQS)](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/welcome.html)」は、安全で耐久性があり、配信ソフトウェアシステムとコンポーネントを統合および分離できる利用可能なホスト型キューを提供します。
+ [Amazon Simple Storage Service (Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) は、あらゆる量のデータを保存、保護、取得できるクラウドベースのオブジェクトストレージサービスです。

**コードリポジトリ**

このソリューションは、GitHub の [data-mesh-datazone-cdk-cloudformation](https://github.com/aws-samples/data-mesh-datazone-cdk-cloudformation) リポジトリで入手できます。

## エピック
<a name="build-enterprise-data-mesh-amazon-data-zone-epics"></a>

### 環境をセットアップする
<a name="set-up-the-environment"></a>


| タスク | 説明 | 必要なスキル | 
| --- | --- | --- | 
| リポジトリのクローン作成 | リポジトリのクローンを作成するには、ローカル開発環境 (Linux または macOS) で次のコマンドを実行します。<pre>git clone https://github.com/aws-samples/data-mesh-datazone-cdk-cloudformation</pre> | クラウドアーキテクト、DevOps エンジニア | 
| 環境の作成 | Python 仮想環境を作成するには、次のコマンドを実行します。<pre> python3 -m venv .venv<br /> source .venv/bin/activate<br /> pip install -r requirements.txt</pre> | クラウドアーキテクト、DevOps エンジニア | 
| アカウントをブートストラップする | を使用して中央ガバナンスアカウントをブートストラップするには AWS CDK、次のコマンドを実行します。<pre>cdk bootstrap aws://<GOVERNANCE_ACCOUNT_ID>/<AWS_REGION></pre>にサインインし AWS マネジメントコンソール、中央ガバナンスアカウントコンソールを開き、 AWS CDK 実行ロールの Amazon リソースネーム (ARN) を取得します。 | クラウドアーキテクト、DevOps エンジニア | 
| `DzDataMeshMemberStackSet.yaml` ファイルのコンストラクト | `DzDataMeshMemberStackSet.yaml` ファイルをコンストラクトするには、リポジトリのルートディレクトリから次の bash スクリプトを開始します。<pre>./lib/scripts/create_dz_data_mesh_member_stack_set.sh</pre> | クラウドアーキテクト、DevOps エンジニア | 
| テンプレートの作成を確認 |  CloudFormation テンプレートファイルが の`lib/cfn-templates/DzDataMeshMemberStackSet.yaml`場所に作成されていることを確認します。 | クラウドアーキテクト、DevOps エンジニア | 

### 中央ガバナンスアカウントにリソースをデプロイする
<a name="deploy-resources-in-the-central-governance-account"></a>


| タスク | 説明 | 必要なスキル | 
| --- | --- | --- | 
| 設定ファイルの変更 | `config/Config.ts` ファイルで、次のパラメータを変更します。<pre>DZ_APPLICATION_NAME - Name of the application.<br />DZ_STAGE_NAME - Name of the stage. <br />DZ_DOMAIN_NAME - Name of the Amazon DataZone domain<br />DZ_DOMAIN_DESCRIPTION - Description of the Amazon DataZone domain<br />DZ_DOMAIN_TAG - Tag of the Amazon DataZone domain<br />DZ_ADMIN_PROJECT_NAME - Name of the Amazon DataZone project for administrators<br />DZ_ADMIN_PROJECT_DESCRIPTION - Description of the Amazon DataZone project for administrators<br />CDK_EXEC_ROLE_ARN - ARN of the cdk execution role<br />DZ_ADMIN_ROLE_ARN - ARN of the administrator role</pre>残りのパラメータは空のままにします。 | クラウドアーキテクト、DevOps エンジニア | 
| Amazon DataZone 用語集の設定を更新 | `lib/utils/glossary_config.json` ファイルで Amazon DataZone 用語集の設定を更新するには、次の設定例を使用します。<pre>{<br />    "GlossaryName": "PII Data",<br />    "GlossaryDescription": "If data source contains PII attributes",<br />    "GlossaryTerms": [{<br />            "Name": "Yes",<br />            "ShortDescription": "Yes",<br />            "LongDescription": "Yes Glossary Term"<br />        },<br />        {<br />            "Name": "No",<br />            "ShortDescription": "No",<br />            "LongDescription": "No Glossary Term"<br />        }<br />    ]<br />}</pre> | クラウドアーキテクト、DevOps エンジニア | 
| Amazon DataZone メタデータフォームの設定を更新 | `lib/utils/metadata_form_config.json file` で Amazon DataZone メタデータフォームの設定を更新するには、次の設定例を使用します。<pre>{<br />    "FormName": "ScheduleDataRefresh",<br />    "FormDescription": "Form for data refresh schedule",<br />    "FormSmithyModel": "@amazon.datazone#displayname(defaultName: \"Data Refresh Schedule\")\nstructure ScheduleDataRefresh {\n    @documentation(\"Schedule of Data Refresh\")\n    @required\n    @amazon.datazone#searchable\n    @amazon.datazone#displayname(defaultName: \"Data Refresh Schedule\")\n    data_refresh_schedule: String\n}"<br />}</pre> | クラウドアーキテクト、DevOps エンジニア | 
|  AWS 認証情報をエクスポートします。 | 管理者権限を持つ IAM ロールの開発環境に AWS 認証情報をエクスポートするには、次の形式を使用します。<pre>export AWS_ACCESS_KEY_ID=<br />export AWS_SECRET_ACCESS_KEY=<br />export AWS_SESSION_TOKEN=</pre> | クラウドアーキテクト、DevOps エンジニア | 
| テンプレートの合成 |  CloudFormation テンプレートを合成するには、次のコマンドを実行します。<pre>npx cdk synth</pre> | クラウドアーキテクト、DevOps エンジニア | 
| ソリューションのデプロイ | ソリューションをデプロイするには、次のコマンドを実行します。<pre>npx cdk deploy --all</pre> | クラウドアーキテクト、DevOps エンジニア | 

### 新しいメンバーアカウントを設定する
<a name="configure-new-member-accounts"></a>


| タスク | 説明 | 必要なスキル | 
| --- | --- | --- | 
| テンプレートのデプロイ | 次の入力パラメータを使用して、メンバーアカウントの `lib/cfn-templates/DzDataMeshCfnStackSetExecutionRole.yaml` にある CloudFormation テンプレートをデプロイします。 [See the AWS documentation website for more details](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/build-enterprise-data-mesh-amazon-data-zone.html) | クラウドアーキテクト、DevOps エンジニア | 
| ARN の更新 | メンバーアカウントの CloudFormation StackSet 実行ロール ARNs のリストを更新するには、次のコードを使用します。<pre>DZ_MEMBER_STACK_SET_EXEC_ROLE_LIST  - List of Stack set execution role arns for the member accounts.</pre> | クラウドアーキテクト、DevOps エンジニア | 
| 合成とデプロイ |  CloudFormation テンプレートを合成してソリューションをデプロイするには、次のコマンドを実行します。<pre>npx cdk synth<br />npx cdk deploy --all</pre> | クラウドアーキテクト、DevOps エンジニア | 
| メンバーアカウントの関連付け | メンバーアカウントを中央ガバナンスアカウントに関連付けるには、次の手順を実行します。[See the AWS documentation website for more details](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/build-enterprise-data-mesh-amazon-data-zone.html) | クラウドアーキテクト、DevOps エンジニア | 
| パラメータの更新 | `config/Config.ts` の設定ファイルでメンバーアカウント固有のパラメータを更新するには、次の形式を使用します。<pre>export const DZ_MEMBER_ACCOUNT_CONFIG: memberAccountConfig = {<br />  '123456789012' : {<br />    PROJECT_NAME: 'TEST-PROJECT-123456789012',<br />    PROJECT_DESCRIPTION: 'TEST-PROJECT-123456789012',<br />    PROJECT_EMAIL: 'user@xyz.com'<br />  }<br />}</pre> | クラウドアーキテクト、DevOps エンジニア | 
| テンプレートを合成してデプロイ |  CloudFormation テンプレートを合成してソリューションをデプロイするには、次のコマンドを実行します。<pre>npx cdk synth<br />npx cdk deploy --all</pre> | クラウドアーキテクト、DevOps エンジニア | 
| メンバーアカウントの追加 | データソリューションで追加のメンバーアカウントを作成して設定するには、これまでの手順をメンバーアカウントごとに繰り返します。このソリューションでは、データプロデューサーとコンシューマーは区別されません。 | クラウドアーキテクト、DevOps エンジニア | 

### クリーンアップ
<a name="clean-up"></a>


| タスク | 説明 | 必要なスキル | 
| --- | --- | --- | 
| メンバーアカウントの関連付けを解除 | アカウントの関連付けを解除するには、次の手順を実行します。[See the AWS documentation website for more details](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/build-enterprise-data-mesh-amazon-data-zone.html) | クラウドアーキテクト、DevOps エンジニア | 
| スタックインスタンスの削除 |  CloudFormation スタックインスタンスを削除するには、次の手順を実行します。[See the AWS documentation website for more details](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/build-enterprise-data-mesh-amazon-data-zone.html) | クラウドアーキテクト、DevOps エンジニア | 
| すべてのリソースを破棄 | リソースを破棄するには、ローカル開発環境 (Linux または macOS) で次の手順を実行します。[See the AWS documentation website for more details](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/build-enterprise-data-mesh-amazon-data-zone.html) | クラウドアーキテクト、DevOps エンジニア | 

## 関連リソース
<a name="build-enterprise-data-mesh-amazon-data-zone-resources"></a>
+ [AWS Glue データを使用した Amazon DataZone クイックスタート](https://docs.aws.amazon.com/datazone/latest/userguide/quickstart-glue.html)
+ [チュートリアル: 最初の AWS CDK アプリを作成する](https://docs.aws.amazon.com/cdk/v2/guide/hello_world.html)
+ [の開始方法 CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/GettingStarted.html)
+ [でデータメッシュベースのエンタープライズソリューションを構築するための戦略 AWS](https://docs.aws.amazon.com/prescriptive-guidance/latest/strategy-data-mesh/introduction.html)

## 追加情報
<a name="build-enterprise-data-mesh-amazon-data-zone-additional"></a>

**目的**

このパターンを実装すると、次のことが可能になります。
+ **データの分散所有権** – 中央チームのデータ所有権を、組織のソースシステム、ビジネスユニット、ユースケースを表す各チームに移行します。
+ **プロダクト思考** – 組織内のデータアセットを検討する際に、顧客、市場、その他の要因を考慮するプロダクトベースの考え方を導入します。
+ **フェデレーテッドガバナンス** – 組織のデータ製品全体のセキュリティガードレール、コントロール、コンプライアンスを改善します。
+ **マルチアカウントおよびマルチプロジェクトのサポート** – 組織のビジネスユニットまたはプロジェクト全体で、効率的で安全なデータ共有とコラボレーションをサポートします。
+ **一元的なモニタリングと通知** – Amazon CloudWatch を使用してデータメッシュのクラウドリソースをモニタリングし、新しいメンバーアカウントが関連付けられた場合は各ユーザーに通知します。
+ **スケーラビリティと拡張性** – 組織の進化に合わせて、データメッシュに新しいユースケースを追加します。

**ソリューションの範囲**

このソリューションを使用すると、小規模から開始して、データメッシュジャーニーの進行に合わせてスケールできます。多くの場合、メンバーアカウントがデータソリューションを採用すると、組織、プロジェクト、またはビジネスユニットに固有のアカウント設定が含まれます。このソリューションは、以下の機能をサポートすることで、これらの多様な AWS アカウント 設定に対応します。
+ Amazon DataZone のデータソースとしての AWS Glue データカタログ
+ Amazon DataZone データドメインと関連するデータポータルの管理
+ データメッシュベースのデータソリューションへのメンバーアカウント追加を管理
+ Amazon DataZone プロジェクトと環境の管理
+ Amazon DataZone 用語集とメタデータフォームの管理
+ データメッシュベースのデータソリューションユーザーに対応する IAM ロールの管理
+ データメッシュベースのデータソリューションユーザーへの通知
+ プロビジョニングされたクラウドインフラストラクチャのモニタリング

  このソリューションでは、 AWS CDK と CloudFormation を使用してクラウドインフラストラクチャをデプロイします。を使用して以下 CloudFormation を実行します。
  + クラウドリソースをより低い抽象化レベルで定義してデプロイ。
  + からクラウドリソースをデプロイします AWS マネジメントコンソール。このアプローチを使用すると、開発環境なしでインフラストラクチャをデプロイできます。

  データメッシュソリューションは、 AWS CDK を使用して、より高い抽象化レベルでリソースを定義します。その結果、このソリューションでは、該当するクラウドリソースのデプロイに関連するツールを選択することにより、分離されたモジュール式によるスケーラブルなアプローチを実現できます。

**次のステップ**

Amazon DataZone でデータメッシュを構築するためのガイダンスについては、 AWS[ エキスパート](https://aws.amazon.com/professional-services)にお問い合わせください。

このソリューションにはモジュール性があるため、データファブリックやデータレイクなど、さまざまなアーキテクチャでデータ管理ソリューションを構築できます。さらに、組織の要件に応じて、このソリューションを他の Amazon DataZone データソースにも拡張できます。