View a markdown version of this page

Apa itu Amazon DynamoDB? - Amazon DynamoDB

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

Apa itu Amazon DynamoDB?

Amazon DynamoDB adalah database NoSQL tanpa server, dikelola sepenuhnya, dan terdistribusi dengan kinerja milidetik satu digit pada skala apa pun.

DynamoDB menjawab kebutuhan Anda untuk mengatasi penskalaan dan kompleksitas operasional database relasional. DynamoDB dibuat khusus dan dioptimalkan untuk beban kerja operasional yang membutuhkan kinerja yang konsisten pada skala apa pun. Misalnya, DynamoDB memberikan kinerja milidetik satu digit yang konsisten untuk kasus penggunaan keranjang belanja, apakah Anda memiliki 10 atau 100 juta pengguna. Diluncurkan pada tahun 2012, DynamoDB terus membantu Anda menjauh dari database relasional sambil mengurangi biaya dan meningkatkan kinerja dalam skala besar.

Pelanggan di semua ukuran, industri, dan geografi menggunakan DynamoDB untuk membangun aplikasi tanpa server modern yang dapat memulai skala kecil dan skala global. DynamoDB menskalakan untuk mendukung tabel hampir semua ukuran sambil memberikan kinerja milidetik satu digit yang konsisten dan ketersediaan tinggi.

Untuk acara, seperti Amazon Prime Day, DynamoDB mendukung beberapa properti dan sistem Amazon dengan lalu lintas tinggi, termasuk Alexa, Amazon.com situs, dan semua pusat pemenuhan Amazon. Untuk peristiwa semacam itu, API DynamoDB telah menangani triliunan panggilan dari properti dan sistem Amazon. DynamoDB terus melayani ratusan pelanggan dengan tabel yang memiliki lalu lintas puncak lebih dari setengah juta permintaan per detik. Ini juga melayani ratusan pelanggan yang ukuran meja melebihi 200 TB, dan memproses lebih dari satu miliar permintaan per jam.

Karakteristik DynamoDB

Nirserver

Dengan DynamoDB, Anda tidak perlu menyediakan server apa pun, atau menambal, mengelola, menginstal, memelihara, atau mengoperasikan perangkat lunak apa pun. DynamoDB menyediakan perawatan tanpa downtime. Ini tidak memiliki versi (mayor, minor, atau patch), dan tidak ada jendela pemeliharaan.

Mode kapasitas sesuai permintaan Dynam oDB menawarkan harga bayar sesuai penggunaan untuk permintaan baca dan tulis sehingga Anda hanya membayar untuk apa yang Anda gunakan. Dengan on-demand, DynamoDB langsung menaikkan atau menurunkan tabel Anda untuk menyesuaikan kapasitas dan mempertahankan kinerja tanpa administrasi. Ini juga diturunkan ke nol sehingga Anda tidak membayar throughput ketika tabel Anda tidak memiliki lalu lintas dan tidak ada cold start.

NoSQL

Sebagai database NoSQL, DynamoDB dibuat khusus untuk memberikan peningkatan kinerja, skalabilitas, pengelolaan, dan fleksibilitas dibandingkan dengan database relasional tradisional. Untuk mendukung berbagai kasus penggunaan, DynamoDB mendukung model data kunci dan dokumen.

Tidak seperti database relasional, DynamoDB tidak mendukung operator JOIN. Sebaiknya denormalisasi model data Anda untuk mengurangi perjalanan pulang pergi database dan daya pemrosesan yang diperlukan untuk menjawab kueri. Sebagai database NoSQL, DynamoDB menyediakan konsistensi baca yang kuat dan transaksi ACID untuk membangun aplikasi tingkat perusahaan.

Dikelola sepenuhnya

Sebagai layanan database yang dikelola sepenuhnya, DynamoDB menangani tugas berat yang tidak berbeda dalam mengelola database sehingga Anda dapat fokus membangun nilai bagi pelanggan Anda. Ini menangani pengaturan, konfigurasi, pemeliharaan, ketersediaan tinggi, penyediaan perangkat keras, keamanan, pencadangan, pemantauan, dan banyak lagi. Ini memastikan bahwa ketika Anda membuat tabel DynamoDB, tabel tersebut langsung siap untuk beban kerja produksi. DynamoDB terus meningkatkan ketersediaan, keandalan, kinerja, keamanan, dan fungsionalitasnya tanpa memerlukan peningkatan atau downtime.

