Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Pertimbangkan tanpa server. NET
Gambaran Umum
Komputasi tanpa server telah menjadi pendekatan populer untuk membangun dan menyebarkan aplikasi. Ini terutama karena skalabilitas dan kelincahan yang ditawarkan pendekatan tanpa server ketika membangun arsitektur modern. Namun, penting untuk mempertimbangkan dampak biaya komputasi tanpa server dalam beberapa skenario.
Lambda adalah platform komputasi tanpa server yang memungkinkan pengembang menjalankan kode tanpa memerlukan server khusus. Lambda adalah pilihan yang sangat menarik untuk. NETpengembang yang ingin mengurangi biaya infrastruktur. Dengan Lambda,. NETpengembang dapat mengembangkan dan menyebarkan aplikasi yang sangat skalabel dan berpotensi hemat biaya. Dengan menggunakan pendekatan tanpa server, pengembang tidak lagi menyediakan server untuk menangani permintaan aplikasi. Sebagai gantinya, pengembang dapat membuat fungsi yang dijalankan sesuai permintaan. Ini membuat pendekatan tanpa server lebih terukur, dapat dikelola, dan berpotensi lebih hemat biaya daripada menjalankan, mengelola, dan menskalakan mesin virtual. Akibatnya, Anda hanya membayar sumber daya yang digunakan oleh aplikasi, tanpa harus khawatir tentang sumber daya yang kurang dimanfaatkan atau biaya pemeliharaan server.
Pengembang dapat menggunakan lintas platform modern. NETversi untuk membangun aplikasi tanpa server yang cepat, efisien, dan hemat biaya. The. NETVersi inti dan yang lebih baru adalah kerangka kerja gratis dan sumber terbuka yang lebih cocok untuk berjalan di platform tanpa server daripada sebelumnya. NETVersi kerangka kerja. Hal ini memungkinkan pengembang untuk mengurangi waktu pengembangan dan meningkatkan kinerja aplikasi. Modern. NETjuga mendukung berbagai bahasa pemrograman, termasuk C # dan F #. Untuk alasan ini, ini adalah pilihan yang menarik bagi pengembang yang ingin membangun arsitektur modern di cloud.
Bagian ini menjelaskan bagaimana Anda dapat mencapai penghematan biaya dengan menggunakan Lambda sebagai opsi tanpa server. Anda dapat mengoptimalkan biaya lebih lanjut dengan menyempurnakan profil eksekusi fungsi Lambda Anda, mengukur alokasi memori fungsi Lambda Anda dengan benar, menggunakan Native, dan pindah ke fungsi berbasis Graviton. AOT
Dampak biaya
Seberapa banyak Anda dapat mengurangi biaya tergantung pada beberapa faktor, termasuk berapa banyak eksekusi yang akan dijalankan oleh fungsi tanpa server Anda selain jumlah memori yang dialokasikan dan durasi setiap fungsi. AWS Lambda menawarkan tingkat gratis, yang mencakup satu juta permintaan gratis per bulan dan 400.000 GB detik waktu komputasi per bulan. Anda dapat secara signifikan mengurangi biaya bulanan Anda untuk beban kerja yang berada di atau di sekitar batas tingkat gratis ini.
Mungkin juga ada biaya tambahan saat menggunakan penyeimbang beban dengan fungsi Lambda sebagai target. Ini dihitung sebagai jumlah data yang diproses oleh penyeimbang beban untuk target Lambda.
Rekomendasi pengoptimalan biaya
Ukuran yang tepat fungsi Lambda Anda
Ukuran yang tepat adalah praktik penting untuk optimalisasi biaya di. NETfungsi Lambda berbasis. Proses ini melibatkan identifikasi konfigurasi memori optimal yang menyeimbangkan kinerja dengan efektivitas biaya, tanpa memerlukan perubahan pada kode.
Dengan mengonfigurasi memori untuk fungsi Lambda, mulai dari 128 MB hingga 10.240 MB, Anda juga menyesuaikan jumlah v yang tersedia selama pemanggilan. CPU Ini memungkinkan memori atau aplikasi CPU terikat untuk mengakses sumber daya tambahan selama eksekusi, yang mengarah ke potensi pengurangan durasi pemanggilan dan biaya keseluruhan.
Namun, mengidentifikasi konfigurasi optimal untuk Anda. NETFungsi Lambda berbasis dapat menjadi proses manual dan intensif waktu, terutama jika perubahan sering terjadi. Alat AWS Lambda
Power Tuning
Misalnya, meningkatkan memori untuk a. NETFungsi Lambda berbasis dapat meningkatkan waktu pemanggilan total dan mengurangi biaya tanpa mempengaruhi kinerja. Konfigurasi memori optimal untuk suatu fungsi dapat bervariasi. Alat AWS Lambda Power Tuning dapat membantu mengidentifikasi konfigurasi yang paling hemat biaya untuk setiap fungsi.
Dalam bagan contoh berikut, total waktu pemanggilan meningkat seiring dengan meningkatnya memori untuk fungsi Lambda ini. Hal ini menyebabkan pengurangan biaya untuk total eksekusi tanpa mempengaruhi kinerja asli fungsi. Untuk fungsi ini, konfigurasi memori optimal untuk fungsi tersebut adalah 512 MB, karena di sinilah pemanfaatan sumber daya paling efisien untuk total biaya setiap pemanggilan. Ini bervariasi per fungsi, dan menggunakan alat pada fungsi Lambda Anda dapat mengidentifikasi apakah mereka mendapat manfaat dari ukuran yang tepat.
Kami menyarankan Anda menyelesaikan latihan ini secara teratur, sebagai bagian dari pengujian integrasi apa pun saat pembaruan baru dirilis. Jika jarang diperbarui, maka lakukan latihan ini secara berkala untuk memastikan fungsi disetel dan berukuran tepat. Setelah Anda mengidentifikasi pengaturan memori yang sesuai untuk fungsi Lambda Anda, Anda dapat menambahkan ukuran yang tepat ke proses Anda. Alat AWS Lambda Power Tuning menghasilkan output terprogram yang dapat digunakan oleh alur kerja CI/CD Anda selama rilis kode baru. Ini memungkinkan Anda untuk mengotomatiskan konfigurasi memori.
Anda dapat mengunduh alat AWS Lambda
Power Tuning
Lambda juga mendukung nativeAOT, yang memungkinkan. NETaplikasi yang akan dikompilasi sebelumnya. Ini dapat membantu mengurangi biaya dengan mengurangi waktu eksekusi untuk. NETfungsi. Untuk informasi selengkapnya tentang membuat AOT fungsi Native, lihat. NETberfungsi dengan AOT kompilasi asli dalam dokumentasi Lambda.
Hindari waktu tunggu idle
Durasi fungsi Lambda adalah satu dimensi yang digunakan untuk menghitung penagihan. Ketika kode fungsi membuat panggilan pemblokiran, Anda ditagih untuk waktu yang menunggu untuk menerima respons. Waktu tunggu ini dapat tumbuh ketika fungsi Lambda dirantai bersama, atau fungsi bertindak sebagai orkestrator untuk fungsi lainnya. Jika Anda memiliki alur kerja seperti operasi batch atau sistem pengiriman pesanan, ini menambahkan overhead manajemen. Selain itu, tidak mungkin menyelesaikan semua logika alur kerja dan penanganan kesalahan dalam batas waktu Lambda maksimum 15 menit.
Alih-alih menangani logika ini dalam kode fungsi, kami sarankan Anda merancang ulang solusi Anda untuk digunakan AWS Step Functions
Pindah ke fungsi berbasis Graviton
Fungsi Lambda yang didukung oleh prosesor Graviton2 generasi berikutnya sekarang tersedia secara umum. Fungsi Graviton2, menggunakan arsitektur prosesor ARM berbasis, dirancang untuk memberikan kinerja hingga 19 persen lebih baik dengan biaya 20 persen lebih rendah untuk berbagai beban kerja tanpa server. Dengan latensi yang lebih rendah dan kinerja yang lebih baik, fungsi yang ditenagai oleh prosesor Graviton2 ideal untuk memberi daya pada aplikasi tanpa server yang sangat penting.
Bermigrasi ke fungsi Lambda berbasis Graviton dapat menjadi opsi yang hemat biaya untuk. NETpengembang yang ingin mengoptimalkan biaya Lambda mereka. Fungsi berbasis graviton menggunakan prosesor ARM berbasis bukan prosesor x86 tradisional. Hal ini dapat menyebabkan penghematan biaya yang signifikan tanpa mengorbankan kinerja.
Meskipun ada beberapa manfaat untuk pindah ke fungsi berbasis Graviton, ada juga beberapa tantangan dan pertimbangan yang kami sarankan untuk Anda pertimbangkan. Misalnya, fungsi berbasis Graviton memerlukan penggunaan Amazon Linux 2, yang mungkin tidak kompatibel dengan semua. NETaplikasi. Selain itu, mungkin ada masalah kompatibilitas dengan pustaka atau dependensi pihak ketiga yang tidak kompatibel dengan ARM prosesor berbasis.
Jika kau berlari. NETAplikasi kerangka kerja dan ingin memanfaatkan tanpa server dengan Lambda, Anda dapat mempertimbangkan porting aplikasi ke modern. NETdengan menggunakan Porting Assistant untuk. NET
Bagan berikut membandingkan hasil arsitektur x86 dan ARM /Graviton2 untuk fungsi yang menghitung bilangan prima.
Fungsinya menggunakan satu utas. Durasi terendah untuk kedua arsitektur dilaporkan ketika memori dikonfigurasi dengan 1,8 GB. Di atas itu, fungsi Lambda memiliki akses ke lebih dari 1 vCPU, tetapi dalam kasus ini, fungsi tidak dapat menggunakan daya tambahan. Untuk alasan yang sama, biaya stabil dengan memori hingga 1, 8 GB. Dengan lebih banyak memori, biaya meningkat karena tidak ada manfaat kinerja tambahan untuk beban kerja ini. Prosesor Graviton2 jelas memberikan kinerja yang lebih baik dan biaya yang lebih rendah untuk fungsi komputasi intensif ini.
Untuk mengonfigurasi fungsi Anda untuk menggunakan dan ARM berbasis prosesor dengan Graviton, lakukan hal berikut:
-
Masuk ke AWS Management Console dan kemudian buka konsol Lambda
. -
Pilih Buat fungsi.
-
Untuk nama Fungsi, masukkan nama.
-
Untuk Runtime, pilih. NET6 (C #/) PowerShell.
-
Untuk Arsitektur, pilih arm64.
-
Buat konfigurasi tambahan apa pun yang Anda butuhkan, lalu pilih Buat fungsi.
Sumber daya tambahan
-
Mengoptimalkan AWS Lambda biaya dan kinerja menggunakan AWS Compute Optimizer
(AWS Compute Blog) -
Mengoptimalkan AWS Lambda biaya Anda - Bagian 1
(AWS Compute Blog) -
Mengoptimalkan AWS Lambda biaya Anda - Bagian 2
(AWS Compute Blog) -
Membangun tanpa server. NETaplikasi yang sedang AWS Lambda digunakan. NET
7 (AWS Komputasi Blog)