Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Siapkan CI/CD pipeline untuk migrasi database dengan menggunakan Terraform
Dr. Rahul Sharad Gaikwad, Ashish Bhatt, Aniket Dekate, Ruchika Modi, Tamilselvan P, Nadeem Rahaman, Aarti Rajput, dan Naveen Suthar, Amazon Web Services
Ringkasan
Pola ini adalah tentang membangun pipeline continuous integration and continuous deployment (CI/CD) untuk mengelola migrasi database dengan cara yang andal dan otomatis. Ini mencakup proses penyediaan infrastruktur yang diperlukan, memigrasi data, dan menyesuaikan perubahan skema dengan menggunakan Terraform, yang merupakan alat infrastruktur sebagai kode (IAc).
Secara khusus, pola menyiapkan CI/CD pipeline untuk memigrasikan database Microsoft SQL Server lokal ke Amazon Relational Database Service (Amazon RDS). AWS Anda juga dapat menggunakan pola ini untuk memigrasikan database SQL Server yang ada di mesin virtual (VM) atau di lingkungan cloud lain ke Amazon RDS.
Pola ini membahas tantangan berikut yang terkait dengan manajemen dan penyebaran basis data:
Penerapan basis data manual memakan waktu, rawan kesalahan, dan tidak memiliki konsistensi di seluruh lingkungan.
Mengkoordinasikan penyediaan infrastruktur, migrasi data, dan perubahan skema dapat menjadi kompleks dan sulit dikelola.
Memastikan integritas data dan meminimalkan waktu henti selama pembaruan basis data sangat penting untuk sistem produksi.
Pola ini memberikan manfaat sebagai berikut:
Merampingkan proses memperbarui dan menerapkan perubahan database dengan menerapkan CI/CD pipeline untuk migrasi database. Ini mengurangi risiko kesalahan, memastikan konsistensi di seluruh lingkungan, dan meminimalkan waktu henti.
Membantu meningkatkan keandalan, efisiensi, dan kolaborasi. Memungkinkan waktu yang lebih cepat untuk memasarkan dan mengurangi waktu henti selama pembaruan basis data.
Membantu Anda mengadopsi DevOps praktik modern untuk manajemen basis data, yang mengarah pada peningkatan kelincahan, keandalan, dan efisiensi dalam proses pengiriman perangkat lunak Anda.
Prasyarat dan batasan
Prasyarat
Aktif Akun AWS
AWS Penyedia Terraform versi 3.0.0 atau yang lebih baru dari HashiCorp (lihat GitHub repositori
untuk penyedia ini) Kebijakan hak istimewa paling sedikit AWS Identity and Access Management (IAM) (lihat posting blog Teknik untuk menulis kebijakan IAM hak istimewa terkecil
)
Arsitektur
Pola ini mengimplementasikan arsitektur berikut, yang menyediakan infrastruktur lengkap untuk proses migrasi database.

Dalam arsitektur ini:
Database sumber adalah database SQL Server yang ada di tempat, di mesin virtual (VM), atau dihosting oleh penyedia cloud lain. Diagram mengasumsikan bahwa database sumber berada di pusat data lokal.
Pusat data lokal dan AWS terhubung melalui VPN atau AWS Direct Connect koneksi. Ini menyediakan komunikasi yang aman antara database sumber dan AWS infrastruktur.
Basis data target adalah database Amazon RDS yang di-host di dalam virtual private cloud ( AWS VPC) dengan bantuan pipeline penyediaan database.
AWS Database Migration Service (AWS DMS) mereplikasi database lokal Anda ke. AWS Hal ini digunakan untuk mengkonfigurasi replikasi database sumber ke database target.
Diagram berikut menunjukkan infrastruktur yang disiapkan dengan berbagai tingkat proses migrasi database, yang melibatkan penyediaan, AWS DMS penyiapan, dan validasi.

Dalam proses ini:
Pipeline validasi memvalidasi semua pemeriksaan. Pipeline terintegrasi bergerak ke langkah berikutnya ketika semua validasi yang diperlukan selesai.
Pipeline penyediaan DB terdiri dari berbagai AWS CodeBuild tahapan yang melakukan tindakan Terraform pada kode Terraform yang disediakan untuk database. Ketika langkah-langkah ini selesai, ia menyebarkan sumber daya di target Akun AWS.
AWS DMS Pipeline terdiri dari berbagai CodeBuild tahapan yang melakukan pengujian dan kemudian menyediakan AWS DMS infrastruktur untuk melakukan migrasi dengan menggunakan IAc.
Alat
Layanan AWS dan alat-alat
AWS CodeBuildadalah layanan integrasi berkelanjutan yang dikelola sepenuhnya yang mengkompilasi kode sumber, menjalankan pengujian, dan menghasilkan paket ready-to-deploy perangkat lunak.
AWS CodePipelineadalah layanan pengiriman berkelanjutan yang dikelola sepenuhnya yang membantu Anda mengotomatiskan saluran pipa rilis Anda untuk pembaruan aplikasi dan infrastruktur yang cepat dan andal.
Amazon Relational Database Service (Amazon RDS) membantu Anda menyiapkan, mengoperasikan, dan menskalakan database relasional di. AWS Cloud
Amazon Simple Storage Service (Amazon S3) adalah layanan penyimpanan objek yang menawarkan skalabilitas, ketersediaan data, keamanan, dan kinerja.
AWS Database Migration Service (AWS DMS) membantu Anda memigrasikan penyimpanan data ke dalam AWS Cloud atau di antara kombinasi pengaturan cloud dan lokal.
Layanan lainnya
Terraform
adalah alat IAc HashiCorp yang membantu Anda membuat dan mengelola sumber daya cloud dan lokal.
Repositori kode
Kode untuk pola ini tersedia di DevOps Kerangka Migrasi GitHub Database menggunakan repositori sampel Terraform
Praktik terbaik
Terapkan pengujian otomatis untuk migrasi database Anda untuk memverifikasi kebenaran perubahan skema dan integritas data. Ini termasuk pengujian unit, tes integrasi, dan end-to-end tes.
Terapkan strategi pencadangan dan pemulihan yang kuat untuk database Anda, terutama sebelum migrasi. Ini memastikan integritas data dan menyediakan opsi mundur jika terjadi kegagalan.
Menerapkan strategi rollback yang kuat untuk mengembalikan perubahan database jika terjadi kegagalan atau masalah selama migrasi. Ini bisa melibatkan memutar kembali ke status database sebelumnya atau mengembalikan skrip migrasi individu.
Siapkan mekanisme pemantauan dan pencatatan untuk melacak kemajuan dan status migrasi database. Ini membantu Anda mengidentifikasi dan menyelesaikan masalah dengan cepat.
Epik
Tugas | Deskripsi | Keterampilan yang dibutuhkan |
---|---|---|
Siapkan dan konfigurasikan Git di workstation lokal Anda. | Instal dan konfigurasikan Git di workstation lokal Anda dengan mengikuti instruksi dalam dokumentasi Git | DevOps insinyur |
Buat folder proyek dan tambahkan file dari GitHub repositori. |
| DevOps insinyur |
Tugas | Deskripsi | Keterampilan yang dibutuhkan |
---|---|---|
Perbarui parameter yang diperlukan. |
Di | DevOps insinyur |
Inisialisasi konfigurasi Terraform. | Di
| DevOps insinyur |
Pratinjau paket Terraform. | Untuk membuat paket Terraform, masukkan perintah berikut:
Terraform mengevaluasi file konfigurasi untuk menentukan status target untuk sumber daya yang dideklarasikan. Kemudian membandingkan status target dengan keadaan saat ini dan membuat rencana. | DevOps insinyur |
Verifikasi rencananya. | Tinjau rencana dan konfirmasikan bahwa itu mengonfigurasi arsitektur yang diperlukan dalam target Akun AWS Anda. | DevOps insinyur |
Menyebarkan solusinya. |
| DevOps insinyur |
Tugas | Deskripsi | Keterampilan yang dibutuhkan |
---|---|---|
Validasi penerapan. | Verifikasi status 1. Masuk ke AWS Management Console, lalu buka AWS CodePipeline konsol 2. Di panel navigasi, pilih Pipelines. 3. Pilih 4. Validasi bahwa eksekusi pipeline telah selesai dengan sukses. | DevOps insinyur |
Tugas | Deskripsi | Keterampilan yang dibutuhkan |
---|---|---|
Bersihkan infrastruktur. |
| DevOps insinyur |
Sumber daya terkait
AWS dokumentasi
Dokumentasi Terraform