Single-digit kinerja milidetik pada skala apa pun

DynamoDB dibuat khusus untuk meningkatkan kinerja dan skalabilitas database relasional untuk memberikan kinerja milidetik satu digit pada skala apa pun. Untuk mencapai skala dan kinerja ini, DynamoDB dioptimalkan untuk beban kerja berkinerja tinggi dan menyediakan API yang mendorong penggunaan database yang efisien. Ini menghilangkan fitur yang tidak efisien dan tidak berkinerja dalam skala besar, misalnya, operasi JOIN. DynamoDB memberikan kinerja milidetik satu digit yang konsisten untuk aplikasi Anda, baik Anda memiliki 100 atau 100 juta pengguna.

Kasus penggunaan DynamoDB

Pelanggan di semua ukuran, industri, dan geografi menggunakan DynamoDB untuk membangun aplikasi tanpa server modern yang dapat memulai skala kecil dan skala global. DynamoDB sangat ideal untuk kasus penggunaan yang membutuhkan kinerja yang konsisten pada skala apa pun dengan sedikit hingga nol overhead operasional. Daftar berikut menyajikan beberapa kasus penggunaan di mana Anda dapat menggunakan DynamoDB:

  • Aplikasi layanan keuangan — Misalkan Anda adalah perusahaan jasa keuangan yang membangun aplikasi, seperti perdagangan dan perutean langsung, manajemen pinjaman, pembuatan token, dan buku besar transaksi. Dengan tabel global DynamoDB, aplikasi Anda dapat merespons peristiwa dan melayani lalu lintas dari pilihan Anda Wilayah AWS dengan kinerja baca dan tulis lokal yang cepat.

    DynamoDB cocok untuk aplikasi dengan persyaratan ketersediaan yang paling ketat. Ini menghilangkan beban operasional instans penskalaan secara manual untuk meningkatkan penyimpanan atau throughput, pembuatan versi, dan lisensi.

    Anda dapat menggunakan transaksi DynamoDB untuk mencapai atomisitas, konsistensi, isolasi, dan daya tahan (ACID) di satu tabel atau lebih dengan satu permintaan. Transaksi (ACID) sesuai dengan beban kerja yang mencakup pemrosesan transaksi keuangan atau memenuhi pesanan. DynamoDB secara instan mengakomodasi beban kerja Anda saat mereka naik atau turun, memungkinkan Anda untuk menskalakan basis data secara efisien untuk kondisi pasar, seperti jam perdagangan.

  • Aplikasi game — Sebagai perusahaan game, Anda dapat menggunakan DynamoDB untuk semua bagian platform game, misalnya status game, data pemain, riwayat sesi, dan papan peringkat. Pilih DynamoDB untuk skalanya, kinerja yang konsisten, dan kemudahan operasi yang disediakan oleh arsitektur tanpa server. DynamoDB sangat cocok untuk arsitektur scale-out yang diperlukan untuk mendukung game yang sukses. Ini dengan cepat menskalakan throughput game Anda baik masuk maupun keluar (skala ke nol tanpa start dingin). Skalabilitas ini mengoptimalkan efisiensi arsitektur Anda apakah Anda menskalakan untuk lalu lintas puncak atau mengurangi saat penggunaan gameplay rendah.

  • Aplikasi streaming — Perusahaan media dan hiburan menggunakan DynamoDB sebagai indeks metadata untuk konten, layanan manajemen konten, atau untuk menyajikan statistik olahraga hampir real-time. Mereka juga menggunakan DynamoDB untuk menjalankan layanan daftar pantauan dan bookmark pengguna dan memproses miliaran acara pelanggan harian untuk menghasilkan rekomendasi. Pelanggan ini mendapat manfaat dari skalabilitas, kinerja, dan ketahanan DynamoDB. DynamoDB menyesuaikan perubahan beban kerja saat naik atau turun, memungkinkan kasus penggunaan media streaming yang dapat mendukung tingkat permintaan apa pun.

Untuk mempelajari lebih lanjut tentang cara pelanggan dari berbagai industri menggunakan DynamoDB, lihat Pelanggan Amazon DynamoDB dan Ini Arsitektur Saya.

Kemampuan DynamoDB

Multi-active replikasi dengan tabel global

Tabel global menyediakan replikasi multi-aktif data Anda di seluruh pilihan Anda Wilayah AWS dengan ketersediaan 99,999%. Tabel global memberikan solusi yang dikelola sepenuhnya untuk menerapkan database multi-wilayah dan multi-aktif, tanpa membangun dan memelihara solusi replikasi Anda sendiri. Dengan tabel global, Anda dapat menentukan Wilayah AWS di mana Anda ingin tabel tersedia. DynamoDB mereplikasi perubahan data yang sedang berlangsung ke semua tabel ini.

Aplikasi yang didistribusikan secara global dapat mengakses data secara lokal di Wilayah yang dipilih untuk mencapai kinerja baca dan tulis milidetik satu digit. Karena tabel global bersifat multi-aktif, Anda tidak memerlukan tabel utama. Ini berarti tidak ada fail-over yang rumit atau tertunda, atau downtime database saat gagal pada aplikasi antar Wilayah.

Transaksi ACID

DynamoDB dibangun untuk beban kerja kritis misi. Ini termasuk dukungan transaksi (ACID) untuk aplikasi yang membutuhkan logika bisnis yang kompleks. DynamoDB menyediakan dukungan asli sisi server untuk transaksi, menyederhanakan pengalaman pengembang dalam membuat perubahan yang terkoordinasi, semuanya atau tidak sama sekali pada beberapa item di dalam dan di seluruh tabel.

Ubah pengambilan data untuk arsitektur berbasis peristiwa

DynamoDB mendukung streaming catatan pengambilan data perubahan tingkat item (CDC) dalam waktu hampir real time. Ini menawarkan dua model streaming untuk CDC: DynamoDB Streams dan Kinesis Data Streams untuk DynamoDB. Setiap kali aplikasi membuat, memperbarui, atau menghapus item dalam tabel, aliran merekam urutan urutan waktu dari setiap perubahan tingkat item dalam waktu hampir real time. Hal ini membuat DynamoDB Streams ideal untuk aplikasi dengan arsitektur berbasis peristiwa untuk mengkonsumsi dan bertindak atas perubahan.

Indeks sekunder

DynamoDB menawarkan opsi untuk membuat indeks sekunder global dan lokal, yang memungkinkan Anda menanyakan data tabel menggunakan kunci alternatif. Dengan indeks sekunder ini, Anda dapat mengakses data dengan atribut selain kunci utama, memberi Anda fleksibilitas maksimum dalam mengakses data Anda.

Integrasi layanan

DynamoDB secara luas terintegrasi dengan beberapa Layanan AWS untuk membantu Anda mendapatkan nilai lebih dari data Anda, menghilangkan beban berat yang tidak dibedakan, dan mengoperasikan beban kerja Anda dalam skala besar. Beberapa contohnya adalah: AWS CloudFormation, Amazon CloudWatch, Amazon S3, AWS Identity and Access Management (IAM), dan AWS Auto Scaling. Bagian berikut menjelaskan beberapa integrasi layanan yang dapat Anda lakukan menggunakan DynamoDB:

Integrasi tanpa server

Untuk membangun aplikasi tanpa server end-to-end, DynamoDB terintegrasi secara native dengan sejumlah serverless. Layanan AWS Misalnya, Anda dapat mengintegrasikan DynamoDB dengan AWS Lambda untuk membuat pemicu, yang merupakan potongan kode yang secara otomatis merespons peristiwa di DynamoDB Streams. Dengan pemicu, Anda dapat membangun aplikasi berbasis peristiwa yang bereaksi terhadap modifikasi data dalam tabel DynamoDB. Untuk pengoptimalan biaya, Anda dapat mem filter peristiwa yang diproses Lambda dari aliran DynamoDB.

Daftar berikut menyajikan beberapa contoh integrasi tanpa server dengan DynamoDB:

Mengimpor dan mengekspor data ke Amazon S3

Mengintegrasikan DynamoDB dengan Amazon S3 memungkinkan Anda mengekspor data ke bucket Amazon S3 dengan mudah untuk analisis dan pembelajaran mesin. DynamoDB mendukung ekspor tabel lengkap dan ekspor tambahan untuk mengekspor data yang diubah, diperbarui, atau dihapus antara periode waktu tertentu. Anda juga dapat mengimpor data dari Amazon S3 ke tabel DynamoDB baru.

Zero-ETL integrasi

DynamoDB mendukung integrasi Zero-ETL dengan Amazon Redshift dan Menggunakan pipeline Ingestion dengan Amazon Dynam OpenSearch oDB. Dengan integrasi ini, Anda dapat menjalankan analitik kompleks dan menggunakan kemampuan pencarian lanjutan pada data tabel DynamoDB Anda. Zero-ETL integrasi tidak berdampak pada beban kerja produksi yang berjalan di DynamoDB.

Pembuatan cache

DynamoDB Accelerator (DAX) adalah layanan caching yang dikelola sepenuhnya dan sangat tersedia yang dibangun untuk DynamoDB. DAX memberikan peningkatan kinerja hingga 10 kali lipat — dari milidetik hingga mikrodetik — bahkan pada jutaan permintaan per detik. DAX melakukan semua tugas berat yang diperlukan untuk menambahkan akselerasi dalam memori ke tabel DynamoDB Anda, tanpa mengharuskan Anda mengelola pembatalan cache, populasi data, atau manajemen cluster.

Keamanan

DynamoDB menggunakan IAM untuk membantu Anda mengontrol akses ke sumber daya DynamoDB dengan aman. Dengan IAM, Anda dapat mengelola izin secara terpusat yang mengontrol pengguna DynamoDB mana yang dapat mengakses sumber daya. Anda menggunakan IAM untuk mengontrol siapa yang dapat terautentikasi (masuk) dan berwenang (memiliki izin) untuk menggunakan sumber daya. Karena DynamoDB menggunakan IAM, tidak ada nama pengguna atau kata sandi untuk mengakses DynamoDB. Karena Anda tidak memiliki kebijakan rotasi kata sandi yang rumit untuk dikelola, ini menyederhanakan postur keamanan Anda. Dengan IAM, Anda juga dapat mengaktifkan kontrol akses berbutir halus untuk memberikan otorisasi pada tingkat atribut. Anda juga dapat menentukan kebijakan berbasis sumber daya dengan dukungan untuk IAM Access Analyzer dan Block Public Access (BPA) untuk menyederhanakan pengelolaan kebijakan.

Secara default, DynamoDB mengenkripsi semua data pelanggan saat diam. Enkripsi saat istirahat meningkatkan keamanan data Anda dengan menggunakan kunci enkripsi yang disimpan di AWS Key Management Service (AWS KMS). Dengan enkripsi saat diam, Anda dapat membuat aplikasi yang sensitif terhadap keamanan yang memenuhi persyaratan kepatuhan dan peraturan enkripsi yang ketat. Ketika Anda mengakses tabel terenkripsi, DynamoDB mendekripsi data tabel secara transparan. Anda tidak perlu mengubah kode atau aplikasi apa pun untuk menggunakan atau mengelola tabel terenkripsi. DynamoDB terus memberikan latensi milidetik satu digit yang sama seperti yang Anda harapkan, dan semua kueri DynamoDB bekerja dengan mulus pada data terenkripsi Anda.

Anda dapat menentukan apakah DynamoDB harus menggunakan Kunci milik AWS (tipe enkripsi default) Kunci yang dikelola AWS, atau kunci yang dikelola pelanggan untuk mengenkripsi data pengguna. Enkripsi default menggunakan AWS kunci KMS milik tersedia tanpa biaya tambahan. Untuk enkripsi sisi klien, Anda dapat menggunakan SDK Enkripsi AWS Database.

DynamoDB juga mematuhi beberapa standar kepatuhan, termasuk HIPAA, PCI DSS, dan GDPR, yang memungkinkan Anda memenuhi persyaratan peraturan.

Ketahanan

Secara default, DynamoDB secara otomatis mereplikasi data Anda di tiga Zona Keter sediaan untuk memberikan daya tahan tinggi dan SLA ketersediaan 99,99%. DynamoDB juga menyediakan kemampuan tambahan untuk membantu Anda mencapai kesinambungan bisnis dan tujuan pemulihan bencana.

DynamoDB menyertakan fitur-fitur berikut untuk membantu mendukung ketahanan data dan kebutuhan pencadangan Anda:

Tabel global

Tabel global DynamoDB memungkinkan SLA ketersediaan 99,999% dan ketahanan Multi-wilayah. Ini membantu Anda membangun aplikasi tangguh dan mengoptimalkannya untuk tujuan waktu pemulihan terendah (RTO) dan tujuan titik pemulihan (RPO). Tabel global juga terintegrasi dengan AWS Fault Injection Service (AWS FIS) untuk melakukan eksperimen injeksi kesalahan pada beban kerja tabel global Anda. Misalnya, menjed a replikasi tabel global ke tabel replika apa pun.

