Pilar ElastiCache Keunggulan Operasional Lensa Well-Architected Amazon - Amazon ElastiCache (Redis) OSS

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

Pilar ElastiCache Keunggulan Operasional Lensa Well-Architected Amazon

Pilar keunggulan operasional berfokus untuk menjalankan dan memantau sistem guna memberikan nilai bisnis, dan terus meningkatkan proses dan prosedur. Topik utamanya meliputi mengotomatisasi perubahan, menanggapi peristiwa, dan mendefinisikan standar untuk mengelola operasi harian.

OE 1: Bagaimana Anda memahami dan menanggapi peringatan dan peristiwa yang dipicu oleh cluster Anda? ElastiCache

Pengenalan tingkat pertanyaan: Saat Anda mengoperasikan ElastiCache kluster, Anda dapat menerima pemberitahuan dan peringatan secara opsional saat peristiwa tertentu terjadi. ElastiCache, secara default, mencatat peristiwa yang berhubungan dengan sumber daya Anda, seperti failover, penggantian node, operasi penskalaan, pemeliharaan terjadwal, dan banyak lagi. Setiap peristiwa mencakup tanggal dan waktu, nama sumber dan jenis sumber, dan deskripsi.

Manfaat tingkat pertanyaan: Mampu memahami dan mengelola alasan mendasar di balik peristiwa yang memicu peringatan yang dihasilkan oleh klaster Anda memungkinkan Anda beroperasi lebih efektif dan merespons peristiwa dengan tepat.

  • [Diperlukan] Tinjau peristiwa yang dihasilkan oleh ElastiCache di ElastiCache konsol (setelah memilih wilayah Anda) atau menggunakan perintah Amazon Command Line Interface (AWS CLI) describe-events dan perintah. ElastiCache API Konfigurasikan ElastiCache untuk mengirim pemberitahuan untuk peristiwa klaster penting menggunakan Amazon Simple Notification Service (AmazonSNS). Menggunakan Amazon SNS dengan cluster Anda memungkinkan Anda untuk secara terprogram mengambil tindakan atas peristiwa. ElastiCache

    • Ada dua kategori besar peristiwa: peristiwa terkini dan terjadwal. Daftar peristiwa terkini meliputi: pembuatan dan penghapusan sumber daya, operasi penskalaan, failover, reboot node, snapshot dibuat, modifikasi parameter cluster, pembaruan sertifikat CA, peristiwa kegagalan (kegagalan penyediaan klaster - VPC atau -, kegagalan penskalaan - ENI -, dan kegagalan snapshot). ENI Daftar peristiwa terjadwal meliputi: simpul yang dijadwalkan akan diganti selama periode pemeliharaan dan penggantian simpul yang dijadwalkan ulang.

    • Meskipun Anda mungkin tidak perlu segera bereaksi terhadap beberapa peristiwa ini, penting untuk terlebih dahulu melihat semua peristiwa kegagalan:

      • ElastiCache:AddCacheNodeFailed

      • ElastiCache:CacheClusterProvisioningFailed

      • ElastiCache:CacheClusterScalingFailed

      • ElastiCache:CacheNodesRebooted

      • ElastiCache: SnapshotFailed (OSSHanya Redis)

    • [Sumber Daya]:

  • [Terbaik] Untuk mengotomatiskan respons terhadap peristiwa, manfaatkan kemampuan AWS produk dan layanan seperti SNS dan Fungsi Lambda. Ikuti praktik terbaik dengan membuat perubahan yang kecil, sering, dan dapat dikembalikan, sebagai kode untuk mengembangkan operasi Anda dari waktu ke waktu. Anda harus menggunakan CloudWatch metrik Amazon untuk memantau cluster Anda.

    [Sumber Daya]: Monitor ElastiCache (RedisOSS) (mode cluster dinonaktifkan) baca titik akhir replika menggunakan AWS Lambda, Amazon Route 53, dan Amazon SNS untuk kasus penggunaan yang menggunakan Lambda dan. SNS

OE 2: Kapan dan bagaimana Anda menskalakan ElastiCache cluster yang ada?

Pengenalan tingkat pertanyaan: Ukuran kanan ElastiCache klaster Anda adalah tindakan penyeimbangan yang perlu dievaluasi setiap kali ada perubahan pada jenis beban kerja yang mendasarinya. Tujuan Anda adalah beroperasi dengan lingkungan yang telah di-rightsizing untuk beban kerja Anda.

