Blog AWS Indonesia

Menggunakan AWS Backup dan CI/CD tools untuk otomasi backup terpusat di seluruh layanan AWS

Melakukan otomasi dan scaling terhadap perlindungan data dan strategi backup membantu Anda mengurangi proses manual dari konfigurasi yang memakan waktu, meminimalkan risiko kesalahan, memberikan visibilitas pada drift detection, dan meningkatkan efisiensi policy backup di seluruh workload atau akun AWS. Menggabungkan backup dalam disaster recovery (DR) dan business continuity plan (BCP), bersama dengan automisasi operasi backup, adalah penting sebagai praktik keamanan terbaik untuk mengamankan data dan operasi backup Anda di AWS.

Organisasi memanfaatkan praktik software development modern seperti continuous integration (CI) untuk menerapkan perubahan kode berulang secara handal dan inkremental serta continuous delivery (CD) untuk mengirimkan kode dengan cepat. Alur CI/CD diatur oleh sebuah pipeline untuk mengotomatiskan langkah dalam proses software delivery berdasarkan model proses rilis yang Anda tentukan, seperti memulai build otomatis ketika ada perubahan kode dan kemudian di-deploy ke Amazon Elastic Container Service (Amazon ECS).

Dalam posting blog sebelumnya, kami membahas bagaimana Anda dapat mengotomatiskan backup secara terpusat dalam skala besar menggunakan AWS Backup dan AWS CloudFormation sebagai infrastructur as code (IaC). Dalam posting blog ini, kami mendemonstrasikan bagaimana Anda dapat menyelaraskan dengan praktik software development modern untuk scaling operasi backup Anda menggunakan CI/CD tools dari AWS dan AWS Backup sebagai layanan managed backup untuk memusatkan dan scaling backup data di seluruh layanan AWS. Dengan menggunakan solusi ini, Anda dapat membangun dan menerapkan strategi perlindungan data cloud untuk mengotomatiskan dan scaling proses penerapan policy AWS Backup, backup vaults, dan replikasi cross-Region, cross-account di seluruh lingkungan multi-akun AWS Anda menggunakan praktik software development modern yang mengurangi risiko kehilangan data.

Gambaran umum solusi

Arsitektur ini menggunakan AWS Organizations untuk secara terpusat dan terprogram mengelola dan menskalakan backup data di seluruh layanan AWS. Ini terdiri dari setidaknya empat akun: akun administrator untuk delegasi ke CloudFormation, akun AWS Organizations Management, akun backup terpusat, dan beberapa akun anggota milik organisasi yang sama. Untuk mengimplementasikan solusi, kami menggunakan AWS CodeCommit untuk layanan managed source control, AWS CodeBuild untuk continuous integration, AWS CodeDeploy untuk deployment kode otomatis, AWS CodePipeline untuk continuous delivery, CloudFormation sebagai tool IaC, dan AWS Backup sebagai layanan managed backup untuk mengimplementasikan backup data di seluruh layanan AWS.

Arsitektur deployment terpusat dari AWS Backup menggunakan CI/CD tools dengan cross-Region backup

Solusi ini memberi Anda metode deployment berbasis CI/CD untuk menerapkan backup dan recovery dengan AWS Backup di seluruh AWS Organization Anda yang mencakup beberapa akun dan region. Solusi ini menggunakan service-managed StackSet untuk konfigurasi AWS Backup di akun dalam AWS organization unit (OU) yang Anda tentukan. Akun baru yang ditambahkan ke target OU akan secara otomatis dikonfigurasi dengan solusi yang dijelaskan dalam posting ini.

Solusi yang digunakan mencakup fitur berikut:

  • Template CloudFormation untuk menyiapkan landasan arsitektur.
  • CodePipeline untuk mengatur dan mengotomatiskan manajemen, testing, dan deployment komponen.
  • Resource kustom CloudFormation yang didukung AWS Lambda untuk mengelola policy AWS Backup guna menentukan cara Anda melakukan backup resource dengan backup plan.
  • Fungsi Lambda yang secara otomatis menulis ulang tag ke resource yang di-restore dari AWS Backup.
  • Amazon Simple Storage Service (Amazon S3) bucket untuk deployment fungsi lambda yang terpusat dan otomatis ke akun dan Region terkait.
  • CodeBuild project untuk analisa keamanan statis terhadap template CloudFormation menggunakan cfn_nag untuk mencari pola yang mengindikasikan infrastruktur yang tidak aman.
  • CodeBuild project untuk memaket dan deployment fungsi Lambda.
  • AWS Backup Vault, AWS Key Management System (AWS KMS), dan service role AWS Identity and Access Management (IAM) untuk deployment dari resource AWS Backup ke setiap akun anggota dan Region
  • Role untuk AWS Backup Vault, key KMS, dan IAM service untuk resource AWS Backup terpusat untuk menyediakan penyimpanan backup sekunder di semua akun dan Region.
  • Contoh service control policy pada AWS Organizations untuk membatasi sharing dan copy AWS Backup Vault hanya kepada akun AWS dalam AWS Organization terkait.

