PERF04-BP05 Memilih protokol jaringan untuk meningkatkan performa
Buatlah keputusan terkait protokol untuk komunikasi antara sistem dan jaringan berdasarkan dampaknya terhadap kinerja beban kerja.
Ada hubungan antara latensi dan bandwidth untuk mencapai throughput. Jika transfer file Anda menggunakan Transmission Control Protocol (TCP), latensi yang lebih tinggi kemungkinan besar akan mengurangi throughput secara keseluruhan. Ada beberapa pendekatan untuk memperbaiki hal ini dengan penyesuaian TCP dan pengoptimalan protokol transfer, tetapi salah satu solusinya adalah menggunakan User Datagram Protocol (UDP)).
Anti-pola umum:
-
Anda menggunakan TCP untuk semua beban kerja terlepas dari persyaratan kinerjanya.
Manfaat menerapkan praktik terbaik ini: Memverifikasi bahwa sebuah protokol yang tepat telah digunakan untuk komunikasi antara pengguna dan bahwa komponen beban kerja akan membantu Anda dalam meningkatkan pengalaman pengguna secara keseluruhan untuk aplikasi Anda. Misalnya, UDP tanpa koneksi memungkinkan kecepatan tinggi, tetapi tidak menawarkan transmisi ulang atau keandalan yang tinggi. TCP adalah sebuah protokol yang memiliki fitur lengkap, tetapi memerlukan biaya tambahan yang lebih besar untuk memproses paket.
Tingkat risiko yang terjadi jika praktik terbaik ini tidak diterapkan: Sedang
Panduan implementasi
Jika Anda memiliki kemampuan untuk memilih protokol yang berbeda-beda untuk aplikasi Anda dan Anda memiliki keahlian di bidang ini, optimalkan aplikasi dan pengalaman pengguna akhir Anda dengan menggunakan protokol yang berbeda-beda. Perlu diingat bahwa pendekatan ini memiliki tingkat kesulitan yang tinggi dan hanya boleh dicoba jika Anda telah mengoptimalkan aplikasi Anda dengan cara lain terlebih dahulu.
Pertimbangan utama dalam meningkatkan performa beban kerja Anda adalah pemahaman Anda terhadap persyaratan latensi dan throughput, dan kemudian pemilihan protokol jaringan yang mengoptimalkan performa.
Kapan Anda harus mempertimbangkan penggunaan TCP
TCP memberikan pengiriman data yang andal, dan dapat digunakan untuk komunikasi yang terjadi antara komponen beban kerja di mana keandalan dan jaminan pengiriman data merupakan hal yang penting. Banyak sekali aplikasi berbasis web yang mengandalkan protokol berbasis TCP, seperti HTTP dan HTTPS, untuk membuka soket TCP untuk komunikasi yang terjadi antara komponen-komponen aplikasi. Email dan transfer data file adalah penerapan umum yang juga menggunakan protokol TCP, karena ini adalah mekanisme transfer yang sederhana dan andal antara komponen-komponen aplikasi. Menggunakan TLS dengan TCP dapat menambahkan beberapa overhead ke komunikasi, yang dapat mengakibatkan terjadinya peningkatan latensi dan pengurangan throughput, tetapi protokol ini memiliki keunggulan dari segi keamanan. Overhead ini terutama berasal dari penambahan overhead untuk proses handshake, yang dapat memerlukan beberapa perjalanan pulang pergi agar selesai. Setelah handshake selesai, overhead enkripsi dan dekripsi data relatif kecil.
Kapan Anda harus mempertimbangkan untuk menggunakan UDP
UDP adalah sebuah protokol dengan orientasi tanpa koneksi, oleh karena itu, protokol ini cocok untuk aplikasi yang membutuhkan transmisi cepat dan efisien, seperti data VoIP, pemantauan, dan log. Selain itu, pertimbangkan untuk menggunakan UDP jika Anda memiliki komponen beban kerja yang merespons kueri kecil dari banyak klien untuk memastikan performa beban kerja yang optimal. Keamanan Lapisan Pengangkutan Datagram (DTLS) merupakan ekuivalen UDP untuk Keamanan Lapisan Pengangkutan (TLS). Ketika menggunakan DTLS dengan UDP, overhead berasal dari enkripsi dan dekripsi data, karena proses handshake sudah disederhanakan. DTLS juga menambahkan sejumlah kecil overhead ke paket UDP, karena protokol ini mencakup bidang-bidang tambahan untuk menunjukkan parameter keamanan dan untuk mendeteksi manipulasi.
Kapan Anda harus mempertimbangkan penggunaan SRD
Scalable reliable datagram (SRD) adalah sebuah protokol transportasi jaringan yang dioptimalkan untuk beban kerja throughput tinggi karena kemampuannya untuk menjalankan lalu lintas penyeimbang beban melintasi beberapa jalur dan dapat pulih dengan cepat dari penurunan paket atau kegagalan tautan. Oleh karena itu, protokol SRD paling sesuai digunakan untuk beban kerja komputasi performa tinggi (HPC) yang memerlukan komunikasi latensi rendah dan throughput tinggi antara simpul komputasi. Hal ini dapat mencakup tugas pemrosesan paralel seperti simulasi, pemodelan, dan analisis data yang melibatkan banyak transfer data antara simpul.
Langkah-langkah implementasi
-
Gunakan layanan AWS Global Accelerator
dan AWS Transfer Family untuk memperbaiki throughput aplikasi transfer file online Anda. Layanan AWS Global Accelerator membantu Anda mendapatkan latensi lebih yang rendah antara perangkat klien dan beban kerja Anda yang ada di AWS. Dengan AWS Transfer Family, Anda dapat menggunakan protokol berbasis TCP seperti Secure Shell File Transfer Protocol (SFTP) dan File Transfer Protocol over SSL (FTPS) untuk menskalakan dengan aman dan mengelola transfer file ke layanan-layanan penyimpanan AWS. -
Gunakan latensi jaringan untuk menentukan apakah TCP sesuai untuk komunikasi antara komponen beban kerja. Jika latensi jaringan antara server dan aplikasi klien Anda tinggi, maka handshake tiga arah TCP dapat memerlukan beberapa waktu, sehingga hal itu akan memengaruhi responsivitas aplikasi Anda. Metrik-metrik seperti waktu ke byte pertama (TTFB) dan waktu pulang pergi (RTT) dapat digunakan untuk mengukur latensi jaringan. Jika beban kerja Anda melayani konten dinamis untuk pengguna, pertimbangkan untuk menggunakan Amazon CloudFront
, yang membuat sambungan persisten ke masing-masing asal konten dinamis untuk menyingkirkan waktu penyiapan sambungan yang akan memperlambat setiap permintaan klien. -
Menggunakan TLS dengan TCP atau UDP dapat mengakibatkan terjadinya peningkatan latensi dan pengurangan throughput untuk beban kerja Anda karena dampak yang ditimbulkan oleh enkripsi dan dekripsi. Untuk beban kerja semacam itu, pertimbangkan untuk menggunakan pemindahan beban SSL/TLS di Elastic Load Balancing
untuk meningkatkan performa beban kerja dengan mengizinkan penyeimbang beban menangani proses enkripsi dan dekripsi SSL/TLS, bukan menggunakan instans backend. Hal ini dapat membantu Anda mengurangi pemanfaatan CPU di instans backend, yang dapat meningkatkan performa dan kapasitas. -
Gunakan Penyeimbang Beban Jaringan (NLB)
untuk melakukan deployment layanan-layanan yang mengandalkan protokol UDP, seperti autentikasi dan otorisasi, logging, DNS, IoT, dan media streaming, untuk meningkatkan performa dan keandalan beban kerja Anda. NLB mendistribusikan lalu lintas UDP masuk di beberapa target, sehingga Anda dapat menskalakan beban kerja secara horizontal, meningkatkan kapasitas, dan mengurangi overhead dari satu target tunggal. -
Untuk beban kerja Komputasi Performa Tinggi (HPC) Anda, sebaiknya Anda menggunakan fungsionalitas Adaptor Jaringan Elastis (ENA) Express
yang menggunakan protokol SRD untuk meningkatkan kinerja jaringan dengan menyediakan bandwidth aliran tunggal yang lebih tinggi (25 Gbps) dan latensi ekor yang lebih rendah (99,9 persentil) untuk lalu lintas jaringan antara instans EC2. -
Gunakan Penyeimbang Beban Aplikasi (ALB) untuk mengarahkan dan menyeimbangkan beban lalu lintas gRPC (Remote Procedure Calls) Anda antara komponen beban kerja atau antara layanan dan klien gRPC. gRPC menggunakan protokol HTTP/2 berbasis TCP untuk transportasi dan gRPC memberikan manfaat terkait performa, seperti jejak jaringan yang lebih ringan, kompresi, serialisasi biner yang efisien, dukungan untuk berbagai bahasa, dan streaming dua arah.
Sumber daya
Dokumen terkait:
Video terkait:
Contoh terkait: