Membangun mesh data perusahaan dengan Amazon DataZone, AWS CDK, dan AWS CloudFormation - AWS Prescriptive Guidance

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Membangun mesh data perusahaan dengan Amazon DataZone, AWS CDK, dan AWS CloudFormation

Dhrubajyoti Mukherjey, Ravi Kumar, Weizhou Sun, dan Adjoa Taylor, Amazon Web Services

Ringkasan

Di Amazon Web Services (AWS), pelanggan memahami bahwa data adalah kunci untuk mempercepat inovasi dan mendorong nilai bisnis bagi perusahaan mereka. Untuk mengelola data besar ini, Anda dapat mengadopsi arsitektur terdesentralisasi seperti data mesh. Arsitektur data mesh memfasilitasi pemikiran produk, pola pikir yang memperhitungkan pelanggan, tujuan, dan pasar. Data mesh juga membantu membangun model tata kelola federasi yang menyediakan akses cepat dan aman ke data Anda.

Strategi untuk membangun solusi perusahaan berbasis data mesh AWS membahas bagaimana Anda dapat menggunakan Kerangka Strategi Data Mesh untuk merumuskan dan menerapkan strategi data mesh untuk organisasi Anda. Dengan menggunakan Kerangka Strategi Data Mesh, Anda dapat mengoptimalkan organisasi tim dan interaksinya untuk mempercepat perjalanan data mesh Anda.

Dokumen ini memberikan panduan tentang cara membangun mesh data perusahaan dengan Amazon DataZone. Amazon DataZone adalah layanan manajemen data untuk membuat katalog, menemukan, berbagi, dan mengatur data yang disimpan di seluruh, di tempat AWS, dan sumber pihak ketiga. Pola ini mencakup artefak kode yang membantu Anda menyebarkan infrastruktur solusi data berbasis mesh data menggunakan dan. AWS Cloud Development Kit (AWS CDK) AWS CloudFormation Pola ini ditujukan untuk arsitek dan DevOps insinyur cloud.

Untuk informasi tentang tujuan pola ini dan ruang lingkup solusi, lihat bagian Informasi tambahan.

Prasyarat dan batasan

Prasyarat

  • Minimal dua aktif Akun AWS: satu untuk akun tata kelola pusat dan satu lagi untuk akun anggota

  • AWS kredensi administrator untuk akun tata kelola pusat di lingkungan pengembangan Anda

  • AWS Command Line Interface (AWS CLI) diinstal untuk mengelola Anda Layanan AWS dari baris perintah

  • Node.js dan Node Package Manager (npm) diinstal untuk mengelola aplikasi AWS CDK

  • AWS CDK Toolkit diinstal secara global di lingkungan pengembangan Anda dengan menggunakan npm, untuk mensintesis dan menyebarkan aplikasi AWS CDK

    npm install -g aws-cdk
  • Python versi 3.12 diinstal di lingkungan pengembangan Anda

  • TypeScript diinstal di lingkungan pengembangan Anda atau diinstal secara global dengan menggunakan kompiler npm:

    npm install -g typescript
  • Docker diinstal di lingkungan pengembangan Anda

  • Sistem kontrol versi seperti Git untuk mempertahankan kode sumber solusi (disarankan)

  • Lingkungan pengembangan terintegrasi (IDE) atau editor teks dengan dukungan untuk Python dan TypeScript (sangat disarankan)

Batasan

  • Solusinya telah diuji hanya pada mesin yang menjalankan Linux atau macOS.

  • Dalam versi saat ini, solusinya tidak mendukung integrasi Amazon DataZone dan secara AWS IAM Identity Center default. Namun, Anda dapat mengonfigurasinya untuk mendukung integrasi ini.

Versi produk

  • Python versi 3.12

Arsitektur

Diagram berikut menunjukkan arsitektur referensi data mesh. Arsitekturnya didasarkan pada Amazon DataZone dan menggunakan Amazon Simple Storage Service (Amazon S3) AWS Glue Data Catalog dan sebagai sumber data. Layanan AWS Yang Anda gunakan dengan Amazon DataZone dalam implementasi mesh data Anda mungkin berbeda, berdasarkan persyaratan organisasi Anda.

Alur kerja lima langkah untuk akun anggota dan akun tata kelola pusat.
  1. Dalam akun produsen, data mentah cocok untuk konsumsi dalam bentuk saat ini atau diubah untuk konsumsi dengan menggunakan AWS Glue. Metadata teknis untuk data disimpan di Amazon S3 dan dievaluasi menggunakan perayap data. AWS Glue Kualitas data diukur dengan menggunakan Kualitas AWS Glue Data. Database sumber dalam Katalog Data terdaftar sebagai aset dalam DataZone katalog Amazon. DataZone Katalog Amazon di-host di akun tata kelola pusat menggunakan pekerjaan sumber DataZone data Amazon.

  2. Akun tata kelola pusat menampung DataZone domain Amazon dan portal DataZone data Amazon. Produsen data dan konsumen terkait dengan DataZone domain Amazon. Akun AWS DataZone Proyek Amazon dari produsen data dan konsumen diatur di bawah unit DataZone domain Amazon yang sesuai.

  3. Pengguna akhir aset data masuk ke portal DataZone data Amazon dengan menggunakan kredensialnya AWS Identity and Access Management (IAM) atau sistem masuk tunggal (dengan integrasi melalui Pusat Identitas IAM). Mereka mencari, memfilter, dan melihat informasi aset (misalnya, informasi kualitas data atau metadata bisnis dan teknis) di katalog DataZone data Amazon.

  4. Setelah pengguna akhir menemukan aset data yang mereka inginkan, mereka menggunakan fitur DataZone langganan Amazon untuk meminta akses. Pemilik data di tim produsen menerima pemberitahuan dan mengevaluasi permintaan berlangganan di portal DataZone data Amazon. Pemilik data menyetujui atau menolak permintaan berlangganan berdasarkan validitasnya.

  5. Setelah permintaan berlangganan dikabulkan dan dipenuhi, aset diakses di akun konsumen untuk kegiatan berikut:

    • Pengembangan model AI/ML dengan menggunakan Amazon AI SageMaker

    • Analisis dan pelaporan dengan menggunakan Amazon Athena dan Amazon QuickSight

Alat

Layanan AWS

  • Amazon Athena adalah layanan kueri interaktif yang membantu Anda menganalisis data secara langsung di Amazon Simple Storage Service (Amazon S3) dengan menggunakan SQL standar.

  • AWS Cloud Development Kit (AWS CDK)adalah kerangka pengembangan perangkat lunak yang membantu Anda menentukan dan menyediakan AWS Cloud infrastruktur dalam kode.

  • AWS CloudFormationmembantu Anda menyiapkan AWS sumber daya, menyediakannya dengan cepat dan konsisten, dan mengelolanya sepanjang siklus hidupnya di seluruh Akun AWS dan. Wilayah AWS

  • Amazon DataZone adalah layanan manajemen data yang membantu Anda membuat katalog, menemukan, berbagi, dan mengatur data yang disimpan di seluruh AWS, di tempat, dan di sumber pihak ketiga.

  • Amazon QuickSight adalah layanan intelijen bisnis skala cloud (BI) yang membantu Anda memvisualisasikan, menganalisis, dan melaporkan data Anda dalam satu dasbor.

  • Amazon SageMaker AI adalah layanan pembelajaran mesin terkelola (ML) yang membantu Anda membangun dan melatih model ML, lalu menerapkannya ke lingkungan host yang siap produksi.

  • Amazon Simple Storage Service (Amazon S3) adalah layanan penyimpanan objek berbasis cloud yang membantu Anda menyimpan, melindungi, dan mengambil sejumlah data.

  • Amazon Simple Queue Service (Amazon Simple Queue Service) menyediakan antrian host yang aman, tahan lama, dan tersedia yang membantu Anda mengintegrasikan dan memisahkan sistem dan komponen perangkat lunak terdistribusi.

  • Amazon Simple Storage Service (Amazon S3) adalah layanan penyimpanan objek berbasis cloud yang membantu Anda menyimpan, melindungi, dan mengambil sejumlah data.

Repositori kode

Solusinya tersedia di repositori GitHub data-mesh-datazone-cdk-cloudformation.

Epik

TugasDeskripsiKeterampilan yang dibutuhkan

Kloning repositori.

Untuk mengkloning repositori, jalankan perintah berikut di lingkungan pengembangan lokal Anda (Linux atau macOS):

