Menerapkan dan mengelola data lake tanpa server di AWS Cloud dengan menggunakan infrastruktur sebagai kode - AWS Prescriptive Guidance

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

Menerapkan dan mengelola data lake tanpa server di AWS Cloud dengan menggunakan infrastruktur sebagai kode

Kirankumar Chandrashekar dan Abdel Jaidi, Amazon Web Services

Ringkasan

Pemberitahuan: AWS CodeCommit tidak lagi tersedia untuk pelanggan baru. Pelanggan AWS yang sudah ada CodeCommit dapat terus menggunakan layanan seperti biasa. Pelajari selengkapnya

Pola ini menjelaskan cara menggunakan komputasi tanpa server dan infrastruktur sebagai kode (IAc) untuk mengimplementasikan dan mengelola data lake di Amazon Web Services (AWS) Cloud. Pola ini didasarkan pada lokakarya kerangka kerja data lake tanpa server (SDLF) yang dikembangkan oleh AWS.

SDLF adalah kumpulan sumber daya yang dapat digunakan kembali yang mempercepat pengiriman data lake perusahaan di AWS Cloud dan membantu penyebaran yang lebih cepat ke produksi. Ini digunakan untuk mengimplementasikan struktur dasar danau data dengan mengikuti praktik terbaik.

SDLF mengimplementasikan proses integrasi/penerapan berkelanjutan (CI/CD) di seluruh penerapan kode dan infrastruktur dengan menggunakan layanan AWS seperti AWS, AWS, dan AWS. CodePipeline CodeBuild CodeCommit

Pola ini menggunakan beberapa layanan tanpa server AWS untuk menyederhanakan pengelolaan data lake. Ini termasuk Amazon Simple Storage Service (Amazon S3) Simple Storage Service (Amazon S3) dan Amazon DynamoDB untuk penyimpanan, AWS Lambda dan AWS Glue untuk komputasi, CloudWatch dan Amazon Events, Amazon Simple Queue Service (Amazon SQS), dan AWS Step Functions untuk orkestrasi.

Layanan kode AWS CloudFormation dan AWS bertindak sebagai lapisan IAc untuk menyediakan penerapan yang dapat direproduksi dan cepat dengan pengoperasian dan administrasi yang mudah.

Prasyarat dan batasan

Prasyarat

Arsitektur

Menerapkan dan mengelola data lake di AWS Cloud.

Diagram arsitektur menggambarkan proses yang digerakkan oleh peristiwa dengan langkah-langkah berikut. 

  1. Setelah file ditambahkan ke bucket S3 data mentah, pemberitahuan peristiwa Amazon S3 ditempatkan dalam antrean SQS. Setiap notifikasi dikirimkan sebagai file JSON, yang berisi metadata seperti nama bucket S3, kunci objek, atau stempel waktu.

  2. Pemberitahuan ini digunakan oleh fungsi Lambda yang merutekan peristiwa ke proses ekstraksi, transformasi, dan pemuatan (ETL) yang benar berdasarkan metadata. Fungsi Lambda juga dapat menggunakan konfigurasi kontekstual yang disimpan dalam tabel Amazon DynamoDB. Langkah ini memungkinkan decoupling dan scaling ke beberapa aplikasi di data lake.

  3. Acara ini diarahkan ke fungsi Lambda pertama dalam proses ETL, yang mengubah dan memindahkan data dari area data mentah ke area pementasan untuk danau data. Langkah pertama adalah memperbarui katalog komprehensif. Ini adalah tabel DynamoDB yang berisi semua metadata file dari data lake. Setiap baris dalam tabel ini menyimpan metadata operasional tentang satu objek yang disimpan di Amazon S3. Panggilan sinkron dibuat ke fungsi Lambda yang melakukan transformasi cahaya, yang merupakan operasi komputasi yang murah (seperti mengonversi file dari satu format ke format lainnya), pada objek S3. Karena objek baru telah ditambahkan ke bucket S3 pementasan, katalog komprehensif diperbarui dan pesan dikirim ke antrian SQS menunggu fase berikutnya di ETL.

  4. Aturan CloudWatch Peristiwa memicu fungsi Lambda setiap 5 menit. Fungsi ini memeriksa apakah pesan dikirim ke antrian SQS dari fase ETL sebelumnya. Jika pesan terkirim, fungsi Lambda memulai fungsi kedua dari AWS Step Functions dalam proses ETL.

  5. Transformasi berat kemudian diterapkan pada sekumpulan file. Transformasi berat ini adalah operasi yang mahal secara komputasi, seperti panggilan sinkron ke pekerjaan AWS Glue, tugas AWS Fargate, langkah EMR Amazon, atau notebook Amazon. SageMaker Metadata tabel diekstraksi dari file output dengan menggunakan crawler AWS Glue, yang memperbarui katalog AWS Glue. Metadata file juga ditambahkan ke tabel katalog komprehensif di DynamoDB. Akhirnya, langkah kualitas data yang memanfaatkan Deequ juga dijalankan.

Tumpukan teknologi

  • CloudWatch Acara Amazon

  • AWS CloudFormation

  • AWS CodePipeline

  • AWS CodeBuild

  • AWS CodeCommit

  • Amazon DynamoDB

  • AWS Glue

  • AWS Lambda

  • Amazon S3

  • Amazon SQS

  • AWS Step Functions

