Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Otomatiskan penerapan Rantai Pasokan AWS data lake dalam pengaturan multi-repositori dengan menggunakan GitHub Actions, Artifactory, dan Terraform
Keshav Ganesh, Amazon Web Services
Ringkasan
Pola ini menyediakan pendekatan otomatis untuk menyebarkan dan mengelola Rantai Pasokan AWS data lake menggunakan integrasi berkelanjutan multi-repositori dan penerapan berkelanjutan (kemampuan. CI/CD) pipeline. It demonstrates two deployment methods: automated deployment using GitHub Actions workflows, or manual deployment using Terraform directly. Both approaches use Terraform for infrastructure as code (IaC), with the automated method adding GitHub Actions and JFrog Artifactory for enhanced CI/CD
Solusi ini memanfaatkan Rantai Pasokan AWS AWS Lambda, dan Amazon Simple Storage Service (Amazon S3) Simple Storage Service (Amazon S3) untuk membuat infrastruktur data lake, sambil menggunakan salah satu metode penyebaran untuk mengotomatiskan konfigurasi dan pembuatan sumber daya. Otomatisasi ini menghilangkan langkah-langkah konfigurasi manual dan memastikan penerapan yang konsisten di seluruh lingkungan. Selain itu, Rantai Pasokan AWS menghilangkan kebutuhan akan keahlian mendalam dalam mengekstrak, mengubah, dan memuat (ETL) dan dapat memberikan wawasan dan analitik yang didukung oleh Amazon Quick Sight.
Dengan menerapkan pola ini, organisasi dapat mengurangi waktu penyebaran, memelihara infrastruktur sebagai kode, dan mengelola data lake rantai pasokan melalui proses otomatis yang dikendalikan versi. Pendekatan multi-repositori menyediakan kontrol akses berbutir halus dan mendukung penyebaran independen komponen yang berbeda. Tim dapat memilih metode penerapan yang paling sesuai dengan alat dan proses yang ada.
Prasyarat dan batasan
Prasyarat
Pastikan yang berikut ini diinstal pada mesin lokal Anda:
Terraform
v1.12 atau yang lebih baru
Pastikan hal-hal berikut sudah ada sebelum penerapan:
Aktif Akun AWS.
Virtual Private Cloud (VPC) dengan dua subnet pribadi di Akun AWS pilihan Anda Wilayah AWS .
Izin yang memadai untuk peran AWS Identity and Access Management (IAM) yang digunakan untuk penyebaran ke layanan berikut:
Rantai Pasokan AWS — Akses Penuh lebih disukai untuk menyebarkan komponennya seperti kumpulan data dan aliran integrasi, bersama dengan mengaksesnya dari file. Konsol Manajemen AWS
Amazon CloudWatch Logs — Untuk membuat dan mengelola grup CloudWatch log.
Amazon Elastic Compute Cloud (Amazon EC2) - Untuk grup keamanan Amazon EC2 dan titik akhir Amazon Virtual Private Cloud (Amazon VPC).
Amazon EventBridge — Untuk digunakan oleh Rantai Pasokan AWS.
IAM — Untuk membuat peran AWS Lambda layanan.
AWS Key Management Service (AWS KMS) — Untuk akses ke bucket artefak Amazon S3 yang AWS KMS keys digunakan dan bucket pementasan Amazon S3. Rantai Pasokan AWS
AWS Lambda — Untuk membuat fungsi Lambda yang menyebarkan komponen. Rantai Pasokan AWS
Amazon S3 — Untuk akses ke bucket artefak Amazon S3, bucket logging akses server, dan bucket staging. Rantai Pasokan AWS Jika Anda menggunakan penerapan manual, izin untuk bucket artefak Amazon S3 Terraform juga diperlukan.
Amazon VPC — Untuk membuat dan mengelola VPC.
Jika Anda lebih suka menggunakan alur kerja GitHub Tindakan untuk penerapan, lakukan hal berikut:
Siapkan OpenID Connect (OIDC)
untuk peran IAM dengan izin yang disebutkan sebelumnya. Buat peran IAM dengan izin serupa untuk mengakses. Konsol Manajemen AWS Untuk informasi selengkapnya, lihat Membuat peran untuk memberikan izin kepada pengguna IAM dalam dokumentasi IAM.
Jika Anda lebih suka melakukan penerapan manual, lakukan hal berikut:
Buat pengguna IAM untuk mengambil peran IAM dengan izin yang disebutkan sebelumnya. Untuk informasi selengkapnya, lihat Membuat peran untuk memberikan izin kepada pengguna IAM dalam dokumentasi IAM.
Asumsikan peran di terminal lokal Anda.
Jika Anda lebih suka menggunakan alur kerja GitHub Tindakan untuk penerapan, siapkan yang berikut ini:
Akun JFrog Artifactory
untuk mendapatkan nama host, nama pengguna login, dan token akses login. Kunci JFrog proyek dan repositori
untuk menyimpan artefak.
Batasan
Rantai Pasokan AWS Instance tidak mendukung teknik transformasi data yang kompleks.
Rantai Pasokan AWS paling cocok untuk domain rantai pasokan karena menyediakan analitik dan wawasan bawaan. Untuk domain lain, Rantai Pasokan AWS dapat digunakan sebagai penyimpanan data sebagai bagian dari arsitektur danau data.
Fungsi Lambda yang digunakan dalam solusi ini mungkin perlu ditingkatkan untuk menangani percobaan ulang API dan manajemen memori dalam penerapan skala produksi.
Beberapa Layanan AWS tidak tersedia di semua Wilayah AWS. Untuk ketersediaan Wilayah, lihat AWS Layanan menurut Wilayah
. Untuk titik akhir tertentu, lihat Titik akhir dan kuota layanan, dan pilih tautan untuk layanan.
Arsitektur
Anda dapat menerapkan solusi ini baik dengan menggunakan alur kerja GitHub Tindakan otomatis atau secara manual menggunakan Terraform.
Penerapan otomatis dengan Tindakan GitHub
Diagram berikut menunjukkan opsi penerapan otomatis yang menggunakan alur kerja GitHub Tindakan. JFrog Artifactory digunakan untuk manajemen artefak. Ini menyimpan informasi sumber daya dan output untuk digunakan dalam penyebaran multi-repositori.

