Jadwalkan pekerjaan untuk Amazon RDS untuk PostgreSQL dan Aurora PostgreSQL dengan menggunakan Lambda dan Secrets Manager - AWS Prescriptive Guidance

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

Jadwalkan pekerjaan untuk Amazon RDS untuk PostgreSQL dan Aurora PostgreSQL dengan menggunakan Lambda dan Secrets Manager

Yaser Raja, Amazon Web Services

Ringkasan

Untuk database lokal dan database yang di-host di instans Amazon Elastic Compute Cloud (Amazon EC2), administrator database sering menggunakan utilitas cron untuk menjadwalkan pekerjaan.

Misalnya, pekerjaan untuk ekstraksi data atau pekerjaan untuk pembersihan data dapat dengan mudah dijadwalkan menggunakan cron. Untuk pekerjaan ini, kredensi database biasanya dikodekan keras atau disimpan dalam file properti. Namun, saat Anda bermigrasi ke Amazon Relational Database Service (Amazon RDS) atau Amazon Aurora PostgreSQL Compatible Edition, Anda kehilangan kemampuan untuk masuk ke instans host untuk menjadwalkan tugas cron. 

Pola ini menjelaskan cara menggunakan AWS Lambda dan menjadwalkan pekerjaan AWS Secrets Manager untuk Amazon RDS for PostgreSQL dan database yang kompatibel dengan Aurora PostgreSQL setelah migrasi.  

Prasyarat dan batasan

Prasyarat

  • Aktif Akun AWS

  • Database yang kompatibel dengan Amazon RDS for PostgreSQL atau Aurora PostgreSQL

Batasan

Arsitektur

Tumpukan teknologi sumber

Tumpukan ini menampilkan pekerjaan yang ditulis dalam bahasa seperti Bash, Python, dan Java. Kredensi database disimpan dalam file properti, dan pekerjaan dijadwalkan menggunakan Linux cron.

Tumpukan teknologi target

Tumpukan ini memiliki fungsi Lambda yang menggunakan kredensil yang disimpan di Secrets Manager untuk terhubung ke database dan untuk melakukan aktivitas. Fungsi Lambda dimulai pada interval terjadwal dengan menggunakan Amazon Events. CloudWatch

Arsitektur target

CloudWatch acara memulai fungsi Lambda yang menjadwalkan pekerjaan untuk instans RDS DB.

Alat

  • Amazon CloudWatch Events memberikan aliran peristiwa sistem yang mendekati real-time yang menjelaskan perubahan AWS sumber daya. Dengan menggunakan aturan sederhana yang dapat Anda atur dengan cepat, Anda dapat mencocokkan acara dan mengarahkannya ke satu atau lebih fungsi atau aliran target. CloudWatch Peristiwa menjadi sadar akan perubahan operasional saat terjadi. Ini menanggapi perubahan operasional ini dan mengambil tindakan korektif seperlunya, dengan mengirim pesan untuk menanggapi lingkungan, mengaktifkan fungsi, membuat perubahan, dan menangkap informasi negara. Anda juga dapat menggunakan CloudWatch Acara untuk menjadwalkan tindakan otomatis yang dimulai sendiri pada waktu-waktu tertentu menggunakan ekspresi cron atau rate.

  • AWS Lambda adalah layanan komputasi yang memungkinkan Anda menjalankan kode tanpa perlu menyediakan atau mengelola server. Lambda menjalankan kode Anda hanya saat diperlukan dan menskalakan secara otomatis, dari beberapa permintaan per hari hingga ribuan per detik. Anda hanya membayar untuk waktu komputasi yang Anda konsumsi; tidak ada biaya ketika kode Anda tidak berjalan. Dengan Lambda, Anda dapat menjalankan kode untuk hampir semua jenis aplikasi atau layanan backend tanpa administrasi. Lambda menjalankan kode Anda pada infrastruktur komputasi ketersediaan tinggi dan mengelola semua sumber daya komputasi, termasuk pemeliharaan server dan sistem operasi, penyediaan kapasitas dan penskalaan otomatis, pemantauan kode, dan pencatatan. Yang perlu Anda lakukan adalah memberikan kode Anda dalam salah satu bahasa yang didukung Lambda.

  • AWS Secrets Managermembantu Anda melindungi rahasia untuk mengakses aplikasi, layanan, dan sumber daya TI Anda. Anda dapat dengan mudah memutar, mengelola, dan mengambil kredenal database, kunci API, dan rahasia lainnya sepanjang siklus hidupnya. Pengguna dan aplikasi mengambil rahasia dengan memanggil Secrets Manager APIs, yang menghilangkan kebutuhan untuk hard-code informasi sensitif dalam teks biasa. Secrets Manager menawarkan rotasi rahasia dengan integrasi bawaan untuk Amazon RDS, Amazon Redshift, dan Amazon DocumentDB. Layanan ini dapat diperluas ke jenis rahasia lainnya, termasuk kunci API dan OAuth token. Secrets Manager memungkinkan Anda mengontrol akses ke rahasia menggunakan izin halus dan mengaudit rotasi rahasia secara terpusat untuk sumber daya di, layanan pihak ketiga AWS Cloud, dan di tempat.

Epik

TugasDeskripsiKeterampilan yang dibutuhkan

Buat pengguna database untuk fungsi Lambda.

Ini adalah praktik yang baik untuk menggunakan pengguna database terpisah untuk berbagai bagian aplikasi Anda. Jika pengguna database terpisah sudah ada untuk pekerjaan cron Anda, gunakan itu. Jika tidak, buat pengguna database baru. Untuk informasi selengkapnya, lihat Mengelola pengguna dan peran PostgreSQL (posting blog).AWS

DBA

Simpan kredensi database sebagai rahasia di Secrets Manager.

Ikuti petunjuk di Buat rahasia database (Dokumentasi Secrets Manager).

DBA, DevOps
TugasDeskripsiKeterampilan yang dibutuhkan

Pilih bahasa pemrograman yang didukung oleh Lambda.

Untuk daftar bahasa yang didukung, lihat runtime Lambda (dokumentasi Lambda).

Developer

Tulis logika untuk mengambil kredensi database dari Secrets Manager.

Untuk kode contoh, lihat Cara menyediakan kredensil database secara aman ke fungsi Lambda dengan menggunakan AWS Secrets Manager (posting blog).AWS

Developer

Tulis logika untuk melakukan aktivitas database terjadwal.

Migrasikan kode yang ada untuk pekerjaan penjadwalan yang Anda gunakan di lokasi ke fungsi Lambda. Untuk informasi selengkapnya, lihat Menerapkan fungsi Lambda (dokumentasi Lambda).

Developer
TugasDeskripsiKeterampilan yang dibutuhkan

Buat paket penyebaran fungsi Lambda.

Paket ini berisi kode dan dependensinya. Untuk informasi selengkapnya, lihat Paket penerapan (dokumentasi Lambda).

Developer

Buat fungsi Lambda.

Di konsol Lambda, pilih Buat fungsi, masukkan nama fungsi, pilih lingkungan runtime, lalu pilih Buat fungsi.

DevOps

Unggah paket deployment.

Pilih fungsi Lambda yang Anda buat untuk membuka konfigurasinya. Anda dapat menulis kode Anda langsung di bagian kode atau mengunggah paket penyebaran Anda. Untuk mengunggah paket Anda, buka bagian Kode fungsi, pilih jenis entri Kode untuk mengunggah file.zip, lalu pilih paket.

DevOps

Konfigurasikan fungsi Lambda sesuai kebutuhan Anda.

Misalnya, Anda dapat mengatur parameter Timeout ke durasi yang Anda harapkan dari fungsi Lambda. Untuk informasi selengkapnya, lihat Mengonfigurasi opsi fungsi (Dokumentasi Lambda).

DevOps

Tetapkan izin untuk peran fungsi Lambda untuk mengakses Secrets Manager.

Untuk petunjuk, lihat Menggunakan rahasia dalam AWS Lambda fungsi (Dokumentasi Secrets Manager).

DevOps

Uji fungsi Lambda.

Memulai fungsi Lambda secara manual untuk memastikannya berfungsi seperti yang diharapkan.

DevOps
TugasDeskripsiKeterampilan yang dibutuhkan

Buat aturan untuk menjalankan fungsi Lambda sesuai jadwal.

Jadwalkan fungsi Lambda dengan menggunakan CloudWatch Acara. Untuk petunjuk, lihat Menjadwalkan fungsi Lambda menggunakan CloudWatch Acara (tutorial CloudWatch Acara).

DevOps

Sumber daya terkait