git clone https://github.com/aws-samples/data-mesh-datazone-cdk-cloudformation
Arsitek awan, DevOps insinyur

Buat lingkungan.

Untuk membuat lingkungan virtual Python, jalankan perintah berikut:

python3 -m venv .venv source .venv/bin/activate pip install -r requirements.txt
Arsitek awan, DevOps insinyur

Bootstrap akun.

Untuk mem-bootstrap akun tata kelola pusat dengan menggunakan AWS CDK, jalankan perintah berikut:

cdk bootstrap aws://<GOVERNANCE_ACCOUNT_ID>/<AWS_REGION>

Masuk ke AWS Management Console, buka konsol akun tata kelola pusat, dan dapatkan Nama Sumber Daya Amazon (ARN) dari peran eksekusi AWS CDK .

Arsitek awan, DevOps insinyur

Membangun DzDataMeshMemberStackSet.yaml file.

Untuk membangun DzDataMeshMemberStackSet.yaml file, dari direktori root repositori, memulai skrip bash berikut:

./lib/scripts/create_dz_data_mesh_member_stack_set.sh
Arsitek awan, DevOps insinyur

Konfirmasikan pembuatan template.

Pastikan bahwa file AWS CloudFormation template dibuat di lib/cfn-templates/DzDataMeshMemberStackSet.yaml lokasi.

Arsitek awan, DevOps insinyur
TugasDeskripsiKeterampilan yang dibutuhkan

Ubah konfigurasi.

Dalam config/Config.ts file, ubah parameter berikut:

DZ_APPLICATION_NAME - Name of the application. DZ_STAGE_NAME - Name of the stage. DZ_DOMAIN_NAME - Name of the Amazon DataZone domain DZ_DOMAIN_DESCRIPTION - Description of the Amazon DataZone domain DZ_DOMAIN_TAG - Tag of the Amazon DataZone domain DZ_ADMIN_PROJECT_NAME - Name of the Amazon DataZone project for administrators DZ_ADMIN_PROJECT_DESCRIPTION - Description of the Amazon DataZone project for administrators CDK_EXEC_ROLE_ARN - ARN of the cdk execution role DZ_ADMIN_ROLE_ARN - ARN of the administrator role

Biarkan parameter yang tersisa kosong.

Arsitek awan, DevOps insinyur

Perbarui konfigurasi DataZone glosarium Amazon.

Untuk memperbarui konfigurasi DataZone glosarium Amazon dalam lib/utils/glossary_config.json file, gunakan konfigurasi contoh berikut:

{ "GlossaryName": "PII Data", "GlossaryDescription": "If data source contains PII attributes", "GlossaryTerms": [{ "Name": "Yes", "ShortDescription": "Yes", "LongDescription": "Yes Glossary Term" }, { "Name": "No", "ShortDescription": "No", "LongDescription": "No Glossary Term" } ] }
Arsitek awan, DevOps insinyur

Perbarui konfigurasi formulir DataZone metadata Amazon.

Untuk memperbarui konfigurasi formulir DataZone metadata Amazon dilib/utils/metadata_form_config.json file, gunakan konfigurasi contoh berikut:

{ "FormName": "ScheduleDataRefresh", "FormDescription": "Form for data refresh schedule", "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}" }
Arsitek awan, DevOps insinyur

Ekspor AWS kredensialnya.

Untuk mengekspor AWS kredensyal ke lingkungan pengembangan Anda untuk peran IAM dengan izin administratif, gunakan format berikut:

export AWS_ACCESS_KEY_ID= export AWS_SECRET_ACCESS_KEY= export AWS_SESSION_TOKEN=
Arsitek awan, DevOps insinyur

Sintesis template.

Untuk mensintesis AWS CloudFormation template, jalankan perintah berikut:

npx cdk synth
Arsitek awan, DevOps insinyur

Menyebarkan solusinya.

Untuk menerapkan solusi, jalankan perintah berikut:

npx cdk deploy --all
Arsitek awan, DevOps insinyur
TugasDeskripsiKeterampilan yang dibutuhkan

Menyebarkan template.

Terapkan AWS CloudFormation template yang terletak lib/cfn-templates/DzDataMeshCfnStackSetExecutionRole.yaml di akun anggota dengan parameter input berikut:

  • GovernanceAccountID- ID Akun dari akun tata kelola

  • DataZoneKMSKeyIDID kunci AWS Key Management Service (AWS KMS) yang mengenkripsi metadata Amazon DataZone

  • NotificationQueueName- Nama antrian notifikasi Amazon SQS di akun tata kelola

Arsitek awan, DevOps insinyur

Perbarui ARNs.

Untuk memperbarui daftar peran AWS CloudFormation StackSet ARNs eksekusi akun anggota, gunakan kode berikut:

DZ_MEMBER_STACK_SET_EXEC_ROLE_LIST - List of Stack set execution role arns for the member accounts.
Arsitek awan, DevOps insinyur

Sintesis dan terapkan.

Untuk mensintesis AWS CloudFormation template dan menerapkan solusi, jalankan perintah berikut:

npx cdk synth npx cdk deploy --all
Arsitek awan, DevOps insinyur

Kaitkan akun anggota.

Untuk mengaitkan akun anggota dengan akun tata kelola pusat, lakukan hal berikut:

  1. Masuk ke konsol akun tata kelola pusat, dan buka DataZone konsol Amazon di https://console.aws.amazon.com/datazone/.

  2. Pilih domain yang Anda buat.

  3. Gulir ke tab Akun terkait, dan pilih Permintaan Asosiasi.

  4. Berikan ID akun AWS, dan pilih AWSRAMPermissionDataZonePortalReadWritesebagai kebijakan RAM.

  5. Pilih Asosiasi Permintaan.

  6. Tunggu hingga Anda menerima pemberitahuan email bahwa akun Anda berhasil di-bootstrap.

Arsitek awan, DevOps insinyur

Perbarui parameter.

Untuk memperbarui parameter spesifik akun anggota dalam file konfigurasi diconfig/Config.ts, gunakan format berikut:

export const DZ_MEMBER_ACCOUNT_CONFIG: memberAccountConfig = { '123456789012' : { PROJECT_NAME: 'TEST-PROJECT-123456789012', PROJECT_DESCRIPTION: 'TEST-PROJECT-123456789012', PROJECT_EMAIL: 'user@xyz.com' } }
Arsitek awan, DevOps insinyur

Sintesis dan gunakan template.

Untuk mensintesis AWS CloudFormation template dan menerapkan solusi, jalankan perintah berikut:

npx cdk synth npx cdk deploy --all
Arsitek awan, DevOps insinyur

Tambahkan akun anggota.

Untuk membuat dan mengonfigurasi akun anggota tambahan dalam solusi data, ulangi langkah sebelumnya untuk setiap akun anggota.

Solusi ini tidak membedakan antara produsen data dan konsumen.

Arsitek awan, DevOps insinyur
TugasDeskripsiKeterampilan yang dibutuhkan

Putuskan hubungan akun anggota.

Untuk memisahkan akun, lakukan hal berikut:

  1. Masuk ke konsol dan buka DataZone konsol Amazon.

  2. Pilih Lihat Domain.

  3. Pilih domain yang Anda buat.

  4. Pilih tab Asosiasi akun.

  5. Pilih akun anggota yang ingin Anda pisahkan.

  6. Pilih Putuskan, dan masukkan disassociate untuk mengonfirmasi.

  7. Ulangi langkah 3-6 untuk semua akun anggota.

Arsitek awan, DevOps insinyur

Hapus instance tumpukan.

Untuk menghapus instance AWS CloudFormation tumpukan, lakukan hal berikut:

  1. Buka AWS CloudFormation konsol di https://console.aws.amazon.com/cloudformation/.

  2. Di panel navigasi, pilih StackSets.

  3. Pilih set tumpukan bernama StackSet- DataZone - DataMesh -Member, dan pilih tab Stack instance.

  4. Salin Akun AWS ID akun anggota yang ingin Anda hapus dari keanggotaan. 

  5. Pilih Tindakan, pilih Hapus tumpukan dari StackSet, dan pertahankan opsi default.

  6. Di bidang Nomor akun, masukkan ID akun. 

  7. Dalam daftar tarik-turun Tentukan wilayah, pilih. Wilayah AWS 

  8. Pilih Berikutnya, lalu pilih Kirim

  9. Pada tab Operasi, konfirmasikan bahwa operasi telah berhasil. Penghapusan tumpukan mungkin memakan waktu.

  10. Ulangi langkah 2-9 untuk semua akun anggota.

