Fitur Amazon MemoryDB

Mengapa MemoryDB?

Amazon MemoryDB adalah layanan basis data dalam memori yang kompatibel dengan Redis OSS, tahan lama, dan memberikan performa yang sangat cepat. Layanan dibuat khusus untuk aplikasi modern dengan arsitektur layanan mikro.

MemoryDB kompatibel dengan Redis OSS, sehingga memungkinkan pelanggan untuk dengan cepat membangun aplikasi menggunakan struktur data, API, dan perintah Redis OSS yang fleksibel serta ramah, sama dengan yang mereka gunakan saat ini. Dengan MemoryDB, semua data Anda disimpan di memori, yang memungkinkan Anda untuk mencapai latensi baca mikrodetik dan latensi tulis satu digit milidetik, serta throughput yang tinggi. MemoryDB juga menyimpan data secara tahan lama di lebih dari satu Zona Ketersediaan (AZ) menggunakan log transaksi terdistribusi untuk mengaktifkan failover cepat, pemulihan basis data, dan mulai ulang simpul. Karena menghasilkan performa dalam memori dan daya tahan Multi-AZ, MemoryDB dapat digunakan sebagai basis data primer performa tinggi untuk aplikasi layanan mikro Anda, yang menghilangkan kebutuhan untuk mengelola cache dan basis data yang tahan lama secara terpisah.

Kompatibilitas Redis OSS

Redis OSS adalah penyimpanan data nilai kunci yang cepat, bersumber terbuka, dalam memori. Developer menggunakan Redis OSS untuk mencapai waktu respons submilidetik, yang memungkinkan jutaan permintaan per detik untuk aplikasi waktu nyata di industri seperti game, teknologi iklan, layanan keuangan, layanan kesehatan, dan IoT. 

Redis OSS menawarkan API, perintah, dan struktur data yang fleksibel seperti aliran, kumpulan, dan daftar, untuk membangun aplikasi yang tangkas dan serbaguna. MemoryDB mempertahankan kompatibilitas dengan Redis OSS dan mendukung kumpulan tipe data, parameter, dan perintah Redis OSS yang sama yang Anda kenal. Hal ini berarti bahwa kode, aplikasi, driver, dan alat yang sudah Anda gunakan saat ini dengan Redis OSS dapat digunakan dengan MemoryDB, sehingga Anda dapat membangun aplikasi dengan cepat.

Performa sangat cepat

MemoryDB menyimpan seluruh set data Anda dalam memori untuk memberikan latensi baca mikrodetik, latensi tulis milidetik satu digit, dan throughput tinggi. Itu dapat menangani lebih dari 13 triliun permintaan per hari dan mendukung puncak 160 juta permintaan per detik. Developer yang membangun dengan arsitektur layanan mikro memerlukan performa yang sangat tinggi, karena aplikasi ini dapat melibatkan interaksi dengan banyak komponen layanan per interaksi pengguna atau panggilan API. Dengan MemoryDB, Anda mengaktifkan latensi yang sangat rendah untuk menghasilkan performa waktu nyata bagi pengguna akhir.

Amazon MemoryDB mencakup Multiplexing IO yang Ditingkatkan, yang menghasilkan peningkatan signifikan pada throughput dan latensi dalam skala besar. Multiplexing IO yang Ditingkatkan sangat cocok untuk beban kerja yang terikat throughput dengan banyak koneksi klien, dan manfaatnya dapat menskalakan dengan tingkat konkurensi beban kerja. Misalnya, ketika menggunakan simpul r6g.4xlarge dan menjalankan 5.200 klien secara bersamaan, Anda dapat mencapai peningkatan throughput (operasi baca dan tulis per detik) hingga 46% serta penurunan latensi P99 hingga 21%, dibandingkan dengan MemoryDB versi 6 yang kompatibel dengan Redis OSS. Untuk tipe beban kerja ini, pemrosesan IO jaringan simpul dapat menjadi faktor pembatas dalam kemampuan untuk menskalakan.

Dengan Multiplexing IO yang Ditingkatkan, setiap pipeline thread IO jaringan khusus memberikan perintah dari banyak klien ke mesin Redis OSS, dengan memanfaatkan kemampuan Redis OSS untuk memproses perintah secara efisien dalam batch, seperti yang diilustrasikan dalam diagram berikut:

Ketahanan Multi-AZ

Selain menyimpan seluruh set data Anda di memori, MemoryDB menggunakan log transaksional terdistribusi untuk memberikan daya tahan, konsistensi, dan kemampuan pemulihan data. MemoryDB menyimpan data di beberapa AZ sehingga Anda dapat mencapai pemulihan basis data yang cepat dan memulai ulang. Anda dapat menggunakan MemoryDB sebagai layanan basis data utama tunggal untuk beban kerja Anda yang membutuhkan latensi rendah dan throughput tinggi daripada mengelola cache secara terpisah untuk kecepatan dan basis data relasional atau nonrelasional tambahan untuk keandalan.

Skalabilitas

Anda dapat menskalakan klaster MemoryDB Anda untuk memenuhi permintaan aplikasi yang berfluktuasi: secara horizontal dengan menambahkan atau menghapus simpul, atau secara vertikal dengan berpindah ke tipe simpul yang lebih besar atau lebih kecil. MemoryDB mendukung penskalaan tulis dengan penyerpihan dan penskalaan baca dengan menambahkan replika. Klaster Anda tetap online dan mendukung operasi baca dan tulis selama operasi pengubahan ukuran.

Dikelola sepenuhnya

Memulai dengan MemoryDB itu mudah. Cukup luncurkan klaster MemoryDB baru menggunakan AWS Management Console, atau Anda dapat menggunakan AWS CLI atau SDK. Instans basis data MemoryDB telah dikonfigurasi sebelumnya dengan parameter dan pengaturan yang sesuai untuk pemilihan tipe simpul. Anda dapat meluncurkan klaster dan menghubungkan aplikasi Anda dalam beberapa menit tanpa konfigurasi tambahan.

MemoryDB menyediakan metrik Amazon CloudWatch untuk instans basis data Anda. Anda dapat menggunakan konsol untuk melihat lebih dari 35 metrik operasional utama untuk klaster Anda, termasuk komputasi, memori, penyimpanan, throughput, koneksi aktif, dan lebih banyak lagi.

MemoryDB secara otomatis membuat klaster Anda tetap terbarui dengan pembaruan baru, dan Anda dapat dengan mudah meningkatkan klaster Anda ke Redis OSS versi terbaru.

Keamanan

MemoryDB berjalan di Amazon Virtual Private Cloud (Amazon VPC), yang memungkinkan Anda untuk mengisolasi basis data dalam jaringan virtual milik Anda sendiri dan menghubungkan ke infrastruktur IT on-premise menggunakan VPN IPsec terenkripsi standar industri. Selain itu, dengan konfigurasi VPC di MemoryDB, Anda dapat mengonfigurasi pengaturan firewall dan mengontrol akses jaringan ke instans basis data Anda.

Dengan MemoryDB, data diam dienkripsi menggunakan kunci yang Anda buat dan kontrol melalui AWS Key Management Service (AWS KMS). Klaster yang dibuat dengan tipe simpul AWS Graviton2 menyertakan enkripsi DRAM 256 bit yang selalu aktif. MemoryDB mendukung enkripsi dalam perjalanan dengan menggunakan Keamanan Lapisan Pengangkutan (TLS).

Dengan menggunakan fitur AWS Identity and Access Management (IAM) yang terintegrasi dengan MemoryDB, Anda dapat mengontrol tindakan yang dapat dilakukan oleh pengguna dan grup IAM Anda pada sumber daya MemoryDB. Misalnya, Anda dapat mengonfigurasi aturan IAM untuk membantu memastikan bahwa pengguna tertentu hanya memiliki akses hanya-baca, sementara Administrator dapat membuat, memodifikasi, dan menghapus sumber daya. Untuk informasi selengkapnya tentang izin tingkat API, lihat Menggunakan Kebijakan IAM untuk MemoryDB.

MemoryDB menggunakan Daftar Kontrol Akses (ACL) Redis OSS untuk mengontrol autentikasi dan otorisasi pada klaster Anda. ACL memungkinkan Anda untuk menentukan berbagai izin untuk pengguna yang berbeda di klaster yang sama.

Integrasi dengan Kubernetes