Kami menyarankan Anda memodifikasi dan menyesuaikan solusi ini untuk memenuhi kebutuhan Anda. Secara opsional, Anda dapat deploy solusi ini dalam Kustomisasi untuk AWS Control Tower.

Source code dan instruksi solusi terbaru dapat diunduh dari GitHub repository ini.

Prasyarat

Prasyarat berikut diperlukan untuk men-deploy solusi.

  1. Akun AWS Anda harus berasal dari AWS Organization yang sama (lihat dokumentasi di AWS Organizations).
  2. Pengetahuan dasar tentang CloudFormation StackSets, fungsi Lambda, Python, dan menyiapkan pipeline CI/CD di AWS.
  3. Install versi terbaru AWS CLI atau gunakan AWS CloudShell. Untuk menggunakan AWS CLI, kami sarankan Anda melakukan assume role pada akun tujuan.
  4. Opt-in untuk menggunakan AWS Backup. Jika ini adalah pertama kalinya Anda menggunakan layanan AWS Backup, Anda harus memilih untuk menggunakan AWS Backup dan fitur manajemen cross-account menggunakan AWS Management Console atau CLI. Lihat dokumentasi tentang cara memilih untuk menggunakan AWS Backup untuk sebagai informasi tambahan.
  5. Verifikasi bahwa prasyarat solusi di repository solusi GitHub terpenuhi.

Panduan

Kami menyarankan Anda melakukan fork GitHub repository dan kemudian mengkloning fork GitHub repository Anda. Ini akan memungkinkan Anda untuk menerima dan menerapkan update ke solusi yang Anda terapkan jika berubah seiring waktu.

Deploy solusi dengan mengikuti langkah-langkah ini. Link disediakan di setiap langkah yang merinci perintah yang harus Anda jalankan:

  1. Siapkan akun backup pusat: Ini akan men-deploy vault AWS Backup dan resource solusi terkait untuk menyimpan salinan backup untuk semua akun AWS Organization Anda yang terlibat dalam solusi. Ini memberikan pengamanan tambahan / fail-safe sekunder yang terisolasi untuk backup Anda yang meningkatkan keamanan dan ketahanan arsitektur backup AWS Anda.
  2. Siapkan home account untuk solusi: Anda harus memilih home account dan Region untuk solusinya. Akun dan Region ini akan berisi repository CodePipeline dan CodeCommit dan akan mengaktifkan CI/CD dari resource kustom BackupOrgPolicyManager CloudFormation yang digunakan untuk mengelola dan menerapkan kebijakan backup AWS Organizations Anda menggunakan pendekatan Infrastructure-as-Code. Solusi ini menggunakan SSM untuk mencari informasi konfigurasi seperti target AWS organizational unit yang berisi akun AWS yang akan berpartisipasi dalam solusi. Sebaiknya tentukan AWS Organizational Unit testing sebagai target terlebih dahulu untuk memungkinkan Anda menguji solusi sebelum penerapan yang lebih luas ke beberapa organizational unit.
  3. Siapkan role IAM BackupOrgPolicyManagerOrgAdmin: Fungsi AWS Lambda BackupOrgPolicyManager mengasumsikan role BackupOrgPolicyManagerOrgAdmin di akun AWS Organizations Management Anda untuk mengelola policy backup untuk AWS Organization. Anda harus deploy role BackupOrgPolicyManagerOrgAdmin ke akun AWS Organizations Management Anda sehingga home account dari solusi tersebut dapat mengambil role ini untuk mengelola policy backup AWS organizations Anda.

Penggunaan

Ketika Anda menyelesaikan langkah ke-2 di blog ini, CodePipeline akan secara otomatis dijalankan dan akan gagal hingga langkah ke-3 diselesaikan. Anda harus mereview dan memperbarui template CloudFormation aws-backup-org-policy yang terintegrasi dan dideploy dengan CodePipeline untuk menerapkan policy AWS Backup yang diinginkan. Contoh ini menerapkan properti policy berikut:

  • Untuk semua resource yang didukung di Region target dan OUs target yang di-tag dengan kunci tag backup dan nilai tag setiap hari, lakukan backup setiap malam pada pukul 05:00 UTC. Backup akan memiliki periode retensi 35 hari. Backup juga akan disalin ke pusat Backup Vault yang dipilih. Jika backup tidak selesai dalam 1200 (20 jam), maka backup akan dibatalkan.
  • Untuk semua resource yang didukung di Region target dan OUs target yang di-tag dengan kunci tag backup dan nilai tag monthly, lakukan backup bulanan pada pukul 05:00 UTC pada hari pertama setiap bulan. Backup akan memiliki periode retensi 366 hari. Backup juga akan disalin ke pusat Backup Vault yang dipilih. Jika backup tidak selesai dalam 1200 (20 jam), maka penbackup akan dibatalkan.

Solusi resource kustom BackupOrgPolicyManager CloudFormation memudahkan Anda untuk mengelola kebijakan backup secara terpusat menggunakan pendekatan CI/CD dan IaC. Seperti yang ditunjukkan dalam contoh ini, Anda dapat menyediakan beberapa instance resource kustom ini sehingga Anda dapat deploy beberapa policy backup dengan berbagai properti.

Setelah Anda membuat perubahan pada template CloudFormation aws-backup-org-policy, Anda dapat menerapkan perubahan Anda ke repository CodeCommit yang secara otomatis CodePipeline melakukan test & deploy policy backup Anda.

Anda harus dapat mengkonfirmasi inisiasi pipeline yang telah selesai (berwarna hijau) yang terilustrasi pada gambar berikut di home account solusi Anda.

Deployment berhasil dari AWS CodePipeline untuk centralized backup

Jika Anda deploy template contoh, Anda juga harus dapat mengonfirmasi dua policy backup yang mirip dengan gambar berikut yang diterapkan di akun manajemen Anda.

Backup policy berhasil dikonfigurasi pada AWS Organizatioons Management account

Menyesuaikan policy backup dengan resource custom BackupOrgPolicyManager AWS CloudFormation

Resource custom BackupOrgPolicyManager CloudFormation memungkinkan Anda menentukan policy backup untuk organization units dan Region yang berbeda di AWS Organization Anda. Disarankan agar Anda membuat resource custom terpisah untuk setiap policy backup. Ini akan memungkinkan Anda untuk membuat perubahan yang lebih kecil dan bertahap pada policy backup Anda. Contoh template CloudFormation aws-backup-org-policy terintegrasi dalam solusi open-source mengikuti pendekatan ini. Anda juga dapat memilih untuk membuat resource custom terpisah yang selaras dengan organizational unit Anda. Misalnya, Anda mungkin memiliki organizational unit dengan jadwal backup dan syarat retensi yang berbeda. Anda dapat menentukan resource custom terpisah untuk masing-masing resource ini sehingga Anda dapat mengelola policy backup untuk mereka melalui CloudFormation secara terpisah. Saat menentukan kebijakan, Anda harus mengamati dampak turunan dari kebijakan backup yang Anda tentukan untuk memastikan kebijakan tersebut memiliki efek yang diinginkan.

Clean-up

Untuk menghindari timbulnya biaya di masa mendatang, hapus resource yang digunakan. Pertama, hapus stack instance, lalu hapus StackSets dari console AWS CloudFormation atau CLI. Untuk mengurangi biaya, hapus backup yang tidak lagi diperlukan untuk tujuan recovery atau retensi. Anda dapat menggunakan AWS Backup dan Amazon Data Lifecycle Manager untuk mengotomatiskan policy retensi Anda untuk sebagian backup Anda.

Kesimpulan

Dalam posting blog ini, kami menunjukkan kepada Anda cara menerapkan dan mengotomatiskan strategi perlindungan dan backup data Anda menggunakan praktik software development CI/CD modern untuk mengelola policy backup di seluruh organisasi menggunakan AWS Backup. Kami mendemonstrasikan cara menerapkan policy backup Anda dari akun administrator yang didelegasikan untuk scaling dan mengelola backup di seluruh layanan AWS di akun anggota Anda.

Mengotomatiskan backup menggunakan alur CI/CD adalah penting untuk menerapkan perubahan kode berulang, handal, dan inkremental dengan delivery kode yang cepat. Otomasi mengurangi overhead manual, menyediakan kontrol source code terpusat, continuous integration & deployment, dan meningkatkan kepatuhan policy backup dalam skala besar.

Strategi backup yang komprehensif adalah bagian penting dari rencana perlindungan data organisasi untuk bertahan, recover, dan mengurangi dampak apa pun yang mungkin berimbas karena peristiwa keamanan. Anda harus menentukan strategi backup ekstensif dengan rencana backup terperinci dan resource assignment untuk mencerminkan policy proteksi data organisasi Anda. Mengotomatiskan dan deploy policy backup atau rencana backup pada keseluruhan organisasi menggunakan metode deployment CI/CD memungkinkan Anda untuk menstandarkan dan scaling strategi backup Anda untuk mengurangi risiko kehilangan data.

Untuk mulai menggunakan AWS Backup di konsol, kunjungi konsol AWS Backup.

Terima kasih telah membaca blog ini. Jika Anda memiliki saran dan pertanyaan, silakan tinggalkan di bagian komentar.

Artikel ini diterjemahkan dari artikel “Use AWS Backup and CI/CD tools to automate centralized backup across AWS services” yang ditulis oleh Ibukun Oyewumi – Senior Security Consultant AWS, Khurram Nizami – Operations Management Consultant AWS, Sabith Venkitachalapathy – Enterprise Solutions Architect AWS.

Felix Ricky

Felix Ricky

Felix Ricky adalah seorang Senior Solution Architect di AWS dengan keahlian khusus dalam storage system. Dia memiliki pengalaman selama 17 tahun di industri IT dan memiliki semangat yang kuat untuk transformasi digital perusahaan serta storage system. Di waktu luangnya, dia senang untuk mengikuti perkembangan teknologi terbaru di ranah cloud computing.