Arsitek awan, DevOps insinyur

Hancurkan semua sumber daya.

Untuk menghancurkan sumber daya, terapkan langkah-langkah berikut di lingkungan pengembangan lokal Anda (Linux atau macOS):

  1. Arahkan ke direktori root repositori Anda. 

  2. Ekspor AWS kredensyal untuk peran IAM yang Anda gunakan untuk membuat tumpukan. AWS CDK  

  3. Untuk menghancurkan sumber daya cloud, jalankan perintah berikut:

    npx cdk destroy --all
Arsitek awan, DevOps insinyur

Sumber daya terkait

Informasi tambahan

Tujuan

Menerapkan pola ini mencapai hal berikut:

  • Kepemilikan data yang terdesentralisasi - Alihkan kepemilikan data dari tim pusat ke tim yang mewakili sistem sumber, unit bisnis, atau kasus penggunaan organisasi Anda.

  • Pemikiran produk — Memperkenalkan pola pikir berbasis produk yang mencakup pelanggan, pasar, dan faktor lain ketika mempertimbangkan aset data dalam organisasi Anda.

  • Tata kelola federasi - Meningkatkan pagar pembatas keamanan, kontrol, dan kepatuhan di seluruh produk data organisasi Anda.

  • Dukungan multi-akun dan multi-proyek - Mendukung berbagi data dan kolaborasi yang efisien dan aman di seluruh unit bisnis atau proyek organisasi Anda.

  • Pemantauan dan pemberitahuan terpusat - Pantau sumber daya cloud mesh data Anda dengan menggunakan Amazon CloudWatch, dan beri tahu pengguna saat akun anggota baru dikaitkan.

  • Skalabilitas dan ekstensibilitas - Tambahkan kasus penggunaan baru ke dalam mesh data saat organisasi Anda berkembang.

Ruang lingkup solusi

Ketika Anda menggunakan solusi ini, Anda dapat memulai dari yang kecil dan skala saat Anda maju dalam perjalanan data mesh Anda. Seringkali, ketika akun anggota mengadopsi solusi data, itu berisi konfigurasi akun khusus untuk organisasi, proyek, atau unit bisnis. Solusi ini mengakomodasi beragam Akun AWS konfigurasi ini dengan mendukung fitur-fitur berikut:

  • AWS Glue Data Catalog sebagai sumber data untuk Amazon DataZone

  • Pengelolaan domain DataZone data Amazon dan portal data terkait

  • Manajemen penambahan akun anggota dalam solusi data berbasis data mesh data

  • Pengelolaan DataZone proyek dan lingkungan Amazon

  • Pengelolaan DataZone glosarium Amazon dan formulir metadata

  • Pengelolaan peran IAM yang sesuai dengan pengguna solusi data berbasis jaringan data

  • Pemberitahuan pengguna solusi data berbasis data mesh

  • Pemantauan infrastruktur cloud yang disediakan

    Solusi ini menggunakan AWS CDK dan AWS CloudFormation menyebarkan infrastruktur cloud. Ini digunakan AWS CloudFormation untuk melakukan hal berikut:

    • Tentukan dan terapkan sumber daya cloud pada tingkat abstraksi yang lebih rendah.

    • Menyebarkan sumber daya cloud dari. AWS Management Console Dengan menggunakan pendekatan ini, Anda dapat menerapkan infrastruktur tanpa lingkungan pengembangan.

    Solusi data mesh digunakan AWS CDK untuk mendefinisikan sumber daya pada tingkat abstraksi yang lebih tinggi. Hasilnya, solusi ini menyediakan pendekatan terpisah, modular, dan terukur dengan memilih alat yang relevan untuk menyebarkan sumber daya cloud.

Langkah selanjutnya

Anda dapat menghubungi AWSpara ahli untuk mendapatkan panduan tentang membangun data mesh dengan Amazon DataZone.

Sifat modular dari solusi ini mendukung membangun solusi manajemen data dengan arsitektur yang berbeda, seperti data fabric dan data lake. Selain itu, berdasarkan persyaratan organisasi Anda, Anda dapat memperluas solusi ke sumber DataZone data Amazon lainnya.