Manfaat tingkat pertanyaan: Pemanfaatan sumber daya Anda yang berlebihan dapat mengakibatkan peningkatan latensi dan penurunan performa secara keseluruhan. Kurangnya pemanfaatan, di sisi lain, dapat mengakibatkan sumber daya yang disediakan secara berlebihan dengan optimisasi biaya yang tidak optimal. Dengan melakukan rightsizing lingkungan, Anda dapat mencapai keseimbangan antara efisiensi performa dan optimisasi biaya. Untuk memulihkan di atas atau di bawah pemanfaatan sumber daya Anda, ElastiCache dapat skala dalam dua dimensi. Anda dapat menskalakan secara vertikal dengan menambah atau mengurangi kapasitas simpul. Anda juga dapat menskalakan secara horizontal dengan menambahkan dan menghapus simpul.

OE 3: Bagaimana Anda mengelola sumber daya ElastiCache cluster dan memelihara cluster Anda? up-to-date

Pengenalan tingkat pertanyaan: Saat beroperasi dalam skala besar, penting bagi Anda untuk dapat menentukan dan mengidentifikasi semua sumber daya Anda. ElastiCache Saat meluncurkan fitur aplikasi baru, Anda perlu membuat simetri versi cluster di semua jenis ElastiCache lingkungan Anda: dev, testing, dan production. Atribut sumber daya memungkinkan Anda memisahkan lingkungan untuk tujuan operasional yang berbeda-beda, seperti saat meluncurkan fitur baru dan mengaktifkan mekanisme keamanan baru.

Manfaat tingkat pertanyaan: Memisahkan lingkungan pengembangan, pengujian, dan produksi Anda adalah praktik operasional terbaik. Praktik terbaik lainnya adalah klaster dan simpul Anda di seluruh lingkungan memiliki patch perangkat lunak terbaru yang diterapkan menggunakan proses yang dipahami dan terdokumentasi dengan baik. Mengambil keuntungan dari ElastiCache fitur asli memungkinkan tim teknik Anda untuk fokus pada memenuhi tujuan bisnis dan bukan pada ElastiCache pemeliharaan.

  • [Terbaik] Jalankan pada versi mesin terbaru yang tersedia dan terapkan Pembaruan Layanan Mandiri secepat tersedia. ElastiCache secara otomatis memperbarui infrastruktur dasarnya selama jendela pemeliharaan cluster yang Anda tentukan. Namun, simpul yang berjalan di klaster Anda diperbarui melalui Pembaruan Layanan Mandiri. Pembaruan ini dapat terdiri dari dua jenis: patch keamanan atau pembaruan perangkat lunak minor. Pastikan Anda memahami perbedaan berbagai jenis patch dan waktu penerapannya.

    [Sumber Daya]:

  • [Terbaik] Atur ElastiCache sumber daya Anda menggunakan tag. Gunakan tag pada grup replikasi dan bukan pada simpul individual. Anda dapat mengonfigurasi tag agar ditampilkan saat Anda mengueri sumber daya dan Anda dapat menggunakan tag untuk melakukan pencarian dan menerapkan filter. Anda harus menggunakan Grup Sumber Daya agar dapat dengan mudah membuat dan memelihara kumpulan sumber daya yang memiliki set tag yang sama.

    [Sumber Daya]:

OE 4: Bagaimana Anda mengelola koneksi klien ke cluster Anda? ElastiCache

Pengenalan tingkat pertanyaan: Saat beroperasi dalam skala besar, Anda perlu memahami bagaimana klien Anda terhubung dengan ElastiCache klaster untuk mengelola aspek operasional aplikasi Anda (seperti waktu respons).

