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 tanpa server, NoSQL, yang dikelola sepenuhnya dengan kinerja milidetik satu digit pada skala apa pun.

DynamoDB memenuhi kebutuhan Anda untuk mengatasi penskalaan dan kompleksitas operasional database relasional. DynamoDB dibuat khusus dan dioptimalkan untuk beban kerja operasional yang memerlukan 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 sekaligus mengurangi biaya dan meningkatkan kinerja dalam skala besar.

Pelanggan di semua ukuran, industri, dan geografi menggunakan DynamoDB untuk membangun aplikasi modern tanpa server yang dapat dimulai dari skala kecil dan global. DynamoDB menskalakan untuk mendukung tabel dari 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, situs Amazon.com, dan semua pusat pemenuhan Amazon. Untuk kejadian seperti itu, DynamoDB API 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 tabelnya 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 pemeliharaan downtime nol. Ini tidak memiliki versi (mayor, minor, atau patch), dan tidak ada jendela pemeliharaan.

Mode kapasitas sesuai permintaan DynamoDB menawarkan pay-as-you-go harga untuk permintaan baca dan tulis sehingga Anda hanya membayar untuk apa yang Anda gunakan. Dengan sesuai permintaan, DynamoDB langsung menaikkan atau menurunkan tabel Anda untuk menyesuaikan kapasitas dan mempertahankan kinerja tanpa administrasi. Ini juga menurunkan skala ke nol sehingga Anda tidak membayar untuk throughput ketika tabel Anda tidak memiliki lalu lintas dan tidak ada start dingin.

NoSQL

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

Tidak seperti database relasional, DynamoDB tidak mendukung operator JOIN. Kami menyarankan Anda mendenormalisasi model data Anda untuk mengurangi perjalanan pulang pergi basis data dan daya pemrosesan yang diperlukan untuk menjawab pertanyaan. Sebagai database NoSQL, DynamoDB menyediakan konsistensi baca yang kuat dan transaksi ACID untuk membangun aplikasi kelas perusahaan.

Dikelola sepenuhnya

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

Kinerja milidetik satu digit 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, 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 modern tanpa server yang dapat dimulai dari skala kecil dan global. DynamoDB sangat ideal untuk kasus penggunaan yang memerlukan kinerja yang konsisten pada skala apa pun dengan overhead operasional yang sedikit hingga nol. 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 langsung dan perutean, manajemen pinjaman, pembuatan token, dan buku besar transaksi. Dengan tabel global DynamoDB, aplikasi Anda dapat merespons peristiwa dan melayani lalu lintas dari Wilayah AWS pilihan Anda dengan kinerja baca dan tulis lokal yang cepat.

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

    Anda dapat menggunakan transaksi DynamoDB untuk mencapai atomisitas, konsistensi, isolasi, dan daya tahan (ACID) di satu atau beberapa tabel dengan satu permintaan. (ACID) transaksi sesuai dengan beban kerja yang mencakup pemrosesan transaksi keuangan atau pemenuhan pesanan. DynamoDB langsung mengakomodasi beban kerja Anda saat naik atau turun, memungkinkan Anda untuk meningkatkan skala database Anda 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 skala, kinerja yang konsisten, dan kemudahan operasi yang disediakan oleh arsitektur tanpa servernya. DynamoDB sangat cocok untuk arsitektur scale-out yang diperlukan untuk mendukung game yang sukses. Ini dengan cepat meningkatkan throughput game Anda baik masuk maupun keluar (skala ke nol tanpa awal yang dingin). Skalabilitas ini mengoptimalkan efisiensi arsitektur Anda apakah Anda sedang meningkatkan lalu lintas puncak atau menskalakan kembali saat penggunaan gameplay rendah.

  • Aplikasi streaming — Perusahaan media dan hiburan menggunakan DynamoDB sebagai indeks metadata untuk konten, layanan manajemen konten, atau untuk melayani statistik olahraga yang mendekati waktu nyata. 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 menskalakan 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 adalah Arsitektur Saya.

Kemampuan DynamoDB

Replikasi multi-aktif 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, 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 Anda 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 kegagalan yang rumit atau tertunda, atau downtime database saat gagal atas aplikasi antar Wilayah.

Transaksi ACID

DynamoDB dibangun untuk beban kerja mission-critical. Ini termasuk dukungan transaksi (ACID) untuk aplikasi yang membutuhkan logika bisnis yang kompleks. DynamoDB menyediakan dukungan asli, sisi server untuk transaksi, menyederhanakan pengalaman pengembang membuat terkoordinasi all-or-nothing , perubahan ke beberapa item di dalam dan di seluruh tabel.

Ubah pengambilan data untuk arsitektur berbasis peristiwa

DynamoDB mendukung streaming rekaman penangkapan data perubahan tingkat item (CDC) dalam waktu hampir nyata. 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, stream merekam urutan urutan waktu dari setiap perubahan tingkat item dalam waktu nyaris real time. Hal ini membuat DynamoDB Streams ideal untuk aplikasi dengan arsitektur event-driven 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 terintegrasi secara luas dengan Layanan AWS beberapa untuk membantu Anda mendapatkan nilai lebih dari data Anda, menghilangkan pengangkatan berat yang tidak berdiferensiasi, dan mengoperasikan beban kerja Anda dalam skala besar. Beberapa contoh 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 end-to-end tanpa server, DynamoDB terintegrasi secara native dengan sejumlah tanpa server. Layanan AWS Misalnya, Anda dapat mengintegrasikan DynamoDB AWS Lambda dengan 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 memfilter 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 dengan mudah ke bucket Amazon S3 untuk analitik dan pembelajaran mesin. DynamoDB mendukung ekspor tabel penuh 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.

Integrasi nol-ETL

DynamoDB mendukung integrasi nol-ETL dengan Amazon Redshift dan Amazon Service. OpenSearch Integrasi ini memungkinkan Anda menjalankan analisis kompleks dan menggunakan kemampuan pencarian lanjutan pada data tabel DynamoDB Anda. Misalnya, Anda dapat melakukan pencarian teks lengkap dan vektor, dan pencarian semantik pada data DynamoDB Anda. Integrasi nol-ETL 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 ke mikrodetik - bahkan pada jutaan permintaan per detik. DAX melakukan semua pekerjaan berat yang diperlukan untuk menambahkan akselerasi dalam memori ke tabel DynamoDB Anda, tanpa mengharuskan Anda mengelola pembatalan cache, populasi data, atau manajemen klaster.

Keamanan

DynamoDB menggunakan IAM untuk membantu Anda mengontrol akses ke sumber daya DynamoDB Anda 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 diautentikasi (masuk) dan diotorisasi (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 manajemen kebijakan.

Secara default, DynamoDB mengenkripsi semua data pelanggan saat istirahat. 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 dengan 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 kunci KMS yang AWS dimiliki tersedia tanpa biaya tambahan. Untuk enkripsi sisi klien, Anda dapat menggunakan AWS Database Encryption SDK.

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

Ketangguhan

Secara default, DynamoDB secara otomatis mereplikasi data Anda di tiga Availability Zone 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 cadangan Anda:

Tabel global

Tabel global DynamoDB memungkinkan SLA ketersediaan 99,999% dan ketahanan Multi-wilayah. Ini membantu Anda membangun aplikasi yang 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, menjeda replikasi tabel global ke tabel replika apa pun.

Pencadangan dan pemulihan berkelanjutan point-in-time

Pencadangan berkelanjutan memberi Anda perincian per detik dan kemampuan untuk memulai pemulihan. point-in-time Dengan point-in-time pemulihan, Anda dapat mengembalikan tabel ke titik waktu mana pun hingga yang kedua selama 35 hari terakhir.

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

Pencadangan dan pemulihan sesuai permintaan

Pencadangan dan pemulihan sesuai permintaan memungkinkan Anda membuat cadangan lengkap tabel untuk retensi jangka panjang dan arsip untuk kebutuhan kepatuhan peraturan. Cadangan tidak memengaruhi kinerja tabel Anda dan Anda dapat mencadangkan tabel dengan ukuran berapa pun. Dengan AWS Backup integrasi, Anda dapat menggunakannya AWS Backup untuk menjadwalkan, menyalin, menandai, dan mengelola siklus hidup backup berdasarkan permintaan DynamoDB Anda secara otomatis. Dengan menggunakan AWS Backup, Anda dapat menyalin cadangan sesuai permintaan di seluruh akun dan Wilayah, dan mentransisikan cadangan lama ke penyimpanan dingin untuk pengoptimalan biaya.

Mengakses DynamoDB

Anda dapat bekerja dengan DynamoDB menggunakan API, AWS Management Consolethe,NoSQL Workbench untuk DynamoDB, atau AWS Command Line InterfaceDynamoDB.

Harga DynamoDB

DynamoDB mengenakan biaya untuk membaca, menulis, dan menyimpan data dalam 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 di tabel Anda: sesuai permintaan dan disediakan.

DynamoDB juga menawarkan tingkat gratis yang menyediakan penyimpanan 25 GB. Tingkat gratis juga mencakup 25 Tulis yang disediakan dan 25 Unit Kapasitas Baca yang disediakan (WCU, RCU) yang cukup untuk menangani permintaan 200 M per bulan.

Untuk informasi selengkapnya, lihat harga Amazon DynamoDB.

Mulai menggunakan DynamoDB

Jika Anda pengguna pertama kali DynamoDB, kami sarankan Anda mulai 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,, NoSQL Workbench AWS Management Console AWS CLI, dan DynamoDB API.

  • Komponen inti DynamoDB - Menjelaskan konsep DynamoDB dasar.

  • Praktik terbaik untuk mendesain dan merancang dengan DynamoDB— Memberikan rekomendasi tentang desain NoSQL, DynamoDB Well-Architected Lens, desain meja 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 end-to-end prosedur lengkap untuk membiasakan diri dengan DynamoDB. Anda dapat menyelesaikan tutorial ini dengan tingkat gratis AWS.

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.