Alat

  • CloudWatch Acara Amazon — CloudWatch Acara menghadirkan aliran peristiwa sistem yang mendekati waktu nyata yang menjelaskan perubahan sumber daya AWS.

  • AWS CloudFormation — CloudFormation membantu membuat dan menyediakan penerapan infrastruktur AWS secara dapat diprediksi dan berulang kali.

  • AWS CodeBuild — CodeBuild adalah layanan build terkelola penuh yang mengompilasi kode sumber Anda, menjalankan pengujian unit, dan menghasilkan artefak yang siap digunakan.

  • AWS CodeCommit — CodeCommit adalah layanan kontrol versi yang dihosting oleh AWS yang dapat Anda gunakan untuk menyimpan dan mengelola aset secara pribadi (seperti kode sumber dan file biner).

  • AWS CodePipeline — CodePipeline adalah layanan pengiriman berkelanjutan yang dapat Anda gunakan untuk memodelkan, memvisualisasikan, dan mengotomatiskan langkah-langkah yang diperlukan untuk merilis perubahan perangkat lunak Anda secara terus menerus.

  • Amazon DynamoDB - DynamoDB adalah layanan database NoSQL yang dikelola sepenuhnya yang menyediakan kinerja yang cepat dan dapat diprediksi dengan skalabilitas. 

  • AWS Glue — AWS Glue adalah layanan ETL yang dikelola sepenuhnya yang memudahkan penyiapan dan pemuatan data untuk analitik.

  • AWS Lambda — Lambda mendukung menjalankan kode tanpa menyediakan atau mengelola server. Lambda menjalankan kode Anda hanya saat diperlukan dan menskalakan secara otomatis, dari beberapa permintaan per hari hingga ribuan per detik. 

  • Amazon S3 - Amazon Simple Storage Service (Amazon S3) Simple Storage Service (Amazon S3) adalah layanan penyimpanan objek yang sangat skalabel. Amazon S3 dapat digunakan untuk berbagai solusi penyimpanan, termasuk situs web, aplikasi seluler, cadangan, dan data lake.

  • AWS Step Functions - AWS Step Functions adalah orkestrator fungsi tanpa server yang memudahkan untuk mengurutkan fungsi AWS Lambda dan beberapa layanan AWS ke dalam aplikasi penting bisnis.

  • Amazon SQS — Amazon Simple Queue Service (Amazon SQS) adalah layanan antrian pesan yang dikelola sepenuhnya yang membantu Anda memisahkan dan menskalakan layanan mikro, sistem terdistribusi, dan aplikasi tanpa server.

  • Deequ - Deequ adalah alat yang membantu Anda menghitung metrik kualitas data untuk kumpulan data besar, menentukan dan memverifikasi batasan kualitas data, dan tetap mendapat informasi tentang perubahan dalam distribusi data.

Repositori kode

Kode sumber dan sumber daya untuk SDLF tersedia di repositori AWS Labs GitHub .

Epik

TugasDeskripsiKeterampilan yang dibutuhkan

Siapkan CI/CD pipeline untuk mengelola IAc untuk data lake.

Masuk ke AWS Management Console dan ikuti langkah-langkah dari bagian Penyiapan awal bengkel SDLF. Ini menciptakan CI/CD sumber daya awal, seperti CodeCommit repositori, CodeBuild lingkungan, dan CodePipeline saluran pipa yang menyediakan dan mengelola IAc untuk data lake.

DevOps insinyur
TugasDeskripsiKeterampilan yang dibutuhkan

Kloning CodeCommit repositori pada mesin lokal Anda.

Ikuti langkah-langkah dari bagian Deploying the foundation dari lokakarya SDLF. Ini membantu Anda mengkloning repositori Git yang menghosting IAc ke lingkungan lokal Anda. 

Untuk informasi selengkapnya, lihat Menghubungkan ke CodeCommit repositori dari dokumentasi. CodeCommit

DevOps insinyur

Ubah CloudFormation template.

Gunakan workstation lokal Anda dan editor kode untuk memodifikasi CloudFormation template sesuai dengan kasus penggunaan atau persyaratan Anda. Komit mereka ke repositori Git yang dikloning secara lokal. 

Untuk informasi selengkapnya, lihat Bekerja dengan CloudFormation templat AWS dari CloudFormation dokumentasi AWS.

DevOps insinyur

Dorong perubahan ke CodeCommit repositori.

Kode infrastruktur Anda sekarang berada di bawah kontrol versi dan modifikasi pada basis kode Anda dilacak. Saat Anda mendorong perubahan ke CodeCommit repositori, CodePipeline secara otomatis menerapkannya ke infrastruktur Anda dan mengirimkannya ke. CodeBuild 

penting

Jika Anda menggunakan AWS SAM CLI di CodeBuild, jalankan perintah sam package dansam deploy. Jika Anda menggunakan AWS CLI, jalankan perintah aws cloudformation package andaws cloudformation deploy.

DevOps insinyur

Sumber daya terkait

Siapkan CI/CD pipeline untuk menyediakan IAc

Kontrol versi IAc

Sumber daya lainnya