Memilih ukuran simpul Anda - Amazon ElastiCache untuk Redis

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

Memilih ukuran simpul Anda

Ukuran simpul yang Anda pilih untuk klaster Anda memengaruhi biaya, performa, dan toleransi kesalahan.

Memilih ukuran simpul Anda

Untuk informasi tentang manfaat prosesor Graviton, lihat Prosesor AWS Graviton.

Menjawab pertanyaan-pertanyaan berikut dapat membantu Anda menentukan jenis simpul minimum yang Anda butuhkan untuk implementasi Redis Anda:

  • Apakah Anda mengharapkan beban kerja terikat throughput dengan beberapa koneksi klien?

    Jika ya dan Anda menjalankan Redis versi 5.0.6 atau lebih tinggi, Anda bisa mendapatkan throughput dan latensi yang lebih baik dengan fitur I/O kami yang disempurnakan, yang memungkinkan CPU yang tersedia digunakan untuk mengalihkan beban koneksi klien, untuk mendukung mesin Redis. Jika Anda menjalankan Redis versi 7.0.4 atau lebih tinggi, selain I/O yang disempurnakan, Anda akan mendapatkan akselerasi tambahan dengan multiplexing I/O yang disempurnakan. Hal ini memungkinkan setiap thread IO khusus melakukan pipelining terhadap perintah dari beberapa klien ke mesin Redis, dengan memanfaatkan kemampuan Redis untuk memproses perintah secara efisien dalam batch. DI ElastiCache for Redis v7.1 dan lebih tinggi, kami memperluas fungsionalitas thread I/O yang disempurnakan agar juga menangani logika lapisan presentasi. Yang kami maksud dengan lapisan presentasi adalah bahwa thread I/O yang disempurnakan sekarang tidak hanya membaca input klien, tetapi juga mengurai input ke dalam format perintah biner Redis, yang kemudian diteruskan ke thread utama untuk dieksekusi, sehingga memberikan peningkatan performa. Lihat postingan blog dan halaman versi yang didukung untuk detail tambahan.

  • Apakah Anda memiliki beban kerja yang mengakses sebagian kecil dari datanya secara berkala?

    Jika ya dan Anda menjalankan beban kerja di Redis mesin versi 6.2 atau yang lebih baru, Anda dapat memanfaatkan tingkatan data dengan memilih jenis simpul r6gd. Dengan tingkatan data, data yang sudah lama tidak digunakan akan disimpan di SSD. Ketika data ini diambil, ada sedikit latensi, tetapi diimbangi dengan penghematan biaya. Untuk informasi selengkapnya, lihat Tingkatan data.

    Untuk informasi selengkapnya, lihat Tipe simpul yang didukung.

  • Berapa banyak memori total yang dibutuhkan untuk data Anda?

    Untuk mendapatkan estimasi umum, cari tahu ukuran item yang ingin Anda simpan dalam cache. Kalikan ukuran ini dengan jumlah item yang ingin Anda simpan dalam cache pada waktu yang sama. Untuk mendapatkan estimasi yang wajar terkait ukuran item, pertama-tama serialisasikan item cache Anda, kemudian hitung karakternya. Kemudian bagi jumlah karakter dengan jumlah serpihan dalam klaster Anda.

    Untuk informasi selengkapnya, lihat Tipe simpul yang didukung.

  • Apa versi Redis yang Anda jalankan?

    Redis versi sebelum 2.8.22 mengharuskan Anda untuk mencadangkan lebih banyak memori untuk operasi failover, snapshot, sinkronisasi, dan promosi replika ke primer. Persyaratan ini muncul karena Anda harus memiliki cukup memori yang tersedia untuk semua penulisan yang terjadi selama proses.

    Redis versi 2.8.22 dan lebih baru menggunakan proses penyimpanan forkless yang membutuhkan ketersediaan memori yang lebih kecil dibandingkan proses sebelumnya.

    Untuk informasi selengkapnya tentang IAM, lihat hal berikut:

  • Seberapa berat proses tulis aplikasi Anda?

    Aplikasi dengan proses tulis berat dapat membutuhkan jauh lebih banyak memori yang tersedia, yaitu memori yang tidak digunakan oleh data, saat mengambil snapshot atau failover. Setiap kali proses BGSAVE dilakukan, Anda harus memiliki cukup memori yang tidak digunakan oleh data untuk mengakomodasi semua proses tulis yang berlangsung selama proses BGSAVE. Contohnya adalah ketika mengambil snapshot, ketika menyinkronkan klaster primer dengan replika dalam klaster, dan ketika mengaktifkan fitur append-only file (AOF). Contoh lainnya adalah saat mempromosikan replika ke primer (jika Anda memiliki Multi-AZ yang aktif). Kemungkinan terburuknya adalah ketika semua data Anda ditulis ulang selama proses berlangsung. Dalam hal ini, Anda memerlukan ukuran instans simpul dengan memori dua kali lebih banyak dari yang diperlukan untuk data saja.

    Untuk informasi selengkapnya, lihat Memastikan bahwa Anda memiliki cukup memori untuk membuat snapshot Redis.

  • Apakah implementasi Anda akan menjadi klaster Redis mandiri (mode klaster dinonaktifkan) atau klaster Redis (mode klaster diaktifkan) dengan beberapa serpihan?

    Klaster Redis (mode klaster dinonaktifkan)

    Jika Anda mengimplementasikan klaster Redis (mode klaster dinonaktifkan), jenis simpul Anda harus mampu mengakomodasi semua data Anda ditambah overhead yang diperlukan seperti yang dijelaskan dalam poin sebelumnya.

    Sebagai contoh, misalnya Anda memperkirakan bahwa total ukuran semua item Anda adalah 12 GB. Dalam kasus ini, Anda dapat menggunakan simpul cache.m3.xlarge dengan memori 13,3 GB atau simpul cache.r3.large dengan memori 13,5 GB. Namun, Anda mungkin memerlukan lebih banyak memori untuk operasi BGSAVE. Jika aplikasi Anda memiliki proses tulis berat, gandakan kebutuhan memori menjadi setidaknya 24 GB. Dengan demikian, gunakan cache.m3.2xlarge dengan memori 27,9 GB atau cache.r3.xlarge dengan memori 30,5 GB.

    Redis (mode klaster diaktifkan) dengan beberapa serpihan

    Jika Anda mengimplementasikan klaster Redis (mode klaster diaktifkan) dengan beberapa serpihan, maka jenis simpulnya harus mampu mengakomodasi bytes-for-data-and-overhead / number-of-shards byte data.

    Sebagai contoh, misalnya Anda memperkirakan bahwa total ukuran semua item Anda adalah 12 GB dan Anda memiliki dua serpihan. Dalam kasus ini, Anda dapat menggunakan simpul cache.m3.large dengan memori 6,05 GB (12 GB / 2). Namun, Anda mungkin memerlukan lebih banyak memori untuk operasi BGSAVE. Jika aplikasi Anda memiliki proses tulis berat, gandakan kebutuhan memori menjadi setidaknya 12 GB per serpihan. Dengan demikian, gunakan cache.m3.xlarge dengan memori 13,3 GB atau cache.r3.large dengan memori 13,5 GB.

  • Apakah Anda menggunakan Zona Lokal?

    Zona Lokal memungkinkan Anda menempatkan sumber daya seperti klaster ElastiCache dalam beberapa lokasi yang dekat dengan pengguna Anda. Namun, ketika Anda memilih ukuran simpul Anda, perhatikan bahwa ukuran simpul yang tersedia saat ini terbatas seperti yang tertera berikut ini, terlepas dari persyaratan kapasitas:

    • Generasi saat ini:

      Tipe simpul M5: cache.m5.large, cache.m5.xlarge, cache.m5.2xlarge, cache.m5.4xlarge, cache.m5.12xlarge, cache.m5.24xlarge

      Tipe simpul R5: cache.r5.large, cache.r5.xlarge, cache.r5.2xlarge, cache.r5.4xlarge, cache.r5.12xlarge, cache.r5.24xlarge

      Tipe simpul T3: cache.t3.micro, cache.t3.small, cache.t3.medium

Saat klaster berjalan, Anda dapat memantau metrik penggunaan memori, pemanfaatan prosesor, cache hit, dan cache miss yang diterbitkan ke CloudWatch. Anda mungkin memperhatikan bahwa klaster Anda tidak memiliki laju hit yang Anda inginkan atau bahwa kunci terlalu sering dikosongkan. Dalam kasus ini, Anda dapat memilih ukuran simpul yang berbeda dengan spesifikasi CPU dan memori yang lebih besar.

Saat memantau penggunaan CPU, ingat bahwa Redis memiliki thread tunggal. Dengan demikian, kalikan penggunaan CPU yang dilaporkan dengan jumlah inti CPU untuk mengetahui penggunaan yang sebenarnya. Sebagai contoh, CPU empat inti yang melaporkan tingkat penggunaan 20 persen sebenarnya adalah Redis satu inti yang berjalan pada 80 persen pemanfaatan.