Manfaat tingkat pertanyaan: Memilih mekanisme koneksi yang paling tepat memastikan bahwa aplikasi Anda tidak terputus karena kesalahan konektivitas, seperti waktu habis.

  • [Wajib] Pisahkan operasi baca dari tulis dan hubungkan ke simpul replika untuk menjalankan operasi baca. Namun, ketahuilah ketika Anda memisahkan tulisan dari bacaan, Anda akan kehilangan kemampuan untuk membaca kunci segera setelah menulisnya karena sifat replikasi Redis yang tidak sinkron. OSS WAITPerintah dapat dimanfaatkan untuk meningkatkan keamanan data dunia nyata dan memaksa replika untuk mengakui penulisan sebelum menanggapi klien, dengan biaya kinerja keseluruhan. Menggunakan node replika untuk operasi baca dapat dikonfigurasi di pustaka klien ElastiCache (RedisOSS) Anda menggunakan titik akhir ElastiCache pembaca untuk mode cluster dinonaktifkan. Untuk mode cluster diaktifkan, gunakan READONLY perintah ElastiCache (RedisOSS). Untuk banyak pustaka klien ElastiCache (RedisOSS), ElastiCache (RedisOSS) READONLY diimplementasikan secara default atau melalui pengaturan konfigurasi.

    [Sumber Daya]:

  • [Wajib] Gunakan pooling koneksi. Membuat TCP koneksi memiliki biaya CPU waktu pada sisi klien dan server dan penyatuan memungkinkan Anda untuk menggunakan kembali koneksi. TCP

    Untuk mengurangi overhead koneksi, Anda harus menggunakan pooling koneksi. Dengan pool koneksi, aplikasi Anda dapat menggunakan kembali dan melepaskan koneksi 'sesuka hati', tanpa perlu membuat koneksi. Anda dapat menerapkan penyatuan koneksi melalui pustaka klien ElastiCache (RedisOSS) Anda (jika didukung), dengan Framework yang tersedia untuk lingkungan aplikasi Anda, atau membangunnya dari bawah ke atas.

  • [Terbaik] Pastikan waktu habis soket klien diatur ke setidaknya satu detik (vs. default "tidak ada" di beberapa klien).

    • Mengatur nilai waktu habis terlalu rendah dapat menyebabkan kemungkinan waktu habis ketika beban server tinggi. Pengaturan yang terlalu tinggi dapat mengakibatkan aplikasi Anda membutuhkan waktu lama untuk mendeteksi masalah koneksi.

    • Kendalikan volume koneksi baru dengan menerapkan pooling koneksi di aplikasi klien Anda. Ini mengurangi latensi dan CPU pemanfaatan yang diperlukan untuk membuka dan menutup koneksi, dan melakukan TLS jabat tangan jika TLS diaktifkan di cluster.

    [Sumber Daya]: Konfigurasi ElastiCache (RedisOSS) untuk ketersediaan yang lebih tinggi

  • [Baik] Menggunakan pipelining (jika kasus penggunaan Anda memungkinkannya) dapat meningkatkan performa secara signifikan.

    • Dengan pipelining Anda mengurangi Waktu Pulang Pergi (RTT) antara klien aplikasi Anda dan klaster dan permintaan baru dapat diproses bahkan jika klien belum membaca tanggapan sebelumnya.

    • Dengan pipelining Anda dapat mengirim beberapa perintah ke server tanpa menunggu replies/ack. Kelemahan dari pipelining adalah ketika Anda akhirnya mengambil semua respons secara massal, mungkin ada kesalahan yang tidak akan Anda temukan sampai akhir.

    • Terapkan metode untuk mencoba kembali permintaan ketika ditampilkan kesalahan yang menghilangkan permintaan buruk.

    [Sumber Daya]: Pipelining

OE 5: Bagaimana Anda menerapkan ElastiCache Komponen untuk Beban Kerja?

Pengenalan tingkat pertanyaan: ElastiCache lingkungan dapat digunakan secara manual melalui AWS Konsol, atau secara terprogram melalui,, toolkit, dll. APIs CLI Praktik terbaik Keunggulan Operasional menyarankan untuk mengotomatiskan deployment melalui kode jika memungkinkan. Selain itu, ElastiCache cluster dapat diisolasi oleh beban kerja atau digabungkan untuk tujuan pengoptimalan biaya.

Manfaat tingkat pertanyaan: Memilih mekanisme penyebaran yang paling tepat untuk ElastiCache lingkungan Anda dapat meningkatkan Keunggulan Operasi dari waktu ke waktu. Sebaiknya lakukan operasi sebagai kode jika memungkinkan untuk meminimalkan kesalahan manusia dan meningkatkan pengulangan, fleksibilitas, dan waktu respons terhadap peristiwa.

Dengan memahami persyaratan isolasi beban kerja, Anda dapat memilih untuk memiliki ElastiCache lingkungan khusus per beban kerja atau menggabungkan beberapa beban kerja menjadi satu cluster, atau kombinasinya. Memahami kompromi dapat membantu mencapai keseimbangan antara Keunggulan Operasional dan Optimalisasi Biaya

  • [Wajib] Pahami opsi penerapan yang tersedia ElastiCache, dan otomatiskan prosedur ini bila memungkinkan. Kemungkinan jalan otomatisasi termasuk CloudFormation, AWS CLI/SDK, danAPIs.

    [Sumber Daya]:

  • [Wajib] Untuk semua beban kerja, tentukan tingkat isolasi klaster yang diperlukan.

    • [Terbaik]: Isolasi Tinggi – pemetaan beban kerja ke klaster 1:1. Memungkinkan kontrol berbutir terbaik atas akses, ukuran, penskalaan, dan pengelolaan ElastiCache sumber daya berdasarkan per beban kerja.

    • [Lebih Baik]: Isolasi Sedang – M:1 diisolasi berdasarkan tujuan tetapi mungkin dibagi di beberapa beban kerja (misalnya klaster yang dikhususkan untuk caching beban kerja, dan yang lain dikhususkan untuk pesan).

    • [Baik]: Isolasi Rendah - M:1 semua tujuan, dibagikan sepenuhnya. Direkomendasikan untuk beban kerja di mana akses bersama dapat diterima.

OE 6: Bagaimana cara merencanakan dan mengurangi kegagalan?

Pengenalan tingkat pertanyaan: Keunggulan Operasional mencakup mengantisipasi kegagalan dengan melakukan latihan “pra-mortem” reguler untuk mengidentifikasi sumber kegagalan potensial sehingga dapat dihilangkan atau dikurangi. ElastiCache menawarkan Failover API yang memungkinkan simulasi kejadian kegagalan node, untuk tujuan pengujian.

Manfaat tingkat pertanyaan: Dengan menguji skenario kegagalan lebih dahulu, Anda dapat mempelajari bagaimana pengaruhnya terhadap beban kerja Anda. Ini memungkinkan pengujian prosedur respons yang aman dan efektivitasnya, serta membuat tim Anda terbiasa dengan eksekusinya.

[Diperlukan] Secara teratur melakukan pengujian failover di akun dev/test. TestFailover

OE 7: Bagaimana Anda memecahkan masalah peristiwa mesin Redis? OSS

Pengenalan tingkat pertanyaan: Keunggulan Operasional membutuhkan kemampuan untuk menyelidiki informasi tingkat layanan dan tingkat mesin untuk menganalisis kesehatan dan status cluster Anda. ElastiCache (RedisOSS) dapat memancarkan log OSS mesin Redis ke Amazon CloudWatch dan Amazon Kinesis Data Firehose.

Manfaat tingkat pertanyaan: Mengaktifkan kluster log OSS mesin Redis ElastiCache (RedisOSS) memberikan wawasan tentang peristiwa yang memengaruhi kesehatan dan kinerja cluster. Log OSS mesin Redis menyediakan data langsung dari OSS mesin Redis yang tidak tersedia melalui mekanisme ElastiCache peristiwa. Melalui pengamatan yang cermat terhadap kedua ElastiCache peristiwa (lihat sebelumnya OE-1) dan log OSS mesin Redis, dimungkinkan untuk menentukan urutan peristiwa saat pemecahan masalah dari perspektif layanan dan perspektif mesin Redis. ElastiCache OSS

  • [Wajib] Pastikan fungsionalitas pencatatan OSS mesin Redis diaktifkan, yang tersedia pada ElastiCache (RedisOSS) 6.2 dan yang lebih baru. Ini dapat dilakukan selama pembuatan klaster atau dengan mengubah klaster setelah pembuatan.

    • Tentukan apakah Amazon CloudWatch Log atau Amazon Kinesis Data Firehose adalah target yang tepat OSS untuk log mesin Redis.

    • Pilih log target yang sesuai dalam salah satu CloudWatch atau Kinesis Data Firehose untuk mempertahankan log. Jika Anda memiliki beberapa klaster, pertimbangkan log target yang berbeda untuk setiap klaster karena ini akan membantu mengisolasi data saat pemecahan masalah.

    [Sumber Daya]:

  • [Terbaik] Jika menggunakan CloudWatch Log Amazon, pertimbangkan untuk memanfaatkan Amazon CloudWatch Logs Insights untuk menanyakan log OSS mesin Redis untuk informasi penting.

    Sebagai contoh, buat kueri terhadap grup CloudWatch Log yang berisi log OSS mesin Redis yang akan mengembalikan peristiwa dengan LogLevel 'WARNING', seperti:

    fields @timestamp, LogLevel, Message | sort @timestamp desc | filter LogLevel = "WARNING"

    [Sumber Daya]: Menganalisis data log dengan Wawasan CloudWatch Log