PERF05-BP05 Memilih protokol jaringan untuk meningkatkan performa
Nilai persyaratan performa untuk beban kerja Anda, dan pilih protokol jaringan yang mengoptimalkan performa beban kerja secara keseluruhan.
Ada hubungan antara latensi dan bandwidth untuk mencapai throughput. Misalnya, jika transfer file Anda menggunakan Transmission Control Protocol (TCP), latensi yang lebih tinggi akan mengurangi throughput secara keseluruhan. Ada pendekatan untuk memperbaiki hal ini dengan penyesuaian TCP dan pengoptimalan protokol transfer (beberapa pendekatan menggunakan User Datagram Protocol (UDP)).
Protokol scalable reliable datagram (SRD)
Antipola umum:
-
Menggunakan TCP untuk semua beban kerja tanpa memperhatikan persyaratan performanya.
Manfaat menjalankan praktik terbaik ini:
-
Memilih protokol yang tepat untuk komunikasi antara komponen beban kerja memastikan bahwa Anda akan mendapatkan performa beban kerja terbaik.
-
Memverifikasi bahwa protokol yang tepat telah digunakan untuk komunikasi antara pengguna dan komponen beban kerja akan membantu meningkatkan pengalaman pengguna secara keseluruhan untuk aplikasi Anda. Misalnya, dengan menggunakan TCP dan UDP secara bersamaan, beban kerja VDI dapat memanfaatkan keandalan TCP untuk data yang sangat penting, dan kecepatan UDP untuk data dalam waktu nyata.
Tingkat risiko yang terjadi jika praktik terbaik ini tidak dijalankan: Sedang (Menggunakan protokol jaringan yang tidak tepat dapat mengakibatkan performa buruk, seperti waktu respons yang lamban, latensi tinggi, dan skalabilitas buruk)
Panduan implementasi
Pertimbangan utama dalam meningkatkan performa beban kerja Anda yakni pemahaman persyaratan latensi dan throughput, lalu pemilihan protokol jaringan yang mengoptimalkan performa.
Kapan penggunaan TCP harus dipertimbangkan
TCP memberikan pengiriman data yang andal, dan dapat digunakan untuk komunikasi antara komponen beban kerja di mana keandalan dan jaminan pengiriman data merupakan hal yang penting. Banyak aplikasi berbasis web mengandalkan protokol berbasis TCP, seperti HTTP dan HTTPS, untuk membuka soket TCP untuk komunikasi dengan server di AWS. Transfer data file dan email merupakan aplikasi umum yang juga memanfaatkan TCP karena kemampuan TCP untuk mengontrol laju pertukaran data dan kemacetan jaringan. Menggunakan TLS dengan TCP dapat menambahkan beberapa overhead ke komunikasi, yang dapat mengakibatkan peningkatan latensi dan pengurangan throughput. Overhead ini terutama berasal dari penambahan overhead proses handshake, yang dapat memerlukan beberapa perjalanan pulang pergi agar selesai. Setelah handshake selesai, overhead enkripsi dan dekripsi data relatif kecil.
Kapan penggunaan UDP harus dipertimbangkan
UDP adalah protokol dengan orientasi nirkoneksi, oleh karena itu, 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. Datagram Transport Layer Security (DTLS) merupakan ekuivalen UDP untuk TLS. Ketika menggunakan DTLS dengan UDP, overhead berasal dari enkripsi dan dekripsi data, karena proses handshake disederhanakan. DTLS juga menambahkan sejumlah kecil overhead ke paket UDP, karena mencakup bidang tambahan untuk menunjukkan parameter keamanan dan untuk mendeteksi gangguan.
Kapan penggunaan SRD harus dipertimbangkan
Scalable reliable datagram (SRD) adalah protokol transpor jaringan yang dioptimalkan untuk beban kerja throughput tinggi karena kemampuannya untuk menjalankan lalu lintas penyeimbang beban melintasi beberapa jalur dan pulih dengan cepat dari penurunan paket atau kegagalan tautan. Oleh karena itu, 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 implementasi
-
Gunakan layanan AWS Global Accelerator
dan AWS Transfer Family untuk meningkatkan throughput aplikasi transfer file online Anda. Layanan AWS Global Accelerator membantu Anda mendapatkan latensi lebih rendah antara perangkat klien dan beban kerja Anda 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 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 memengaruhi responsivitas aplikasi Anda. Metrik seperti Time to First Byte (TTFB) dan Round-Trip Time (RTT) dapat digunakan untuk mengukur latensi jaringan. Jika beban kerja Anda menyajikan konten dinamis ke pengguna, pertimbangkan untuk menggunakan Amazon CloudFront
, yang membuat sambungan persisten ke masing-masing asal konten dinamis untuk mengeliminasi waktu penyiapan sambungan yang akan memperlambat setiap permintaan klien. -
Menggunakan TLS dengan TCP atau UDP dapat mengakibatkan peningkatan latensi dan pengurangan throughput untuk beban kerja Anda karena dampak enkripsi dan dekripsi. Untuk beban kerja tersebut, pertimbangkan pemindahan beban SSL/TLS di Elastic Load Balancing
untuk meningkatkan performa beban kerja dengan mengizinkan penyeimbang beban menangani proses enkripsi dan dekripsi SSL/TLS dan bukannya instans backend yang melakukannya. Hal ini dapat membantu mengurangi pemanfaatan CPU di instans backend, yang dapat meningkatkan performa dan kapasitas. -
Gunakan Network Load Balancer (NLB)
untuk melakukan deployment 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 satu target. -
Untuk beban kerja Komputasi Performa Tinggi (HPC) Anda, pertimbangkan untuk menggunakan fungsionalitas Elastic Network Adapter (ENA) Express
yang menggunakan protokol SRD untuk meningkatkan performa jaringan dengan memberikan bandwidth satu aliran yang lebih tinggi (25 Gbps) dan latensi ekor lebih rendah (99,9 persentil) untuk lalu lintas jaringan antara instans EC2. -
Gunakan Application Load Balancer (ALB) untuk mengarahkan dan menyeimbangkan beban lalu lintas gRPC (Remote Procedure Calls) Anda antara komponen beban kerja atau antara layanan dan klien yang didukung gRPC. gRPC menggunakan protokol HTTP/2 berbasis TCP untuk transpor dan gRPC memberikan manfaat terkait performa, seperti jejak jaringan lebih ringan, kompresi, serialisasi biner yang efisien, dukungan untuk berbagai bahasa, dan streaming dua arah.
Sumber daya
Dokumen terkait:
Video terkait:
Contoh terkait: