

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

# Pilih layanan database untuk Lambda-based aplikasi Anda
<a name="ddb-rds-database-decision"></a>

Banyak aplikasi tanpa server perlu menyimpan dan mengambil data. AWS menawarkan beberapa opsi database yang bekerja dengan fungsi Lambda. Dua pilihan yang paling populer adalah Amazon DynamoDB, layanan database NoSQL, dan Amazon RDS, solusi database relasional tradisional. Bagian berikut menjelaskan perbedaan utama antara layanan ini saat menggunakannya dengan Lambda dan membantu Anda memilih layanan database yang tepat untuk aplikasi tanpa server Anda.

Untuk mempelajari lebih lanjut tentang layanan database lain yang ditawarkan oleh AWS, dan untuk memahami kasus penggunaan dan pengorbanan mereka secara lebih umum, lihat [ Memilih layanan AWS database. ](https://docs.aws.amazon.com/decision-guides/latest/databases-on-aws-how-to-choose/databases-on-aws-how-to-choose.html) Semua layanan AWS database kompatibel dengan Lambda, tetapi tidak semuanya mungkin cocok untuk kasus penggunaan khusus Anda.

## Apa pilihan Anda saat memilih layanan database dengan Lambda?
<a name="w2aac15c59d103c21b9"></a>

AWS menawarkan beberapa layanan database. Untuk aplikasi tanpa server, dua pilihan yang paling populer adalah DynamoDB dan Amazon RDS.
+ **DynamoDB ** adalah layanan database NoSQL yang dikelola sepenuhnya yang dioptimalkan untuk aplikasi tanpa server. Ini memberikan penskalaan yang mulus dan kinerja milidetik satu digit yang konsisten pada skala apa pun.
+ **Amazon RDS ** adalah layanan database relasional terkelola yang mendukung beberapa mesin database termasuk MySQL dan PostgreSQL. Ini menyediakan kemampuan SQL yang akrab dengan infrastruktur terkelola.

## Rekomendasi jika Anda sudah mengetahui kebutuhan Anda
<a name="w2aac15c59d103c21c11"></a>

Jika Anda sudah jelas tentang persyaratan Anda, berikut adalah rekomendasi dasar kami:

Kami merekomendasikan [ DynamoDB ](with-ddb.md) untuk aplikasi tanpa server yang membutuhkan kinerja latensi rendah yang konsisten, penskalaan otomatis, dan tidak memerlukan gabungan atau transaksi yang kompleks. Ini sangat cocok untuk Lambda-based aplikasi karena sifatnya tanpa server.

[Amazon RDS ](services-rds.md) adalah pilihan yang lebih baik ketika Anda memerlukan kueri SQL yang kompleks, bergabung, atau memiliki aplikasi yang ada menggunakan database relasional. Namun, perlu diketahui bahwa menghubungkan fungsi Lambda ke Amazon RDS memerlukan konfigurasi tambahan dan dapat memengaruhi waktu mulai dingin.

## Apa yang harus dipertimbangkan ketika memilih layanan database
<a name="w2aac15c59d103c21c13"></a>

Saat memilih antara DynamoDB dan Amazon RDS untuk aplikasi Lambda Anda, pertimbangkan faktor-faktor berikut:
+ Manajemen koneksi dan start dingin
+ Pola akses data
+ Kompleksitas kueri
+ Persyaratan konsistensi data
+ Karakteristik penskalaan
+ Model biaya

Dengan memahami faktor-faktor ini, Anda dapat memilih opsi yang paling memenuhi kebutuhan kasus penggunaan khusus Anda.

### Manajemen koneksi dan start dingin
<a name="w2aac15c59d103c21c13b9b1"></a>
+ DynamoDB menggunakan HTTP API untuk semua operasi. Fungsi lambda dapat membuat permintaan langsung tanpa mempertahankan koneksi, menghasilkan kinerja cold start yang lebih baik. Setiap permintaan diautentikasi menggunakan AWS kredenSIAL tanpa overhead koneksi.
+ Amazon RDS memerlukan pengelolaan kumpulan koneksi karena menggunakan koneksi database tradisional. Hal ini dapat memengaruhi start dingin karena instans Lambda baru perlu membuat koneksi. Anda harus menerapkan strategi pengumpulan koneksi dan berpotensi menggunakan [ Amazon RDS Proxy ](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-proxy.html) untuk mengelola koneksi secara efektif. Perhatikan bahwa menggunakan Amazon RDS Proxy menimbulkan biaya tambahan.

### Pola akses data
<a name="w2aac15c59d103c21c13b9b3"></a>
+ DynamoDB bekerja paling baik dengan pola akses yang dikenal dan desain tabel tunggal. Ini ideal untuk aplikasi Lambda yang membutuhkan akses latensi rendah yang konsisten ke data berdasarkan kunci primer atau indeks sekunder.
+ Amazon RDS memberikan fleksibilitas untuk kueri kompleks dan mengubah pola akses. Ini lebih cocok ketika fungsi Lambda Anda perlu melakukan kueri yang unik dan disesuaikan atau gabungan kompleks di beberapa tabel.

### Kompleksitas kueri
<a name="w2aac15c59d103c21c13b9b5"></a>
+ DynamoDB unggul dalam operasi sederhana berbasis kunci dan pola akses yang telah ditentukan sebelumnya. Kueri kompleks harus dirancang di sekitar struktur indeks, dan gabungan harus ditangani dalam kode aplikasi.
+ Amazon RDS mendukung kueri SQL kompleks dengan join, subquery, dan agregasi. Ini dapat menyederhanakan kode fungsi Lambda Anda ketika operasi data yang kompleks diperlukan.

### Persyaratan konsistensi data
<a name="w2aac15c59d103c21c13b9b7"></a>
+ DynamoDB menawarkan opsi konsistensi akhir dan kuat, dengan konsistensi kuat tersedia untuk pembacaan item tunggal. Transaksi didukung tetapi dengan beberapa batasan.
+ Amazon RDS menyediakan kepatuhan atomisitas penuh, konsistensi, isolasi, dan daya tahan (ACID) serta dukungan transaksi yang kompleks. Jika fungsi Lambda Anda memerlukan transaksi yang kompleks atau konsistensi yang kuat di beberapa catatan, Amazon RDS mungkin lebih cocok.

### Karakteristik penskalaan
<a name="w2aac15c59d103c21c13b9b9"></a>
+ DynamoDB menskalakan secara otomatis dengan beban kerja Anda. Ini dapat menangani lonjakan lalu lintas tiba-tiba dari fungsi Lambda tanpa pra-penyediaan. Anda dapat menggunakan mode kapasitas sesuai permintaan untuk membayar hanya untuk apa yang Anda gunakan, sangat cocok dengan model penskalaan Lambda.
+ Amazon RDS memiliki kapasitas tetap berdasarkan ukuran instans yang Anda pilih. Jika beberapa fungsi Lambda mencoba terhubung secara bersamaan, Anda mungkin melebihi kuota koneksi Anda. Anda perlu mengelola kumpulan koneksi dengan hati-hati dan berpotensi menerapkan logika coba ulang.

### Model biaya
<a name="w2aac15c59d103c21c13b9c11"></a>
+ Harga DynamoDB selaras dengan aplikasi tanpa server. Dengan kapasitas sesuai permintaan, Anda hanya membayar untuk pembacaan dan penulisan aktual yang dilakukan oleh fungsi Lambda Anda. Tidak ada biaya untuk waktu idle.
+ Amazon RDS mengenakan biaya untuk instans yang sedang berjalan terlepas dari penggunaannya. Ini bisa kurang hemat biaya untuk beban kerja sporadis yang dapat menjadi tipikal dalam aplikasi tanpa server. Namun, mungkin lebih ekonomis untuk beban kerja throughput tinggi dengan penggunaan yang konsisten.

## Memulai dengan layanan database pilihan Anda
<a name="w2aac15c59d103c21c15"></a>

Sekarang setelah Anda membaca tentang kriteria untuk memilih antara DynamoDB dan Amazon RDS dan perbedaan utama di antara keduanya, Anda dapat memilih opsi yang paling sesuai dengan kebutuhan Anda dan menggunakan sumber daya berikut untuk mulai menggunakannya.

------
#### [ DynamoDB ]

**Memulai dengan DynamoDB dengan sumber daya berikut**
+ Untuk pengenalan layanan DynamoDB, baca [ Apa itu DynamoDB? ](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Introduction.html)dalam Panduan Pengembang * Amazon DynamoDB. *
+ Ikuti tutorial [ Menggunakan Lambda dengan API Gateway ](services-apigateway-tutorial.md) untuk melihat contoh penggunaan fungsi Lambda untuk melakukan operasi CRUD pada tabel DynamoDB sebagai respons terhadap permintaan API.
+ Baca [ Pemrograman dengan DynamoDB dan AWS SDK ](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Programming.html) di Panduan Pengembang * Amazon DynamoDB * untuk mempelajari lebih lanjut tentang cara mengakses DynamoDB dari dalam fungsi Lambda Anda dengan menggunakan salah satu SDK. AWS 

------
#### [ Amazon RDS ]

**Mulai menggunakan Amazon RDS dengan sumber daya berikut**
+ Untuk pengenalan layanan Amazon RDS, baca [ Apa itu Amazon Relational Database Service (Amazon RDS)? ](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html)dalam Panduan * Pengguna Layanan Database Relasional * Amazon.
+ Ikuti tutorial [ Menggunakan fungsi Lambda untuk mengakses database Amazon RDS ](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-lambda-tutorial.html) di Panduan Pengguna Layanan Database Relasional * Amazon. *
+ Pelajari lebih lanjut tentang menggunakan Lambda dengan Amazon RDS dengan membaca. [Penggunaan AWS Lambda dengan Amazon RDS](services-rds.md)

------