AWS Controllers for Kubernetes (ACK) untuk MemoryDB memungkinkan Anda untuk menentukan dan menggunakan sumber daya MemoryDB secara langsung dari klaster Kubernetes Anda. ACK untuk Amazon MemoryDB memungkinkan Anda memanfaatkan MemoryDB untuk mendukung aplikasi Kubernetes tanpa perlu menentukan sumber daya MemoryDB di luar klaster atau menjalankan dan mengelola kemampuan basis data dalam memori di dalam klaster. Anda dapat mengunduh citra kontainer ACK MemoryDB dari Amazon Elastic Container Registry (Amazon ECR) dan melihat dokumentasi untuk panduan instalasi. Anda juga dapat mengunjungi blog untuk informasi yang lebih detail.

Catatan: ACK untuk MemoryDB kini tersedia secara umum. Kirimkan umpan balik Anda di halaman GitHub kami.

 

Dukungan JSON

MemoryDB menyediakan dukungan native untuk dokumen JavaScript Object Notation (JSON) selain struktur data yang disertakan dalam Redis OSS, tanpa biaya tambahan. Anda dapat menyederhanakan pengembangan aplikasi dengan menggunakan perintah bawaan yang dirancang dan dioptimalkan untuk dokumen JSON. MemoryDB mendukung pembaruan dokumen JSON sebagian, serta pencarian dan pemfilteran yang andal menggunakan bahasa kueri JSONPath. Dukungan JSON tersedia saat menggunakan Redis OSS 6.2 dan di atasnya. Untuk informasi selengkapnya, lihat dokumentasi MemoryDB.

Optimisasi biaya

MemoryDB menawarkan tingkatan data sebagai cara menurunkan biaya untuk menskalakan klaster Anda hingga kapasitas ratusan terabita. Tingkatan data memberikan opsi performa harga untuk MemoryDB dengan menggunakan solid state drive (SSD) yang lebih murah dalam setiap simpul klaster selain menyimpan data dalam memori. Cara ini ideal untuk beban kerja yang mengakses hingga 20% dari keseluruhan set data Anda secara rutin dan untuk aplikasi yang dapat menoleransi latensi tambahan ketika mengakses data di SSD.

Ketika menggunakan klaster dengan peningkatan data, MemoryDB dirancang untuk secara otomatis dan transparan memindahkan item yang paling terakhir digunakan dari memori ke SSDs NVMe yang dipasang secara lokal ketika kapasitas memori yang tersedia dikonsumsi. Saat Anda mengakses item yang disimpan di SSD, MemoryDB memindahkannya kembali ke memori sebelum melayani permintaan. Tingkat data MemoryDB tersedia pada simpul R6gd berbasis Graviton2. Simpul R6gd memiliki hampir 5x lebih banyak dalam kapasitas total (memori + SSD) dan dapat membantu Anda mendapatkan lebih dari 60% penghematan biaya penyimpanan ketika berjalan pada pemanfaatan maksimum dibandingkan dengan simpul R6g (hanya memori). Dengan mengasumsikan nilai String 500 bita, Anda biasanya akan mendapatkan latensi tambahan 450µs untuk permintaan baca pada data yang disimpan pada SSD dibandingkan dengan permintaan baca pada data di memori.

MemoryDB menawarkan simpul terpesan yang memungkinkan Anda untuk menghemat hingga 55% dibandingkan harga simpul sesuai permintaan dengan komitmen penggunaan satu atau tiga tahun sebagai gantinya. Simpul terpesan merupakan pelengkap simpul sesuai permintaan MemoryDB dan fleksibel sehingga membantu bisnis dalam memangkas biaya. MemoryDB menyediakan tiga pilihan pembayaran simpul terpesan—Tanpa Biaya di Muka, Sebagian di Muka, dan Semua di Muka—yang memungkinkan Anda untuk menyeimbangkan jumlah yang Anda bayar di muka dengan harga per jam efektif.

Simpul terpesan MemoryDB menawarkan fleksibilitas ukuran di dalam keluarga simpul dan Wilayah AWS. Hal ini berarti bahwa tarif simpul terpesan yang didiskon akan diterapkan secara otomatis untuk penggunaan semua ukuran di dalam keluarga simpul yang sama. Kemampuan fleksibilitas ukuran mengurangi waktu yang Anda perlukan untuk mengelola simpul terpesan dan Anda pun tetap bisa memanfaatkan diskon walaupun basis data Anda memerlukan pembaruan, karena Anda tidak lagi terikat dengan ukuran simpul basis data tertentu.