Penerapan manual dengan Terraform
Diagram berikut menunjukkan opsi penerapan manual melalui Terraform. Alih-alih JFrog Artifactory, Amazon S3 digunakan untuk manajemen artefak.

Alur kerja penerapan
Diagram menunjukkan alur kerja berikut:
Menyebarkan infrastruktur dan database kumpulan data Rantai Pasokan AWS layanan menggunakan salah satu metode penerapan berikut:
Penerapan otomatis — Menggunakan alur kerja GitHub Tindakan untuk mengatur semua langkah penerapan dan menggunakan Artifactory untuk manajemen artefak. JFrog
Penerapan manual — Menjalankan perintah Terraform secara langsung untuk setiap langkah penerapan dan menggunakan Amazon S3 untuk manajemen artefak.
Buat AWS sumber daya pendukung yang diperlukan untuk operasi Rantai Pasokan AWS layanan:
Titik akhir Amazon VPC dan grup keamanan
AWS KMS keys
CloudWatch Grup log log
Membuat dan menyebarkan sumber daya infrastruktur berikut:
Fungsi Lambda yang mengelola (membuat, memperbarui, dan menghapus) instance Rantai Pasokan AWS layanan, ruang nama, dan kumpulan data.
Rantai Pasokan AWS pementasan bucket Amazon S3 untuk konsumsi data
Menerapkan fungsi Lambda yang mengelola alur integrasi antara bucket staging dan dataset. Rantai Pasokan AWS Setelah penerapan selesai, langkah-langkah alur kerja yang tersisa mengelola konsumsi dan analisis data.
Konfigurasikan konsumsi data sumber ke bucket Amazon Rantai Pasokan AWS S3 pementasan.
Setelah data ditambahkan ke bucket Amazon Rantai Pasokan AWS S3 pementasan, layanan secara otomatis memicu aliran integrasi ke kumpulan data. Rantai Pasokan AWS
Rantai Pasokan AWS terintegrasi dengan Quick Sight Analytics untuk menghasilkan dasbor berdasarkan data yang dicerna.
Alat
Layanan AWS
Amazon CloudWatch Logs membantu Anda memusatkan log dari semua sistem, aplikasi, Layanan AWS sehingga Anda dapat memantau dan mengarsipkannya dengan aman.
AWS Command Line Interface (AWS CLI) adalah alat open source yang membantu Anda berinteraksi Layanan AWS melalui perintah di shell baris perintah Anda.
Amazon Elastic Compute Cloud (Amazon EC2) menyediakan kapasitas komputasi yang dapat diskalakan di. AWS Cloud Anda dapat meluncurkan server virtual sebanyak yang Anda butuhkan dan dengan cepat meningkatkannya ke atas atau ke bawah.
Amazon EventBridge adalah layanan bus acara tanpa server yang membantu Anda menghubungkan aplikasi Anda dengan data waktu nyata dari berbagai sumber. Misalnya, AWS Lambda fungsi, titik akhir pemanggilan HTTP menggunakan tujuan API, atau bus acara di tempat lain. Akun AWS
AWS Identity and Access Management (IAM) membantu Anda mengelola akses ke AWS sumber daya dengan aman dengan mengontrol siapa yang diautentikasi dan diberi wewenang untuk menggunakannya.
AWS IAM Identity Centermembantu Anda mengelola akses masuk tunggal (SSO) secara terpusat ke semua aplikasi Anda Akun AWS dan cloud.
AWS Key Management Service (AWS KMS) membantu Anda membuat dan mengontrol kunci kriptografi untuk membantu melindungi data Anda.
AWS Lambdaadalah layanan komputasi yang membantu Anda menjalankan kode tanpa perlu menyediakan atau mengelola server. Ini menjalankan kode Anda hanya bila diperlukan dan skala secara otomatis, jadi Anda hanya membayar untuk waktu komputasi yang Anda gunakan.
Amazon Q in Rantai Pasokan AWS adalah asisten AI generatif interaktif yang membantu Anda mengoperasikan rantai pasokan Anda secara lebih efisien dengan menganalisis data di Rantai Pasokan AWS data lake Anda.
Amazon Quick Sight adalah layanan intelijen bisnis skala cloud (BI) yang membantu Anda memvisualisasikan, menganalisis, dan melaporkan data Anda dalam satu dasbor.
Amazon Simple Storage Service (Amazon S3) adalah layanan penyimpanan objek berbasis cloud yang membantu Anda menyimpan, melindungi, dan mengambil sejumlah data.
Rantai Pasokan AWSadalah aplikasi terkelola berbasis cloud yang dapat digunakan sebagai penyimpanan data dalam organisasi untuk domain rantai pasokan, yang dapat digunakan untuk menghasilkan wawasan dan melakukan analisis pada data yang dicerna.
Amazon Virtual Private Cloud (Amazon VPC) membantu Anda meluncurkan AWS sumber daya ke jaringan virtual yang telah Anda tentukan. Jaringan virtual ini menyerupai jaringan tradisional yang akan Anda operasikan di pusat data Anda sendiri, dengan manfaat menggunakan infrastruktur yang dapat diskalakan. AWSEndpoint Amazon VPC adalah perangkat virtual yang membantu Anda menghubungkan VPC Anda secara pribadi ke yang didukung Layanan AWS tanpa memerlukan gateway internet, perangkat NAT, koneksi VPN, atau koneksi. AWS Direct Connect
Alat-alat lainnya
GitHub Actions
adalah platform integrasi berkelanjutan dan pengiriman berkelanjutan (CI/CD) yang terintegrasi erat dengan GitHub repositori. Anda dapat menggunakan GitHub Actions untuk mengotomatiskan pipeline build, test, dan deployment. HashiCorp Terraform
adalah alat infrastruktur sebagai kode (IAc) yang membantu Anda membuat dan mengelola sumber daya cloud dan lokal. JFrog Artifactory
menyediakan end-to-end otomatisasi dan manajemen binari dan artefak melalui proses pengiriman aplikasi. Python adalah bahasa
pemrograman komputer tujuan umum. Pola ini menggunakan Python untuk kode AWS fungsi untuk berinteraksi dengan Rantai Pasokan AWS .
Praktik terbaik
Pertahankan keamanan setinggi mungkin saat menerapkan pola ini. Seperti yang dinyatakan dalam Prasyarat, pastikan virtual private cloud (VPC) dengan dua subnet pribadi ada di pilihan Anda. Akun AWS Wilayah AWS
Gunakan kunci terkelola AWS KMS pelanggan sedapat mungkin, dan berikan izin akses terbatas kepada mereka.
Untuk mengatur peran IAM dengan akses paling sedikit yang diperlukan untuk menelan data untuk pola ini, lihat Pengambilan Data Aman dari Sistem Sumber ke Amazon S3 di repositori
pola ini.
Epik
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Kloning repositori. | Untuk mengkloning repositori pola ini, jalankan perintah berikut di workstation lokal Anda:
| AWS DevOps |
(Opsi otomatis) Verifikasi prasyarat untuk penerapan. | Pastikan Prasyarat lengkap untuk penerapan otomatis. | Pemilik aplikasi |
(Opsi manual) Bersiaplah untuk penyebaran kumpulan Rantai Pasokan AWS data. | Untuk pergi ke
Untuk mengasumsikan peran ARN yang dibuat dalam Prasyarat, jalankan perintah berikut:
Untuk mengkonfigurasi dan mengekspor variabel lingkungan, jalankan perintah berikut:
| AWS DevOps |
(Opsi manual) Bersiaplah untuk mengelola aliran Rantai Pasokan AWS integrasi dalam penerapan. | Untuk pergi ke
Untuk mengasumsikan peran ARN yang dibuat sebelumnya, jalankan perintah berikut:
Untuk mengkonfigurasi dan mengekspor variabel lingkungan, jalankan perintah berikut:
| Pemilik aplikasi |
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Salin | Untuk menyalin
| AWS DevOps |
Siapkan | Untuk mengatur
| AWS DevOps |
Konfigurasikan nama cabang di file alur kerja.github. | Siapkan nama cabang dalam berkas alur kerja deployment
| Pemilik aplikasi |
Siapkan GitHub lingkungan dan konfigurasikan nilai lingkungan. | Untuk menyiapkan GitHub lingkungan di GitHub organisasi Anda, gunakan petunjuk di GitHub lingkungan Pengaturan Untuk mengonfigurasi nilai lingkungan | Pemilik aplikasi |
Memicu alur kerja. | Untuk mendorong perubahan ke GitHub organisasi dan memicu alur kerja penerapan, jalankan perintah berikut:
| AWS DevOps |
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Salin | Untuk menyalin
| AWS DevOps |
Siapkan | Untuk menyiapkan
| AWS DevOps |
Konfigurasikan nama cabang di file alur kerja.github. | Siapkan nama cabang dalam berkas alur kerja deployment
| Pemilik aplikasi |
Siapkan GitHub lingkungan dan konfigurasikan nilai lingkungan. | Untuk menyiapkan GitHub lingkungan di GitHub organisasi Anda, gunakan petunjuk di GitHub lingkungan Pengaturan Untuk mengonfigurasi nilai lingkungan | Pemilik aplikasi |
Memicu alur kerja. | Untuk mendorong perubahan ke GitHub organisasi dan memicu alur kerja penerapan, jalankan perintah berikut:
| AWS DevOps |
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Buka direktori | Untuk pergi ke
| AWS DevOps |
Siapkan bucket Amazon S3 status Terraform. | Untuk menyiapkan bucket Amazon S3 status Terraform, gunakan skrip berikut:
| AWS DevOps |
Siapkan ember artefak Terraform Amazon S3. | Untuk menyiapkan bucket Amazon S3 artefak Terraform, gunakan skrip berikut:
| AWS DevOps |
Siapkan konfigurasi backend dan penyedia Terraform. | Untuk menyiapkan konfigurasi backend dan penyedia Terraform, gunakan skrip berikut:
| AWS DevOps |
Hasilkan rencana penerapan. | Untuk membuat rencana penyebaran, jalankan perintah berikut:
| AWS DevOps |
Menyebarkan konfigurasi. | Untuk menerapkan konfigurasi, jalankan perintah berikut:
| AWS DevOps |
Perbarui konfigurasi lain dan simpan output. | Untuk memperbarui kebijakan AWS KMS utama dan menyimpan output konfigurasi yang diterapkan di bucket Amazon S3 artefak Terraform, jalankan perintah berikut:
| AWS DevOps |
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Buka direktori | Untuk pergi ke
| AWS DevOps |
Siapkan konfigurasi backend dan penyedia Terraform. | Untuk menyiapkan konfigurasi backend dan penyedia Terraform, gunakan skrip berikut:
| AWS DevOps |
Hasilkan rencana penerapan. | Untuk menghasilkan rencana penyebaran, jalankan perintah berikut. Perintah ini menginisialisasi lingkungan Terraform Anda, menggabungkan variabel konfigurasi dari
| AWS DevOps |
Menyebarkan konfigurasi. | Untuk menerapkan konfigurasi, jalankan perintah berikut:
| AWS DevOps |
Perbarui konfigurasi lainnya. | Untuk memperbarui kebijakan AWS KMS utama dan menyimpan output konfigurasi yang diterapkan di bucket Amazon S3 artefak Terraform, jalankan perintah berikut:
| AWS DevOps |
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Unggah contoh file CSV. | Untuk mengunggah file CSV sampel untuk kumpulan data, gunakan langkah-langkah berikut:
| Insinyur data |
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Mengatur Rantai Pasokan AWS akses. | Untuk mengatur Rantai Pasokan AWS akses dari Konsol Manajemen AWS, gunakan langkah-langkah berikut:
| Pemilik aplikasi |
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Memicu alur kerja penghancuran untuk sumber daya alur integrasi. | Memicu alur kerja penghancuran | AWS DevOps |
Memicu alur kerja penghancuran untuk sumber daya kumpulan data. | Memicu alur kerja penghancuran | AWS DevOps |
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Buka direktori | Untuk pergi ke
| AWS DevOps |
Siapkan konfigurasi backend dan penyedia Terraform. | Untuk menyiapkan konfigurasi backend dan penyedia Terraform, gunakan skrip berikut:
| AWS DevOps |
Menghasilkan rencana penghancuran infrastruktur. | Untuk mempersiapkan penghancuran AWS infrastruktur Anda yang terkontrol dengan membuat rencana pembongkaran terperinci, jalankan perintah berikut. Proses ini menginisialisasi Terraform, menggabungkan konfigurasi Rantai Pasokan AWS kumpulan data, dan membuat rencana penghancuran yang dapat Anda tinjau sebelum dijalankan.
| AWS DevOps |
Jalankan rencana penghancuran infrastruktur. | Untuk menjalankan penghancuran infrastruktur yang direncanakan, jalankan perintah berikut:
| AWS DevOps |
Hapus output Terraform dari bucket Amazon S3. | Untuk menghapus file output yang diunggah selama penyebaran
| AWS DevOps |
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Buka direktori | Untuk pergi ke
| AWS DevOps |
Siapkan konfigurasi backend dan penyedia Terraform. | Untuk menyiapkan konfigurasi backend dan penyedia Terraform, gunakan skrip berikut:
| AWS DevOps |
Menghasilkan rencana penghancuran infrastruktur. | Untuk membuat rencana untuk menghancurkan sumber daya Rantai Pasokan AWS dataset, jalankan perintah berikut:
| AWS DevOps |
Ember Amazon S3 kosong. | Untuk mengosongkan semua bucket Amazon S3 (kecuali bucket logging akses server, yang dikonfigurasi untuk
| AWS DevOps |
Jalankan rencana penghancuran infrastruktur. | Untuk menjalankan penghancuran infrastruktur Rantai Pasokan AWS dataset Anda yang direncanakan menggunakan rencana yang dihasilkan, jalankan perintah berikut:
| AWS DevOps |
Hapus keluaran Terraform dari ember artefak Amazon S3 Terraform. | Untuk menyelesaikan proses pembersihan, hapus file output yang diunggah selama penerapan
| AWS DevOps |
Pemecahan masalah
| Isu | Solusi |
|---|---|
Rantai Pasokan AWS Kumpulan data atau alur integrasi tidak diterapkan dengan benar karena kesalahan Rantai Pasokan AWS internal atau izin IAM yang tidak memadai untuk peran layanan. | Pertama, bersihkan semua sumber daya. Kemudian, terapkan ulang sumber daya Rantai Pasokan AWS kumpulan data dan kemudian gunakan kembali sumber daya |
Alur Rantai Pasokan AWS integrasi tidak mengambil file data baru yang diunggah untuk kumpulan data. Rantai Pasokan AWS |
|
Sumber daya terkait
AWS dokumentasi
Sumber daya lainnya
Memahami alur kerja GitHub Tindakan
(GitHub dokumentasi)
Informasi tambahan
Solusi ini dapat direplikasi untuk lebih banyak kumpulan data dan dapat ditanyakan untuk analisis lebih lanjut, melalui dasbor bawaan yang disediakan atau integrasi Rantai Pasokan AWS khusus dengan Amazon Quick Sight. Selain itu, Anda dapat menggunakan Amazon Q untuk mengajukan pertanyaan terkait Rantai Pasokan AWS instans Anda.
Menganalisis data dengan Rantai Pasokan AWS Analytics
Untuk petunjuk menyiapkan Rantai Pasokan AWS Analytics, lihat Menyetel Rantai Pasokan AWS Analytics di Rantai Pasokan AWS dokumentasi.
Pola ini menunjukkan pembuatan kumpulan data Kalender dan Outbound_Order_Line. Untuk membuat analisis yang menggunakan kumpulan data ini, gunakan langkah-langkah berikut:
Untuk menganalisis kumpulan data, gunakan dasbor Analisis Musim. Untuk menambahkan dasbor, ikuti langkah-langkah di dasbor Prebuilt dalam dokumentasi. Rantai Pasokan AWS
Pilih dasbor untuk melihat analisisnya yang didasarkan pada contoh file CSV untuk data Kalender dan data Outbound Order Line.
Dasbor memberikan wawasan tentang permintaan selama bertahun-tahun berdasarkan data yang dicerna untuk kumpulan data. Anda dapat lebih lanjut menentukan ProductID, CustomerID, tahun, dan parameter lain untuk analisis.
Gunakan Amazon Q untuk mengajukan pertanyaan terkait Rantai Pasokan AWS instans Anda
Amazon Q in Rantai Pasokan AWS adalah asisten AI generatif interaktif yang membantu Anda mengoperasikan rantai pasokan dengan lebih efisien. Amazon Q dapat melakukan hal berikut:
Analisis data di danau Rantai Pasokan AWS data Anda.
Memberikan wawasan operasional dan keuangan.
Jawab pertanyaan rantai pasokan langsung Anda.
Untuk informasi selengkapnya tentang menggunakan Amazon Q, lihat Mengaktifkan Amazon Q di Rantai Pasokan AWS dan Menggunakan Amazon Q Rantai Pasokan AWS dalam Rantai Pasokan AWS dokumentasi.