Pencadangan berkelanjutan dan pemulihan point-in-time

Pencadangan berkelanjutan memberi Anda perincian per detik dan kemampuan untuk memulai pemulihan point-in-time. Dengan pemulihan point-in-time, Anda dapat mengembalikan tabel ke titik waktu apa pun hingga detik selama 35 hari terakhir. Anda dapat mengatur periode pemulihan ke nilai apa pun antara 1 dan 35 hari.

Pencadangan berkelanjutan dan memulai pemulihan point-in-time tidak menggunakan kapasitas yang disediakan. Mereka juga tidak berdampak pada kinerja atau ketersediaan aplikasi Anda.

On-demand backup dan restore

On-demand pencadangan dan pemulihan memungkinkan Anda membuat cadangan lengkap dari tabel untuk penyimpanan jangka panjang dan arsip untuk kebutuhan kepatuhan terhadap peraturan. Pencadangan tidak memengaruhi kinerja tabel Anda dan Anda dapat membuat cadangan tabel dalam berbagai ukuran. Dengan AWS Backup integrasi, Anda dapat menggunakannya AWS Backup untuk menjadwalkan, menyalin, memberi tag, dan mengelola siklus hidup cadangan DynamoDB sesuai permintaan secara otomatis. Dengan menggunakan AWS Backup, Anda dapat menyalin cadangan sesuai permintaan di seluruh akun dan Wilayah, dan mengalihkan cadangan lama ke penyimpanan dingin untuk pengoptimalan biaya.

Mengakses DynamoDB

Anda dapat bekerja dengan DynamoDB menggunakan API Konsol Manajemen AWS, the, AWS Command Line InterfaceNoSQL Workbench untuk DynamoDB, atau DynamoDB.

Untuk informasi selengkapnya, lihat Mengakses DynamoDB.

Harga DynamoDB

DynamoDB mengenakan biaya untuk membaca, menulis, dan menyimpan data di tabel Anda, bersama dengan fitur opsional apa pun yang Anda pilih untuk diaktifkan. DynamoDB memiliki dua mode kapasitas dengan opsi penagihan masing-masing untuk memproses pembacaan dan penulisan pada tabel Anda: sesuai permintaan dan disediakan.

DynamoDB juga termasuk dalam tingkat selalu gratis, menyediakan penyimpanan 25 GB. Tingkat Always free juga mencakup 25 Unit Penulisan yang disediakan dan 25 Unit Kapasitas Baca yang disediakan (WCU, RCU) yang cukup untuk menangani 200 juta permintaan per bulan.

Untuk informasi selengkapnya, lihat harga Amazon DynamoDB.

Mulai menggunakan DynamoDB

Jika Anda pertama kali menggunakan DynamoDB, kami sarankan Anda memulai dengan membaca topik berikut:

  • Mulai menggunakan DynamoDB— Memandu Anda melalui proses pengaturan DynamoDB, membuat tabel sampel, dan mengunggah data. Topik ini juga memberikan informasi tentang melakukan beberapa operasi basis data dasar menggunakan Konsol Manajemen AWS, AWS CLI, NoSQL Workbench, dan DynamoDB API.

  • Komponen inti DynamoDB — Menjelaskan konsep dasar DynamoDB.

  • Praktik terbaik untuk mendesain dan merancang dengan DynamoDB- Memberikan rekomendasi tentang desain NoSQL, DynamoDB Well-Architected Lens, desain tabel dan beberapa fitur DynamoDB lainnya. Praktik terbaik ini membantu Anda memaksimalkan kinerja dan meminimalkan biaya throughput saat bekerja dengan DynamoDB.

Kami juga menyarankan Anda meninjau tutorial berikut yang menyajikan prosedur end-to-end lengkap untuk membiasakan diri dengan DynamoDB. Anda dapat menyelesaikan tutorial ini menggunakan fitur tingkat yang selalu gratis.

Untuk informasi tentang sumber daya, alat, dan strategi untuk bermigrasi ke DynamoDB, lihat Migrasi ke DynamoDB. Untuk membaca blog dan whitepaper terbaru, lihat sumber daya Amazon DynamoDB.